diff --git a/node_modules/.bin/JSONStream b/node_modules/.bin/JSONStream index 3983a36..32d1fef 120000 --- a/node_modules/.bin/JSONStream +++ b/node_modules/.bin/JSONStream @@ -1 +1,12 @@ -../JSONStream/bin.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../JSONStream/bin.js" "$@" +else + exec node "$basedir/../JSONStream/bin.js" "$@" +fi diff --git a/node_modules/.bin/JSONStream.cmd b/node_modules/.bin/JSONStream.cmd new file mode 100644 index 0000000..6b131c0 --- /dev/null +++ b/node_modules/.bin/JSONStream.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\JSONStream\bin.js" %* diff --git a/node_modules/.bin/JSONStream.ps1 b/node_modules/.bin/JSONStream.ps1 new file mode 100644 index 0000000..05f9d8a --- /dev/null +++ b/node_modules/.bin/JSONStream.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../JSONStream/bin.js" $args + } else { + & "$basedir/node$exe" "$basedir/../JSONStream/bin.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../JSONStream/bin.js" $args + } else { + & "node$exe" "$basedir/../JSONStream/bin.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/acorn b/node_modules/.bin/acorn index cf76760..46a3e61 120000 --- a/node_modules/.bin/acorn +++ b/node_modules/.bin/acorn @@ -1 +1,12 @@ -../acorn/bin/acorn \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../acorn/bin/acorn" "$@" +else + exec node "$basedir/../acorn/bin/acorn" "$@" +fi diff --git a/node_modules/.bin/acorn.cmd b/node_modules/.bin/acorn.cmd new file mode 100644 index 0000000..a9324df --- /dev/null +++ b/node_modules/.bin/acorn.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\acorn\bin\acorn" %* diff --git a/node_modules/.bin/acorn.ps1 b/node_modules/.bin/acorn.ps1 new file mode 100644 index 0000000..6f6dcdd --- /dev/null +++ b/node_modules/.bin/acorn.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args + } else { + & "$basedir/node$exe" "$basedir/../acorn/bin/acorn" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../acorn/bin/acorn" $args + } else { + & "node$exe" "$basedir/../acorn/bin/acorn" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/atob b/node_modules/.bin/atob index a68344a..6d8ec0e 120000 --- a/node_modules/.bin/atob +++ b/node_modules/.bin/atob @@ -1 +1,12 @@ -../atob/bin/atob.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../atob/bin/atob.js" "$@" +else + exec node "$basedir/../atob/bin/atob.js" "$@" +fi diff --git a/node_modules/.bin/atob.cmd b/node_modules/.bin/atob.cmd new file mode 100644 index 0000000..850a60b --- /dev/null +++ b/node_modules/.bin/atob.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\atob\bin\atob.js" %* diff --git a/node_modules/.bin/atob.ps1 b/node_modules/.bin/atob.ps1 new file mode 100644 index 0000000..4a9f311 --- /dev/null +++ b/node_modules/.bin/atob.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../atob/bin/atob.js" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/browser-pack b/node_modules/.bin/browser-pack index 1d047b9..8e7c813 120000 --- a/node_modules/.bin/browser-pack +++ b/node_modules/.bin/browser-pack @@ -1 +1,12 @@ -../browser-pack/bin/cmd.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browser-pack/bin/cmd.js" "$@" +else + exec node "$basedir/../browser-pack/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/browser-pack.cmd b/node_modules/.bin/browser-pack.cmd new file mode 100644 index 0000000..7cd9465 --- /dev/null +++ b/node_modules/.bin/browser-pack.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browser-pack\bin\cmd.js" %* diff --git a/node_modules/.bin/browser-pack.ps1 b/node_modules/.bin/browser-pack.ps1 new file mode 100644 index 0000000..9807d60 --- /dev/null +++ b/node_modules/.bin/browser-pack.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../browser-pack/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../browser-pack/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../browser-pack/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../browser-pack/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/browserify b/node_modules/.bin/browserify index ab156b3..ac4ac2a 120000 --- a/node_modules/.bin/browserify +++ b/node_modules/.bin/browserify @@ -1 +1,12 @@ -../browserify/bin/cmd.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../browserify/bin/cmd.js" "$@" +else + exec node "$basedir/../browserify/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/browserify.cmd b/node_modules/.bin/browserify.cmd new file mode 100644 index 0000000..f89a5c6 --- /dev/null +++ b/node_modules/.bin/browserify.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\browserify\bin\cmd.js" %* diff --git a/node_modules/.bin/browserify.ps1 b/node_modules/.bin/browserify.ps1 new file mode 100644 index 0000000..3992ac4 --- /dev/null +++ b/node_modules/.bin/browserify.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../browserify/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../browserify/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../browserify/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../browserify/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/deps-sort b/node_modules/.bin/deps-sort index b2dda9e..0160f63 120000 --- a/node_modules/.bin/deps-sort +++ b/node_modules/.bin/deps-sort @@ -1 +1,12 @@ -../deps-sort/bin/cmd.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../deps-sort/bin/cmd.js" "$@" +else + exec node "$basedir/../deps-sort/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/deps-sort.cmd b/node_modules/.bin/deps-sort.cmd new file mode 100644 index 0000000..2064456 --- /dev/null +++ b/node_modules/.bin/deps-sort.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\deps-sort\bin\cmd.js" %* diff --git a/node_modules/.bin/deps-sort.ps1 b/node_modules/.bin/deps-sort.ps1 new file mode 100644 index 0000000..2857052 --- /dev/null +++ b/node_modules/.bin/deps-sort.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../deps-sort/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../deps-sort/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../deps-sort/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../deps-sort/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/detective b/node_modules/.bin/detective index 8c3093a..63e9729 120000 --- a/node_modules/.bin/detective +++ b/node_modules/.bin/detective @@ -1 +1,12 @@ -../detective/bin/detective.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../detective/bin/detective.js" "$@" +else + exec node "$basedir/../detective/bin/detective.js" "$@" +fi diff --git a/node_modules/.bin/detective.cmd b/node_modules/.bin/detective.cmd new file mode 100644 index 0000000..25929de --- /dev/null +++ b/node_modules/.bin/detective.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\detective\bin\detective.js" %* diff --git a/node_modules/.bin/detective.ps1 b/node_modules/.bin/detective.ps1 new file mode 100644 index 0000000..39375ab --- /dev/null +++ b/node_modules/.bin/detective.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../detective/bin/detective.js" $args + } else { + & "$basedir/node$exe" "$basedir/../detective/bin/detective.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../detective/bin/detective.js" $args + } else { + & "node$exe" "$basedir/../detective/bin/detective.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/escodegen b/node_modules/.bin/escodegen index 01a7c32..63c8e99 120000 --- a/node_modules/.bin/escodegen +++ b/node_modules/.bin/escodegen @@ -1 +1,12 @@ -../escodegen/bin/escodegen.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../escodegen/bin/escodegen.js" "$@" +else + exec node "$basedir/../escodegen/bin/escodegen.js" "$@" +fi diff --git a/node_modules/.bin/escodegen.cmd b/node_modules/.bin/escodegen.cmd new file mode 100644 index 0000000..9ac38a7 --- /dev/null +++ b/node_modules/.bin/escodegen.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\escodegen\bin\escodegen.js" %* diff --git a/node_modules/.bin/escodegen.ps1 b/node_modules/.bin/escodegen.ps1 new file mode 100644 index 0000000..61d258e --- /dev/null +++ b/node_modules/.bin/escodegen.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../escodegen/bin/escodegen.js" $args + } else { + & "$basedir/node$exe" "$basedir/../escodegen/bin/escodegen.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../escodegen/bin/escodegen.js" $args + } else { + & "node$exe" "$basedir/../escodegen/bin/escodegen.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/esgenerate b/node_modules/.bin/esgenerate index 7d0293e..710797a 120000 --- a/node_modules/.bin/esgenerate +++ b/node_modules/.bin/esgenerate @@ -1 +1,12 @@ -../escodegen/bin/esgenerate.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../escodegen/bin/esgenerate.js" "$@" +else + exec node "$basedir/../escodegen/bin/esgenerate.js" "$@" +fi diff --git a/node_modules/.bin/esgenerate.cmd b/node_modules/.bin/esgenerate.cmd new file mode 100644 index 0000000..5c6426d --- /dev/null +++ b/node_modules/.bin/esgenerate.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\escodegen\bin\esgenerate.js" %* diff --git a/node_modules/.bin/esgenerate.ps1 b/node_modules/.bin/esgenerate.ps1 new file mode 100644 index 0000000..8835d60 --- /dev/null +++ b/node_modules/.bin/esgenerate.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../escodegen/bin/esgenerate.js" $args + } else { + & "$basedir/node$exe" "$basedir/../escodegen/bin/esgenerate.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../escodegen/bin/esgenerate.js" $args + } else { + & "node$exe" "$basedir/../escodegen/bin/esgenerate.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/esparse b/node_modules/.bin/esparse index 7423b18..1cc1c96 120000 --- a/node_modules/.bin/esparse +++ b/node_modules/.bin/esparse @@ -1 +1,12 @@ -../esprima/bin/esparse.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esparse.js" "$@" +else + exec node "$basedir/../esprima/bin/esparse.js" "$@" +fi diff --git a/node_modules/.bin/esparse.cmd b/node_modules/.bin/esparse.cmd new file mode 100644 index 0000000..2ca6d50 --- /dev/null +++ b/node_modules/.bin/esparse.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esparse.js" %* diff --git a/node_modules/.bin/esparse.ps1 b/node_modules/.bin/esparse.ps1 new file mode 100644 index 0000000..f19ed73 --- /dev/null +++ b/node_modules/.bin/esparse.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args + } else { + & "$basedir/node$exe" "$basedir/../esprima/bin/esparse.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../esprima/bin/esparse.js" $args + } else { + & "node$exe" "$basedir/../esprima/bin/esparse.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/esvalidate b/node_modules/.bin/esvalidate index 16069ef..91a4c9b 120000 --- a/node_modules/.bin/esvalidate +++ b/node_modules/.bin/esvalidate @@ -1 +1,12 @@ -../esprima/bin/esvalidate.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../esprima/bin/esvalidate.js" "$@" +else + exec node "$basedir/../esprima/bin/esvalidate.js" "$@" +fi diff --git a/node_modules/.bin/esvalidate.cmd b/node_modules/.bin/esvalidate.cmd new file mode 100644 index 0000000..4c41643 --- /dev/null +++ b/node_modules/.bin/esvalidate.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esprima\bin\esvalidate.js" %* diff --git a/node_modules/.bin/esvalidate.ps1 b/node_modules/.bin/esvalidate.ps1 new file mode 100644 index 0000000..23699d1 --- /dev/null +++ b/node_modules/.bin/esvalidate.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } else { + & "$basedir/node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } else { + & "node$exe" "$basedir/../esprima/bin/esvalidate.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/insert-module-globals b/node_modules/.bin/insert-module-globals index 68af3a9..a69894b 120000 --- a/node_modules/.bin/insert-module-globals +++ b/node_modules/.bin/insert-module-globals @@ -1 +1,12 @@ -../insert-module-globals/bin/cmd.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../insert-module-globals/bin/cmd.js" "$@" +else + exec node "$basedir/../insert-module-globals/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/insert-module-globals.cmd b/node_modules/.bin/insert-module-globals.cmd new file mode 100644 index 0000000..63f866e --- /dev/null +++ b/node_modules/.bin/insert-module-globals.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\insert-module-globals\bin\cmd.js" %* diff --git a/node_modules/.bin/insert-module-globals.ps1 b/node_modules/.bin/insert-module-globals.ps1 new file mode 100644 index 0000000..42dfcb6 --- /dev/null +++ b/node_modules/.bin/insert-module-globals.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../insert-module-globals/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../insert-module-globals/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../insert-module-globals/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../insert-module-globals/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/jasmine b/node_modules/.bin/jasmine index d2c1bff..b6296a4 120000 --- a/node_modules/.bin/jasmine +++ b/node_modules/.bin/jasmine @@ -1 +1,12 @@ -../jasmine/bin/jasmine.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../jasmine/bin/jasmine.js" "$@" +else + exec node "$basedir/../jasmine/bin/jasmine.js" "$@" +fi diff --git a/node_modules/.bin/jasmine.cmd b/node_modules/.bin/jasmine.cmd new file mode 100644 index 0000000..0b50b79 --- /dev/null +++ b/node_modules/.bin/jasmine.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\jasmine\bin\jasmine.js" %* diff --git a/node_modules/.bin/jasmine.ps1 b/node_modules/.bin/jasmine.ps1 new file mode 100644 index 0000000..52ba5f6 --- /dev/null +++ b/node_modules/.bin/jasmine.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../jasmine/bin/jasmine.js" $args + } else { + & "$basedir/node$exe" "$basedir/../jasmine/bin/jasmine.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../jasmine/bin/jasmine.js" $args + } else { + & "node$exe" "$basedir/../jasmine/bin/jasmine.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/lz-string b/node_modules/.bin/lz-string index 14bd70d..30c5b36 120000 --- a/node_modules/.bin/lz-string +++ b/node_modules/.bin/lz-string @@ -1 +1,12 @@ -../lz-string/bin/bin.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../lz-string/bin/bin.js" "$@" +else + exec node "$basedir/../lz-string/bin/bin.js" "$@" +fi diff --git a/node_modules/.bin/lz-string.cmd b/node_modules/.bin/lz-string.cmd new file mode 100644 index 0000000..3314abc --- /dev/null +++ b/node_modules/.bin/lz-string.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\lz-string\bin\bin.js" %* diff --git a/node_modules/.bin/lz-string.ps1 b/node_modules/.bin/lz-string.ps1 new file mode 100644 index 0000000..aadcc34 --- /dev/null +++ b/node_modules/.bin/lz-string.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../lz-string/bin/bin.js" $args + } else { + & "$basedir/node$exe" "$basedir/../lz-string/bin/bin.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../lz-string/bin/bin.js" $args + } else { + & "node$exe" "$basedir/../lz-string/bin/bin.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/miller-rabin b/node_modules/.bin/miller-rabin index c175fe9..663d7b1 120000 --- a/node_modules/.bin/miller-rabin +++ b/node_modules/.bin/miller-rabin @@ -1 +1,12 @@ -../miller-rabin/bin/miller-rabin \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../miller-rabin/bin/miller-rabin" "$@" +else + exec node "$basedir/../miller-rabin/bin/miller-rabin" "$@" +fi diff --git a/node_modules/.bin/miller-rabin.cmd b/node_modules/.bin/miller-rabin.cmd new file mode 100644 index 0000000..26427db --- /dev/null +++ b/node_modules/.bin/miller-rabin.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\miller-rabin\bin\miller-rabin" %* diff --git a/node_modules/.bin/miller-rabin.ps1 b/node_modules/.bin/miller-rabin.ps1 new file mode 100644 index 0000000..3a5beee --- /dev/null +++ b/node_modules/.bin/miller-rabin.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../miller-rabin/bin/miller-rabin" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/module-deps b/node_modules/.bin/module-deps index 66a1f24..d70f4c8 120000 --- a/node_modules/.bin/module-deps +++ b/node_modules/.bin/module-deps @@ -1 +1,12 @@ -../module-deps/bin/cmd.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../module-deps/bin/cmd.js" "$@" +else + exec node "$basedir/../module-deps/bin/cmd.js" "$@" +fi diff --git a/node_modules/.bin/module-deps.cmd b/node_modules/.bin/module-deps.cmd new file mode 100644 index 0000000..b985089 --- /dev/null +++ b/node_modules/.bin/module-deps.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\module-deps\bin\cmd.js" %* diff --git a/node_modules/.bin/module-deps.ps1 b/node_modules/.bin/module-deps.ps1 new file mode 100644 index 0000000..08ac720 --- /dev/null +++ b/node_modules/.bin/module-deps.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../module-deps/bin/cmd.js" $args + } else { + & "$basedir/node$exe" "$basedir/../module-deps/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../module-deps/bin/cmd.js" $args + } else { + & "node$exe" "$basedir/../module-deps/bin/cmd.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/resolve b/node_modules/.bin/resolve new file mode 100644 index 0000000..757d454 --- /dev/null +++ b/node_modules/.bin/resolve @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../resolve/bin/resolve" "$@" +else + exec node "$basedir/../resolve/bin/resolve" "$@" +fi diff --git a/node_modules/.bin/resolve.cmd b/node_modules/.bin/resolve.cmd new file mode 100644 index 0000000..1a017c4 --- /dev/null +++ b/node_modules/.bin/resolve.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\resolve\bin\resolve" %* diff --git a/node_modules/.bin/resolve.ps1 b/node_modules/.bin/resolve.ps1 new file mode 100644 index 0000000..f22b2d3 --- /dev/null +++ b/node_modules/.bin/resolve.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "$basedir/node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../resolve/bin/resolve" $args + } else { + & "node$exe" "$basedir/../resolve/bin/resolve" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/sha.js b/node_modules/.bin/sha.js index 3c76105..7b69763 120000 --- a/node_modules/.bin/sha.js +++ b/node_modules/.bin/sha.js @@ -1 +1,12 @@ -../sha.js/bin.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sha.js/bin.js" "$@" +else + exec node "$basedir/../sha.js/bin.js" "$@" +fi diff --git a/node_modules/.bin/sha.js.cmd b/node_modules/.bin/sha.js.cmd new file mode 100644 index 0000000..ce87b00 --- /dev/null +++ b/node_modules/.bin/sha.js.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sha.js\bin.js" %* diff --git a/node_modules/.bin/sha.js.ps1 b/node_modules/.bin/sha.js.ps1 new file mode 100644 index 0000000..fceb31a --- /dev/null +++ b/node_modules/.bin/sha.js.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../sha.js/bin.js" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/sshpk-conv b/node_modules/.bin/sshpk-conv index a2a295c..ab33b1e 120000 --- a/node_modules/.bin/sshpk-conv +++ b/node_modules/.bin/sshpk-conv @@ -1 +1,12 @@ -../sshpk/bin/sshpk-conv \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@" +else + exec node "$basedir/../sshpk/bin/sshpk-conv" "$@" +fi diff --git a/node_modules/.bin/sshpk-conv.cmd b/node_modules/.bin/sshpk-conv.cmd new file mode 100644 index 0000000..2bdc325 --- /dev/null +++ b/node_modules/.bin/sshpk-conv.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-conv" %* diff --git a/node_modules/.bin/sshpk-conv.ps1 b/node_modules/.bin/sshpk-conv.ps1 new file mode 100644 index 0000000..a8e820e --- /dev/null +++ b/node_modules/.bin/sshpk-conv.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/sshpk-sign b/node_modules/.bin/sshpk-sign index 766b9b3..87f8ae8 120000 --- a/node_modules/.bin/sshpk-sign +++ b/node_modules/.bin/sshpk-sign @@ -1 +1,12 @@ -../sshpk/bin/sshpk-sign \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@" +else + exec node "$basedir/../sshpk/bin/sshpk-sign" "$@" +fi diff --git a/node_modules/.bin/sshpk-sign.cmd b/node_modules/.bin/sshpk-sign.cmd new file mode 100644 index 0000000..7323578 --- /dev/null +++ b/node_modules/.bin/sshpk-sign.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-sign" %* diff --git a/node_modules/.bin/sshpk-sign.ps1 b/node_modules/.bin/sshpk-sign.ps1 new file mode 100644 index 0000000..0de3957 --- /dev/null +++ b/node_modules/.bin/sshpk-sign.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/sshpk-verify b/node_modules/.bin/sshpk-verify index bfd7e3a..c2d00d0 120000 --- a/node_modules/.bin/sshpk-verify +++ b/node_modules/.bin/sshpk-verify @@ -1 +1,12 @@ -../sshpk/bin/sshpk-verify \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@" +else + exec node "$basedir/../sshpk/bin/sshpk-verify" "$@" +fi diff --git a/node_modules/.bin/sshpk-verify.cmd b/node_modules/.bin/sshpk-verify.cmd new file mode 100644 index 0000000..b0c43cb --- /dev/null +++ b/node_modules/.bin/sshpk-verify.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-verify" %* diff --git a/node_modules/.bin/sshpk-verify.ps1 b/node_modules/.bin/sshpk-verify.ps1 new file mode 100644 index 0000000..8370785 --- /dev/null +++ b/node_modules/.bin/sshpk-verify.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/umd b/node_modules/.bin/umd index 69767ed..b303bf3 120000 --- a/node_modules/.bin/umd +++ b/node_modules/.bin/umd @@ -1 +1,12 @@ -../umd/bin/cli.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../umd/bin/cli.js" "$@" +else + exec node "$basedir/../umd/bin/cli.js" "$@" +fi diff --git a/node_modules/.bin/umd.cmd b/node_modules/.bin/umd.cmd new file mode 100644 index 0000000..f0e07a1 --- /dev/null +++ b/node_modules/.bin/umd.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\umd\bin\cli.js" %* diff --git a/node_modules/.bin/umd.ps1 b/node_modules/.bin/umd.ps1 new file mode 100644 index 0000000..c0b8b43 --- /dev/null +++ b/node_modules/.bin/umd.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../umd/bin/cli.js" $args + } else { + & "$basedir/node$exe" "$basedir/../umd/bin/cli.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../umd/bin/cli.js" $args + } else { + & "node$exe" "$basedir/../umd/bin/cli.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/undeclared-identifiers b/node_modules/.bin/undeclared-identifiers index c95efdb..45cd4fc 120000 --- a/node_modules/.bin/undeclared-identifiers +++ b/node_modules/.bin/undeclared-identifiers @@ -1 +1,12 @@ -../undeclared-identifiers/bin.js \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../undeclared-identifiers/bin.js" "$@" +else + exec node "$basedir/../undeclared-identifiers/bin.js" "$@" +fi diff --git a/node_modules/.bin/undeclared-identifiers.cmd b/node_modules/.bin/undeclared-identifiers.cmd new file mode 100644 index 0000000..e77c745 --- /dev/null +++ b/node_modules/.bin/undeclared-identifiers.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\undeclared-identifiers\bin.js" %* diff --git a/node_modules/.bin/undeclared-identifiers.ps1 b/node_modules/.bin/undeclared-identifiers.ps1 new file mode 100644 index 0000000..a670ae1 --- /dev/null +++ b/node_modules/.bin/undeclared-identifiers.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../undeclared-identifiers/bin.js" $args + } else { + & "$basedir/node$exe" "$basedir/../undeclared-identifiers/bin.js" $args + } + $ret=$LASTEXITCODE +} else { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "node$exe" "$basedir/../undeclared-identifiers/bin.js" $args + } else { + & "node$exe" "$basedir/../undeclared-identifiers/bin.js" $args + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.bin/uuid b/node_modules/.bin/uuid index b3e45bc..2cfa7bf 120000 --- a/node_modules/.bin/uuid +++ b/node_modules/.bin/uuid @@ -1 +1,12 @@ -../uuid/bin/uuid \ No newline at end of file +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../uuid/bin/uuid" "$@" +else + exec node "$basedir/../uuid/bin/uuid" "$@" +fi diff --git a/node_modules/.bin/uuid.cmd b/node_modules/.bin/uuid.cmd new file mode 100644 index 0000000..1156e27 --- /dev/null +++ b/node_modules/.bin/uuid.cmd @@ -0,0 +1,17 @@ +@ECHO off +GOTO start +:find_dp0 +SET dp0=%~dp0 +EXIT /b +:start +SETLOCAL +CALL :find_dp0 + +IF EXIST "%dp0%\node.exe" ( + SET "_prog=%dp0%\node.exe" +) ELSE ( + SET "_prog=node" + SET PATHEXT=%PATHEXT:;.JS;=;% +) + +endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\bin\uuid" %* diff --git a/node_modules/.bin/uuid.ps1 b/node_modules/.bin/uuid.ps1 new file mode 100644 index 0000000..9e6c24b --- /dev/null +++ b/node_modules/.bin/uuid.ps1 @@ -0,0 +1,28 @@ +#!/usr/bin/env pwsh +$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent + +$exe="" +if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) { + # Fix case when both the Windows and Linux builds of Node + # are installed in the same directory + $exe=".exe" +} +$ret=0 +if (Test-Path "$basedir/node$exe") { + # Support pipeline input + if ($MyInvocation.ExpectingInput) { + $input | & "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args + } else { + & "$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 + } + $ret=$LASTEXITCODE +} +exit $ret diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json index f4dc404..7cf1ffb 100644 --- a/node_modules/.package-lock.json +++ b/node_modules/.package-lock.json @@ -1,7 +1,7 @@ { "name": "assignment5", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "node_modules/@babel/code-frame": { @@ -319,13 +319,13 @@ "node_modules/assert/node_modules/inherits": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", "dev": true }, "node_modules/assert/node_modules/util": { "version": "0.10.3", "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", "dev": true, "dependencies": { "inherits": "2.0.1" @@ -349,9 +349,9 @@ } }, "node_modules/available-typed-arrays": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz", - "integrity": "sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true, "engines": { "node": ">= 0.4" @@ -408,9 +408,9 @@ } }, "node_modules/bn.js": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.0.tgz", - "integrity": "sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", "dev": true }, "node_modules/brace-expansion": { @@ -426,7 +426,7 @@ "node_modules/brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", "dev": true }, "node_modules/browser-pack": { @@ -587,9 +587,9 @@ } }, "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -612,7 +612,7 @@ "node_modules/browserify/node_modules/punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, "node_modules/buffer": { @@ -626,27 +626,27 @@ } }, "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true }, "node_modules/buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", "dev": true }, "node_modules/builtin-status-codes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true }, "node_modules/cached-path-relative": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.0.2.tgz", - "integrity": "sha512-5r2GqsoEb4qMTTN9J+WzXfjov+hjxT+j3u5K+kIVNIwAd99DLCJE9pBIMP1qVeybV6JiijL385Oz0DcYxfbOIg==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", "dev": true }, "node_modules/call-bind": { @@ -765,7 +765,7 @@ "node_modules/combine-source-map": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", - "integrity": "sha1-pY0N8ELBhvz4IqjoAV9UUNLXmos=", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", "dev": true, "dependencies": { "convert-source-map": "~1.1.0", @@ -777,7 +777,7 @@ "node_modules/combine-source-map/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -797,7 +797,7 @@ "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/concat-stream": { @@ -824,19 +824,20 @@ "node_modules/constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true }, "node_modules/convert-source-map": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", - "integrity": "sha1-SCnId+n+SbMWHzvzZziI4gRpmGA=", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", "dev": true }, "node_modules/core-js-pure": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.1.tgz", "integrity": "sha512-Se+LaxqXlVXGvmexKGPvnUIYC1jwXu1H6Pkyb3uBM5d8/NELMYCHs/4/roD7721NxrTLyv7e5nXd5/QLBO+10g==", + "deprecated": "core-js-pure@<3.23.3 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. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", "dev": true, "hasInstallScript": true, "funding": { @@ -1001,24 +1002,15 @@ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/defined": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", - "dev": true - }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -1043,9 +1035,9 @@ } }, "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", "dev": true, "dependencies": { "inherits": "^2.0.1", @@ -1053,14 +1045,14 @@ } }, "node_modules/detective": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.0.tgz", - "integrity": "sha512-6SsIx+nUUbuK0EthKjv0zrdnajCCXVYGmbYYiYjFVpzcjwEs/JMDZ8tPRG29J/HhN56t3GJp2cGSWDRjjot8Pg==", + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", "dev": true, "dependencies": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" }, "bin": { "detective": "bin/detective.js" @@ -1124,7 +1116,7 @@ "node_modules/duplexer2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" @@ -1160,53 +1152,6 @@ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "node_modules/es-abstract": { - "version": "1.18.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.3.tgz", - "integrity": "sha512-nQIr12dxV7SSxE6r6f1l3DtAeEYdsGpps13dR0TwJg1S8gyp4ZPgy3FZcHBgbiQqnoqSTb+oC+kO4UQ0C/J8vw==", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1313,16 +1258,19 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, "node_modules/fast-safe-stringify": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.8.tgz", - "integrity": "sha512-lXatBjf3WPjmWD6DpIZxkeSsCOwqI0maYMpgDlx8g4U2qi4lbjA9oH/HD2a87G+KfsUmo5WbJFmqBZlPxtptag==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", "dev": true }, - "node_modules/foreach": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", - "dev": true + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } }, "node_modules/forever-agent": { "version": "0.6.1", @@ -1348,7 +1296,7 @@ "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/function-bind": { @@ -1364,14 +1312,15 @@ "dev": true }, "node_modules/get-intrinsic": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", - "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1386,15 +1335,15 @@ } }, "node_modules/glob": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", - "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, @@ -1405,6 +1354,18 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -1438,15 +1399,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-bigints": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.1.tgz", - "integrity": "sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -1456,11 +1408,38 @@ "node": ">=4" } }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-symbols": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz", - "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, "engines": { "node": ">= 0.4" }, @@ -1483,9 +1462,9 @@ } }, "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -1509,7 +1488,7 @@ "node_modules/hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", "dev": true, "dependencies": { "hash.js": "^1.0.3", @@ -1531,7 +1510,7 @@ "node_modules/htmlescape": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", - "integrity": "sha1-OgPtwiFLyjtmQko+eVk0lQnLA1E=", + "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", "dev": true, "engines": { "node": ">=0.10" @@ -1554,7 +1533,7 @@ "node_modules/https-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true }, "node_modules/iconv-lite": { @@ -1591,7 +1570,7 @@ "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", @@ -1607,7 +1586,7 @@ "node_modules/inline-source-map": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", - "integrity": "sha1-+Tk0ccGKedFyT4Y/o4tYY3Ct4qU=", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", "dev": true, "dependencies": { "source-map": "~0.5.3" @@ -1616,7 +1595,7 @@ "node_modules/inline-source-map/node_modules/source-map": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true, "engines": { "node": ">=0.10.0" @@ -1652,36 +1631,13 @@ } }, "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-bigint": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.2.tgz", - "integrity": "sha512-0JV5+SOCQkIdzjBK9buARcV804Ddu7A0Qet6sHi3FimE9ne6m4BGQZfRn+NZiXbBk4F4XmHfDZIipLj9pX8dSA==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-boolean-object": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.1.tgz", - "integrity": "sha512-bXdQWkECBUIAcCkeH1unwJLIpZYaa5VvuygSyS/c2lf719mTKZDU5UdDRlpd01UjADgmW8RfqaP+mRaVPdr/Ng==", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -1697,9 +1653,9 @@ "dev": true }, "node_modules/is-callable": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.3.tgz", - "integrity": "sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ==", + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "dev": true, "engines": { "node": ">= 0.4" @@ -1709,9 +1665,9 @@ } }, "node_modules/is-core-module": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.5.0.tgz", - "integrity": "sha512-TXCMSDsEHMEEZ6eCA8rwRDbLu55MRGmrctljsBX/2v1d9/GzqHOxW5c5oPSgrUt2vBFXebu9rGqckXGPWOlYpg==", + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -1720,47 +1676,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-date-object": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.4.tgz", - "integrity": "sha512-/b4ZVsG7Z5XVtIxs/h9W8nvfLgSAyKYdtGWQLbqy6jA1icmgjf8WCoTKgeS4wy5tYaPePouzFMANbnj94c2Z+A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-generator-function": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.9.tgz", - "integrity": "sha512-ZJ34p1uvIfptHCN7sFTjGibB9/oBg17sHqzDLfuwhvmN/qLVvIQXRQ8licZQ35WJ8KuEQt/etnnzQFI9C9Ue/A==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", "dev": true, - "engines": { - "node": ">= 0.4" + "dependencies": { + "has-tostringtag": "^1.0.0" }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-number-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.5.tgz", - "integrity": "sha512-RU0lI/n95pMoUKu9v1BZP5MBcZuNSVJkMkAG2dJqC4z2GlkGUNeH68SuHuBKBD/XFe+LHZ+f9BKkLET60Niedw==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -1773,60 +1696,13 @@ "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" }, - "node_modules/is-regex": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.3.tgz", - "integrity": "sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-string": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.6.tgz", - "integrity": "sha512-2gdzbKUuqtQ3lYNrUTQYoClPhm7oQu4UdpSZMp1/DGgkHBT8E2Z1l0yMdb6D4zNAxwDiMv8MdulKROJGNl0Q0w==", - "dev": true, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/is-typed-array": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.5.tgz", - "integrity": "sha512-S+GRDgJlR3PyEbsX/Fobd9cqpZBuvUS+8asRqYDMLCb2qMzt1oz5m5oxQCxOgUDxiWsOVNi4yaF+/uvdlHlYug==", + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" + "which-typed-array": "^1.1.11" }, "engines": { "node": ">= 0.4" @@ -1843,7 +1719,7 @@ "node_modules/isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", "dev": true }, "node_modules/isomorphic-fetch": { @@ -1862,22 +1738,22 @@ "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, "node_modules/jasmine": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.8.0.tgz", - "integrity": "sha512-kdQ3SfcNpMbbMdgJPLyFe9IksixdnrgYaCJapP9sS0aLgdWdIZADNXEr+11Zafxm1VDfRSC5ZL4fzXT0bexzXw==", + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz", + "integrity": "sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==", "dev": true, "dependencies": { "glob": "^7.1.6", - "jasmine-core": "~3.8.0" + "jasmine-core": "~3.99.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.8.0.tgz", - "integrity": "sha512-zl0nZWDrmbCiKns0NcjkFGYkVTGCPUgoHypTaj+G2AzaWus7QGoXARSlYsSle2VRpSdfJmM+hzmFKzQNhF2kHg==", + "version": "3.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", + "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", "dev": true }, "node_modules/js-tokens": { @@ -1953,7 +1829,7 @@ "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" @@ -2012,14 +1888,14 @@ } }, "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + "version": "4.17.20", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", - "integrity": "sha1-LcvSwofLwKVcxCMovQxzYVDVPj8=", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", "dev": true }, "node_modules/lodash.sortby": { @@ -2094,13 +1970,13 @@ "node_modules/minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", "dev": true }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -2110,10 +1986,13 @@ } }, "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/mkdirp-classic": { "version": "0.5.3", @@ -2175,44 +2054,17 @@ "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/object-inspect": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz", - "integrity": "sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==", - "dev": true, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "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" - }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -2220,7 +2072,7 @@ "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" @@ -2245,7 +2097,7 @@ "node_modules/os-browserify": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true }, "node_modules/pako": { @@ -2257,7 +2109,7 @@ "node_modules/parents": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", - "integrity": "sha1-/t1NK/GTp3dF/nHjcdc8MwfZx1E=", + "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", "dev": true, "dependencies": { "path-platform": "~0.11.15" @@ -2290,7 +2142,7 @@ "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" @@ -2305,7 +2157,7 @@ "node_modules/path-platform": { "version": "0.11.15", "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", - "integrity": "sha1-6GQhf3TDaFDwhSt43Hv31KVyG/I=", + "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", "dev": true, "engines": { "node": ">= 0.8.0" @@ -2391,7 +2243,7 @@ "node_modules/process": { "version": "0.11.10", "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", "dev": true, "engines": { "node": ">= 0.6.0" @@ -2444,20 +2296,10 @@ "node": ">=0.6" } }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, "node_modules/querystring-es3": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, "engines": { "node": ">=0.4.x" @@ -2491,16 +2333,16 @@ "node_modules/read-only-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", - "integrity": "sha1-JyT9aoET1zdkrCiNQ4YnDB2/F/A=", + "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", "dev": true, "dependencies": { "readable-stream": "^2.0.2" } }, "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", "dev": true, "dependencies": { "core-util-is": "~1.0.0", @@ -2620,13 +2462,17 @@ } }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2700,10 +2546,27 @@ } }, "node_modules/shell-quote": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.2.tgz", - "integrity": "sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg==", - "dev": true + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/simple-concat": { "version": "1.0.1", @@ -2738,6 +2601,7 @@ "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, "dependencies": { "atob": "^2.1.2", @@ -2787,9 +2651,9 @@ } }, "node_modules/stream-browserify/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -2803,7 +2667,7 @@ "node_modules/stream-combiner2": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", - "integrity": "sha1-+02KFCDqNidk4hrUeAOXvry0HL4=", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", "dev": true, "dependencies": { "duplexer2": "~0.1.0", @@ -2823,9 +2687,9 @@ } }, "node_modules/stream-http/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", @@ -2855,36 +2719,10 @@ "safe-buffer": "~5.2.0" } }, - "node_modules/string.prototype.trimend": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz", - "integrity": "sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz", - "integrity": "sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/subarg": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", - "integrity": "sha1-9izxdYHplrSPyWVpn1TAauJouNI=", + "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", "dev": true, "dependencies": { "minimist": "^1.1.0" @@ -2902,6 +2740,18 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", @@ -2919,7 +2769,7 @@ "node_modules/through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "dev": true }, "node_modules/through2": { @@ -2935,7 +2785,7 @@ "node_modules/timers-browserify": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", - "integrity": "sha1-ycWLV1voQHN1y14kYtrO50NZ9B0=", + "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", "dev": true, "dependencies": { "process": "~0.11.0" @@ -3004,7 +2854,7 @@ "node_modules/typedarray": { "version": "0.0.6", "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, "node_modules/umd": { @@ -3016,21 +2866,6 @@ "umd": "bin/cli.js" } }, - "node_modules/unbox-primitive": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.1.tgz", - "integrity": "sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has-bigints": "^1.0.1", - "has-symbols": "^1.0.2", - "which-boxed-primitive": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/undeclared-identifiers": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", @@ -3056,39 +2891,53 @@ } }, "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", "dev": true, "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.0" } }, "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/util": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/util/-/util-0.12.4.tgz", - "integrity": "sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw==", + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/uuid": { @@ -3123,6 +2972,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", "dependencies": { "browser-process-hrtime": "^1.0.0" } @@ -3178,35 +3028,17 @@ "node": ">=10" } }, - "node_modules/which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "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" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, "node_modules/which-typed-array": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.4.tgz", - "integrity": "sha512-49E0SpUe90cjpoc7BOJwyPHRqSAd12c10Qm2amdEZrJPCY2NDxaW01zHITrem+rnETY3dwrbH3UUrUwagfCYDA==", + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", "dev": true, "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -3226,13 +3058,13 @@ "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { - "version": "7.5.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.3.tgz", - "integrity": "sha512-kQ/dHIzuLrS6Je9+uv81ueZomEwH0qVYstcAQ4/Z93K8zeko9gtAbttJWzoC5ukqXY1PpoouV3+VSOqEAFt5wg==", + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", "engines": { "node": ">=8.3.0" }, diff --git a/node_modules/acorn/package.json b/node_modules/acorn/package.json index e8e2afc..1069930 100644 --- a/node_modules/acorn/package.json +++ b/node_modules/acorn/package.json @@ -1,68 +1,35 @@ { - "_from": "acorn@^7.1.1", - "_id": "acorn@7.4.1", - "_inBundle": false, - "_integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "_location": "/acorn", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "acorn@^7.1.1", - "name": "acorn", - "escapedName": "acorn", - "rawSpec": "^7.1.1", - "saveSpec": null, - "fetchSpec": "^7.1.1" - }, - "_requiredBy": [ - "/acorn-globals", - "/jsdom" - ], - "_resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "_shasum": "feaed255973d2e77555b83dbc08851a6c63520fa", - "_spec": "acorn@^7.1.1", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/jsdom", - "bin": { - "acorn": "bin/acorn" - }, - "bugs": { - "url": "https://github.com/acornjs/acorn/issues" - }, - "bundleDependencies": false, - "deprecated": false, + "name": "acorn", "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", - "url": "https://marijnhaverbeke.nl" + "web": "https://marijnhaverbeke.nl" }, { "name": "Ingvar Stepanyan", "email": "me@rreverser.com", - "url": "https://rreverser.com/" + "web": "https://rreverser.com/" }, { "name": "Adrian Heine", - "url": "http://adrianheine.de" + "web": "http://adrianheine.de" } ], - "module": "dist/acorn.mjs", - "name": "acorn", "repository": { "type": "git", - "url": "git+https://github.com/acornjs/acorn.git" + "url": "https://github.com/acornjs/acorn.git" }, + "license": "MIT", "scripts": { "prepare": "cd ..; npm run build:main && npm run build:bin" }, - "types": "dist/acorn.d.ts", - "version": "7.4.1" + "bin": {"acorn": "./bin/acorn"} } diff --git a/node_modules/atob/package.json b/node_modules/atob/package.json index 6f36447..79bfd9b 100644 --- a/node_modules/atob/package.json +++ b/node_modules/atob/package.json @@ -1,53 +1,24 @@ { - "_from": "atob@^2.1.2", - "_id": "atob@2.1.2", - "_inBundle": false, - "_integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "_location": "/atob", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "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.npmjs.org/atob/-/atob-2.1.2.tgz", - "_shasum": "6d9517eb9e030d2436666651e86bd9f6f13533c9", - "_spec": "atob@^2.1.2", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/source-map-resolve", - "author": { - "name": "AJ ONeal", - "email": "coolaj86@gmail.com", - "url": "https://coolaj86.com" - }, - "bin": { - "atob": "bin/atob.js" - }, - "browser": "browser-atob.js", - "bundleDependencies": false, - "deprecated": false, + "name": "atob", + "homepage": "https://git.coolaj86.com/coolaj86/atob.js.git", "description": "atob for Node.JS and Linux / Mac / Windows CLI (it's a one-liner)", - "engines": { - "node": ">= 4.5.0" + "repository": { + "type": "git", + "url": "git://git.coolaj86.com/coolaj86/atob.js.git" }, - "homepage": "https://git.coolaj86.com/coolaj86/atob.js.git", "keywords": [ "atob", "browser" ], - "license": "(MIT OR Apache-2.0)", + "author": "AJ ONeal (https://coolaj86.com)", + "engines": { + "node": ">= 4.5.0" + }, "main": "node-atob.js", - "name": "atob", - "repository": { - "type": "git", - "url": "git://git.coolaj86.com/coolaj86/atob.js.git" + "browser": "browser-atob.js", + "bin": { + "atob": "bin/atob.js" }, + "license": "(MIT OR Apache-2.0)", "version": "2.1.2" } diff --git a/node_modules/available-typed-arrays/.eslintrc b/node_modules/available-typed-arrays/.eslintrc index 3b5d9e9..62f1d7f 100644 --- a/node_modules/available-typed-arrays/.eslintrc +++ b/node_modules/available-typed-arrays/.eslintrc @@ -2,4 +2,8 @@ "root": true, "extends": "@ljharb", + + "globals": { + "globalThis": false + } } diff --git a/node_modules/available-typed-arrays/CHANGELOG.md b/node_modules/available-typed-arrays/CHANGELOG.md index 642bc3a..112aff9 100644 --- a/node_modules/available-typed-arrays/CHANGELOG.md +++ b/node_modules/available-typed-arrays/CHANGELOG.md @@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.0.5](https://github.com/inspect-js/available-typed-arrays/compare/v1.0.4...v1.0.5) - 2021-08-30 + +### Fixed + +- [Refactor] use `globalThis` if available [`#12`](https://github.com/inspect-js/available-typed-arrays/issues/12) + +### Commits + +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`1199790`](https://github.com/inspect-js/available-typed-arrays/commit/1199790ab5841517ad04827fab3f135d2dc5cfb7) + ## [v1.0.4](https://github.com/inspect-js/available-typed-arrays/compare/v1.0.3...v1.0.4) - 2021-05-25 ### Commits diff --git a/node_modules/available-typed-arrays/index.js b/node_modules/available-typed-arrays/index.js index 00cb9c1..88dbac3 100644 --- a/node_modules/available-typed-arrays/index.js +++ b/node_modules/available-typed-arrays/index.js @@ -14,10 +14,12 @@ var possibleNames = [ 'Uint8ClampedArray' ]; +var g = typeof globalThis === 'undefined' ? global : globalThis; + module.exports = function availableTypedArrays() { var out = []; for (var i = 0; i < possibleNames.length; i++) { - if (typeof global[possibleNames[i]] === 'function') { + if (typeof g[possibleNames[i]] === 'function') { out[out.length] = possibleNames[i]; } } diff --git a/node_modules/available-typed-arrays/package.json b/node_modules/available-typed-arrays/package.json index efee35e..1787d42 100644 --- a/node_modules/available-typed-arrays/package.json +++ b/node_modules/available-typed-arrays/package.json @@ -1,6 +1,6 @@ { "name": "available-typed-arrays", - "version": "1.0.4", + "version": "1.0.5", "description": "Returns an array of Typed Array names that are available in the current environment", "main": "index.js", "type": "commonjs", @@ -60,16 +60,16 @@ "node": ">= 0.4" }, "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", + "@ljharb/eslint-config": "^18.0.0", "array.prototype.every": "^1.1.2", "aud": "^1.1.5", "auto-changelog": "^2.3.0", - "eslint": "^7.27.0", + "eslint": "^7.32.0", "evalmd": "^0.0.19", "isarray": "^2.0.5", "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2" + "tape": "^5.3.1" }, "auto-changelog": { "output": "CHANGELOG.md", diff --git a/node_modules/bn.js/CHANGELOG.md b/node_modules/bn.js/CHANGELOG.md deleted file mode 100644 index c89125b..0000000 --- a/node_modules/bn.js/CHANGELOG.md +++ /dev/null @@ -1,51 +0,0 @@ -5.2.0 / 2021-02-23 ------------------- - -- fix: Buffer not using global in browser (#260) -- Fix LE constructor for HEX (#265) - -5.1.3 / 2020-08-14 ------------------- - -- Add support for defined but not implemented Symbol.for (#252) - -5.1.2 / 2020-05-20 ------------------- - -- Fix BN v5/v4 interoperability issue (#249) - -5.1.1 / 2019-12-24 ------------------- - -- Temporary workaround for BN#_move (#236) -- Add eslintrc instead config in package.json (#237) - -5.1.0 / 2019-12-23 ------------------- - -- Benchmark for BigInt (#226) -- Add documentation for max/min (#232) -- Update BN#inspect for Symbols (#225) -- Improve performance of toArrayLike (#222) -- temporary disable jumboMulTo in BN#mulTo (#221) -- optimize toBitArray function (#212) -- fix iaddn sign issue (#216) - -5.0.0 / 2019-07-04 ------------------- - -- travis: update node versions (#205) -- Refactor buffer constructor (#200) -- lib: fix for negative numbers: imuln, modrn, idivn (#185) -- bn: fix Red#imod (#178) -- check unexpected high bits for invalid characters (#173) -- document support very large integers (#158) -- only define toBuffer if Buffer is defined (#172) -- lib: better validation of string input (#151) -- tests: reject decimal input in constructor (#91) -- bn: make .strip() an internal method (#105) -- lib: deprecate `.modn()` introduce `.modrn()` (#112 #129 #130) -- bn: don't accept invalid characters (#141) -- package: use `files` insteadof `.npmignore` (#152) -- bn: improve allocation speed for buffers (#167) -- toJSON to default to interoperable hex (length % 2) (#164) diff --git a/node_modules/bn.js/README.md b/node_modules/bn.js/README.md index 70ca4a0..cc4226f 100644 --- a/node_modules/bn.js/README.md +++ b/node_modules/bn.js/README.md @@ -21,11 +21,17 @@ console.log(res.toString(10)); // 57047 **Note**: decimals are not supported in this library. +## Sponsors + +[![Scout APM](./sponsors/scout-apm.png)](https://scoutapm.com/) +My Open Source work is supported by [Scout APM](https://scoutapm.com/) and +[other sponsors](https://github.com/sponsors/indutny). + ## Notation ### Prefixes -There are several prefixes to instructions that affect the way the work. Here +There are several prefixes to instructions that affect the way they work. Here is the list of them in the order of appearance in the function name: * `i` - perform operation in-place, storing the result in the host object (on @@ -50,7 +56,7 @@ is the list of them in the order of appearance in the function name: ## Instructions -Prefixes/postfixes are put in parens at the of the line. `endian` - could be +Prefixes/postfixes are put in parens at the end of the line. `endian` - could be either `le` (little-endian) or `be` (big-endian). ### Utilities @@ -129,7 +135,7 @@ for [Mersenne Prime][1]. ### Reduction context -To enable this tricks one should create a reduction context: +To enable this trick one should create a reduction context: ```js var red = BN.red(num); diff --git a/node_modules/bn.js/lib/bn.js b/node_modules/bn.js/lib/bn.js index c9773da..adecc94 100644 --- a/node_modules/bn.js/lib/bn.js +++ b/node_modules/bn.js/lib/bn.js @@ -480,16 +480,16 @@ var w = this.words[i]; var word = (((w << off) | carry) & 0xffffff).toString(16); carry = (w >>> (24 - off)) & 0xffffff; - if (carry !== 0 || i !== this.length - 1) { - out = zeros[6 - word.length] + word + out; - } else { - out = word + out; - } off += 2; if (off >= 26) { off -= 26; i--; } + if (carry !== 0 || i !== this.length - 1) { + out = zeros[6 - word.length] + word + out; + } else { + out = word + out; + } } if (carry !== 0) { out = carry.toString(16) + out; diff --git a/node_modules/bn.js/package.json b/node_modules/bn.js/package.json index 4994435..fd038f2 100644 --- a/node_modules/bn.js/package.json +++ b/node_modules/bn.js/package.json @@ -1,6 +1,6 @@ { "name": "bn.js", - "version": "5.2.0", + "version": "5.2.1", "description": "Big number implementation in pure javascript", "keywords": [ "BN", diff --git a/node_modules/browserify-sign/node_modules/readable-stream/README.md b/node_modules/browserify-sign/node_modules/readable-stream/README.md index 6f035ab..19117c1 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/README.md +++ b/node_modules/browserify-sign/node_modules/readable-stream/README.md @@ -15,7 +15,7 @@ npm install --save readable-stream This package is a mirror of the streams implementations in Node.js. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.19.0/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.18.1/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js index 6752519..19abfa6 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js @@ -18,60 +18,48 @@ // 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. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. + 'use strict'; -/**/ +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; - - for (var key in obj) { - keys.push(key); - } - + for (var key in obj) keys.push(key); return keys; }; /**/ - module.exports = Duplex; - var Readable = require('./_stream_readable'); - var Writable = require('./_stream_writable'); - require('inherits')(Duplex, Readable); - { // Allow the keys array to be GC'ed. var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } - function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); this.allowHalfOpen = true; - if (options) { if (options.readable === false) this.readable = false; if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { this.allowHalfOpen = false; this.once('end', onend); } } } - Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -98,20 +86,20 @@ Object.defineProperty(Duplex.prototype, 'writableLength', { get: function get() { return this._writableState.length; } -}); // the no-half-open enforcer +}); +// the no-half-open enforcer function onend() { // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. + if (this._writableState.ended) return; + // no more data can be written. + // But allow more writes to happen in this tick. process.nextTick(onEndNT, this); } - function onEndNT(self) { self.end(); } - Object.defineProperty(Duplex.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -121,7 +109,6 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { if (this._readableState === undefined || this._writableState === undefined) { return false; } - return this._readableState.destroyed && this._writableState.destroyed; }, set: function set(value) { @@ -129,10 +116,10 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js index 32e7414..24a6bdd 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js @@ -18,22 +18,20 @@ // 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. + // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. + 'use strict'; module.exports = PassThrough; - var Transform = require('./_stream_transform'); - require('inherits')(PassThrough, Transform); - function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js index 192d451..df1f608 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js @@ -18,49 +18,40 @@ // 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. + 'use strict'; module.exports = Readable; -/**/ +/**/ var Duplex; /**/ Readable.ReadableState = ReadableState; -/**/ +/**/ var EE = require('events').EventEmitter; - var EElistenerCount = function EElistenerCount(emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ - - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } -/**/ - +/**/ var debugUtil = require('util'); - var debug; - if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { @@ -68,60 +59,57 @@ if (debugUtil && debugUtil.debuglog) { } /**/ - var BufferList = require('./internal/streams/buffer_list'); - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; +// Lazy loaded to improve the startup performance. var StringDecoder; var createReadableStreamAsyncIterator; var from; - require('inherits')(Readable, Stream); - var errorOrDestroy = destroyImpl.errorOrDestroy; var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } - function ReadableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() - this.buffer = new BufferList(); this.length = 0; this.pipes = null; @@ -129,61 +117,66 @@ function ReadableState(options, stream, isDuplex) { this.flowing = null; this.ended = false; this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. + this.sync = true; - this.sync = true; // whenever we return null, then we set a flag to say + // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. - this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. + this.paused = true; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.autoDestroy = !!options.autoDestroy; // has it been destroyed + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; - if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } - function Readable(options) { Duplex = Duplex || require('./_stream_duplex'); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 + if (!(this instanceof Readable)) return new Readable(options); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy + this._readableState = new ReadableState(options, this, isDuplex); + // legacy this.readable = true; - if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } - Stream.call(this); } - Object.defineProperty(Readable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -193,7 +186,6 @@ Object.defineProperty(Readable.prototype, 'destroyed', { if (this._readableState === undefined) { return false; } - return this._readableState.destroyed; }, set: function set(value) { @@ -201,69 +193,60 @@ Object.defineProperty(Readable.prototype, 'destroyed', { // has not been initialized yet if (!this._readableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; - Readable.prototype._destroy = function (err, cb) { cb(err); -}; // Manually shove something into the read() buffer. +}; + +// Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. - - Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; - if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } - skipChunkCheck = true; } } else { skipChunkCheck = true; } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - +}; +// Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { debug('readableAddChunk', chunk); var state = stream._readableState; - if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { errorOrDestroy(stream, er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } - if (addToFront) { if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); } else if (state.ended) { @@ -272,7 +255,6 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { return false; } else { state.reading = false; - if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); @@ -284,14 +266,13 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { state.reading = false; maybeReadMore(stream, state); } - } // We can push more data if we are below the highWaterMark. + } + + // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. - - return !state.ended && (state.length < state.highWaterMark || state.length === 0); } - function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { state.awaitDrain = 0; @@ -302,50 +283,42 @@ function addChunk(stream, state, chunk, addToFront) { if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } - maybeReadMore(stream, state); } - function chunkInvalid(state, chunk) { var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } - return er; } - Readable.prototype.isPaused = function () { return this._readableState.flowing === false; -}; // backwards compatibility. - +}; +// backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + // Iterate over current buffer to convert already stored Buffers: var p = this._readableState.buffer.head; var content = ''; - while (p !== null) { content += decoder.write(p.data); p = p.next; } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); this._readableState.length = content.length; return this; -}; // Don't raise the hwm > 1GB - +}; +// Don't raise the hwm > 1GB var MAX_HWM = 0x40000000; - function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. @@ -361,55 +334,54 @@ function computeNewHighWaterMark(n) { n |= n >>> 16; n++; } - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. - +} +// This function is designed to be inlinable, so please take care when making +// changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; - if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. - - + } + // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough - + if (n <= state.length) return n; + // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } - return state.length; -} // you can override either this method, or the async _read(n) below. - +} +// you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } + n = howMuchToRead(n, state); - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - + // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; - } // All the actual chunk generation logic needs to be + } + + // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change @@ -430,40 +402,37 @@ Readable.prototype.read = function (n) { // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. - + // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + debug('need readable', doRead); + // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - + } + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - - if (state.length === 0) state.needReadable = true; // call internal read method - + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method this._read(state.highWaterMark); - - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); } - var ret; if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { state.needReadable = state.length <= state.highWaterMark; n = 0; @@ -471,34 +440,28 @@ Readable.prototype.read = function (n) { state.length -= n; state.awaitDrain = 0; } - if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + if (!state.ended) state.needReadable = true; + // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } - if (ret !== null) this.emit('data', ret); return ret; }; - function onEofChunk(stream, state) { debug('onEofChunk'); if (state.ended) return; - if (state.decoder) { var chunk = state.decoder.end(); - if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } - state.ended = true; - if (state.sync) { // if we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() @@ -507,61 +470,56 @@ function onEofChunk(stream, state) { } else { // emit 'readable' now to make sure it gets picked up. state.needReadable = false; - if (!state.emittedReadable) { state.emittedReadable = true; emitReadable_(stream); } } -} // Don't emit readable right away in sync mode, because this can trigger +} + +// Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. - - function emitReadable(stream) { var state = stream._readableState; debug('emitReadable', state.needReadable, state.emittedReadable); state.needReadable = false; - if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; process.nextTick(emitReadable_, stream); } } - function emitReadable_(stream) { var state = stream._readableState; debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { stream.emit('readable'); state.emittedReadable = false; - } // The stream needs another readable event if + } + + // The stream needs another readable event if // 1. It is not flowing, as the flow mechanism will take // care of it. // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. - - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; flow(stream); -} // at this point, the user has presumably seen the 'readable' event, +} + +// at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. - - function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; process.nextTick(maybeReadMore_, stream, state); } } - function maybeReadMore_(stream, state) { // Attempt to read more data if we should. // @@ -590,49 +548,42 @@ function maybeReadMore_(stream, state) { var len = state.length; debug('maybeReadMore read 0'); stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. + if (len === state.length) + // didn't get any data, stop spinning. break; } - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. +} + +// abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. - - Readable.prototype._read = function (n) { errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; - Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; - switch (state.pipesCount) { case 0: state.pipes = dest; break; - case 1: state.pipes = [state.pipes, dest]; break; - default: state.pipes.push(dest); break; } - state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { debug('onunpipe'); - if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -640,23 +591,21 @@ Readable.prototype.pipe = function (dest, pipeOpts) { } } } - function onend() { debug('onend'); dest.end(); - } // when the dest drains, it reduces the awaitDrain counter + } + + // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. - - var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken - + debug('cleanup'); + // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); @@ -665,22 +614,20 @@ Readable.prototype.pipe = function (dest, pipeOpts) { src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this + cleanedUp = true; + + // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } - src.on('data', ondata); - function ondata(chunk) { debug('ondata'); var ret = dest.write(chunk); debug('dest.write', ret); - if (ret === false) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write @@ -690,87 +637,84 @@ Readable.prototype.pipe = function (dest, pipeOpts) { debug('false write response, pause', state.awaitDrain); state.awaitDrain++; } - src.pause(); } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - + } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. - + } - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } - dest.once('close', onclose); - function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } - dest.once('finish', onfinish); - function unpipe() { debug('unpipe'); src.unpipe(dest); - } // tell the dest that it's being piped to - + } - dest.emit('pipe', src); // start the flow if it hasn't been started already. + // tell the dest that it's being piped to + dest.emit('pipe', src); + // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } - return dest; }; - function pipeOnDrain(src) { return function pipeOnDrainFunctionResult() { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } - Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + }; - if (state.pipesCount === 0) return this; // just one destination. most common case. + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. + if (!dest) dest = state.pipes; + // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; - } // slow case. multiple pipe destinations. + } + // slow case. multiple pipe destinations. if (!dest) { // remove all. @@ -779,17 +723,13 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } - + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); return this; - } // try to find the right one. - + } + // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); @@ -797,19 +737,19 @@ Readable.prototype.unpipe = function (dest) { if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something - +}; +// set up data events if they are asked for +// Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); var state = this._readableState; - if (ev === 'data') { // update readableListening so that resume() may be a no-op // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + state.readableListening = this.listenerCount('readable') > 0; + // Try start flowing on next tick if stream isn't explicitly paused if (state.flowing !== false) this.resume(); } else if (ev === 'readable') { if (!state.endEmitted && !state.readableListening) { @@ -817,7 +757,6 @@ Readable.prototype.on = function (ev, fn) { state.flowing = false; state.emittedReadable = false; debug('on readable', state.length, state.reading); - if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -825,15 +764,11 @@ Readable.prototype.on = function (ev, fn) { } } } - return res; }; - Readable.prototype.addListener = Readable.prototype.on; - Readable.prototype.removeListener = function (ev, fn) { var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -843,13 +778,10 @@ Readable.prototype.removeListener = function (ev, fn) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - Readable.prototype.removeAllListeners = function (ev) { var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -859,121 +791,103 @@ Readable.prototype.removeAllListeners = function (ev) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - function updateReadableListening(self) { var state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { // flowing needs to be set to true now, otherwise // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume + state.flowing = true; + + // crude way to check if we should resume } else if (self.listenerCount('data') > 0) { self.resume(); } } - function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. - +} +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening + debug('resume'); + // we flow only if there is no one listening // for readable, but we still have to call // resume() - state.flowing = !state.readableListening; resume(this, state); } - state.paused = false; return this; }; - function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; process.nextTick(resume_, stream, state); } } - function resume_(stream, state) { debug('resume', state.reading); - if (!state.reading) { stream.read(0); } - state.resumeScheduled = false; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } - Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } - this._readableState.paused = true; return this; }; - function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. +// wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. - - Readable.prototype.wrap = function (stream) { var _this = this; - var state = this._readableState; var paused = false; stream.on('end', function () { debug('wrapped end'); - if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) _this.push(chunk); } - _this.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + if (state.decoder) chunk = state.decoder.write(chunk); + // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { paused = true; stream.pause(); } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + }); + // proxy all the other methods. + // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function methodWrap(method) { @@ -982,37 +896,32 @@ Readable.prototype.wrap = function (stream) { }; }(i); } - } // proxy certain important events. - + } + // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. - + } + // when we try to consume some more bytes, simply unpause the + // underlying stream. this._read = function (n) { debug('wrapped _read', n); - if (paused) { paused = false; stream.resume(); } }; - return this; }; - if (typeof Symbol === 'function') { Readable.prototype[Symbol.asyncIterator] = function () { if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('./internal/streams/async_iterator'); } - return createReadableStreamAsyncIterator(this); }; } - Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -1044,8 +953,9 @@ Object.defineProperty(Readable.prototype, 'readableFlowing', { this._readableState.flowing = state; } } -}); // exposed for testing purposes only. +}); +// exposed for testing purposes only. Readable._fromList = fromList; Object.defineProperty(Readable.prototype, 'readableLength', { // making it explicit this property is not enumerable @@ -1055,11 +965,12 @@ Object.defineProperty(Readable.prototype, 'readableLength', { get: function get() { return this._readableState.length; } -}); // Pluck off n bytes from an array of buffers. +}); + +// Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. - function fromList(n, state) { // nothing buffered if (state.length === 0) return null; @@ -1074,51 +985,43 @@ function fromList(n, state) { } return ret; } - function endReadable(stream) { var state = stream._readableState; debug('endReadable', state.endEmitted); - if (!state.endEmitted) { state.ended = true; process.nextTick(endReadableNT, state, stream); } } - function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. + debug('endReadableNT', state.endEmitted, state.length); + // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the writable side is ready for autoDestroy as well var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { stream.destroy(); } } } } - if (typeof Symbol === 'function') { Readable.from = function (iterable, opts) { if (from === undefined) { from = require('./internal/streams/from'); } - return from(Readable, iterable, opts); }; } - function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } - return -1; } \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js index 41a738c..1ccb715 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js @@ -18,6 +18,7 @@ // 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. + // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where @@ -59,42 +60,36 @@ // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. + 'use strict'; module.exports = Transform; - var _require$codes = require('../errors').codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; - + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; var Duplex = require('./_stream_duplex'); - require('inherits')(Transform, Duplex); - function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; - if (cb === null) { return this.emit('error', new ERR_MULTIPLE_CALLBACK()); } - ts.writechunk = null; ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` + if (data != null) + // single equals check for both `null` and `undefined` this.push(data); cb(er); var rs = this._readableState; rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { this._read(rs.highWaterMark); } } - function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); @@ -105,26 +100,25 @@ function Transform(options) { writecb: null, writechunk: null, writeencoding: null - }; // start out asking for a readable event once data is transformed. + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. - this._readableState.sync = false; - if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. - + } + // When the writable side finishes, then flush out anything remaining. this.on('prefinish', prefinish); } - function prefinish() { var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { this._flush(function (er, data) { done(_this, er, data); @@ -133,11 +127,12 @@ function prefinish() { done(this, null, null); } } - Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! +}; + +// This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // @@ -147,33 +142,27 @@ Transform.prototype.push = function (chunk, encoding) { // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. - - Transform.prototype._transform = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); }; - Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; - if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } -}; // Doesn't matter what the args are here. +}; + +// Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. - - Transform.prototype._read = function (n) { var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in @@ -181,20 +170,20 @@ Transform.prototype._read = function (n) { ts.needTransform = true; } }; - Transform.prototype._destroy = function (err, cb) { Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); }); }; - function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); return stream.push(null); diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js index a2634d7..292415e 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js @@ -18,29 +18,29 @@ // 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. + // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. + 'use strict'; module.exports = Writable; -/* */ +/* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream - +} +// It seems a linked list but it is not +// there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; - this.next = null; this.entry = null; - this.finish = function () { onCorkedFinish(_this, state); }; @@ -48,155 +48,159 @@ function CorkedRequest(state) { /* */ /**/ - - var Duplex; /**/ Writable.WritableState = WritableState; -/**/ +/**/ var internalUtil = { deprecate: require('util-deprecate') }; /**/ /**/ - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; var errorOrDestroy = destroyImpl.errorOrDestroy; - require('inherits')(Writable, Stream); - function nop() {} - function WritableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream, // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // object stream flag to indicate whether or not this stream // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called + // if _final has been called + this.finalCalled = false; - this.finalCalled = false; // drain event flag. + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - this.needDrain = false; // at the start of calling end() + // has it been destroyed + this.destroyed = false; - this.ending = false; // when end() has been called, and returned - - this.ended = false; // when 'finish' is emitted - - this.finished = false; // has it been destroyed - - this.destroyed = false; // should we decode strings into buffers before passing to _write? + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. + this.length = 0; - this.length = 0; // a flag to see when we're in the middle of a write. + // a flag to see when we're in the middle of a write. + this.writing = false; - this.writing = false; // when true all writes will be buffered until .uncork() call + // when true all writes will be buffered until .uncork() call + this.corked = 0; - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. + this.sync = true; - this.sync = true; // a flag to know if we're processing previously buffered items, which + // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) - + // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) - + }; - this.writecb = null; // the amount that is being written when _write is called. + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams + this.prefinished = false; - this.prefinished = false; // True if the error was already emitted and should not be thrown again + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - this.autoDestroy = !!options.autoDestroy; // count buffered requests + // count buffered requests + this.bufferedRequestCount = 0; - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); } - WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; - while (current) { out.push(current); current = current.next; } - return out; }; - (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { @@ -205,12 +209,11 @@ WritableState.prototype.getBuffer = function getBuffer() { }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. - +})(); +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { @@ -225,81 +228,73 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot return object instanceof this; }; } - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. + this._writableState = new WritableState(options, this, isDuplex); + // legacy. this.writable = true; - if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. - +} +// Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; - function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb - + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb errorOrDestroy(stream, er); process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular +} + +// Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. - - function validChunk(stream, state, chunk, cb) { var er; - if (chunk === null) { er = new ERR_STREAM_NULL_VALUES(); } else if (typeof chunk !== 'string' && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - if (er) { errorOrDestroy(stream, er); process.nextTick(cb, er); return false; } - return true; } - Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } - if (typeof encoding === 'function') { cb = encoding; encoding = null; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { @@ -308,20 +303,16 @@ Writable.prototype.write = function (chunk, encoding, cb) { } return ret; }; - Writable.prototype.cork = function () { this._writableState.corked++; }; - Writable.prototype.uncork = function () { var state = this._writableState; - if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); @@ -329,7 +320,6 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { this._writableState.defaultEncoding = encoding; return this; }; - Object.defineProperty(Writable.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -339,15 +329,12 @@ Object.defineProperty(Writable.prototype, 'writableBuffer', { return this._writableState && this._writableState.getBuffer(); } }); - function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } - return chunk; } - Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -356,27 +343,25 @@ Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { get: function get() { return this._writableState.highWaterMark; } -}); // if we're already writing something, then just put this +}); + +// if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } - var len = state.objectMode ? 1 : chunk.length; state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. - + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; - if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { @@ -386,21 +371,17 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { callback: cb, next: null }; - if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } - state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } - return ret; } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; @@ -409,16 +390,14 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } - function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen + process.nextTick(cb, er); + // this can emit finish, and it will always happen // after error - process.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; errorOrDestroy(stream, er); @@ -427,20 +406,18 @@ function onwriteError(stream, state, sync, er, cb) { // it is async cb(er); stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must + errorOrDestroy(stream, er); + // this can emit finish, but finish must // always follow error - finishMaybe(stream, state); } } - function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } - function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; @@ -450,11 +427,9 @@ function onwrite(stream, er) { if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } - if (sync) { process.nextTick(afterWrite, stream, state, finished, cb); } else { @@ -462,29 +437,27 @@ function onwrite(stream, er) { } } } - function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't +} + +// Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. - - function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } -} // if there's something in the buffer waiting, then process it - +} +// if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; @@ -493,28 +466,25 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; var allBuffers = true; - while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; - if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } - state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one @@ -525,32 +495,26 @@ function clearBuffer(stream, state) { var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. - if (state.writing) { break; } } - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; state.bufferProcessing = false; } - Writable.prototype._write = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); }; - Writable.prototype._writev = null; - Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; - if (typeof chunk === 'function') { cb = chunk; chunk = null; @@ -559,19 +523,18 @@ Writable.prototype.end = function (chunk, encoding, cb) { cb = encoding; encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks - + // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); - } // ignore unnecessary end() calls. - + } + // ignore unnecessary end() calls. if (!state.ending) endWritable(this, state, cb); return this; }; - Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -581,25 +544,20 @@ Object.defineProperty(Writable.prototype, 'writableLength', { return this._writableState.length; } }); - function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; - if (err) { errorOrDestroy(stream, err); } - state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } - function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function' && !state.destroyed) { @@ -612,59 +570,47 @@ function prefinish(stream, state) { } } } - function finishMaybe(stream, state) { var need = needFinish(state); - if (need) { prefinish(stream, state); - if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the readable side is ready for autoDestroy as well var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { stream.destroy(); } } } } - return need; } - function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); - if (cb) { if (state.finished) process.nextTick(cb);else stream.once('finish', cb); } - state.ended = true; stream.writable = false; } - function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; - while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; - } // reuse the free corkReq. - + } + // reuse the free corkReq. state.corkedRequestsFree.next = corkReq; } - Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -674,7 +620,6 @@ Object.defineProperty(Writable.prototype, 'destroyed', { if (this._writableState === undefined) { return false; } - return this._writableState.destroyed; }, set: function set(value) { @@ -682,16 +627,15 @@ Object.defineProperty(Writable.prototype, 'destroyed', { // has not been initialized yet if (!this._writableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; - Writable.prototype._destroy = function (err, cb) { cb(err); }; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js index 9fb615a..742c5a4 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js @@ -1,11 +1,10 @@ 'use strict'; var _Object$setPrototypeO; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var finished = require('./end-of-stream'); - var kLastResolve = Symbol('lastResolve'); var kLastReject = Symbol('lastReject'); var kError = Symbol('error'); @@ -13,22 +12,19 @@ var kEnded = Symbol('ended'); var kLastPromise = Symbol('lastPromise'); var kHandlePromise = Symbol('handlePromise'); var kStream = Symbol('stream'); - function createIterResult(value, done) { return { value: value, done: done }; } - function readAndResolve(iter) { var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null + var data = iter[kStream].read(); + // we defer if data is null // we can be expecting either 'end' or // 'error' - if (data !== null) { iter[kLastPromise] = null; iter[kLastResolve] = null; @@ -37,13 +33,11 @@ function readAndResolve(iter) { } } } - function onReadable(iter) { // we wait for the next tick, because it might // emit an error with process.nextTick process.nextTick(readAndResolve, iter); } - function wrapForNext(lastPromise, iter) { return function (resolve, reject) { lastPromise.then(function () { @@ -51,33 +45,26 @@ function wrapForNext(lastPromise, iter) { resolve(createIterResult(undefined, true)); return; } - iter[kHandlePromise](resolve, reject); }, reject); }; } - var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { get stream() { return this[kStream]; }, - next: function next() { var _this = this; - // if we have detected an error in the meanwhile // reject straight away var error = this[kError]; - if (error !== null) { return Promise.reject(error); } - if (this[kEnded]) { return Promise.resolve(createIterResult(undefined, true)); } - if (this[kStream].destroyed) { // We need to defer via nextTick because if .destroy(err) is // called, the error will be emitted via nextTick, and @@ -92,29 +79,25 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro } }); }); - } // if we have multiple next() calls + } + + // if we have multiple next() calls // we will wait for the previous Promise to finish // this logic is optimized to support for await loops, // where next() is only called once at a time - - var lastPromise = this[kLastPromise]; var promise; - if (lastPromise) { promise = new Promise(wrapForNext(lastPromise, this)); } else { // fast path needed to support multiple this.push() // without triggering the next() queue var data = this[kStream].read(); - if (data !== null) { return Promise.resolve(createIterResult(data, false)); } - promise = new Promise(this[kHandlePromise]); } - this[kLastPromise] = promise; return promise; } @@ -122,7 +105,6 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro return this; }), _defineProperty(_Object$setPrototypeO, "return", function _return() { var _this2 = this; - // destroy(err, cb) is a private API // we can guarantee we have that here, because we control the // Readable class this is attached to @@ -132,15 +114,12 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro reject(err); return; } - resolve(createIterResult(undefined, true)); }); }); }), _Object$setPrototypeO), AsyncIteratorPrototype); - var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { value: stream, writable: true @@ -159,7 +138,6 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat }), _defineProperty(_Object$create, kHandlePromise, { value: function value(resolve, reject) { var data = iterator[kStream].read(); - if (data) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; @@ -175,33 +153,28 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat iterator[kLastPromise] = null; finished(stream, function (err) { if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise // returned by next() and store the error - if (reject !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; reject(err); } - iterator[kError] = err; return; } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(undefined, true)); } - iterator[kEnded] = true; }); stream.on('readable', onReadable.bind(null, iterator)); return iterator; }; - module.exports = createReadableStreamAsyncIterator; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js index cdea425..69bda49 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js @@ -1,40 +1,28 @@ 'use strict'; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var _require = require('buffer'), - Buffer = _require.Buffer; - + Buffer = _require.Buffer; var _require2 = require('util'), - inspect = _require2.inspect; - + inspect = _require2.inspect; var custom = inspect && inspect.custom || 'inspect'; - function copyBuffer(src, target, offset) { Buffer.prototype.copy.call(src, target, offset); } - -module.exports = -/*#__PURE__*/ -function () { +module.exports = /*#__PURE__*/function () { function BufferList() { _classCallCheck(this, BufferList); - this.head = null; this.tail = null; this.length = 0; } - _createClass(BufferList, [{ key: "push", value: function push(v) { @@ -78,11 +66,7 @@ function () { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; - - while (p = p.next) { - ret += s + p.data; - } - + while (p = p.next) ret += s + p.data; return ret; } }, { @@ -92,21 +76,19 @@ function () { var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; - while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. + } + // Consumes a specified amount of bytes or characters from the buffered data. }, { key: "consume", value: function consume(n, hasStrings) { var ret; - if (n < this.head.data.length) { // `slice` is the same for buffers and strings. ret = this.head.data.slice(0, n); @@ -118,15 +100,15 @@ function () { // Result spans more than one buffer. ret = hasStrings ? this._getString(n) : this._getBuffer(n); } - return ret; } }, { key: "first", value: function first() { return this.head.data; - } // Consumes a specified amount of characters from the buffered data. + } + // Consumes a specified amount of characters from the buffered data. }, { key: "_getString", value: function _getString(n) { @@ -134,13 +116,11 @@ function () { var c = 1; var ret = p.data; n -= ret.length; - while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; - if (n === 0) { if (nb === str.length) { ++c; @@ -149,17 +129,15 @@ function () { this.head = p; p.data = str.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Consumes a specified amount of bytes from the buffered data. + } + // Consumes a specified amount of bytes from the buffered data. }, { key: "_getBuffer", value: function _getBuffer(n) { @@ -168,13 +146,11 @@ function () { var c = 1; p.data.copy(ret); n -= p.data.length; - while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; - if (n === 0) { if (nb === buf.length) { ++c; @@ -183,21 +159,19 @@ function () { this.head = p; p.data = buf.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Make sure the linked list only shows the minimal necessary information. + } + // Make sure the linked list only shows the minimal necessary information. }, { key: custom, value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { // Only inspect one level. depth: 0, // It should not recurse. @@ -205,6 +179,5 @@ function () { })); } }]); - return BufferList; }(); \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js index 3268a16..31a17c4 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -1,11 +1,10 @@ -'use strict'; // undocumented cb() API, needed for core, not for public API +'use strict'; +// undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); @@ -17,21 +16,20 @@ function destroy(err, cb) { process.nextTick(emitErrorNT, this, err); } } - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks + } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well - + } + // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } - this._destroy(err || null, function (err) { if (!cb && err) { if (!_this._writableState) { @@ -49,21 +47,17 @@ function destroy(err, cb) { process.nextTick(emitCloseNT, _this); } }); - return this; } - function emitErrorAndCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } - function emitCloseNT(self) { if (self._writableState && !self._writableState.emitClose) return; if (self._readableState && !self._readableState.emitClose) return; self.emit('close'); } - function undestroy() { if (this._readableState) { this._readableState.destroyed = false; @@ -71,7 +65,6 @@ function undestroy() { this._readableState.ended = false; this._readableState.endEmitted = false; } - if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; @@ -82,22 +75,20 @@ function undestroy() { this._writableState.errorEmitted = false; } } - function emitErrorNT(self, err) { self.emit('error', err); } - function errorOrDestroy(stream, err) { // We have tests that rely on errors being emitted // in the same tick, so changing this is semver major. // For now when you opt-in to autoDestroy we allow // the error to be emitted nextTick. In a future // semver major update we should change the default to this. + var rState = stream._readableState; var wState = stream._writableState; if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); } - module.exports = { destroy: destroy, undestroy: undestroy, diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js index 831f286..59c671b 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js @@ -1,78 +1,62 @@ // Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE; - function once(callback) { var called = false; return function () { if (called) return; called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - callback.apply(this, args); }; } - function noop() {} - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function eos(stream, opts, callback) { if (typeof opts === 'function') return eos(stream, null, opts); if (!opts) opts = {}; callback = once(callback || noop); var readable = opts.readable || opts.readable !== false && stream.readable; var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { if (!stream.writable) onfinish(); }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { writable = false; writableEnded = true; if (!readable) callback.call(stream); }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { readable = false; readableEnded = true; if (!writable) callback.call(stream); }; - var onerror = function onerror(err) { callback.call(stream, err); }; - var onclose = function onclose() { var err; - if (readable && !readableEnded) { if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } - if (writable && !writableEnded) { if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } }; - var onrequest = function onrequest() { stream.req.on('finish', onfinish); }; - if (isRequest(stream)) { stream.on('complete', onfinish); stream.on('abort', onclose); @@ -82,7 +66,6 @@ function eos(stream, opts, callback) { stream.on('end', onlegacyfinish); stream.on('close', onlegacyfinish); } - stream.on('end', onend); stream.on('finish', onfinish); if (opts.error !== false) stream.on('error', onerror); @@ -100,5 +83,4 @@ function eos(stream, opts, callback) { stream.removeListener('close', onclose); }; } - module.exports = eos; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from.js index 6c41284..0a34ee9 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from.js @@ -1,52 +1,42 @@ 'use strict'; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE; - function from(Readable, iterable, opts) { var iterator; - if (iterable && typeof iterable.next === 'function') { iterator = iterable; } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ objectMode: true - }, opts)); // Reading boolean to protect against _read + }, opts)); + // Reading boolean to protect against _read // being called before last iteration completion. - var reading = false; - readable._read = function () { if (!reading) { reading = true; next(); } }; - function next() { return _next2.apply(this, arguments); } - function _next2() { _next2 = _asyncToGenerator(function* () { try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; - + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; if (done) { readable.push(null); - } else if (readable.push((yield value))) { + } else if (readable.push(yield value)) { next(); } else { reading = false; @@ -57,8 +47,6 @@ function from(Readable, iterable, opts) { }); return _next2.apply(this, arguments); } - return readable; } - -module.exports = from; \ No newline at end of file +module.exports = from; diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js index 6589909..e6f3924 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js @@ -1,9 +1,9 @@ // Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var eos; - function once(callback) { var called = false; return function () { @@ -12,20 +12,16 @@ function once(callback) { callback.apply(void 0, arguments); }; } - var _require$codes = require('../../../errors').codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; - + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { // Rethrow the error if it exists to avoid swallowing it if (err) throw err; } - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function destroyer(stream, reading, writing, callback) { callback = once(callback); var closed = false; @@ -45,40 +41,34 @@ function destroyer(stream, reading, writing, callback) { return function (err) { if (closed) return; if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want + destroyed = true; + // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); if (typeof stream.destroy === 'function') return stream.destroy(); callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } - function call(fn) { fn(); } - function pipe(from, to) { return from.pipe(to); } - function popCallback(streams) { if (!streams.length) return noop; if (typeof streams[streams.length - 1] !== 'function') return noop; return streams.pop(); } - function pipeline() { for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { streams[_key] = arguments[_key]; } - var callback = popCallback(streams); if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { throw new ERR_MISSING_ARGS('streams'); } - var error; var destroys = streams.map(function (stream, i) { var reading = i < streams.length - 1; @@ -93,5 +83,4 @@ function pipeline() { }); return streams.reduce(pipe); } - module.exports = pipeline; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js index 19887eb..3fbf892 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js +++ b/node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js @@ -1,27 +1,22 @@ 'use strict'; var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE; - function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } - function getHighWaterMark(state, options, duplexKey, isDuplex) { var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { var name = isDuplex ? duplexKey : 'highWaterMark'; throw new ERR_INVALID_OPT_VALUE(name, hwm); } - return Math.floor(hwm); - } // Default value - + } + // Default value return state.objectMode ? 16 : 16 * 1024; } - module.exports = { getHighWaterMark: getHighWaterMark }; \ No newline at end of file diff --git a/node_modules/browserify-sign/node_modules/readable-stream/package.json b/node_modules/browserify-sign/node_modules/readable-stream/package.json index 0b0c4bd..ade59e7 100644 --- a/node_modules/browserify-sign/node_modules/readable-stream/package.json +++ b/node_modules/browserify-sign/node_modules/readable-stream/package.json @@ -1,6 +1,6 @@ { "name": "readable-stream", - "version": "3.6.0", + "version": "3.6.2", "description": "Streams3, a user-land copy of the stream library from Node.js", "main": "readable.js", "engines": { diff --git a/node_modules/buffer-from/index.js b/node_modules/buffer-from/index.js index d92a83d..e1a58b5 100644 --- a/node_modules/buffer-from/index.js +++ b/node_modules/buffer-from/index.js @@ -1,6 +1,9 @@ +/* eslint-disable node/no-deprecated-api */ + var toString = Object.prototype.toString var isModern = ( + typeof Buffer !== 'undefined' && typeof Buffer.alloc === 'function' && typeof Buffer.allocUnsafe === 'function' && typeof Buffer.from === 'function' diff --git a/node_modules/buffer-from/package.json b/node_modules/buffer-from/package.json index b002450..6ac5327 100644 --- a/node_modules/buffer-from/package.json +++ b/node_modules/buffer-from/package.json @@ -1,6 +1,6 @@ { "name": "buffer-from", - "version": "1.1.1", + "version": "1.1.2", "license": "MIT", "repository": "LinusU/buffer-from", "files": [ @@ -10,7 +10,7 @@ "test": "standard && node test" }, "devDependencies": { - "standard": "^7.1.2" + "standard": "^12.0.1" }, "keywords": [ "buffer", diff --git a/node_modules/cached-path-relative/lib/index.js b/node_modules/cached-path-relative/lib/index.js index 78346c3..cb74bec 100644 --- a/node_modules/cached-path-relative/lib/index.js +++ b/node_modules/cached-path-relative/lib/index.js @@ -27,7 +27,7 @@ function cachedPathRelative (from, to) { // to invalidate the cache var cwd = process.cwd() if (cwd !== lastCwd) { - cache = {} + cache = Object.create(null) lastCwd = cwd } @@ -35,7 +35,7 @@ function cachedPathRelative (from, to) { var result = relative.call(path, from, to) - cache[from] = cache[from] || {} + cache[from] = cache[from] || Object.create(null) cache[from][to] = result return result diff --git a/node_modules/cached-path-relative/package.json b/node_modules/cached-path-relative/package.json index 4bdf018..9d97c5b 100644 --- a/node_modules/cached-path-relative/package.json +++ b/node_modules/cached-path-relative/package.json @@ -2,7 +2,7 @@ "name": "cached-path-relative", "description": "Memoize the results of the path.relative function", "repository": "git://github.com/ashaffer/cached-path-relative.git", - "version": "1.0.2", + "version": "1.1.0", "license": "MIT", "main": "lib/index.js", "dependencies": {}, diff --git a/node_modules/define-properties/.editorconfig b/node_modules/define-properties/.editorconfig deleted file mode 100644 index eaa2141..0000000 --- a/node_modules/define-properties/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = tab; -insert_final_newline = true; -quote_type = auto; -space_after_anonymous_functions = true; -space_after_control_statements = true; -spaces_around_operators = true; -trim_trailing_whitespace = true; -spaces_in_brackets = false; -end_of_line = lf; - diff --git a/node_modules/define-properties/.eslintrc b/node_modules/define-properties/.eslintrc deleted file mode 100644 index db992d7..0000000 --- a/node_modules/define-properties/.eslintrc +++ /dev/null @@ -1,12 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "id-length": [2, { "min": 1, "max": 35 }], - "max-lines-per-function": [2, 100], - "max-params": [2, 4], - "max-statements": [2, 13] - } -} diff --git a/node_modules/define-properties/.jscs.json b/node_modules/define-properties/.jscs.json deleted file mode 100644 index 6f2d7f9..0000000 --- a/node_modules/define-properties/.jscs.json +++ /dev/null @@ -1,175 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] }, - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 3 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": "asc-insensitive", - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - }, - - "requireImportAlphabetized": false, - - "requireSpaceBeforeObjectValues": true, - "requireSpaceBeforeDestructuredValues": true, - - "disallowSpacesInsideTemplateStringPlaceholders": true, - - "disallowArrayDestructuringReturn": false, - - "requireNewlineBeforeSingleStatementsInIf": false, - - "disallowUnusedVariables": true, - - "requireSpacesInsideImportedObjectBraces": true, - - "requireUseStrict": true -} - diff --git a/node_modules/define-properties/.travis.yml b/node_modules/define-properties/.travis.yml deleted file mode 100644 index ec72d5f..0000000 --- a/node_modules/define-properties/.travis.yml +++ /dev/null @@ -1,233 +0,0 @@ -language: node_js -os: - - linux -node_js: - - "10.8" - - "9.11" - - "8.11" - - "7.10" - - "6.14" - - "5.12" - - "4.9" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" -before_install: - - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac' - - 'nvm install-latest-npm' -install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true -matrix: - fast_finish: true - include: - - node_js: "lts/*" - env: PRETEST=true - - node_js: "lts/*" - env: POSTTEST=true - - node_js: "4" - env: COVERAGE=true - - node_js: "10.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true - allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true - - env: COVERAGE=true diff --git a/node_modules/define-properties/CHANGELOG.md b/node_modules/define-properties/CHANGELOG.md deleted file mode 100644 index 5cad1e2..0000000 --- a/node_modules/define-properties/CHANGELOG.md +++ /dev/null @@ -1,44 +0,0 @@ -1.1.3 / 2018-08-14 -================= - * [Refactor] use a for loop instead of `foreach` to make for smaller bundle sizes - * [Robustness] cache `Array.prototype.concat` and `Object.defineProperty` - * [Deps] update `object-keys` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `tape`, `jscs`; remove unused eccheck script + dep - * [Tests] use pretest/posttest for linting/security - * [Tests] fix npm upgrades on older nodes - -1.1.2 / 2015-10-14 -================= - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - * [Deps] Update `object-keys` - * [Dev Deps] update `jscs`, `tape`, `eslint`, `@ljharb/eslint-config`, `nsp` - * [Tests] up to `io.js` `v3.3`, `node` `v4.2` - -1.1.1 / 2015-07-21 -================= - * [Deps] Update `object-keys` - * [Dev Deps] Update `tape`, `eslint` - * [Tests] Test on `io.js` `v2.4` - -1.1.0 / 2015-07-01 -================= - * [New] Add support for symbol-valued properties. - * [Dev Deps] Update `nsp`, `eslint` - * [Tests] Test up to `io.js` `v2.3` - -1.0.3 / 2015-05-30 -================= - * Using a more reliable check for supported property descriptors. - -1.0.2 / 2015-05-23 -================= - * Test up to `io.js` `v2.0` - * Update `tape`, `jscs`, `nsp`, `eslint`, `object-keys`, `editorconfig-tools`, `covert` - -1.0.1 / 2015-01-06 -================= - * Update `object-keys` to fix ES3 support - -1.0.0 / 2015-01-04 -================= - * v1.0.0 diff --git a/node_modules/define-properties/LICENSE b/node_modules/define-properties/LICENSE deleted file mode 100644 index 8c271c1..0000000 --- a/node_modules/define-properties/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (C) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/define-properties/README.md b/node_modules/define-properties/README.md deleted file mode 100644 index 33b6111..0000000 --- a/node_modules/define-properties/README.md +++ /dev/null @@ -1,86 +0,0 @@ -#define-properties [![Version Badge][npm-version-svg]][package-url] - -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -[![browser support][testling-svg]][testling-url] - -Define multiple non-enumerable properties at once. Uses `Object.defineProperty` when available; falls back to standard assignment in older engines. -Existing properties are not overridden. Accepts a map of property names to a predicate that, when true, force-overrides. - -## Example - -```js -var define = require('define-properties'); -var assert = require('assert'); - -var obj = define({ a: 1, b: 2 }, { - a: 10, - b: 20, - c: 30 -}); -assert(obj.a === 1); -assert(obj.b === 2); -assert(obj.c === 30); -if (define.supportsDescriptors) { - assert.deepEqual(Object.keys(obj), ['a', 'b']); - assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'c'), { - configurable: true, - enumerable: false, - value: 30, - writable: false - }); -} -``` - -Then, with predicates: -```js -var define = require('define-properties'); -var assert = require('assert'); - -var obj = define({ a: 1, b: 2, c: 3 }, { - a: 10, - b: 20, - c: 30 -}, { - a: function () { return false; }, - b: function () { return true; } -}); -assert(obj.a === 1); -assert(obj.b === 20); -assert(obj.c === 3); -if (define.supportsDescriptors) { - assert.deepEqual(Object.keys(obj), ['a', 'c']); - assert.deepEqual(Object.getOwnPropertyDescriptor(obj, 'b'), { - configurable: true, - enumerable: false, - value: 20, - writable: false - }); -} -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/define-properties -[npm-version-svg]: http://versionbadg.es/ljharb/define-properties.svg -[travis-svg]: https://travis-ci.org/ljharb/define-properties.svg -[travis-url]: https://travis-ci.org/ljharb/define-properties -[deps-svg]: https://david-dm.org/ljharb/define-properties.svg -[deps-url]: https://david-dm.org/ljharb/define-properties -[dev-deps-svg]: https://david-dm.org/ljharb/define-properties/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/define-properties#info=devDependencies -[testling-svg]: https://ci.testling.com/ljharb/define-properties.png -[testling-url]: https://ci.testling.com/ljharb/define-properties -[npm-badge-png]: https://nodei.co/npm/define-properties.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/define-properties.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/define-properties.svg -[downloads-url]: http://npm-stat.com/charts.html?package=define-properties - diff --git a/node_modules/define-properties/index.js b/node_modules/define-properties/index.js deleted file mode 100644 index cb3ae1c..0000000 --- a/node_modules/define-properties/index.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var keys = require('object-keys'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -var toStr = Object.prototype.toString; -var concat = Array.prototype.concat; -var origDefineProperty = Object.defineProperty; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var arePropertyDescriptorsSupported = function () { - var obj = {}; - try { - origDefineProperty(obj, 'x', { enumerable: false, value: obj }); - // eslint-disable-next-line no-unused-vars, no-restricted-syntax - for (var _ in obj) { // jscs:ignore disallowUnusedVariables - return false; - } - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); - -var defineProperty = function (object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; - } - if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = concat.call(props, Object.getOwnPropertySymbols(map)); - } - for (var i = 0; i < props.length; i += 1) { - defineProperty(object, props[i], map[props[i]], predicates[props[i]]); - } -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; diff --git a/node_modules/define-properties/package.json b/node_modules/define-properties/package.json deleted file mode 100644 index b520f7b..0000000 --- a/node_modules/define-properties/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/define-properties/test/index.js b/node_modules/define-properties/test/index.js deleted file mode 100644 index 3387f6b..0000000 --- a/node_modules/define-properties/test/index.js +++ /dev/null @@ -1,125 +0,0 @@ -'use strict'; - -var define = require('../'); -var test = require('tape'); -var keys = require('object-keys'); - -var arePropertyDescriptorsSupported = function () { - var obj = { a: 1 }; - try { - Object.defineProperty(obj, 'x', { value: obj }); - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var descriptorsSupported = !!Object.defineProperty && arePropertyDescriptorsSupported(); - -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -test('defineProperties', function (dt) { - dt.test('with descriptor support', { skip: !descriptorsSupported }, function (t) { - var getDescriptor = function (value) { - return { - configurable: true, - enumerable: false, - value: value, - writable: true - }; - }; - - var obj = { - a: 1, - b: 2, - c: 3 - }; - t.deepEqual(keys(obj), ['a', 'b', 'c'], 'all literal-set keys start enumerable'); - define(obj, { - b: 3, - c: 4, - d: 5 - }); - t.deepEqual(obj, { - a: 1, - b: 2, - c: 3 - }, 'existing properties were not overridden'); - t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'd'), getDescriptor(5), 'new property "d" was added and is not enumerable'); - t.deepEqual(['a', 'b', 'c'], keys(obj), 'new keys are not enumerable'); - - define(obj, { - a: 2, - b: 3, - c: 4 - }, { - a: function () { return true; }, - b: function () { return false; } - }); - t.deepEqual(obj, { - b: 2, - c: 3 - }, 'properties only overriden when predicate exists and returns true'); - t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'd'), getDescriptor(5), 'existing property "d" remained and is not enumerable'); - t.deepEqual(Object.getOwnPropertyDescriptor(obj, 'a'), getDescriptor(2), 'existing property "a" was overridden and is not enumerable'); - t.deepEqual(['b', 'c'], keys(obj), 'overridden keys are not enumerable'); - - t.end(); - }); - - dt.test('without descriptor support', { skip: descriptorsSupported }, function (t) { - var obj = { - a: 1, - b: 2, - c: 3 - }; - define(obj, { - b: 3, - c: 4, - d: 5 - }); - t.deepEqual(obj, { - a: 1, - b: 2, - c: 3, - d: 5 - }, 'existing properties were not overridden, new properties were added'); - - define(obj, { - a: 2, - b: 3, - c: 4 - }, { - a: function () { return true; }, - b: function () { return false; } - }); - t.deepEqual(obj, { - a: 2, - b: 2, - c: 3, - d: 5 - }, 'properties only overriden when predicate exists and returns true'); - - t.end(); - }); - - dt.end(); -}); - -test('symbols', { skip: !hasSymbols }, function (t) { - var sym = Symbol('foo'); - var obj = {}; - var aValue = {}; - var bValue = {}; - var properties = { a: aValue }; - properties[sym] = bValue; - - define(obj, properties); - - t.deepEqual(Object.keys(obj), [], 'object has no enumerable keys'); - t.deepEqual(Object.getOwnPropertyNames(obj), ['a'], 'object has non-enumerable "a" key'); - t.deepEqual(Object.getOwnPropertySymbols(obj), [sym], 'object has non-enumerable symbol key'); - t.equal(obj.a, aValue, 'string keyed value is defined'); - t.equal(obj[sym], bValue, 'symbol keyed value is defined'); - - t.end(); -}); diff --git a/node_modules/defined/.eslintrc b/node_modules/defined/.eslintrc new file mode 100644 index 0000000..9ea8c56 --- /dev/null +++ b/node_modules/defined/.eslintrc @@ -0,0 +1,19 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "consistent-return": 1, + "sort-keys": 0, + }, + + "overrides": [ + { + "files": "example/**", + "rules": { + "no-console": 0, + }, + }, + ], +} diff --git a/node_modules/defined/.github/FUNDING.yml b/node_modules/defined/.github/FUNDING.yml new file mode 100644 index 0000000..c950925 --- /dev/null +++ b/node_modules/defined/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/defined +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/defined/.travis.yml b/node_modules/defined/.travis.yml deleted file mode 100644 index 895dbd3..0000000 --- a/node_modules/defined/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 diff --git a/node_modules/defined/CHANGELOG.md b/node_modules/defined/CHANGELOG.md new file mode 100644 index 0000000..d51f05a --- /dev/null +++ b/node_modules/defined/CHANGELOG.md @@ -0,0 +1,46 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/defined/compare/v1.0.0...v1.0.1) - 2022-10-12 + +### Commits + +- [eslint] fix indentation [`84801c0`](https://github.com/ljharb/defined/commit/84801c054280c86c433022be64feddf38ac426aa) +- [readme] rename, add badges [`7ccb011`](https://github.com/ljharb/defined/commit/7ccb011e69adda93a923408819730848ed9328cc) +- [actions] add reusable workflows [`03917f0`](https://github.com/ljharb/defined/commit/03917f0a2a1123f71bd6a1e2d48802051614bda4) +- [Dev Deps] update `tape` [`ac57011`](https://github.com/ljharb/defined/commit/ac57011cb753bf1f3937569b16f76a22ea6e9230) +- [eslint] add eslint [`9bf7583`](https://github.com/ljharb/defined/commit/9bf7583959cb02ed2feac6d3781965921d2220f8) +- [meta] add `auto-changelog` [`ec13b5f`](https://github.com/ljharb/defined/commit/ec13b5f04eb2273e6708bb8ac00e29b109880b07) +- [meta] use `npmignore` to autogenerate an npmignore file [`549e1ff`](https://github.com/ljharb/defined/commit/549e1ff99822f86ec6394dcb4540a4ee596e7433) +- Only apps should have lockfiles [`11dfedc`](https://github.com/ljharb/defined/commit/11dfedcd1cf1471fac56763064471f0093aa841f) +- [meta] add `safe-publish-latest` [`efadc76`](https://github.com/ljharb/defined/commit/efadc76397fcfb4435934dab7c8a744bc831c38f) +- [meta] update URLs [`aa9c486`](https://github.com/ljharb/defined/commit/aa9c48684a74611afaa50ae4429832cd39616812) +- [Tests] add `aud` in `posttest` [`a0cf2fb`](https://github.com/ljharb/defined/commit/a0cf2fb66a61870e0657c4f41ba0893abfef77a1) +- [meta] create FUNDING.yml; add `funding` in package.json [`b05fc5e`](https://github.com/ljharb/defined/commit/b05fc5e478baeb12822978e38232c8b8daf60c29) + +## [v1.0.0](https://github.com/ljharb/defined/compare/v0.0.0...v1.0.0) - 2015-03-30 + +### Commits + +- using testling-ci [`9f11918`](https://github.com/ljharb/defined/commit/9f11918b7dffb639fc960da7c8a5914d7df67e80) +- Bump to 1.0.0 + newer tape [`3a46c81`](https://github.com/ljharb/defined/commit/3a46c81d39b5f94c0c17c47638939af2528520f3) +- another test [`5c825a7`](https://github.com/ljharb/defined/commit/5c825a710662cab0b8abb37132cae19d0dcf00cb) +- using travis [`4dabaf5`](https://github.com/ljharb/defined/commit/4dabaf53092665b36961a0b82a00d818051d69db) +- use tape 0.2.2 [`1337250`](https://github.com/ljharb/defined/commit/1337250d7f0f7f63ebc864ad509ce1247978b451) +- bump [`07dbbbf`](https://github.com/ljharb/defined/commit/07dbbbfa155c91e9ab09da07af797738340c7338) +- bump [`1a6fde3`](https://github.com/ljharb/defined/commit/1a6fde32136c51b4b8d8664d2b6072d241e5b4ae) + +## v0.0.0 - 2012-11-25 + +### Commits + +- docs, example, and code ripped from the tape module [`6bec2cc`](https://github.com/ljharb/defined/commit/6bec2cc9c82f19c2960f344b5141154d6eaa7380) +- package.json whatevs [`ac951cd`](https://github.com/ljharb/defined/commit/ac951cd1dd31b7944fe3b539f091766bfb178e00) +- passing test [`d6e0c87`](https://github.com/ljharb/defined/commit/d6e0c87982c76f4889541d8ed57a463c259fec2c) +- oh right tape [`e3f9596`](https://github.com/ljharb/defined/commit/e3f9596dcc4c5e2a2657fda5f5cad2b9957d705f) +- note about perl 5.10 [`6eba8e6`](https://github.com/ljharb/defined/commit/6eba8e6a2927a5d8b748d422ad7e64b977ab4f94) +- -bin [`fbf0d20`](https://github.com/ljharb/defined/commit/fbf0d20d9cec86266ed06e8fe4f5b9927917a3c5) diff --git a/node_modules/defined/README.md b/node_modules/defined/README.md new file mode 100644 index 0000000..fbea8f0 --- /dev/null +++ b/node_modules/defined/README.md @@ -0,0 +1,72 @@ +# defined [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +return the first argument that is `!== undefined` + +Most of the time when I chain together `||`s, I actually just want the first +item that is not `undefined`, not the first non-falsy item. + +This module is like the defined-or (`//`) operator in perl 5.10+. + +# example + +``` js +var defined = require('defined'); +var opts = { y : false, w : 4 }; +var x = defined(opts.x, opts.y, opts.w, 100); +console.log(x); +``` + +``` +$ node example/defined.js +false +``` + +The return value is `false` because `false` is the first item that is +`!== undefined`. + +# methods + +``` js +var defined = require('defined') +``` + +## var x = defined(a, b, c...) + +Return the first item in the argument list `a, b, c...` that is `!== undefined`. + +If all the items are `=== undefined`, return undefined. + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install defined +``` + +# license + +MIT + +[package-url]: https://npmjs.org/package/defined +[npm-version-svg]: https://versionbadg.es/inspect-js/defined.svg +[deps-svg]: https://david-dm.org/inspect-js/defined.svg +[deps-url]: https://david-dm.org/inspect-js/defined +[dev-deps-svg]: https://david-dm.org/inspect-js/defined/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/defined#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/defined.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/defined.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/defined.svg +[downloads-url]: https://npm-stat.com/charts.html?package=defined +[codecov-image]: https://codecov.io/gh/inspect-js/defined/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/defined/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/defined +[actions-url]: https://github.com/inspect-js/defined/actions diff --git a/node_modules/defined/example/defined.js b/node_modules/defined/example/defined.js index 7b5d982..dd102f0 100644 --- a/node_modules/defined/example/defined.js +++ b/node_modules/defined/example/defined.js @@ -1,4 +1,6 @@ +'use strict'; + var defined = require('../'); -var opts = { y : false, w : 4 }; +var opts = { y: false, w: 4 }; var x = defined(opts.x, opts.y, opts.w, 8); console.log(x); diff --git a/node_modules/defined/index.js b/node_modules/defined/index.js index f8a2219..96b7575 100644 --- a/node_modules/defined/index.js +++ b/node_modules/defined/index.js @@ -1,5 +1,9 @@ -module.exports = function () { - for (var i = 0; i < arguments.length; i++) { - if (arguments[i] !== undefined) return arguments[i]; - } +'use strict'; + +module.exports = function defined() { + for (var i = 0; i < arguments.length; i++) { + if (typeof arguments[i] !== 'undefined') { + return arguments[i]; + } + } }; diff --git a/node_modules/defined/package.json b/node_modules/defined/package.json index 7f69976..cf0a52f 100644 --- a/node_modules/defined/package.json +++ b/node_modules/defined/package.json @@ -1,46 +1,93 @@ { - "name" : "defined", - "version" : "1.0.0", - "description" : "return the first argument that is `!== undefined`", - "main" : "index.js", - "directories" : { - "example" : "example", - "test" : "test" - }, - "dependencies" : {}, - "devDependencies" : { - "tape" : "~3.5.0" - }, - "scripts" : { - "test" : "tape test/*.js" - }, - "testling" : { - "files" : "test/*.js", - "browsers" : { - "ie" : [ 6, 7, 8, 9 ], - "ff" : [ 3.5, 10, 15.0 ], - "chrome" : [ 10, 22 ], - "safari" : [ 5.1 ], - "opera" : [ 12 ] - } - }, - "repository" : { - "type" : "git", - "url" : "git://github.com/substack/defined.git" - }, - "homepage" : "https://github.com/substack/defined", - "keywords" : [ - "undefined", - "short-circuit", - "||", - "or", - "//", - "defined-or" - ], - "author" : { - "name" : "James Halliday", - "email" : "mail@substack.net", - "url" : "http://substack.net" - }, - "license" : "MIT" + "name": "defined", + "version": "1.0.1", + "description": "return the first argument that is `!== undefined`", + "main": "index.js", + "directories": { + "example": "example", + "test": "test" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.1", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.1" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "lint": "eslint --ext=js,mjs .", + "pretest": "npm run lint", + "tests-only": "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)\")\"" + }, + "testling": { + "files": "test/*.js", + "browsers": { + "ie": [ + 6, + 7, + 8, + 9 + ], + "ff": [ + 3.5, + 10, + 15 + ], + "chrome": [ + 10, + 22 + ], + "safari": [ + 5.1 + ], + "opera": [ + 12 + ] + } + }, + "repository": { + "type": "git", + "url": "git://github.com/inspect-js/defined.git" + }, + "homepage": "https://github.com/inspect-js/defined", + "keywords": [ + "undefined", + "short-circuit", + "||", + "or", + "//", + "defined-or" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } } diff --git a/node_modules/defined/readme.markdown b/node_modules/defined/readme.markdown deleted file mode 100644 index 9616195..0000000 --- a/node_modules/defined/readme.markdown +++ /dev/null @@ -1,53 +0,0 @@ -# defined - -return the first argument that is `!== undefined` - -[![browser support](http://ci.testling.com/substack/defined.png)](http://ci.testling.com/substack/defined) - -[![build status](https://secure.travis-ci.org/substack/defined.png)](http://travis-ci.org/substack/defined) - -Most of the time when I chain together `||`s, I actually just want the first -item that is not `undefined`, not the first non-falsy item. - -This module is like the defined-or (`//`) operator in perl 5.10+. - -# example - -``` js -var defined = require('defined'); -var opts = { y : false, w : 4 }; -var x = defined(opts.x, opts.y, opts.w, 100); -console.log(x); -``` - -``` -$ node example/defined.js -false -``` - -The return value is `false` because `false` is the first item that is -`!== undefined`. - -# methods - -``` js -var defined = require('defined') -``` - -## var x = defined(a, b, c...) - -Return the first item in the argument list `a, b, c...` that is `!== undefined`. - -If all the items are `=== undefined`, return undefined. - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install defined -``` - -# license - -MIT diff --git a/node_modules/defined/test/def.js b/node_modules/defined/test/def.js index 48da517..33c7670 100644 --- a/node_modules/defined/test/def.js +++ b/node_modules/defined/test/def.js @@ -1,22 +1,24 @@ +'use strict'; + var defined = require('../'); var test = require('tape'); test('defined-or', function (t) { - var u = undefined; - - t.equal(defined(), u, 'empty arguments'); - t.equal(defined(u), u, '1 undefined'); - t.equal(defined(u, u), u, '2 undefined'); - t.equal(defined(u, u, u, u), u, '4 undefineds'); - - t.equal(defined(undefined, false, true), false, 'false[0]'); - t.equal(defined(false, true), false, 'false[1]'); - t.equal(defined(undefined, 0, true), 0, 'zero[0]'); - t.equal(defined(0, true), 0, 'zero[1]'); - - t.equal(defined(3, undefined, 4), 3, 'first arg'); - t.equal(defined(undefined, 3, 4), 3, 'second arg'); - t.equal(defined(undefined, undefined, 3), 3, 'third arg'); - - t.end(); + var u = void undefined; + + t.equal(defined(), u, 'empty arguments'); + t.equal(defined(u), u, '1 undefined'); + t.equal(defined(u, u), u, '2 undefined'); + t.equal(defined(u, u, u, u), u, '4 undefineds'); + + t.equal(defined(undefined, false, true), false, 'false[0]'); + t.equal(defined(false, true), false, 'false[1]'); + t.equal(defined(undefined, 0, true), 0, 'zero[0]'); + t.equal(defined(0, true), 0, 'zero[1]'); + + t.equal(defined(3, undefined, 4), 3, 'first arg'); + t.equal(defined(undefined, 3, 4), 3, 'second arg'); + t.equal(defined(undefined, undefined, 3), 3, 'third arg'); + + t.end(); }); diff --git a/node_modules/defined/test/falsy.js b/node_modules/defined/test/falsy.js index 6b7d623..e2a778d 100644 --- a/node_modules/defined/test/falsy.js +++ b/node_modules/defined/test/falsy.js @@ -1,9 +1,11 @@ +'use strict'; + var test = require('tape'); var defined = require('../'); test('falsy', function (t) { - t.plan(1); - var opts = { y : false, w : 4 }; - var x = defined(opts.x, opts.y, opts.w, 8); - t.equal(x, false); + t.plan(1); + var opts = { y: false, w: 4 }; + var x = defined(opts.x, opts.y, opts.w, 8); + t.equal(x, false); }); diff --git a/node_modules/des.js/lib/des/cipher.js b/node_modules/des.js/lib/des/cipher.js index d0090b4..435d62e 100644 --- a/node_modules/des.js/lib/des/cipher.js +++ b/node_modules/des.js/lib/des/cipher.js @@ -11,6 +11,7 @@ function Cipher(options) { this.buffer = new Array(this.blockSize); this.bufferOff = 0; + this.padding = options.padding !== false } module.exports = Cipher; diff --git a/node_modules/des.js/lib/des/des.js b/node_modules/des.js/lib/des/des.js index 7e4c6f5..09df5a8 100644 --- a/node_modules/des.js/lib/des/des.js +++ b/node_modules/des.js/lib/des/des.js @@ -74,6 +74,10 @@ DES.prototype._update = function _update(inp, inOff, out, outOff) { }; DES.prototype._pad = function _pad(buffer, off) { + if (this.padding === false) { + return false; + } + var value = buffer.length - off; for (var i = off; i < buffer.length; i++) buffer[i] = value; @@ -82,6 +86,10 @@ DES.prototype._pad = function _pad(buffer, off) { }; DES.prototype._unpad = function _unpad(buffer) { + if (this.padding === false) { + return buffer; + } + var pad = buffer[buffer.length - 1]; for (var i = buffer.length - pad; i < buffer.length; i++) assert.equal(buffer[i], pad); diff --git a/node_modules/des.js/package.json b/node_modules/des.js/package.json index 79d422b..d397f1f 100644 --- a/node_modules/des.js/package.json +++ b/node_modules/des.js/package.json @@ -1,10 +1,10 @@ { "name": "des.js", - "version": "1.0.1", + "version": "1.1.0", "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" + "test": "NODE_OPTIONS=--openssl-legacy-provider mocha --reporter=spec test/*-test.js" }, "repository": { "type": "git", @@ -23,9 +23,8 @@ }, "homepage": "https://github.com/indutny/des.js#readme", "devDependencies": { - "jscs": "^3.0.7", "jshint": "^2.8.0", - "mocha": "^6.2.2" + "mocha": "^10.2.0" }, "dependencies": { "inherits": "^2.0.1", diff --git a/node_modules/des.js/test/cbc-test.js b/node_modules/des.js/test/cbc-test.js index d07881c..d64a230 100644 --- a/node_modules/des.js/test/cbc-test.js +++ b/node_modules/des.js/test/cbc-test.js @@ -44,16 +44,16 @@ describe('DES-CBC', function() { vectors.forEach(function(vec, i) { it('should encrypt vector ' + i, function() { - var key = new Buffer(vec.key, 'hex'); - var iv = new Buffer(vec.iv, 'hex'); - var input = new Buffer(vec.input, 'hex'); + var key = Buffer.from(vec.key, 'hex'); + var iv = Buffer.from(vec.iv, 'hex'); + var input = Buffer.from(vec.input, 'hex'); var enc = CBC.create({ type: 'encrypt', key: key, iv: iv }); - var out = new Buffer(enc.update(input).concat(enc.final())); + var out = Buffer.from(enc.update(input).concat(enc.final())); var cipher = crypto.createCipheriv('des-cbc', key, iv); var expected = Buffer.concat([ cipher.update(input), cipher.final() ]); @@ -65,7 +65,7 @@ describe('DES-CBC', function() { key: key, iv: iv }); - assert.deepEqual(new Buffer(dec.update(out).concat(dec.final())), + assert.deepEqual(Buffer.from(dec.update(out).concat(dec.final())), input); }); }); diff --git a/node_modules/des.js/test/des-test.js b/node_modules/des.js/test/des-test.js index b6a5ee8..3c33686 100644 --- a/node_modules/des.js/test/des-test.js +++ b/node_modules/des.js/test/des-test.js @@ -84,8 +84,8 @@ describe('DES', function() { vectors.forEach(function(vec, i) { it('should encrypt vector ' + i, function() { - var key = new Buffer(vec.key, 'hex'); - var input = new Buffer(vec.input, 'hex'); + var key = Buffer.from(vec.key, 'hex'); + var input = Buffer.from(vec.input, 'hex'); var enc = des.DES.create({ type: 'encrypt', @@ -95,23 +95,23 @@ describe('DES', function() { type: 'decrypt', key: key }); - var out = new Buffer(enc.update(input).concat(enc.final())); + var out = Buffer.from(enc.update(input).concat(enc.final())); - var cipher = crypto.createCipheriv('des-ecb', key, new Buffer(0)); + var cipher = crypto.createCipheriv('des-ecb', key, Buffer.alloc(0)); var expected = Buffer.concat([ cipher.update(input), cipher.final() ]); assert.deepEqual(out, expected); - assert.deepEqual(new Buffer(dec.update(out).concat(dec.final())), + assert.deepEqual(Buffer.from(dec.update(out).concat(dec.final())), input); }); }); it('should buffer during encryption/decryption', function() { - var key = new Buffer('0102030405060708', 'hex'); - var chunk = new Buffer('01020304050607', 'hex'); + var key = Buffer.from('0102030405060708', 'hex'); + var chunk = Buffer.from('01020304050607', 'hex'); var count = 257; - var expected = new Buffer( + var expected = Buffer.from( new Array(count + 1).join('01020304050607'), 'hex'); var enc = des.DES.create({ @@ -132,7 +132,7 @@ describe('DES', function() { out = out.concat(dec.update(cipher.slice(i * 7, (i + 1) * 7))); out = out.concat(dec.final(cipher.slice(i * 7))); - out = new Buffer(out); + out = Buffer.from(out); assert.deepEqual(out, expected); }); }); diff --git a/node_modules/des.js/test/ede-test.js b/node_modules/des.js/test/ede-test.js index 116a76a..8654d9a 100644 --- a/node_modules/des.js/test/ede-test.js +++ b/node_modules/des.js/test/ede-test.js @@ -42,18 +42,18 @@ describe('DES-EDE-CBC', function() { } ]; - vectors.forEach(function(vec, i) { + vectors.forEach(function(vec, i) { it('should encrypt vector ' + i, function() { - var key = new Buffer(vec.key, 'hex'); - var iv = new Buffer(vec.iv, 'hex'); - var input = new Buffer(vec.input, 'hex'); + var key = Buffer.from(vec.key, 'hex'); + var iv = Buffer.from(vec.iv, 'hex'); + var input = Buffer.from(vec.input, 'hex'); var enc = CBC.create({ type: 'encrypt', key: key, iv: iv }); - var out = new Buffer(enc.update(input).concat(enc.final())); + var out = Buffer.from(enc.update(input).concat(enc.final())); var cipher = crypto.createCipheriv('des-ede3-cbc', key, iv); var expected = Buffer.concat([ cipher.update(input), cipher.final() ]); @@ -65,9 +65,42 @@ describe('DES-EDE-CBC', function() { key: key, iv: iv }); - assert.deepEqual(new Buffer(dec.update(out).concat(dec.final())), + assert.deepEqual(Buffer.from(dec.update(out).concat(dec.final())), input); }); }); + vectors.forEach(function(vec, i) { + it('should decrypt without unpadding vector ' + i, function() { + var key = Buffer.from(vec.key, 'hex'); + var iv = Buffer.from(vec.iv, 'hex'); + var input = Buffer.from(vec.input, 'hex'); + + var enc = CBC.create({ + type: 'encrypt', + key: key, + iv: iv, + }); + + var out = Buffer.from(enc.update(input).concat(enc.final())); + + var cipher = crypto.createCipheriv('des-ede3-cbc', key, iv); + var expected = Buffer.concat([ cipher.update(input), cipher.final() ]); + + assert.deepEqual(out, expected); + + var dec = CBC.create({ + type: 'decrypt', + key: key, + iv: iv, + padding: false + }); + + var decipher = crypto.createDecipheriv('des-ede3-cbc', key, iv); + decipher.setAutoPadding(false); + expected = Buffer.concat([ decipher.update(out), decipher.final() ]); + assert.deepEqual(Buffer.from(dec.update(out).concat(dec.final())), + Buffer.from(expected)); + }); + }); }); }); diff --git a/node_modules/detective/CHANGELOG.md b/node_modules/detective/CHANGELOG.md index 69e65a8..4859bfb 100644 --- a/node_modules/detective/CHANGELOG.md +++ b/node_modules/detective/CHANGELOG.md @@ -2,6 +2,12 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/). +## x.y.z - unreleased +* update acorn-node to 1.8.2 (make use of acorn 7.x) + +## 5.2.1 - 2022-05-27 +* Update to "minimist": "^1.2.6" from "^1.1.1" to quiet down dependabot security theater. + ## 5.2.0 - 2019-01-28 * Use acorn-node's option defaults, adds support for new ES features (https://github.com/browserify/detective/pull/81) diff --git a/node_modules/detective/package.json b/node_modules/detective/package.json index 3cbc348..714b907 100644 --- a/node_modules/detective/package.json +++ b/node_modules/detective/package.json @@ -1,7 +1,7 @@ { "name": "detective", "description": "find all require() calls by walking the AST", - "version": "5.2.0", + "version": "5.2.1", "author": { "name": "James Halliday", "email": "mail@substack.net", @@ -9,9 +9,9 @@ }, "bin": "bin/detective.js", "dependencies": { - "acorn-node": "^1.6.1", + "acorn-node": "^1.8.2", "defined": "^1.0.0", - "minimist": "^1.1.1" + "minimist": "^1.2.6" }, "devDependencies": { "tap": "^10.7.3" diff --git a/node_modules/es-abstract/.editorconfig b/node_modules/es-abstract/.editorconfig deleted file mode 100644 index eaa2141..0000000 --- a/node_modules/es-abstract/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = tab; -insert_final_newline = true; -quote_type = auto; -space_after_anonymous_functions = true; -space_after_control_statements = true; -spaces_around_operators = true; -trim_trailing_whitespace = true; -spaces_in_brackets = false; -end_of_line = lf; - diff --git a/node_modules/es-abstract/.eslintrc b/node_modules/es-abstract/.eslintrc deleted file mode 100644 index 1a0d2d2..0000000 --- a/node_modules/es-abstract/.eslintrc +++ /dev/null @@ -1,65 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "env": { - "es6": true, - }, - - "rules": { - "array-bracket-newline": 0, - "array-element-newline": 0, - "complexity": 0, - "eqeqeq": [2, "allow-null"], - "func-name-matching": 0, - "id-length": [2, { "min": 1, "max": 40 }], - "max-params": [2, 4], - "max-statements-per-line": [2, { "max": 2 }], - "multiline-comment-style": 0, - "no-magic-numbers": 0, - "new-cap": 0, - "no-extra-parens": 1, - "operator-linebreak": [2, "before"], - "sort-keys": 0, - }, - - "overrides": [ - { - "files": "GetIntrinsic.js", - "rules": { - "max-statements": 0, - } - }, - { - "files": "operations/*", - "rules": { - "max-lines": 0, - }, - }, - { - "files": [ - "operations/deltas.js", - "operations/getOps.js", - "operations/spackle.js", - "operations/years.js", - ], - "extends": "@ljharb/eslint-config/node/latest", - "rules": { - "func-style": 0, - "max-lines-per-function": 0, - "max-nested-callbacks": 0, - "no-throw-literal": 0, - }, - }, - { - "files": "test/**", - "extends": "@ljharb/eslint-config/tests", - "rules": { - "max-lines-per-function": 0, - "no-implicit-coercion": 0, - "no-invalid-this": 1, - }, - }, - ], -} diff --git a/node_modules/es-abstract/.gitattributes b/node_modules/es-abstract/.gitattributes deleted file mode 100644 index cbdb52f..0000000 --- a/node_modules/es-abstract/.gitattributes +++ /dev/null @@ -1,625 +0,0 @@ -2015/AbstractRelationalComparison.js spackled linguist-generated=true -2015/DateFromTime.js spackled linguist-generated=true -2015/Day.js spackled linguist-generated=true -2015/DayFromYear.js spackled linguist-generated=true -2015/DayWithinYear.js spackled linguist-generated=true -2015/DaysInYear.js spackled linguist-generated=true -2015/HourFromTime.js spackled linguist-generated=true -2015/InLeapYear.js spackled linguist-generated=true -2015/IsCallable.js spackled linguist-generated=true -2015/IsPropertyDescriptor.js spackled linguist-generated=true -2015/MakeDate.js spackled linguist-generated=true -2015/MakeDay.js spackled linguist-generated=true -2015/MakeTime.js spackled linguist-generated=true -2015/MinFromTime.js spackled linguist-generated=true -2015/MonthFromTime.js spackled linguist-generated=true -2015/SameValue.js spackled linguist-generated=true -2015/SecFromTime.js spackled linguist-generated=true -2015/StrictEqualityComparison.js spackled linguist-generated=true -2015/TimeClip.js spackled linguist-generated=true -2015/TimeFromYear.js spackled linguist-generated=true -2015/TimeWithinDay.js spackled linguist-generated=true -2015/ToBoolean.js spackled linguist-generated=true -2015/ToInt32.js spackled linguist-generated=true -2015/ToPropertyDescriptor.js spackled linguist-generated=true -2015/ToUint16.js spackled linguist-generated=true -2015/ToUint32.js spackled linguist-generated=true -2015/WeekDay.js spackled linguist-generated=true -2015/YearFromTime.js spackled linguist-generated=true -2015/abs.js spackled linguist-generated=true -2015/floor.js spackled linguist-generated=true -2015/modulo.js spackled linguist-generated=true -2015/msFromTime.js spackled linguist-generated=true -2016/AbstractEqualityComparison.js spackled linguist-generated=true -2016/AbstractRelationalComparison.js spackled linguist-generated=true -2016/AdvanceStringIndex.js spackled linguist-generated=true -2016/ArrayCreate.js spackled linguist-generated=true -2016/ArraySetLength.js spackled linguist-generated=true -2016/ArraySpeciesCreate.js spackled linguist-generated=true -2016/Call.js spackled linguist-generated=true -2016/CanonicalNumericIndexString.js spackled linguist-generated=true -2016/CompletePropertyDescriptor.js spackled linguist-generated=true -2016/CreateDataProperty.js spackled linguist-generated=true -2016/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2016/CreateHTML.js spackled linguist-generated=true -2016/CreateIterResultObject.js spackled linguist-generated=true -2016/CreateListFromArrayLike.js spackled linguist-generated=true -2016/CreateMethodProperty.js spackled linguist-generated=true -2016/DateFromTime.js spackled linguist-generated=true -2016/Day.js spackled linguist-generated=true -2016/DayFromYear.js spackled linguist-generated=true -2016/DayWithinYear.js spackled linguist-generated=true -2016/DaysInYear.js spackled linguist-generated=true -2016/DefinePropertyOrThrow.js spackled linguist-generated=true -2016/DeletePropertyOrThrow.js spackled linguist-generated=true -2016/EnumerableOwnNames.js spackled linguist-generated=true -2016/FromPropertyDescriptor.js spackled linguist-generated=true -2016/Get.js spackled linguist-generated=true -2016/GetIterator.js spackled linguist-generated=true -2016/GetMethod.js spackled linguist-generated=true -2016/GetOwnPropertyKeys.js spackled linguist-generated=true -2016/GetPrototypeFromConstructor.js spackled linguist-generated=true -2016/GetSubstitution.js spackled linguist-generated=true -2016/GetV.js spackled linguist-generated=true -2016/HasOwnProperty.js spackled linguist-generated=true -2016/HasProperty.js spackled linguist-generated=true -2016/HourFromTime.js spackled linguist-generated=true -2016/InLeapYear.js spackled linguist-generated=true -2016/InstanceofOperator.js spackled linguist-generated=true -2016/Invoke.js spackled linguist-generated=true -2016/IsAccessorDescriptor.js spackled linguist-generated=true -2016/IsArray.js spackled linguist-generated=true -2016/IsCallable.js spackled linguist-generated=true -2016/IsConcatSpreadable.js spackled linguist-generated=true -2016/IsConstructor.js spackled linguist-generated=true -2016/IsDataDescriptor.js spackled linguist-generated=true -2016/IsExtensible.js spackled linguist-generated=true -2016/IsGenericDescriptor.js spackled linguist-generated=true -2016/IsInteger.js spackled linguist-generated=true -2016/IsPromise.js spackled linguist-generated=true -2016/IsPropertyDescriptor.js spackled linguist-generated=true -2016/IsPropertyKey.js spackled linguist-generated=true -2016/IsRegExp.js spackled linguist-generated=true -2016/IteratorClose.js spackled linguist-generated=true -2016/IteratorComplete.js spackled linguist-generated=true -2016/IteratorNext.js spackled linguist-generated=true -2016/IteratorStep.js spackled linguist-generated=true -2016/IteratorValue.js spackled linguist-generated=true -2016/MakeDate.js spackled linguist-generated=true -2016/MakeDay.js spackled linguist-generated=true -2016/MakeTime.js spackled linguist-generated=true -2016/MinFromTime.js spackled linguist-generated=true -2016/MonthFromTime.js spackled linguist-generated=true -2016/ObjectCreate.js spackled linguist-generated=true -2016/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2016/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2016/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2016/OrdinaryHasInstance.js spackled linguist-generated=true -2016/OrdinaryHasProperty.js spackled linguist-generated=true -2016/QuoteJSONString.js spackled linguist-generated=true -2016/RegExpCreate.js spackled linguist-generated=true -2016/RegExpExec.js spackled linguist-generated=true -2016/RequireObjectCoercible.js spackled linguist-generated=true -2016/SameValue.js spackled linguist-generated=true -2016/SameValueZero.js spackled linguist-generated=true -2016/SecFromTime.js spackled linguist-generated=true -2016/Set.js spackled linguist-generated=true -2016/SetFunctionName.js spackled linguist-generated=true -2016/SetIntegrityLevel.js spackled linguist-generated=true -2016/SpeciesConstructor.js spackled linguist-generated=true -2016/SplitMatch.js spackled linguist-generated=true -2016/StrictEqualityComparison.js spackled linguist-generated=true -2016/StringCreate.js spackled linguist-generated=true -2016/SymbolDescriptiveString.js spackled linguist-generated=true -2016/TestIntegrityLevel.js spackled linguist-generated=true -2016/TimeClip.js spackled linguist-generated=true -2016/TimeFromYear.js spackled linguist-generated=true -2016/TimeWithinDay.js spackled linguist-generated=true -2016/ToBoolean.js spackled linguist-generated=true -2016/ToDateString.js spackled linguist-generated=true -2016/ToInt16.js spackled linguist-generated=true -2016/ToInt32.js spackled linguist-generated=true -2016/ToInt8.js spackled linguist-generated=true -2016/ToInteger.js spackled linguist-generated=true -2016/ToLength.js spackled linguist-generated=true -2016/ToNumber.js spackled linguist-generated=true -2016/ToObject.js spackled linguist-generated=true -2016/ToPrimitive.js spackled linguist-generated=true -2016/ToPropertyDescriptor.js spackled linguist-generated=true -2016/ToPropertyKey.js spackled linguist-generated=true -2016/ToString.js spackled linguist-generated=true -2016/ToUint16.js spackled linguist-generated=true -2016/ToUint32.js spackled linguist-generated=true -2016/ToUint8.js spackled linguist-generated=true -2016/ToUint8Clamp.js spackled linguist-generated=true -2016/Type.js spackled linguist-generated=true -2016/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2016/WeekDay.js spackled linguist-generated=true -2016/YearFromTime.js spackled linguist-generated=true -2016/abs.js spackled linguist-generated=true -2016/floor.js spackled linguist-generated=true -2016/modulo.js spackled linguist-generated=true -2016/msFromTime.js spackled linguist-generated=true -2016/thisBooleanValue.js spackled linguist-generated=true -2016/thisNumberValue.js spackled linguist-generated=true -2016/thisStringValue.js spackled linguist-generated=true -2016/thisTimeValue.js spackled linguist-generated=true -2017/AbstractEqualityComparison.js spackled linguist-generated=true -2017/AbstractRelationalComparison.js spackled linguist-generated=true -2017/AdvanceStringIndex.js spackled linguist-generated=true -2017/ArrayCreate.js spackled linguist-generated=true -2017/ArraySetLength.js spackled linguist-generated=true -2017/ArraySpeciesCreate.js spackled linguist-generated=true -2017/Call.js spackled linguist-generated=true -2017/CanonicalNumericIndexString.js spackled linguist-generated=true -2017/CompletePropertyDescriptor.js spackled linguist-generated=true -2017/CreateDataProperty.js spackled linguist-generated=true -2017/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2017/CreateHTML.js spackled linguist-generated=true -2017/CreateIterResultObject.js spackled linguist-generated=true -2017/CreateListFromArrayLike.js spackled linguist-generated=true -2017/CreateMethodProperty.js spackled linguist-generated=true -2017/DateFromTime.js spackled linguist-generated=true -2017/Day.js spackled linguist-generated=true -2017/DayFromYear.js spackled linguist-generated=true -2017/DayWithinYear.js spackled linguist-generated=true -2017/DaysInYear.js spackled linguist-generated=true -2017/DefinePropertyOrThrow.js spackled linguist-generated=true -2017/DeletePropertyOrThrow.js spackled linguist-generated=true -2017/FromPropertyDescriptor.js spackled linguist-generated=true -2017/Get.js spackled linguist-generated=true -2017/GetIterator.js spackled linguist-generated=true -2017/GetMethod.js spackled linguist-generated=true -2017/GetOwnPropertyKeys.js spackled linguist-generated=true -2017/GetPrototypeFromConstructor.js spackled linguist-generated=true -2017/GetSubstitution.js spackled linguist-generated=true -2017/GetV.js spackled linguist-generated=true -2017/HasOwnProperty.js spackled linguist-generated=true -2017/HasProperty.js spackled linguist-generated=true -2017/HourFromTime.js spackled linguist-generated=true -2017/InLeapYear.js spackled linguist-generated=true -2017/InstanceofOperator.js spackled linguist-generated=true -2017/Invoke.js spackled linguist-generated=true -2017/IsAccessorDescriptor.js spackled linguist-generated=true -2017/IsArray.js spackled linguist-generated=true -2017/IsCallable.js spackled linguist-generated=true -2017/IsConcatSpreadable.js spackled linguist-generated=true -2017/IsConstructor.js spackled linguist-generated=true -2017/IsDataDescriptor.js spackled linguist-generated=true -2017/IsExtensible.js spackled linguist-generated=true -2017/IsGenericDescriptor.js spackled linguist-generated=true -2017/IsInteger.js spackled linguist-generated=true -2017/IsPromise.js spackled linguist-generated=true -2017/IsPropertyDescriptor.js spackled linguist-generated=true -2017/IsPropertyKey.js spackled linguist-generated=true -2017/IsRegExp.js spackled linguist-generated=true -2017/IteratorClose.js spackled linguist-generated=true -2017/IteratorComplete.js spackled linguist-generated=true -2017/IteratorNext.js spackled linguist-generated=true -2017/IteratorStep.js spackled linguist-generated=true -2017/IteratorValue.js spackled linguist-generated=true -2017/MakeDate.js spackled linguist-generated=true -2017/MakeDay.js spackled linguist-generated=true -2017/MakeTime.js spackled linguist-generated=true -2017/MinFromTime.js spackled linguist-generated=true -2017/MonthFromTime.js spackled linguist-generated=true -2017/ObjectCreate.js spackled linguist-generated=true -2017/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2017/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2017/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2017/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2017/OrdinaryHasInstance.js spackled linguist-generated=true -2017/OrdinaryHasProperty.js spackled linguist-generated=true -2017/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2017/QuoteJSONString.js spackled linguist-generated=true -2017/RegExpCreate.js spackled linguist-generated=true -2017/RegExpExec.js spackled linguist-generated=true -2017/RequireObjectCoercible.js spackled linguist-generated=true -2017/SameValue.js spackled linguist-generated=true -2017/SameValueNonNumber.js spackled linguist-generated=true -2017/SameValueZero.js spackled linguist-generated=true -2017/SecFromTime.js spackled linguist-generated=true -2017/Set.js spackled linguist-generated=true -2017/SetFunctionName.js spackled linguist-generated=true -2017/SetIntegrityLevel.js spackled linguist-generated=true -2017/SpeciesConstructor.js spackled linguist-generated=true -2017/SplitMatch.js spackled linguist-generated=true -2017/StrictEqualityComparison.js spackled linguist-generated=true -2017/StringCreate.js spackled linguist-generated=true -2017/SymbolDescriptiveString.js spackled linguist-generated=true -2017/TestIntegrityLevel.js spackled linguist-generated=true -2017/TimeClip.js spackled linguist-generated=true -2017/TimeFromYear.js spackled linguist-generated=true -2017/TimeWithinDay.js spackled linguist-generated=true -2017/ToBoolean.js spackled linguist-generated=true -2017/ToDateString.js spackled linguist-generated=true -2017/ToInt16.js spackled linguist-generated=true -2017/ToInt32.js spackled linguist-generated=true -2017/ToInt8.js spackled linguist-generated=true -2017/ToInteger.js spackled linguist-generated=true -2017/ToLength.js spackled linguist-generated=true -2017/ToNumber.js spackled linguist-generated=true -2017/ToObject.js spackled linguist-generated=true -2017/ToPrimitive.js spackled linguist-generated=true -2017/ToPropertyDescriptor.js spackled linguist-generated=true -2017/ToPropertyKey.js spackled linguist-generated=true -2017/ToString.js spackled linguist-generated=true -2017/ToUint16.js spackled linguist-generated=true -2017/ToUint32.js spackled linguist-generated=true -2017/ToUint8.js spackled linguist-generated=true -2017/ToUint8Clamp.js spackled linguist-generated=true -2017/Type.js spackled linguist-generated=true -2017/UTF16Decode.js spackled linguist-generated=true -2017/UTF16Encoding.js spackled linguist-generated=true -2017/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2017/WeekDay.js spackled linguist-generated=true -2017/YearFromTime.js spackled linguist-generated=true -2017/abs.js spackled linguist-generated=true -2017/floor.js spackled linguist-generated=true -2017/modulo.js spackled linguist-generated=true -2017/msFromTime.js spackled linguist-generated=true -2017/thisBooleanValue.js spackled linguist-generated=true -2017/thisNumberValue.js spackled linguist-generated=true -2017/thisStringValue.js spackled linguist-generated=true -2017/thisTimeValue.js spackled linguist-generated=true -2018/AbstractEqualityComparison.js spackled linguist-generated=true -2018/AbstractRelationalComparison.js spackled linguist-generated=true -2018/AdvanceStringIndex.js spackled linguist-generated=true -2018/ArrayCreate.js spackled linguist-generated=true -2018/ArraySetLength.js spackled linguist-generated=true -2018/ArraySpeciesCreate.js spackled linguist-generated=true -2018/Call.js spackled linguist-generated=true -2018/CanonicalNumericIndexString.js spackled linguist-generated=true -2018/CompletePropertyDescriptor.js spackled linguist-generated=true -2018/CreateDataProperty.js spackled linguist-generated=true -2018/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2018/CreateHTML.js spackled linguist-generated=true -2018/CreateIterResultObject.js spackled linguist-generated=true -2018/CreateListFromArrayLike.js spackled linguist-generated=true -2018/CreateMethodProperty.js spackled linguist-generated=true -2018/DateFromTime.js spackled linguist-generated=true -2018/Day.js spackled linguist-generated=true -2018/DayFromYear.js spackled linguist-generated=true -2018/DayWithinYear.js spackled linguist-generated=true -2018/DaysInYear.js spackled linguist-generated=true -2018/DefinePropertyOrThrow.js spackled linguist-generated=true -2018/DeletePropertyOrThrow.js spackled linguist-generated=true -2018/FromPropertyDescriptor.js spackled linguist-generated=true -2018/Get.js spackled linguist-generated=true -2018/GetIterator.js spackled linguist-generated=true -2018/GetMethod.js spackled linguist-generated=true -2018/GetOwnPropertyKeys.js spackled linguist-generated=true -2018/GetPrototypeFromConstructor.js spackled linguist-generated=true -2018/GetV.js spackled linguist-generated=true -2018/HasOwnProperty.js spackled linguist-generated=true -2018/HasProperty.js spackled linguist-generated=true -2018/HourFromTime.js spackled linguist-generated=true -2018/InLeapYear.js spackled linguist-generated=true -2018/InstanceofOperator.js spackled linguist-generated=true -2018/Invoke.js spackled linguist-generated=true -2018/IsAccessorDescriptor.js spackled linguist-generated=true -2018/IsArray.js spackled linguist-generated=true -2018/IsCallable.js spackled linguist-generated=true -2018/IsConcatSpreadable.js spackled linguist-generated=true -2018/IsConstructor.js spackled linguist-generated=true -2018/IsDataDescriptor.js spackled linguist-generated=true -2018/IsExtensible.js spackled linguist-generated=true -2018/IsGenericDescriptor.js spackled linguist-generated=true -2018/IsInteger.js spackled linguist-generated=true -2018/IsPromise.js spackled linguist-generated=true -2018/IsPropertyKey.js spackled linguist-generated=true -2018/IsRegExp.js spackled linguist-generated=true -2018/IterableToList.js spackled linguist-generated=true -2018/IteratorClose.js spackled linguist-generated=true -2018/IteratorComplete.js spackled linguist-generated=true -2018/IteratorNext.js spackled linguist-generated=true -2018/IteratorStep.js spackled linguist-generated=true -2018/IteratorValue.js spackled linguist-generated=true -2018/MakeDate.js spackled linguist-generated=true -2018/MakeDay.js spackled linguist-generated=true -2018/MakeTime.js spackled linguist-generated=true -2018/MinFromTime.js spackled linguist-generated=true -2018/MonthFromTime.js spackled linguist-generated=true -2018/ObjectCreate.js spackled linguist-generated=true -2018/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2018/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2018/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2018/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2018/OrdinaryHasInstance.js spackled linguist-generated=true -2018/OrdinaryHasProperty.js spackled linguist-generated=true -2018/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2018/RegExpCreate.js spackled linguist-generated=true -2018/RegExpExec.js spackled linguist-generated=true -2018/RequireObjectCoercible.js spackled linguist-generated=true -2018/SameValue.js spackled linguist-generated=true -2018/SameValueNonNumber.js spackled linguist-generated=true -2018/SameValueZero.js spackled linguist-generated=true -2018/SecFromTime.js spackled linguist-generated=true -2018/Set.js spackled linguist-generated=true -2018/SetFunctionName.js spackled linguist-generated=true -2018/SetIntegrityLevel.js spackled linguist-generated=true -2018/SpeciesConstructor.js spackled linguist-generated=true -2018/SplitMatch.js spackled linguist-generated=true -2018/StrictEqualityComparison.js spackled linguist-generated=true -2018/StringCreate.js spackled linguist-generated=true -2018/StringGetOwnProperty.js spackled linguist-generated=true -2018/SymbolDescriptiveString.js spackled linguist-generated=true -2018/TestIntegrityLevel.js spackled linguist-generated=true -2018/TimeClip.js spackled linguist-generated=true -2018/TimeFromYear.js spackled linguist-generated=true -2018/TimeWithinDay.js spackled linguist-generated=true -2018/ToBoolean.js spackled linguist-generated=true -2018/ToDateString.js spackled linguist-generated=true -2018/ToIndex.js spackled linguist-generated=true -2018/ToInt16.js spackled linguist-generated=true -2018/ToInt32.js spackled linguist-generated=true -2018/ToInt8.js spackled linguist-generated=true -2018/ToInteger.js spackled linguist-generated=true -2018/ToLength.js spackled linguist-generated=true -2018/ToNumber.js spackled linguist-generated=true -2018/ToObject.js spackled linguist-generated=true -2018/ToPrimitive.js spackled linguist-generated=true -2018/ToPropertyDescriptor.js spackled linguist-generated=true -2018/ToPropertyKey.js spackled linguist-generated=true -2018/ToString.js spackled linguist-generated=true -2018/ToUint16.js spackled linguist-generated=true -2018/ToUint32.js spackled linguist-generated=true -2018/ToUint8.js spackled linguist-generated=true -2018/ToUint8Clamp.js spackled linguist-generated=true -2018/Type.js spackled linguist-generated=true -2018/UTF16Decode.js spackled linguist-generated=true -2018/UTF16Encoding.js spackled linguist-generated=true -2018/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2018/WeekDay.js spackled linguist-generated=true -2018/YearFromTime.js spackled linguist-generated=true -2018/abs.js spackled linguist-generated=true -2018/floor.js spackled linguist-generated=true -2018/modulo.js spackled linguist-generated=true -2018/msFromTime.js spackled linguist-generated=true -2018/thisBooleanValue.js spackled linguist-generated=true -2018/thisNumberValue.js spackled linguist-generated=true -2018/thisStringValue.js spackled linguist-generated=true -2018/thisTimeValue.js spackled linguist-generated=true -2019/AbstractEqualityComparison.js spackled linguist-generated=true -2019/AbstractRelationalComparison.js spackled linguist-generated=true -2019/AdvanceStringIndex.js spackled linguist-generated=true -2019/ArrayCreate.js spackled linguist-generated=true -2019/ArraySetLength.js spackled linguist-generated=true -2019/ArraySpeciesCreate.js spackled linguist-generated=true -2019/Call.js spackled linguist-generated=true -2019/CanonicalNumericIndexString.js spackled linguist-generated=true -2019/CompletePropertyDescriptor.js spackled linguist-generated=true -2019/CopyDataProperties.js spackled linguist-generated=true -2019/CreateDataProperty.js spackled linguist-generated=true -2019/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2019/CreateHTML.js spackled linguist-generated=true -2019/CreateIterResultObject.js spackled linguist-generated=true -2019/CreateListFromArrayLike.js spackled linguist-generated=true -2019/CreateMethodProperty.js spackled linguist-generated=true -2019/DateFromTime.js spackled linguist-generated=true -2019/DateString.js spackled linguist-generated=true -2019/Day.js spackled linguist-generated=true -2019/DayFromYear.js spackled linguist-generated=true -2019/DayWithinYear.js spackled linguist-generated=true -2019/DaysInYear.js spackled linguist-generated=true -2019/DefinePropertyOrThrow.js spackled linguist-generated=true -2019/DeletePropertyOrThrow.js spackled linguist-generated=true -2019/EnumerableOwnPropertyNames.js spackled linguist-generated=true -2019/FromPropertyDescriptor.js spackled linguist-generated=true -2019/Get.js spackled linguist-generated=true -2019/GetIterator.js spackled linguist-generated=true -2019/GetMethod.js spackled linguist-generated=true -2019/GetOwnPropertyKeys.js spackled linguist-generated=true -2019/GetPrototypeFromConstructor.js spackled linguist-generated=true -2019/GetSubstitution.js spackled linguist-generated=true -2019/GetV.js spackled linguist-generated=true -2019/HasOwnProperty.js spackled linguist-generated=true -2019/HasProperty.js spackled linguist-generated=true -2019/HourFromTime.js spackled linguist-generated=true -2019/InLeapYear.js spackled linguist-generated=true -2019/InstanceofOperator.js spackled linguist-generated=true -2019/Invoke.js spackled linguist-generated=true -2019/IsAccessorDescriptor.js spackled linguist-generated=true -2019/IsArray.js spackled linguist-generated=true -2019/IsCallable.js spackled linguist-generated=true -2019/IsConcatSpreadable.js spackled linguist-generated=true -2019/IsConstructor.js spackled linguist-generated=true -2019/IsDataDescriptor.js spackled linguist-generated=true -2019/IsExtensible.js spackled linguist-generated=true -2019/IsGenericDescriptor.js spackled linguist-generated=true -2019/IsInteger.js spackled linguist-generated=true -2019/IsPromise.js spackled linguist-generated=true -2019/IsPropertyKey.js spackled linguist-generated=true -2019/IsRegExp.js spackled linguist-generated=true -2019/IsStringPrefix.js spackled linguist-generated=true -2019/IterableToList.js spackled linguist-generated=true -2019/IteratorClose.js spackled linguist-generated=true -2019/IteratorComplete.js spackled linguist-generated=true -2019/IteratorNext.js spackled linguist-generated=true -2019/IteratorStep.js spackled linguist-generated=true -2019/IteratorValue.js spackled linguist-generated=true -2019/MakeDate.js spackled linguist-generated=true -2019/MakeDay.js spackled linguist-generated=true -2019/MakeTime.js spackled linguist-generated=true -2019/MinFromTime.js spackled linguist-generated=true -2019/MonthFromTime.js spackled linguist-generated=true -2019/NumberToString.js spackled linguist-generated=true -2019/ObjectCreate.js spackled linguist-generated=true -2019/OrdinaryCreateFromConstructor.js spackled linguist-generated=true -2019/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2019/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2019/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2019/OrdinaryHasInstance.js spackled linguist-generated=true -2019/OrdinaryHasProperty.js spackled linguist-generated=true -2019/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2019/PromiseResolve.js spackled linguist-generated=true -2019/RegExpCreate.js spackled linguist-generated=true -2019/RegExpExec.js spackled linguist-generated=true -2019/RequireObjectCoercible.js spackled linguist-generated=true -2019/SameValue.js spackled linguist-generated=true -2019/SameValueNonNumber.js spackled linguist-generated=true -2019/SameValueZero.js spackled linguist-generated=true -2019/SecFromTime.js spackled linguist-generated=true -2019/Set.js spackled linguist-generated=true -2019/SetFunctionLength.js spackled linguist-generated=true -2019/SetFunctionName.js spackled linguist-generated=true -2019/SetIntegrityLevel.js spackled linguist-generated=true -2019/SpeciesConstructor.js spackled linguist-generated=true -2019/SplitMatch.js spackled linguist-generated=true -2019/StrictEqualityComparison.js spackled linguist-generated=true -2019/StringCreate.js spackled linguist-generated=true -2019/StringGetOwnProperty.js spackled linguist-generated=true -2019/SymbolDescriptiveString.js spackled linguist-generated=true -2019/TestIntegrityLevel.js spackled linguist-generated=true -2019/TimeClip.js spackled linguist-generated=true -2019/TimeFromYear.js spackled linguist-generated=true -2019/TimeString.js spackled linguist-generated=true -2019/TimeWithinDay.js spackled linguist-generated=true -2019/ToBoolean.js spackled linguist-generated=true -2019/ToDateString.js spackled linguist-generated=true -2019/ToIndex.js spackled linguist-generated=true -2019/ToInt16.js spackled linguist-generated=true -2019/ToInt32.js spackled linguist-generated=true -2019/ToInt8.js spackled linguist-generated=true -2019/ToInteger.js spackled linguist-generated=true -2019/ToLength.js spackled linguist-generated=true -2019/ToNumber.js spackled linguist-generated=true -2019/ToObject.js spackled linguist-generated=true -2019/ToPrimitive.js spackled linguist-generated=true -2019/ToPropertyDescriptor.js spackled linguist-generated=true -2019/ToPropertyKey.js spackled linguist-generated=true -2019/ToString.js spackled linguist-generated=true -2019/ToUint16.js spackled linguist-generated=true -2019/ToUint32.js spackled linguist-generated=true -2019/ToUint8.js spackled linguist-generated=true -2019/ToUint8Clamp.js spackled linguist-generated=true -2019/Type.js spackled linguist-generated=true -2019/UTF16Decode.js spackled linguist-generated=true -2019/UTF16Encoding.js spackled linguist-generated=true -2019/UnicodeEscape.js spackled linguist-generated=true -2019/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2019/WeekDay.js spackled linguist-generated=true -2019/YearFromTime.js spackled linguist-generated=true -2019/abs.js spackled linguist-generated=true -2019/floor.js spackled linguist-generated=true -2019/modulo.js spackled linguist-generated=true -2019/msFromTime.js spackled linguist-generated=true -2019/thisBooleanValue.js spackled linguist-generated=true -2019/thisNumberValue.js spackled linguist-generated=true -2019/thisStringValue.js spackled linguist-generated=true -2019/thisSymbolValue.js spackled linguist-generated=true -2020/AbstractEqualityComparison.js spackled linguist-generated=true -2020/AbstractRelationalComparison.js spackled linguist-generated=true -2020/AddEntriesFromIterable.js spackled linguist-generated=true -2020/ArrayCreate.js spackled linguist-generated=true -2020/ArraySetLength.js spackled linguist-generated=true -2020/ArraySpeciesCreate.js spackled linguist-generated=true -2020/Call.js spackled linguist-generated=true -2020/CanonicalNumericIndexString.js spackled linguist-generated=true -2020/CompletePropertyDescriptor.js spackled linguist-generated=true -2020/CreateDataProperty.js spackled linguist-generated=true -2020/CreateDataPropertyOrThrow.js spackled linguist-generated=true -2020/CreateHTML.js spackled linguist-generated=true -2020/CreateIterResultObject.js spackled linguist-generated=true -2020/CreateMethodProperty.js spackled linguist-generated=true -2020/DateFromTime.js spackled linguist-generated=true -2020/DateString.js spackled linguist-generated=true -2020/Day.js spackled linguist-generated=true -2020/DayFromYear.js spackled linguist-generated=true -2020/DayWithinYear.js spackled linguist-generated=true -2020/DaysInYear.js spackled linguist-generated=true -2020/DefinePropertyOrThrow.js spackled linguist-generated=true -2020/DeletePropertyOrThrow.js spackled linguist-generated=true -2020/EnumerableOwnPropertyNames.js spackled linguist-generated=true -2020/FromPropertyDescriptor.js spackled linguist-generated=true -2020/Get.js spackled linguist-generated=true -2020/GetMethod.js spackled linguist-generated=true -2020/GetOwnPropertyKeys.js spackled linguist-generated=true -2020/GetPrototypeFromConstructor.js spackled linguist-generated=true -2020/GetSubstitution.js spackled linguist-generated=true -2020/GetV.js spackled linguist-generated=true -2020/HasOwnProperty.js spackled linguist-generated=true -2020/HasProperty.js spackled linguist-generated=true -2020/HourFromTime.js spackled linguist-generated=true -2020/InLeapYear.js spackled linguist-generated=true -2020/InstanceofOperator.js spackled linguist-generated=true -2020/Invoke.js spackled linguist-generated=true -2020/IsAccessorDescriptor.js spackled linguist-generated=true -2020/IsArray.js spackled linguist-generated=true -2020/IsCallable.js spackled linguist-generated=true -2020/IsConcatSpreadable.js spackled linguist-generated=true -2020/IsConstructor.js spackled linguist-generated=true -2020/IsDataDescriptor.js spackled linguist-generated=true -2020/IsExtensible.js spackled linguist-generated=true -2020/IsGenericDescriptor.js spackled linguist-generated=true -2020/IsInteger.js spackled linguist-generated=true -2020/IsPromise.js spackled linguist-generated=true -2020/IsPropertyKey.js spackled linguist-generated=true -2020/IsRegExp.js spackled linguist-generated=true -2020/IsStringPrefix.js spackled linguist-generated=true -2020/IteratorClose.js spackled linguist-generated=true -2020/IteratorComplete.js spackled linguist-generated=true -2020/IteratorNext.js spackled linguist-generated=true -2020/IteratorStep.js spackled linguist-generated=true -2020/IteratorValue.js spackled linguist-generated=true -2020/MakeDate.js spackled linguist-generated=true -2020/MakeDay.js spackled linguist-generated=true -2020/MakeTime.js spackled linguist-generated=true -2020/MinFromTime.js spackled linguist-generated=true -2020/MonthFromTime.js spackled linguist-generated=true -2020/OrdinaryDefineOwnProperty.js spackled linguist-generated=true -2020/OrdinaryGetOwnProperty.js spackled linguist-generated=true -2020/OrdinaryGetPrototypeOf.js spackled linguist-generated=true -2020/OrdinaryHasInstance.js spackled linguist-generated=true -2020/OrdinaryHasProperty.js spackled linguist-generated=true -2020/OrdinarySetPrototypeOf.js spackled linguist-generated=true -2020/PromiseResolve.js spackled linguist-generated=true -2020/RegExpCreate.js spackled linguist-generated=true -2020/RegExpExec.js spackled linguist-generated=true -2020/RequireObjectCoercible.js spackled linguist-generated=true -2020/SameValue.js spackled linguist-generated=true -2020/SameValueZero.js spackled linguist-generated=true -2020/SecFromTime.js spackled linguist-generated=true -2020/Set.js spackled linguist-generated=true -2020/SetFunctionName.js spackled linguist-generated=true -2020/SetIntegrityLevel.js spackled linguist-generated=true -2020/SpeciesConstructor.js spackled linguist-generated=true -2020/SplitMatch.js spackled linguist-generated=true -2020/StrictEqualityComparison.js spackled linguist-generated=true -2020/StringCreate.js spackled linguist-generated=true -2020/StringGetOwnProperty.js spackled linguist-generated=true -2020/SymbolDescriptiveString.js spackled linguist-generated=true -2020/TestIntegrityLevel.js spackled linguist-generated=true -2020/TimeClip.js spackled linguist-generated=true -2020/TimeFromYear.js spackled linguist-generated=true -2020/TimeString.js spackled linguist-generated=true -2020/TimeWithinDay.js spackled linguist-generated=true -2020/ToBoolean.js spackled linguist-generated=true -2020/ToDateString.js spackled linguist-generated=true -2020/ToInt16.js spackled linguist-generated=true -2020/ToInt32.js spackled linguist-generated=true -2020/ToInt8.js spackled linguist-generated=true -2020/ToLength.js spackled linguist-generated=true -2020/ToObject.js spackled linguist-generated=true -2020/ToPrimitive.js spackled linguist-generated=true -2020/ToPropertyDescriptor.js spackled linguist-generated=true -2020/ToPropertyKey.js spackled linguist-generated=true -2020/ToString.js spackled linguist-generated=true -2020/ToUint16.js spackled linguist-generated=true -2020/ToUint32.js spackled linguist-generated=true -2020/ToUint8.js spackled linguist-generated=true -2020/ToUint8Clamp.js spackled linguist-generated=true -2020/TrimString.js spackled linguist-generated=true -2020/UTF16Encoding.js spackled linguist-generated=true -2020/ValidateAndApplyPropertyDescriptor.js spackled linguist-generated=true -2020/WeekDay.js spackled linguist-generated=true -2020/YearFromTime.js spackled linguist-generated=true -2020/abs.js spackled linguist-generated=true -2020/floor.js spackled linguist-generated=true -2020/modulo.js spackled linguist-generated=true -2020/msFromTime.js spackled linguist-generated=true -2020/thisBooleanValue.js spackled linguist-generated=true -2020/thisNumberValue.js spackled linguist-generated=true -2020/thisStringValue.js spackled linguist-generated=true -2020/thisSymbolValue.js spackled linguist-generated=true -2020/thisTimeValue.js spackled linguist-generated=true \ No newline at end of file diff --git a/node_modules/es-abstract/.nycrc b/node_modules/es-abstract/.nycrc deleted file mode 100644 index 526adaa..0000000 --- a/node_modules/es-abstract/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "operations", - "test" - ] -} diff --git a/node_modules/es-abstract/2015/AbstractEqualityComparison.js b/node_modules/es-abstract/2015/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2015/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2015/AbstractRelationalComparison.js b/node_modules/es-abstract/2015/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2015/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2015/AdvanceStringIndex.js b/node_modules/es-abstract/2015/AdvanceStringIndex.js deleted file mode 100644 index 279602b..0000000 --- a/node_modules/es-abstract/2015/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/es-abstract/2015/ArrayCreate.js b/node_modules/es-abstract/2015/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2015/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2015/ArraySetLength.js b/node_modules/es-abstract/2015/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2015/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2015/ArraySpeciesCreate.js b/node_modules/es-abstract/2015/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2015/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2015/Call.js b/node_modules/es-abstract/2015/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2015/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2015/CanonicalNumericIndexString.js b/node_modules/es-abstract/2015/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2015/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2015/CompletePropertyDescriptor.js b/node_modules/es-abstract/2015/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2015/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2015/CreateDataProperty.js b/node_modules/es-abstract/2015/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2015/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2015/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2015/CreateHTML.js b/node_modules/es-abstract/2015/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2015/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2015/CreateIterResultObject.js b/node_modules/es-abstract/2015/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2015/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2015/CreateListFromArrayLike.js b/node_modules/es-abstract/2015/CreateListFromArrayLike.js deleted file mode 100644 index d1bb8b6..0000000 --- a/node_modules/es-abstract/2015/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2015/CreateMethodProperty.js b/node_modules/es-abstract/2015/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2015/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2015/DateFromTime.js b/node_modules/es-abstract/2015/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2015/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2015/Day.js b/node_modules/es-abstract/2015/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2015/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2015/DayFromYear.js b/node_modules/es-abstract/2015/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2015/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2015/DayWithinYear.js b/node_modules/es-abstract/2015/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2015/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2015/DaysInYear.js b/node_modules/es-abstract/2015/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2015/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2015/DefinePropertyOrThrow.js b/node_modules/es-abstract/2015/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2015/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2015/DeletePropertyOrThrow.js b/node_modules/es-abstract/2015/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2015/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2015/EnumerableOwnNames.js b/node_modules/es-abstract/2015/EnumerableOwnNames.js deleted file mode 100644 index e218eda..0000000 --- a/node_modules/es-abstract/2015/EnumerableOwnNames.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var keys = require('object-keys'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-enumerableownnames - -module.exports = function EnumerableOwnNames(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - return keys(O); -}; diff --git a/node_modules/es-abstract/2015/FromPropertyDescriptor.js b/node_modules/es-abstract/2015/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2015/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2015/Get.js b/node_modules/es-abstract/2015/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2015/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2015/GetIterator.js b/node_modules/es-abstract/2015/GetIterator.js deleted file mode 100644 index a2d3b16..0000000 --- a/node_modules/es-abstract/2015/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/es-abstract/2015/GetMethod.js b/node_modules/es-abstract/2015/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2015/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2015/GetOwnPropertyKeys.js b/node_modules/es-abstract/2015/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2015/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2015/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2015/GetSubstitution.js b/node_modules/es-abstract/2015/GetSubstitution.js deleted file mode 100644 index 5bdce38..0000000 --- a/node_modules/es-abstract/2015/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('call-bind/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2015/GetV.js b/node_modules/es-abstract/2015/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2015/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2015/HasOwnProperty.js b/node_modules/es-abstract/2015/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2015/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2015/HasProperty.js b/node_modules/es-abstract/2015/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2015/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2015/HourFromTime.js b/node_modules/es-abstract/2015/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2015/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2015/InLeapYear.js b/node_modules/es-abstract/2015/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2015/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2015/InstanceofOperator.js b/node_modules/es-abstract/2015/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2015/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2015/Invoke.js b/node_modules/es-abstract/2015/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2015/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2015/IsAccessorDescriptor.js b/node_modules/es-abstract/2015/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2015/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2015/IsArray.js b/node_modules/es-abstract/2015/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2015/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2015/IsCallable.js b/node_modules/es-abstract/2015/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2015/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2015/IsConcatSpreadable.js b/node_modules/es-abstract/2015/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2015/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2015/IsConstructor.js b/node_modules/es-abstract/2015/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2015/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2015/IsDataDescriptor.js b/node_modules/es-abstract/2015/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2015/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2015/IsExtensible.js b/node_modules/es-abstract/2015/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2015/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2015/IsGenericDescriptor.js b/node_modules/es-abstract/2015/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2015/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2015/IsInteger.js b/node_modules/es-abstract/2015/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2015/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2015/IsPromise.js b/node_modules/es-abstract/2015/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2015/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2015/IsPropertyDescriptor.js b/node_modules/es-abstract/2015/IsPropertyDescriptor.js deleted file mode 100644 index 4cfe79b..0000000 --- a/node_modules/es-abstract/2015/IsPropertyDescriptor.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -// TODO, semver-major: delete this - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/es-abstract/2015/IsPropertyKey.js b/node_modules/es-abstract/2015/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2015/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2015/IsRegExp.js b/node_modules/es-abstract/2015/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2015/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2015/IteratorClose.js b/node_modules/es-abstract/2015/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2015/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2015/IteratorComplete.js b/node_modules/es-abstract/2015/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2015/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2015/IteratorNext.js b/node_modules/es-abstract/2015/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2015/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2015/IteratorStep.js b/node_modules/es-abstract/2015/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2015/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2015/IteratorValue.js b/node_modules/es-abstract/2015/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2015/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2015/MakeDate.js b/node_modules/es-abstract/2015/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2015/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2015/MakeDay.js b/node_modules/es-abstract/2015/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2015/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2015/MakeTime.js b/node_modules/es-abstract/2015/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2015/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2015/MinFromTime.js b/node_modules/es-abstract/2015/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2015/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2015/MonthFromTime.js b/node_modules/es-abstract/2015/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2015/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2015/ObjectCreate.js b/node_modules/es-abstract/2015/ObjectCreate.js deleted file mode 100644 index 2851a64..0000000 --- a/node_modules/es-abstract/2015/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e2a299e..0000000 --- a/node_modules/es-abstract/2015/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2015/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2015/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2015/OrdinaryHasInstance.js b/node_modules/es-abstract/2015/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2015/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2015/OrdinaryHasProperty.js b/node_modules/es-abstract/2015/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2015/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2015/QuoteJSONString.js b/node_modules/es-abstract/2015/QuoteJSONString.js deleted file mode 100644 index 884afef..0000000 --- a/node_modules/es-abstract/2015/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2015/RegExpCreate.js b/node_modules/es-abstract/2015/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2015/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2015/RegExpExec.js b/node_modules/es-abstract/2015/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2015/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2015/RequireObjectCoercible.js b/node_modules/es-abstract/2015/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2015/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2015/SameValue.js b/node_modules/es-abstract/2015/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2015/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2015/SameValueZero.js b/node_modules/es-abstract/2015/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2015/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2015/SecFromTime.js b/node_modules/es-abstract/2015/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2015/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2015/Set.js b/node_modules/es-abstract/2015/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2015/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2015/SetFunctionName.js b/node_modules/es-abstract/2015/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2015/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2015/SetIntegrityLevel.js b/node_modules/es-abstract/2015/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2015/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2015/SpeciesConstructor.js b/node_modules/es-abstract/2015/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2015/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2015/SplitMatch.js b/node_modules/es-abstract/2015/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2015/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2015/StrictEqualityComparison.js b/node_modules/es-abstract/2015/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2015/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2015/StringCreate.js b/node_modules/es-abstract/2015/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2015/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2015/StringGetIndexProperty.js b/node_modules/es-abstract/2015/StringGetIndexProperty.js deleted file mode 100644 index 73043dd..0000000 --- a/node_modules/es-abstract/2015/StringGetIndexProperty.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charAt = callBound('String.prototype.charAt'); - -var isString = require('is-string'); -var isNegativeZero = require('is-negative-zero'); -var unbox = require('unbox-primitive'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://262.ecma-international.org/6.0/#sec-stringgetindexproperty - -module.exports = function StringGetIndexProperty(S, P) { - if (typeof S === 'string' || !isString(S)) { - throw new $TypeError('Assertion failed: `S` must be a boxed String Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - - if (Type(P) !== 'String') { - return void undefined; - } - - var index = CanonicalNumericIndexString(P); - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index)) { - return void undefined; - } - - var str = unbox(S); - var len = str.length; - if (index < 0 || len <= index) { - return void undefined; - } - - var resultStr = $charAt(str, index); - - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/es-abstract/2015/SymbolDescriptiveString.js b/node_modules/es-abstract/2015/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2015/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2015/TestIntegrityLevel.js b/node_modules/es-abstract/2015/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2015/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2015/TimeClip.js b/node_modules/es-abstract/2015/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2015/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2015/TimeFromYear.js b/node_modules/es-abstract/2015/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2015/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2015/TimeWithinDay.js b/node_modules/es-abstract/2015/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2015/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2015/ToBoolean.js b/node_modules/es-abstract/2015/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2015/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2015/ToDateString.js b/node_modules/es-abstract/2015/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2015/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2015/ToInt16.js b/node_modules/es-abstract/2015/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2015/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2015/ToInt32.js b/node_modules/es-abstract/2015/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2015/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2015/ToInt8.js b/node_modules/es-abstract/2015/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2015/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2015/ToInteger.js b/node_modules/es-abstract/2015/ToInteger.js deleted file mode 100644 index 2975818..0000000 --- a/node_modules/es-abstract/2015/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/es-abstract/2015/ToLength.js b/node_modules/es-abstract/2015/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2015/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2015/ToNumber.js b/node_modules/es-abstract/2015/ToNumber.js deleted file mode 100644 index e776bb2..0000000 --- a/node_modules/es-abstract/2015/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2015/ToObject.js b/node_modules/es-abstract/2015/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2015/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2015/ToPrimitive.js b/node_modules/es-abstract/2015/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2015/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2015/ToPropertyDescriptor.js b/node_modules/es-abstract/2015/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2015/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2015/ToPropertyKey.js b/node_modules/es-abstract/2015/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2015/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2015/ToString.js b/node_modules/es-abstract/2015/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2015/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2015/ToUint16.js b/node_modules/es-abstract/2015/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2015/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2015/ToUint32.js b/node_modules/es-abstract/2015/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2015/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2015/ToUint8.js b/node_modules/es-abstract/2015/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2015/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2015/ToUint8Clamp.js b/node_modules/es-abstract/2015/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2015/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2015/Type.js b/node_modules/es-abstract/2015/Type.js deleted file mode 100644 index 0bd1165..0000000 --- a/node_modules/es-abstract/2015/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2015/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2015/WeekDay.js b/node_modules/es-abstract/2015/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2015/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2015/YearFromTime.js b/node_modules/es-abstract/2015/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2015/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2015/abs.js b/node_modules/es-abstract/2015/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2015/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2015/floor.js b/node_modules/es-abstract/2015/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2015/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2015/modulo.js b/node_modules/es-abstract/2015/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2015/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2015/msFromTime.js b/node_modules/es-abstract/2015/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2015/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2015/thisBooleanValue.js b/node_modules/es-abstract/2015/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2015/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2015/thisNumberValue.js b/node_modules/es-abstract/2015/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2015/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2015/thisStringValue.js b/node_modules/es-abstract/2015/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2015/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2015/thisTimeValue.js b/node_modules/es-abstract/2015/thisTimeValue.js deleted file mode 100644 index 12548fa..0000000 --- a/node_modules/es-abstract/2015/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('call-bind/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/es-abstract/2016/AbstractEqualityComparison.js b/node_modules/es-abstract/2016/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2016/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2016/AbstractRelationalComparison.js b/node_modules/es-abstract/2016/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2016/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2016/AdvanceStringIndex.js b/node_modules/es-abstract/2016/AdvanceStringIndex.js deleted file mode 100644 index 279602b..0000000 --- a/node_modules/es-abstract/2016/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/es-abstract/2016/ArrayCreate.js b/node_modules/es-abstract/2016/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2016/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2016/ArraySetLength.js b/node_modules/es-abstract/2016/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2016/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2016/ArraySpeciesCreate.js b/node_modules/es-abstract/2016/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2016/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2016/Call.js b/node_modules/es-abstract/2016/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2016/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2016/CanonicalNumericIndexString.js b/node_modules/es-abstract/2016/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2016/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2016/CompletePropertyDescriptor.js b/node_modules/es-abstract/2016/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2016/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2016/CreateDataProperty.js b/node_modules/es-abstract/2016/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2016/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2016/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2016/CreateHTML.js b/node_modules/es-abstract/2016/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2016/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2016/CreateIterResultObject.js b/node_modules/es-abstract/2016/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2016/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2016/CreateListFromArrayLike.js b/node_modules/es-abstract/2016/CreateListFromArrayLike.js deleted file mode 100644 index d1bb8b6..0000000 --- a/node_modules/es-abstract/2016/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2016/CreateMethodProperty.js b/node_modules/es-abstract/2016/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2016/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2016/DateFromTime.js b/node_modules/es-abstract/2016/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2016/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2016/Day.js b/node_modules/es-abstract/2016/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2016/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2016/DayFromYear.js b/node_modules/es-abstract/2016/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2016/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2016/DayWithinYear.js b/node_modules/es-abstract/2016/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2016/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2016/DaysInYear.js b/node_modules/es-abstract/2016/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2016/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2016/DefinePropertyOrThrow.js b/node_modules/es-abstract/2016/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2016/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2016/DeletePropertyOrThrow.js b/node_modules/es-abstract/2016/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2016/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2016/EnumerableOwnNames.js b/node_modules/es-abstract/2016/EnumerableOwnNames.js deleted file mode 100644 index e218eda..0000000 --- a/node_modules/es-abstract/2016/EnumerableOwnNames.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var keys = require('object-keys'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-enumerableownnames - -module.exports = function EnumerableOwnNames(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - return keys(O); -}; diff --git a/node_modules/es-abstract/2016/FromPropertyDescriptor.js b/node_modules/es-abstract/2016/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2016/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2016/Get.js b/node_modules/es-abstract/2016/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2016/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2016/GetIterator.js b/node_modules/es-abstract/2016/GetIterator.js deleted file mode 100644 index a2d3b16..0000000 --- a/node_modules/es-abstract/2016/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/es-abstract/2016/GetMethod.js b/node_modules/es-abstract/2016/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2016/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2016/GetOwnPropertyKeys.js b/node_modules/es-abstract/2016/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2016/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2016/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2016/GetSubstitution.js b/node_modules/es-abstract/2016/GetSubstitution.js deleted file mode 100644 index 5bdce38..0000000 --- a/node_modules/es-abstract/2016/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('call-bind/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2016/GetV.js b/node_modules/es-abstract/2016/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2016/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2016/HasOwnProperty.js b/node_modules/es-abstract/2016/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2016/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2016/HasProperty.js b/node_modules/es-abstract/2016/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2016/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2016/HourFromTime.js b/node_modules/es-abstract/2016/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2016/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2016/InLeapYear.js b/node_modules/es-abstract/2016/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2016/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2016/InstanceofOperator.js b/node_modules/es-abstract/2016/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2016/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2016/Invoke.js b/node_modules/es-abstract/2016/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2016/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2016/IsAccessorDescriptor.js b/node_modules/es-abstract/2016/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2016/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2016/IsArray.js b/node_modules/es-abstract/2016/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2016/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2016/IsCallable.js b/node_modules/es-abstract/2016/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2016/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2016/IsConcatSpreadable.js b/node_modules/es-abstract/2016/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2016/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2016/IsConstructor.js b/node_modules/es-abstract/2016/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2016/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2016/IsDataDescriptor.js b/node_modules/es-abstract/2016/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2016/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2016/IsExtensible.js b/node_modules/es-abstract/2016/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2016/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2016/IsGenericDescriptor.js b/node_modules/es-abstract/2016/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2016/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2016/IsInteger.js b/node_modules/es-abstract/2016/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2016/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2016/IsPromise.js b/node_modules/es-abstract/2016/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2016/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2016/IsPropertyDescriptor.js b/node_modules/es-abstract/2016/IsPropertyDescriptor.js deleted file mode 100644 index 4cfe79b..0000000 --- a/node_modules/es-abstract/2016/IsPropertyDescriptor.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -// TODO, semver-major: delete this - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/es-abstract/2016/IsPropertyKey.js b/node_modules/es-abstract/2016/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2016/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2016/IsRegExp.js b/node_modules/es-abstract/2016/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2016/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2016/IterableToArrayLike.js b/node_modules/es-abstract/2016/IterableToArrayLike.js deleted file mode 100644 index a16bbba..0000000 --- a/node_modules/es-abstract/2016/IterableToArrayLike.js +++ /dev/null @@ -1,56 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var GetIterator = require('./GetIterator'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); -var ES = { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type -}; - -// https://262.ecma-international.org/7.0/#sec-iterabletoarraylike -/** - * 1. Let usingIterator be ? GetMethod(items, @@iterator). - * 2. If usingIterator is not undefined, then - * 1. Let iterator be ? GetIterator(items, usingIterator). - * 2. Let values be a new empty List. - * 3. Let next be true. - * 4. Repeat, while next is not false - * 1. Let next be ? IteratorStep(iterator). - * 2. If next is not false, then - * 1. Let nextValue be ? IteratorValue(next). - * 2. Append nextValue to the end of the List values. - * 5. Return CreateArrayFromList(values). - * 3. NOTE: items is not an Iterable so assume it is already an array-like object. - * 4. Return ! ToObject(items). - */ - -module.exports = function IterableToArrayLike(items) { - var usingIterator = getIteratorMethod(ES, items); - if (typeof usingIterator !== 'undefined') { - var iterator = GetIterator(items, usingIterator); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; - } - - return ToObject(items); -}; diff --git a/node_modules/es-abstract/2016/IteratorClose.js b/node_modules/es-abstract/2016/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2016/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2016/IteratorComplete.js b/node_modules/es-abstract/2016/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2016/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2016/IteratorNext.js b/node_modules/es-abstract/2016/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2016/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2016/IteratorStep.js b/node_modules/es-abstract/2016/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2016/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2016/IteratorValue.js b/node_modules/es-abstract/2016/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2016/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2016/MakeDate.js b/node_modules/es-abstract/2016/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2016/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2016/MakeDay.js b/node_modules/es-abstract/2016/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2016/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2016/MakeTime.js b/node_modules/es-abstract/2016/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2016/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2016/MinFromTime.js b/node_modules/es-abstract/2016/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2016/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2016/MonthFromTime.js b/node_modules/es-abstract/2016/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2016/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2016/ObjectCreate.js b/node_modules/es-abstract/2016/ObjectCreate.js deleted file mode 100644 index 2851a64..0000000 --- a/node_modules/es-abstract/2016/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e2a299e..0000000 --- a/node_modules/es-abstract/2016/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2016/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2016/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js deleted file mode 100644 index ba17b98..0000000 --- a/node_modules/es-abstract/2016/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/es-abstract/2016/OrdinaryHasInstance.js b/node_modules/es-abstract/2016/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2016/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2016/OrdinaryHasProperty.js b/node_modules/es-abstract/2016/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2016/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js deleted file mode 100644 index d0ff7a7..0000000 --- a/node_modules/es-abstract/2016/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/es-abstract/2016/QuoteJSONString.js b/node_modules/es-abstract/2016/QuoteJSONString.js deleted file mode 100644 index 884afef..0000000 --- a/node_modules/es-abstract/2016/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2016/RegExpCreate.js b/node_modules/es-abstract/2016/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2016/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2016/RegExpExec.js b/node_modules/es-abstract/2016/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2016/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2016/RequireObjectCoercible.js b/node_modules/es-abstract/2016/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2016/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2016/SameValue.js b/node_modules/es-abstract/2016/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2016/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2016/SameValueNonNumber.js b/node_modules/es-abstract/2016/SameValueNonNumber.js deleted file mode 100644 index b6d2c4e..0000000 --- a/node_modules/es-abstract/2016/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://262.ecma-international.org/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/es-abstract/2016/SameValueZero.js b/node_modules/es-abstract/2016/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2016/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2016/SecFromTime.js b/node_modules/es-abstract/2016/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2016/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2016/Set.js b/node_modules/es-abstract/2016/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2016/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2016/SetFunctionName.js b/node_modules/es-abstract/2016/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2016/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2016/SetIntegrityLevel.js b/node_modules/es-abstract/2016/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2016/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2016/SpeciesConstructor.js b/node_modules/es-abstract/2016/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2016/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2016/SplitMatch.js b/node_modules/es-abstract/2016/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2016/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2016/StrictEqualityComparison.js b/node_modules/es-abstract/2016/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2016/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2016/StringCreate.js b/node_modules/es-abstract/2016/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2016/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2016/SymbolDescriptiveString.js b/node_modules/es-abstract/2016/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2016/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2016/TestIntegrityLevel.js b/node_modules/es-abstract/2016/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2016/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2016/TimeClip.js b/node_modules/es-abstract/2016/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2016/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2016/TimeFromYear.js b/node_modules/es-abstract/2016/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2016/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2016/TimeWithinDay.js b/node_modules/es-abstract/2016/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2016/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2016/ToBoolean.js b/node_modules/es-abstract/2016/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2016/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2016/ToDateString.js b/node_modules/es-abstract/2016/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2016/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2016/ToInt16.js b/node_modules/es-abstract/2016/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2016/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2016/ToInt32.js b/node_modules/es-abstract/2016/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2016/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2016/ToInt8.js b/node_modules/es-abstract/2016/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2016/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2016/ToInteger.js b/node_modules/es-abstract/2016/ToInteger.js deleted file mode 100644 index 2975818..0000000 --- a/node_modules/es-abstract/2016/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/es-abstract/2016/ToLength.js b/node_modules/es-abstract/2016/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2016/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2016/ToNumber.js b/node_modules/es-abstract/2016/ToNumber.js deleted file mode 100644 index e776bb2..0000000 --- a/node_modules/es-abstract/2016/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2016/ToObject.js b/node_modules/es-abstract/2016/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2016/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2016/ToPrimitive.js b/node_modules/es-abstract/2016/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2016/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2016/ToPropertyDescriptor.js b/node_modules/es-abstract/2016/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2016/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2016/ToPropertyKey.js b/node_modules/es-abstract/2016/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2016/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2016/ToString.js b/node_modules/es-abstract/2016/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2016/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2016/ToUint16.js b/node_modules/es-abstract/2016/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2016/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2016/ToUint32.js b/node_modules/es-abstract/2016/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2016/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2016/ToUint8.js b/node_modules/es-abstract/2016/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2016/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2016/ToUint8Clamp.js b/node_modules/es-abstract/2016/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2016/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2016/Type.js b/node_modules/es-abstract/2016/Type.js deleted file mode 100644 index 0bd1165..0000000 --- a/node_modules/es-abstract/2016/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2016/UTF16Decode.js b/node_modules/es-abstract/2016/UTF16Decode.js deleted file mode 100644 index 86927b4..0000000 --- a/node_modules/es-abstract/2016/UTF16Decode.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -// https://262.ecma-international.org/7.0/#sec-utf16decode - -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair - -module.exports = function UTF16Decode(lead, trail) { - if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { - throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); - } - // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return $fromCharCode(lead) + $fromCharCode(trail); -}; diff --git a/node_modules/es-abstract/2016/UTF16Encoding.js b/node_modules/es-abstract/2016/UTF16Encoding.js deleted file mode 100644 index f381595..0000000 --- a/node_modules/es-abstract/2016/UTF16Encoding.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var isCodePoint = require('../helpers/isCodePoint'); - -// https://262.ecma-international.org/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (!isCodePoint(cp)) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return $fromCharCode(cp); - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2016/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2016/WeekDay.js b/node_modules/es-abstract/2016/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2016/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2016/YearFromTime.js b/node_modules/es-abstract/2016/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2016/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2016/abs.js b/node_modules/es-abstract/2016/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2016/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2016/floor.js b/node_modules/es-abstract/2016/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2016/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2016/modulo.js b/node_modules/es-abstract/2016/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2016/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2016/msFromTime.js b/node_modules/es-abstract/2016/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2016/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2016/thisBooleanValue.js b/node_modules/es-abstract/2016/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2016/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2016/thisNumberValue.js b/node_modules/es-abstract/2016/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2016/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2016/thisStringValue.js b/node_modules/es-abstract/2016/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2016/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2016/thisTimeValue.js b/node_modules/es-abstract/2016/thisTimeValue.js deleted file mode 100644 index 12548fa..0000000 --- a/node_modules/es-abstract/2016/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('call-bind/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/es-abstract/2017/AbstractEqualityComparison.js b/node_modules/es-abstract/2017/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2017/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2017/AbstractRelationalComparison.js b/node_modules/es-abstract/2017/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2017/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2017/AdvanceStringIndex.js b/node_modules/es-abstract/2017/AdvanceStringIndex.js deleted file mode 100644 index 279602b..0000000 --- a/node_modules/es-abstract/2017/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/es-abstract/2017/ArrayCreate.js b/node_modules/es-abstract/2017/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2017/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2017/ArraySetLength.js b/node_modules/es-abstract/2017/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2017/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2017/ArraySpeciesCreate.js b/node_modules/es-abstract/2017/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2017/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2017/Call.js b/node_modules/es-abstract/2017/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2017/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2017/CanonicalNumericIndexString.js b/node_modules/es-abstract/2017/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2017/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2017/CompletePropertyDescriptor.js b/node_modules/es-abstract/2017/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2017/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2017/CreateDataProperty.js b/node_modules/es-abstract/2017/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2017/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2017/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2017/CreateHTML.js b/node_modules/es-abstract/2017/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2017/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2017/CreateIterResultObject.js b/node_modules/es-abstract/2017/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2017/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2017/CreateListFromArrayLike.js b/node_modules/es-abstract/2017/CreateListFromArrayLike.js deleted file mode 100644 index d1bb8b6..0000000 --- a/node_modules/es-abstract/2017/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2017/CreateMethodProperty.js b/node_modules/es-abstract/2017/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2017/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2017/DateFromTime.js b/node_modules/es-abstract/2017/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2017/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2017/Day.js b/node_modules/es-abstract/2017/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2017/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2017/DayFromYear.js b/node_modules/es-abstract/2017/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2017/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2017/DayWithinYear.js b/node_modules/es-abstract/2017/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2017/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2017/DaysInYear.js b/node_modules/es-abstract/2017/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2017/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2017/DefinePropertyOrThrow.js b/node_modules/es-abstract/2017/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2017/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2017/DeletePropertyOrThrow.js b/node_modules/es-abstract/2017/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2017/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2017/EnumerableOwnProperties.js b/node_modules/es-abstract/2017/EnumerableOwnProperties.js deleted file mode 100644 index 44171b9..0000000 --- a/node_modules/es-abstract/2017/EnumerableOwnProperties.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('call-bind/callBound'); - -var callBind = require('call-bind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/es-abstract/2017/FromPropertyDescriptor.js b/node_modules/es-abstract/2017/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2017/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2017/Get.js b/node_modules/es-abstract/2017/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2017/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2017/GetIterator.js b/node_modules/es-abstract/2017/GetIterator.js deleted file mode 100644 index a2d3b16..0000000 --- a/node_modules/es-abstract/2017/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/es-abstract/2017/GetMethod.js b/node_modules/es-abstract/2017/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2017/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2017/GetOwnPropertyKeys.js b/node_modules/es-abstract/2017/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2017/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2017/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2017/GetSubstitution.js b/node_modules/es-abstract/2017/GetSubstitution.js deleted file mode 100644 index 5bdce38..0000000 --- a/node_modules/es-abstract/2017/GetSubstitution.js +++ /dev/null @@ -1,104 +0,0 @@ - -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $parseInt = GetIntrinsic('%parseInt%'); - -var inspect = require('object-inspect'); - -var regexTester = require('../helpers/regexTester'); -var callBound = require('call-bind/callBound'); -var every = require('../helpers/every'); - -var isDigit = regexTester(/^[0-9]$/); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); - -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// https://ecma-international.org/ecma-262/6.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2017/GetV.js b/node_modules/es-abstract/2017/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2017/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2017/HasOwnProperty.js b/node_modules/es-abstract/2017/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2017/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2017/HasProperty.js b/node_modules/es-abstract/2017/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2017/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2017/HourFromTime.js b/node_modules/es-abstract/2017/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2017/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2017/InLeapYear.js b/node_modules/es-abstract/2017/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2017/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2017/InstanceofOperator.js b/node_modules/es-abstract/2017/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2017/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2017/Invoke.js b/node_modules/es-abstract/2017/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2017/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2017/IsAccessorDescriptor.js b/node_modules/es-abstract/2017/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2017/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2017/IsArray.js b/node_modules/es-abstract/2017/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2017/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2017/IsCallable.js b/node_modules/es-abstract/2017/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2017/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2017/IsConcatSpreadable.js b/node_modules/es-abstract/2017/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2017/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2017/IsConstructor.js b/node_modules/es-abstract/2017/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2017/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2017/IsDataDescriptor.js b/node_modules/es-abstract/2017/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2017/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2017/IsExtensible.js b/node_modules/es-abstract/2017/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2017/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2017/IsGenericDescriptor.js b/node_modules/es-abstract/2017/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2017/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2017/IsInteger.js b/node_modules/es-abstract/2017/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2017/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2017/IsPromise.js b/node_modules/es-abstract/2017/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2017/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2017/IsPropertyDescriptor.js b/node_modules/es-abstract/2017/IsPropertyDescriptor.js deleted file mode 100644 index 4cfe79b..0000000 --- a/node_modules/es-abstract/2017/IsPropertyDescriptor.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -// TODO, semver-major: delete this - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/es-abstract/2017/IsPropertyKey.js b/node_modules/es-abstract/2017/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2017/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2017/IsRegExp.js b/node_modules/es-abstract/2017/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2017/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2017/IterableToList.js b/node_modules/es-abstract/2017/IterableToList.js deleted file mode 100644 index 6a1a6be..0000000 --- a/node_modules/es-abstract/2017/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://262.ecma-international.org/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/es-abstract/2017/IteratorClose.js b/node_modules/es-abstract/2017/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2017/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2017/IteratorComplete.js b/node_modules/es-abstract/2017/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2017/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2017/IteratorNext.js b/node_modules/es-abstract/2017/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2017/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2017/IteratorStep.js b/node_modules/es-abstract/2017/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2017/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2017/IteratorValue.js b/node_modules/es-abstract/2017/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2017/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2017/MakeDate.js b/node_modules/es-abstract/2017/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2017/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2017/MakeDay.js b/node_modules/es-abstract/2017/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2017/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2017/MakeTime.js b/node_modules/es-abstract/2017/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2017/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2017/MinFromTime.js b/node_modules/es-abstract/2017/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2017/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2017/MonthFromTime.js b/node_modules/es-abstract/2017/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2017/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2017/ObjectCreate.js b/node_modules/es-abstract/2017/ObjectCreate.js deleted file mode 100644 index 2851a64..0000000 --- a/node_modules/es-abstract/2017/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e2a299e..0000000 --- a/node_modules/es-abstract/2017/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2017/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2017/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js deleted file mode 100644 index ba17b98..0000000 --- a/node_modules/es-abstract/2017/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/es-abstract/2017/OrdinaryHasInstance.js b/node_modules/es-abstract/2017/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2017/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2017/OrdinaryHasProperty.js b/node_modules/es-abstract/2017/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2017/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js deleted file mode 100644 index d0ff7a7..0000000 --- a/node_modules/es-abstract/2017/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/es-abstract/2017/QuoteJSONString.js b/node_modules/es-abstract/2017/QuoteJSONString.js deleted file mode 100644 index 884afef..0000000 --- a/node_modules/es-abstract/2017/QuoteJSONString.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-quotejsonstring - -var escapes = { - '\u0008': 'b', - '\u000C': 'f', - '\u000A': 'n', - '\u000D': 'r', - '\u0009': 't' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (C === '"' || C === '\\') { - product += '\u005C' + C; - } else if (C === '\u0008' || C === '\u000C' || C === '\u000A' || C === '\u000D' || C === '\u0009') { - var abbrev = escapes[C]; - product += '\u005C' + abbrev; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20) { - product += '\u005Cu' + $toLowerCase($strSlice('0000' + $numberToString(cCharCode, 16), -4)); - } else { - product += C; - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2017/RegExpCreate.js b/node_modules/es-abstract/2017/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2017/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2017/RegExpExec.js b/node_modules/es-abstract/2017/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2017/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2017/RequireObjectCoercible.js b/node_modules/es-abstract/2017/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2017/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2017/SameValue.js b/node_modules/es-abstract/2017/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2017/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2017/SameValueNonNumber.js b/node_modules/es-abstract/2017/SameValueNonNumber.js deleted file mode 100644 index b6d2c4e..0000000 --- a/node_modules/es-abstract/2017/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://262.ecma-international.org/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/es-abstract/2017/SameValueZero.js b/node_modules/es-abstract/2017/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2017/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2017/SecFromTime.js b/node_modules/es-abstract/2017/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2017/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2017/Set.js b/node_modules/es-abstract/2017/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2017/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2017/SetFunctionName.js b/node_modules/es-abstract/2017/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2017/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2017/SetIntegrityLevel.js b/node_modules/es-abstract/2017/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2017/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2017/SpeciesConstructor.js b/node_modules/es-abstract/2017/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2017/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2017/SplitMatch.js b/node_modules/es-abstract/2017/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2017/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2017/StrictEqualityComparison.js b/node_modules/es-abstract/2017/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2017/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2017/StringCreate.js b/node_modules/es-abstract/2017/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2017/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2017/StringGetOwnProperty.js b/node_modules/es-abstract/2017/StringGetOwnProperty.js deleted file mode 100644 index b6f904e..0000000 --- a/node_modules/es-abstract/2017/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://262.ecma-international.org/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/es-abstract/2017/SymbolDescriptiveString.js b/node_modules/es-abstract/2017/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2017/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2017/TestIntegrityLevel.js b/node_modules/es-abstract/2017/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2017/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2017/TimeClip.js b/node_modules/es-abstract/2017/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2017/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2017/TimeFromYear.js b/node_modules/es-abstract/2017/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2017/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2017/TimeWithinDay.js b/node_modules/es-abstract/2017/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2017/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2017/ToBoolean.js b/node_modules/es-abstract/2017/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2017/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2017/ToDateString.js b/node_modules/es-abstract/2017/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2017/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2017/ToIndex.js b/node_modules/es-abstract/2017/ToIndex.js deleted file mode 100644 index 7c9d746..0000000 --- a/node_modules/es-abstract/2017/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://262.ecma-international.org/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/es-abstract/2017/ToInt16.js b/node_modules/es-abstract/2017/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2017/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2017/ToInt32.js b/node_modules/es-abstract/2017/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2017/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2017/ToInt8.js b/node_modules/es-abstract/2017/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2017/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2017/ToInteger.js b/node_modules/es-abstract/2017/ToInteger.js deleted file mode 100644 index 2975818..0000000 --- a/node_modules/es-abstract/2017/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/es-abstract/2017/ToLength.js b/node_modules/es-abstract/2017/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2017/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2017/ToNumber.js b/node_modules/es-abstract/2017/ToNumber.js deleted file mode 100644 index e776bb2..0000000 --- a/node_modules/es-abstract/2017/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2017/ToObject.js b/node_modules/es-abstract/2017/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2017/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2017/ToPrimitive.js b/node_modules/es-abstract/2017/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2017/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2017/ToPropertyDescriptor.js b/node_modules/es-abstract/2017/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2017/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2017/ToPropertyKey.js b/node_modules/es-abstract/2017/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2017/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2017/ToString.js b/node_modules/es-abstract/2017/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2017/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2017/ToUint16.js b/node_modules/es-abstract/2017/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2017/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2017/ToUint32.js b/node_modules/es-abstract/2017/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2017/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2017/ToUint8.js b/node_modules/es-abstract/2017/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2017/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2017/ToUint8Clamp.js b/node_modules/es-abstract/2017/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2017/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2017/Type.js b/node_modules/es-abstract/2017/Type.js deleted file mode 100644 index 0bd1165..0000000 --- a/node_modules/es-abstract/2017/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2017/UTF16Decode.js b/node_modules/es-abstract/2017/UTF16Decode.js deleted file mode 100644 index 86927b4..0000000 --- a/node_modules/es-abstract/2017/UTF16Decode.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -// https://262.ecma-international.org/7.0/#sec-utf16decode - -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair - -module.exports = function UTF16Decode(lead, trail) { - if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { - throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); - } - // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return $fromCharCode(lead) + $fromCharCode(trail); -}; diff --git a/node_modules/es-abstract/2017/UTF16Encoding.js b/node_modules/es-abstract/2017/UTF16Encoding.js deleted file mode 100644 index f381595..0000000 --- a/node_modules/es-abstract/2017/UTF16Encoding.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var isCodePoint = require('../helpers/isCodePoint'); - -// https://262.ecma-international.org/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (!isCodePoint(cp)) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return $fromCharCode(cp); - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2017/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2017/WeekDay.js b/node_modules/es-abstract/2017/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2017/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2017/YearFromTime.js b/node_modules/es-abstract/2017/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2017/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2017/abs.js b/node_modules/es-abstract/2017/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2017/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2017/floor.js b/node_modules/es-abstract/2017/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2017/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2017/modulo.js b/node_modules/es-abstract/2017/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2017/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2017/msFromTime.js b/node_modules/es-abstract/2017/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2017/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2017/thisBooleanValue.js b/node_modules/es-abstract/2017/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2017/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2017/thisNumberValue.js b/node_modules/es-abstract/2017/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2017/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2017/thisStringValue.js b/node_modules/es-abstract/2017/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2017/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2017/thisTimeValue.js b/node_modules/es-abstract/2017/thisTimeValue.js deleted file mode 100644 index 12548fa..0000000 --- a/node_modules/es-abstract/2017/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('call-bind/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/es-abstract/2018/AbstractEqualityComparison.js b/node_modules/es-abstract/2018/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2018/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2018/AbstractRelationalComparison.js b/node_modules/es-abstract/2018/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2018/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2018/AdvanceStringIndex.js b/node_modules/es-abstract/2018/AdvanceStringIndex.js deleted file mode 100644 index 279602b..0000000 --- a/node_modules/es-abstract/2018/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/es-abstract/2018/ArrayCreate.js b/node_modules/es-abstract/2018/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2018/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2018/ArraySetLength.js b/node_modules/es-abstract/2018/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2018/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2018/ArraySpeciesCreate.js b/node_modules/es-abstract/2018/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2018/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2018/Call.js b/node_modules/es-abstract/2018/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2018/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2018/CanonicalNumericIndexString.js b/node_modules/es-abstract/2018/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2018/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2018/CompletePropertyDescriptor.js b/node_modules/es-abstract/2018/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2018/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2018/CopyDataProperties.js b/node_modules/es-abstract/2018/CopyDataProperties.js deleted file mode 100644 index b8f2802..0000000 --- a/node_modules/es-abstract/2018/CopyDataProperties.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataProperty = require('./CreateDataProperty'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - for (var i = 0; i < excludedItems.length; i += 1) { - if (!IsPropertyKey(excludedItems[i])) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var fromObj = ToObject(source); - - var sourceKeys = OwnPropertyKeys(fromObj); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(fromObj, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(fromObj, nextKey); - CreateDataProperty(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/es-abstract/2018/CreateDataProperty.js b/node_modules/es-abstract/2018/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2018/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2018/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2018/CreateHTML.js b/node_modules/es-abstract/2018/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2018/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2018/CreateIterResultObject.js b/node_modules/es-abstract/2018/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2018/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2018/CreateListFromArrayLike.js b/node_modules/es-abstract/2018/CreateListFromArrayLike.js deleted file mode 100644 index d1bb8b6..0000000 --- a/node_modules/es-abstract/2018/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2018/CreateMethodProperty.js b/node_modules/es-abstract/2018/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2018/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2018/DateFromTime.js b/node_modules/es-abstract/2018/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2018/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2018/DateString.js b/node_modules/es-abstract/2018/DateString.js deleted file mode 100644 index 939c14c..0000000 --- a/node_modules/es-abstract/2018/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://262.ecma-international.org/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/es-abstract/2018/Day.js b/node_modules/es-abstract/2018/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2018/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2018/DayFromYear.js b/node_modules/es-abstract/2018/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2018/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2018/DayWithinYear.js b/node_modules/es-abstract/2018/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2018/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2018/DaysInYear.js b/node_modules/es-abstract/2018/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2018/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2018/DefinePropertyOrThrow.js b/node_modules/es-abstract/2018/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2018/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2018/DeletePropertyOrThrow.js b/node_modules/es-abstract/2018/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2018/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js b/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js deleted file mode 100644 index 44171b9..0000000 --- a/node_modules/es-abstract/2018/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('call-bind/callBound'); - -var callBind = require('call-bind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/es-abstract/2018/FromPropertyDescriptor.js b/node_modules/es-abstract/2018/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2018/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2018/Get.js b/node_modules/es-abstract/2018/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2018/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2018/GetIterator.js b/node_modules/es-abstract/2018/GetIterator.js deleted file mode 100644 index a2d3b16..0000000 --- a/node_modules/es-abstract/2018/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/es-abstract/2018/GetMethod.js b/node_modules/es-abstract/2018/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2018/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2018/GetOwnPropertyKeys.js b/node_modules/es-abstract/2018/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2018/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2018/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2018/GetSubstitution.js b/node_modules/es-abstract/2018/GetSubstitution.js deleted file mode 100644 index a5a7a1b..0000000 --- a/node_modules/es-abstract/2018/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://262.ecma-international.org/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i + '$<'.length, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += ('<' + groupName + '>').length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2018/GetV.js b/node_modules/es-abstract/2018/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2018/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2018/HasOwnProperty.js b/node_modules/es-abstract/2018/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2018/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2018/HasProperty.js b/node_modules/es-abstract/2018/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2018/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2018/HourFromTime.js b/node_modules/es-abstract/2018/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2018/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2018/InLeapYear.js b/node_modules/es-abstract/2018/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2018/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2018/InstanceofOperator.js b/node_modules/es-abstract/2018/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2018/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2018/Invoke.js b/node_modules/es-abstract/2018/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2018/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2018/IsAccessorDescriptor.js b/node_modules/es-abstract/2018/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2018/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2018/IsArray.js b/node_modules/es-abstract/2018/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2018/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2018/IsCallable.js b/node_modules/es-abstract/2018/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2018/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2018/IsConcatSpreadable.js b/node_modules/es-abstract/2018/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2018/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2018/IsConstructor.js b/node_modules/es-abstract/2018/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2018/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2018/IsDataDescriptor.js b/node_modules/es-abstract/2018/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2018/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2018/IsExtensible.js b/node_modules/es-abstract/2018/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2018/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2018/IsGenericDescriptor.js b/node_modules/es-abstract/2018/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2018/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2018/IsInteger.js b/node_modules/es-abstract/2018/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2018/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2018/IsPromise.js b/node_modules/es-abstract/2018/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2018/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2018/IsPropertyKey.js b/node_modules/es-abstract/2018/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2018/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2018/IsRegExp.js b/node_modules/es-abstract/2018/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2018/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2018/IsStringPrefix.js b/node_modules/es-abstract/2018/IsStringPrefix.js deleted file mode 100644 index 4958544..0000000 --- a/node_modules/es-abstract/2018/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('call-bind/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/es-abstract/2018/IterableToList.js b/node_modules/es-abstract/2018/IterableToList.js deleted file mode 100644 index 6a1a6be..0000000 --- a/node_modules/es-abstract/2018/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://262.ecma-international.org/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/es-abstract/2018/IteratorClose.js b/node_modules/es-abstract/2018/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2018/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2018/IteratorComplete.js b/node_modules/es-abstract/2018/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2018/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2018/IteratorNext.js b/node_modules/es-abstract/2018/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2018/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2018/IteratorStep.js b/node_modules/es-abstract/2018/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2018/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2018/IteratorValue.js b/node_modules/es-abstract/2018/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2018/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2018/MakeDate.js b/node_modules/es-abstract/2018/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2018/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2018/MakeDay.js b/node_modules/es-abstract/2018/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2018/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2018/MakeTime.js b/node_modules/es-abstract/2018/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2018/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2018/MinFromTime.js b/node_modules/es-abstract/2018/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2018/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2018/MonthFromTime.js b/node_modules/es-abstract/2018/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2018/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2018/NumberToString.js b/node_modules/es-abstract/2018/NumberToString.js deleted file mode 100644 index b00c4bd..0000000 --- a/node_modules/es-abstract/2018/NumberToString.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-tostring-applied-to-the-number-type - -module.exports = function NumberToString(m) { - if (Type(m) !== 'Number') { - throw new $TypeError('Assertion failed: "m" must be a String'); - } - - return $String(m); -}; - diff --git a/node_modules/es-abstract/2018/ObjectCreate.js b/node_modules/es-abstract/2018/ObjectCreate.js deleted file mode 100644 index 2851a64..0000000 --- a/node_modules/es-abstract/2018/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e2a299e..0000000 --- a/node_modules/es-abstract/2018/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2018/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2018/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js deleted file mode 100644 index ba17b98..0000000 --- a/node_modules/es-abstract/2018/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/es-abstract/2018/OrdinaryHasInstance.js b/node_modules/es-abstract/2018/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2018/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2018/OrdinaryHasProperty.js b/node_modules/es-abstract/2018/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2018/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js deleted file mode 100644 index d0ff7a7..0000000 --- a/node_modules/es-abstract/2018/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/es-abstract/2018/PromiseResolve.js b/node_modules/es-abstract/2018/PromiseResolve.js deleted file mode 100644 index 6474b79..0000000 --- a/node_modules/es-abstract/2018/PromiseResolve.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBind = require('call-bind'); - -var $resolve = GetIntrinsic('%Promise.resolve%', true); -var $PromiseResolve = $resolve && callBind($resolve); - -// https://262.ecma-international.org/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/es-abstract/2018/QuoteJSONString.js b/node_modules/es-abstract/2018/QuoteJSONString.js deleted file mode 100644 index 99eea61..0000000 --- a/node_modules/es-abstract/2018/QuoteJSONString.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); - -var has = require('has'); - -// https://262.ecma-international.org/9.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else if ($charCodeAt(C, 0) < 0x20) { - product += UnicodeEscape(C); - } else { - product += C; - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2018/RegExpCreate.js b/node_modules/es-abstract/2018/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2018/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2018/RegExpExec.js b/node_modules/es-abstract/2018/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2018/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2018/RequireObjectCoercible.js b/node_modules/es-abstract/2018/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2018/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2018/SameValue.js b/node_modules/es-abstract/2018/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2018/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2018/SameValueNonNumber.js b/node_modules/es-abstract/2018/SameValueNonNumber.js deleted file mode 100644 index b6d2c4e..0000000 --- a/node_modules/es-abstract/2018/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://262.ecma-international.org/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/es-abstract/2018/SameValueZero.js b/node_modules/es-abstract/2018/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2018/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2018/SecFromTime.js b/node_modules/es-abstract/2018/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2018/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2018/Set.js b/node_modules/es-abstract/2018/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2018/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2018/SetFunctionLength.js b/node_modules/es-abstract/2018/SetFunctionLength.js deleted file mode 100644 index c1160c8..0000000 --- a/node_modules/es-abstract/2018/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (length < 0 || !IsInteger(length)) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/es-abstract/2018/SetFunctionName.js b/node_modules/es-abstract/2018/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2018/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2018/SetIntegrityLevel.js b/node_modules/es-abstract/2018/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2018/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2018/SpeciesConstructor.js b/node_modules/es-abstract/2018/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2018/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2018/SplitMatch.js b/node_modules/es-abstract/2018/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2018/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2018/StrictEqualityComparison.js b/node_modules/es-abstract/2018/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2018/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2018/StringCreate.js b/node_modules/es-abstract/2018/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2018/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2018/StringGetOwnProperty.js b/node_modules/es-abstract/2018/StringGetOwnProperty.js deleted file mode 100644 index b6f904e..0000000 --- a/node_modules/es-abstract/2018/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://262.ecma-international.org/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/es-abstract/2018/SymbolDescriptiveString.js b/node_modules/es-abstract/2018/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2018/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2018/TestIntegrityLevel.js b/node_modules/es-abstract/2018/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2018/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2018/TimeClip.js b/node_modules/es-abstract/2018/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2018/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2018/TimeFromYear.js b/node_modules/es-abstract/2018/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2018/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2018/TimeString.js b/node_modules/es-abstract/2018/TimeString.js deleted file mode 100644 index 051c472..0000000 --- a/node_modules/es-abstract/2018/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/es-abstract/2018/TimeWithinDay.js b/node_modules/es-abstract/2018/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2018/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2018/ToBoolean.js b/node_modules/es-abstract/2018/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2018/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2018/ToDateString.js b/node_modules/es-abstract/2018/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2018/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2018/ToIndex.js b/node_modules/es-abstract/2018/ToIndex.js deleted file mode 100644 index 7c9d746..0000000 --- a/node_modules/es-abstract/2018/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://262.ecma-international.org/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/es-abstract/2018/ToInt16.js b/node_modules/es-abstract/2018/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2018/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2018/ToInt32.js b/node_modules/es-abstract/2018/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2018/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2018/ToInt8.js b/node_modules/es-abstract/2018/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2018/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2018/ToInteger.js b/node_modules/es-abstract/2018/ToInteger.js deleted file mode 100644 index 2975818..0000000 --- a/node_modules/es-abstract/2018/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/es-abstract/2018/ToLength.js b/node_modules/es-abstract/2018/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2018/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2018/ToNumber.js b/node_modules/es-abstract/2018/ToNumber.js deleted file mode 100644 index e776bb2..0000000 --- a/node_modules/es-abstract/2018/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2018/ToObject.js b/node_modules/es-abstract/2018/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2018/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2018/ToPrimitive.js b/node_modules/es-abstract/2018/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2018/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2018/ToPropertyDescriptor.js b/node_modules/es-abstract/2018/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2018/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2018/ToPropertyKey.js b/node_modules/es-abstract/2018/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2018/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2018/ToString.js b/node_modules/es-abstract/2018/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2018/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2018/ToUint16.js b/node_modules/es-abstract/2018/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2018/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2018/ToUint32.js b/node_modules/es-abstract/2018/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2018/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2018/ToUint8.js b/node_modules/es-abstract/2018/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2018/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2018/ToUint8Clamp.js b/node_modules/es-abstract/2018/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2018/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2018/Type.js b/node_modules/es-abstract/2018/Type.js deleted file mode 100644 index 0bd1165..0000000 --- a/node_modules/es-abstract/2018/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2018/UTF16Decode.js b/node_modules/es-abstract/2018/UTF16Decode.js deleted file mode 100644 index 86927b4..0000000 --- a/node_modules/es-abstract/2018/UTF16Decode.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -// https://262.ecma-international.org/7.0/#sec-utf16decode - -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair - -module.exports = function UTF16Decode(lead, trail) { - if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { - throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); - } - // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return $fromCharCode(lead) + $fromCharCode(trail); -}; diff --git a/node_modules/es-abstract/2018/UTF16Encoding.js b/node_modules/es-abstract/2018/UTF16Encoding.js deleted file mode 100644 index f381595..0000000 --- a/node_modules/es-abstract/2018/UTF16Encoding.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var isCodePoint = require('../helpers/isCodePoint'); - -// https://262.ecma-international.org/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (!isCodePoint(cp)) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return $fromCharCode(cp); - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/es-abstract/2018/UnicodeEscape.js b/node_modules/es-abstract/2018/UnicodeEscape.js deleted file mode 100644 index db7163f..0000000 --- a/node_modules/es-abstract/2018/UnicodeEscape.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); - -// https://262.ecma-international.org/9.0/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + $strSlice('0000' + $toLowerCase($numberToString(n, 16)), -4); -}; diff --git a/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2018/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2018/WeekDay.js b/node_modules/es-abstract/2018/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2018/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2018/YearFromTime.js b/node_modules/es-abstract/2018/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2018/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2018/abs.js b/node_modules/es-abstract/2018/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2018/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2018/floor.js b/node_modules/es-abstract/2018/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2018/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2018/modulo.js b/node_modules/es-abstract/2018/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2018/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2018/msFromTime.js b/node_modules/es-abstract/2018/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2018/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2018/thisBooleanValue.js b/node_modules/es-abstract/2018/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2018/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2018/thisNumberValue.js b/node_modules/es-abstract/2018/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2018/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2018/thisStringValue.js b/node_modules/es-abstract/2018/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2018/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2018/thisSymbolValue.js b/node_modules/es-abstract/2018/thisSymbolValue.js deleted file mode 100644 index 91a5525..0000000 --- a/node_modules/es-abstract/2018/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/es-abstract/2018/thisTimeValue.js b/node_modules/es-abstract/2018/thisTimeValue.js deleted file mode 100644 index 12548fa..0000000 --- a/node_modules/es-abstract/2018/thisTimeValue.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $DateValueOf = require('call-bind/callBound')('Date.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-date-prototype-object - -module.exports = function thisTimeValue(value) { - return $DateValueOf(value); -}; diff --git a/node_modules/es-abstract/2019/AbstractEqualityComparison.js b/node_modules/es-abstract/2019/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2019/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2019/AbstractRelationalComparison.js b/node_modules/es-abstract/2019/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2019/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2019/AddEntriesFromIterable.js b/node_modules/es-abstract/2019/AddEntriesFromIterable.js deleted file mode 100644 index a0a5e71..0000000 --- a/node_modules/es-abstract/2019/AddEntriesFromIterable.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var inspect = require('object-inspect'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var Get = require('./Get'); -var GetIterator = require('./GetIterator'); -var IsCallable = require('./IsCallable'); -var IteratorClose = require('./IteratorClose'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var Type = require('./Type'); - -// https://262.ecma-international.org/10.0//#sec-add-entries-from-iterable - -module.exports = function AddEntriesFromIterable(target, iterable, adder) { - if (!IsCallable(adder)) { - throw new $TypeError('Assertion failed: `adder` is not callable'); - } - if (iterable == null) { - throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); - } - var iteratorRecord = GetIterator(iterable); - while (true) { // eslint-disable-line no-constant-condition - var next = IteratorStep(iteratorRecord); - if (!next) { - return target; - } - var nextItem = IteratorValue(next); - if (Type(nextItem) !== 'Object') { - var error = new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)); - return IteratorClose( - iteratorRecord, - function () { throw error; } // eslint-disable-line no-loop-func - ); - } - try { - var k = Get(nextItem, '0'); - var v = Get(nextItem, '1'); - Call(adder, target, [k, v]); - } catch (e) { - return IteratorClose( - iteratorRecord, - function () { throw e; } - ); - } - } -}; diff --git a/node_modules/es-abstract/2019/AdvanceStringIndex.js b/node_modules/es-abstract/2019/AdvanceStringIndex.js deleted file mode 100644 index 279602b..0000000 --- a/node_modules/es-abstract/2019/AdvanceStringIndex.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $charCodeAt = require('call-bind/callBound')('String.prototype.charCodeAt'); - -// https://ecma-international.org/ecma-262/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - - var first = $charCodeAt(S, index); - if (!isLeadingSurrogate(first)) { - return index + 1; - } - - var second = $charCodeAt(S, index + 1); - if (!isTrailingSurrogate(second)) { - return index + 1; - } - - return index + 2; -}; diff --git a/node_modules/es-abstract/2019/ArrayCreate.js b/node_modules/es-abstract/2019/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2019/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2019/ArraySetLength.js b/node_modules/es-abstract/2019/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2019/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2019/ArraySpeciesCreate.js b/node_modules/es-abstract/2019/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2019/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2019/Call.js b/node_modules/es-abstract/2019/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2019/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2019/CanonicalNumericIndexString.js b/node_modules/es-abstract/2019/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2019/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2019/CompletePropertyDescriptor.js b/node_modules/es-abstract/2019/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2019/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2019/CopyDataProperties.js b/node_modules/es-abstract/2019/CopyDataProperties.js deleted file mode 100644 index b8f2802..0000000 --- a/node_modules/es-abstract/2019/CopyDataProperties.js +++ /dev/null @@ -1,68 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataProperty = require('./CreateDataProperty'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - for (var i = 0; i < excludedItems.length; i += 1) { - if (!IsPropertyKey(excludedItems[i])) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var fromObj = ToObject(source); - - var sourceKeys = OwnPropertyKeys(fromObj); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(fromObj, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(fromObj, nextKey); - CreateDataProperty(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/es-abstract/2019/CreateDataProperty.js b/node_modules/es-abstract/2019/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2019/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2019/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2019/CreateHTML.js b/node_modules/es-abstract/2019/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2019/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2019/CreateIterResultObject.js b/node_modules/es-abstract/2019/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2019/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2019/CreateListFromArrayLike.js b/node_modules/es-abstract/2019/CreateListFromArrayLike.js deleted file mode 100644 index d1bb8b6..0000000 --- a/node_modules/es-abstract/2019/CreateListFromArrayLike.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createlistfromarraylike -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = ToLength(Get(obj, 'length')); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2019/CreateMethodProperty.js b/node_modules/es-abstract/2019/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2019/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2019/DateFromTime.js b/node_modules/es-abstract/2019/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2019/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2019/DateString.js b/node_modules/es-abstract/2019/DateString.js deleted file mode 100644 index 939c14c..0000000 --- a/node_modules/es-abstract/2019/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://262.ecma-international.org/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/es-abstract/2019/Day.js b/node_modules/es-abstract/2019/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2019/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2019/DayFromYear.js b/node_modules/es-abstract/2019/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2019/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2019/DayWithinYear.js b/node_modules/es-abstract/2019/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2019/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2019/DaysInYear.js b/node_modules/es-abstract/2019/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2019/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2019/DefinePropertyOrThrow.js b/node_modules/es-abstract/2019/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2019/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2019/DeletePropertyOrThrow.js b/node_modules/es-abstract/2019/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2019/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js b/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js deleted file mode 100644 index 44171b9..0000000 --- a/node_modules/es-abstract/2019/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('call-bind/callBound'); - -var callBind = require('call-bind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/es-abstract/2019/FlattenIntoArray.js b/node_modules/es-abstract/2019/FlattenIntoArray.js deleted file mode 100644 index ffe5fcd..0000000 --- a/node_modules/es-abstract/2019/FlattenIntoArray.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var Call = require('./Call'); -var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); -var Get = require('./Get'); -var HasProperty = require('./HasProperty'); -var IsArray = require('./IsArray'); -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/10.0/#sec-flattenintoarray - -// eslint-disable-next-line max-params -module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { - var mapperFunction; - if (arguments.length > 5) { - mapperFunction = arguments[5]; - } - - var targetIndex = start; - var sourceIndex = 0; - while (sourceIndex < sourceLen) { - var P = ToString(sourceIndex); - var exists = HasProperty(source, P); - if (exists === true) { - var element = Get(source, P); - if (typeof mapperFunction !== 'undefined') { - if (arguments.length <= 6) { - throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); - } - element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); - } - var shouldFlatten = false; - if (depth > 0) { - shouldFlatten = IsArray(element); - } - if (shouldFlatten) { - var elementLen = ToLength(Get(element, 'length')); - targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); - } else { - if (targetIndex >= MAX_SAFE_INTEGER) { - throw new $TypeError('index too large'); - } - CreateDataPropertyOrThrow(target, ToString(targetIndex), element); - targetIndex += 1; - } - } - sourceIndex += 1; - } - - return targetIndex; -}; diff --git a/node_modules/es-abstract/2019/FromPropertyDescriptor.js b/node_modules/es-abstract/2019/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2019/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2019/Get.js b/node_modules/es-abstract/2019/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2019/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2019/GetIterator.js b/node_modules/es-abstract/2019/GetIterator.js deleted file mode 100644 index a2d3b16..0000000 --- a/node_modules/es-abstract/2019/GetIterator.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getiterator - -module.exports = function GetIterator(obj, method) { - var actualMethod = method; - if (arguments.length < 2) { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; -}; diff --git a/node_modules/es-abstract/2019/GetMethod.js b/node_modules/es-abstract/2019/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2019/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2019/GetOwnPropertyKeys.js b/node_modules/es-abstract/2019/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2019/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2019/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2019/GetSubstitution.js b/node_modules/es-abstract/2019/GetSubstitution.js deleted file mode 100644 index a5a7a1b..0000000 --- a/node_modules/es-abstract/2019/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://262.ecma-international.org/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i + '$<'.length, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += ('<' + groupName + '>').length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2019/GetV.js b/node_modules/es-abstract/2019/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2019/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2019/HasOwnProperty.js b/node_modules/es-abstract/2019/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2019/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2019/HasProperty.js b/node_modules/es-abstract/2019/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2019/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2019/HourFromTime.js b/node_modules/es-abstract/2019/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2019/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2019/InLeapYear.js b/node_modules/es-abstract/2019/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2019/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2019/InstanceofOperator.js b/node_modules/es-abstract/2019/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2019/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2019/Invoke.js b/node_modules/es-abstract/2019/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2019/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2019/IsAccessorDescriptor.js b/node_modules/es-abstract/2019/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2019/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2019/IsArray.js b/node_modules/es-abstract/2019/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2019/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2019/IsCallable.js b/node_modules/es-abstract/2019/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2019/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2019/IsConcatSpreadable.js b/node_modules/es-abstract/2019/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2019/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2019/IsConstructor.js b/node_modules/es-abstract/2019/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2019/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2019/IsDataDescriptor.js b/node_modules/es-abstract/2019/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2019/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2019/IsExtensible.js b/node_modules/es-abstract/2019/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2019/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2019/IsGenericDescriptor.js b/node_modules/es-abstract/2019/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2019/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2019/IsInteger.js b/node_modules/es-abstract/2019/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2019/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2019/IsPromise.js b/node_modules/es-abstract/2019/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2019/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2019/IsPropertyKey.js b/node_modules/es-abstract/2019/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2019/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2019/IsRegExp.js b/node_modules/es-abstract/2019/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2019/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2019/IsStringPrefix.js b/node_modules/es-abstract/2019/IsStringPrefix.js deleted file mode 100644 index 4958544..0000000 --- a/node_modules/es-abstract/2019/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('call-bind/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/es-abstract/2019/IterableToList.js b/node_modules/es-abstract/2019/IterableToList.js deleted file mode 100644 index 6a1a6be..0000000 --- a/node_modules/es-abstract/2019/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://262.ecma-international.org/8.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/es-abstract/2019/IteratorClose.js b/node_modules/es-abstract/2019/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2019/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2019/IteratorComplete.js b/node_modules/es-abstract/2019/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2019/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2019/IteratorNext.js b/node_modules/es-abstract/2019/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2019/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2019/IteratorStep.js b/node_modules/es-abstract/2019/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2019/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2019/IteratorValue.js b/node_modules/es-abstract/2019/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2019/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2019/MakeDate.js b/node_modules/es-abstract/2019/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2019/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2019/MakeDay.js b/node_modules/es-abstract/2019/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2019/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2019/MakeTime.js b/node_modules/es-abstract/2019/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2019/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2019/MinFromTime.js b/node_modules/es-abstract/2019/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2019/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2019/MonthFromTime.js b/node_modules/es-abstract/2019/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2019/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2019/NumberToString.js b/node_modules/es-abstract/2019/NumberToString.js deleted file mode 100644 index b00c4bd..0000000 --- a/node_modules/es-abstract/2019/NumberToString.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-tostring-applied-to-the-number-type - -module.exports = function NumberToString(m) { - if (Type(m) !== 'Number') { - throw new $TypeError('Assertion failed: "m" must be a String'); - } - - return $String(m); -}; - diff --git a/node_modules/es-abstract/2019/ObjectCreate.js b/node_modules/es-abstract/2019/ObjectCreate.js deleted file mode 100644 index 2851a64..0000000 --- a/node_modules/es-abstract/2019/ObjectCreate.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://ecma-international.org/ecma-262/6.0/#sec-objectcreate - -module.exports = function ObjectCreate(proto, internalSlotsList) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var slots = arguments.length < 2 ? [] : internalSlotsList; - if (slots.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - } - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js deleted file mode 100644 index e2a299e..0000000 --- a/node_modules/es-abstract/2019/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var ObjectCreate = require('./ObjectCreate'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return ObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2019/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2019/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js deleted file mode 100644 index ba17b98..0000000 --- a/node_modules/es-abstract/2019/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/es-abstract/2019/OrdinaryHasInstance.js b/node_modules/es-abstract/2019/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2019/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2019/OrdinaryHasProperty.js b/node_modules/es-abstract/2019/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2019/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js deleted file mode 100644 index d0ff7a7..0000000 --- a/node_modules/es-abstract/2019/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/es-abstract/2019/PromiseResolve.js b/node_modules/es-abstract/2019/PromiseResolve.js deleted file mode 100644 index 6474b79..0000000 --- a/node_modules/es-abstract/2019/PromiseResolve.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBind = require('call-bind'); - -var $resolve = GetIntrinsic('%Promise.resolve%', true); -var $PromiseResolve = $resolve && callBind($resolve); - -// https://262.ecma-international.org/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/es-abstract/2019/QuoteJSONString.js b/node_modules/es-abstract/2019/QuoteJSONString.js deleted file mode 100644 index 350fd51..0000000 --- a/node_modules/es-abstract/2019/QuoteJSONString.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $strSplit = callBound('String.prototype.split'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); -var UTF16Encoding = require('./UTF16Encoding'); - -var has = require('has'); - -// https://262.ecma-international.org/10.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach($strSplit(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20 || isLeadingSurrogate(C) || isTrailingSurrogate(C)) { - product += UnicodeEscape(C); - } else { - product += UTF16Encoding(cCharCode); - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2019/RegExpCreate.js b/node_modules/es-abstract/2019/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2019/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2019/RegExpExec.js b/node_modules/es-abstract/2019/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2019/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2019/RequireObjectCoercible.js b/node_modules/es-abstract/2019/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2019/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2019/SameValue.js b/node_modules/es-abstract/2019/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2019/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2019/SameValueNonNumber.js b/node_modules/es-abstract/2019/SameValueNonNumber.js deleted file mode 100644 index b6d2c4e..0000000 --- a/node_modules/es-abstract/2019/SameValueNonNumber.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); - -// https://262.ecma-international.org/7.0/#sec-samevaluenonnumber - -module.exports = function SameValueNonNumber(x, y) { - if (typeof x === 'number' || typeof x !== typeof y) { - throw new $TypeError('SameValueNonNumber requires two non-number values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/es-abstract/2019/SameValueZero.js b/node_modules/es-abstract/2019/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2019/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2019/SecFromTime.js b/node_modules/es-abstract/2019/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2019/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2019/Set.js b/node_modules/es-abstract/2019/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2019/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2019/SetFunctionLength.js b/node_modules/es-abstract/2019/SetFunctionLength.js deleted file mode 100644 index c1160c8..0000000 --- a/node_modules/es-abstract/2019/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (length < 0 || !IsInteger(length)) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/es-abstract/2019/SetFunctionName.js b/node_modules/es-abstract/2019/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2019/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2019/SetIntegrityLevel.js b/node_modules/es-abstract/2019/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2019/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2019/SpeciesConstructor.js b/node_modules/es-abstract/2019/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2019/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2019/SplitMatch.js b/node_modules/es-abstract/2019/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2019/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2019/StrictEqualityComparison.js b/node_modules/es-abstract/2019/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2019/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2019/StringCreate.js b/node_modules/es-abstract/2019/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2019/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2019/StringGetOwnProperty.js b/node_modules/es-abstract/2019/StringGetOwnProperty.js deleted file mode 100644 index b6f904e..0000000 --- a/node_modules/es-abstract/2019/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://262.ecma-international.org/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/es-abstract/2019/SymbolDescriptiveString.js b/node_modules/es-abstract/2019/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2019/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2019/TestIntegrityLevel.js b/node_modules/es-abstract/2019/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2019/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2019/TimeClip.js b/node_modules/es-abstract/2019/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2019/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2019/TimeFromYear.js b/node_modules/es-abstract/2019/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2019/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2019/TimeString.js b/node_modules/es-abstract/2019/TimeString.js deleted file mode 100644 index 051c472..0000000 --- a/node_modules/es-abstract/2019/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/es-abstract/2019/TimeWithinDay.js b/node_modules/es-abstract/2019/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2019/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2019/ToBoolean.js b/node_modules/es-abstract/2019/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2019/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2019/ToDateString.js b/node_modules/es-abstract/2019/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2019/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2019/ToIndex.js b/node_modules/es-abstract/2019/ToIndex.js deleted file mode 100644 index 7c9d746..0000000 --- a/node_modules/es-abstract/2019/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValueZero = require('./SameValueZero'); - -// https://262.ecma-international.org/8.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValueZero(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/es-abstract/2019/ToInt16.js b/node_modules/es-abstract/2019/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2019/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2019/ToInt32.js b/node_modules/es-abstract/2019/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2019/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2019/ToInt8.js b/node_modules/es-abstract/2019/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2019/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2019/ToInteger.js b/node_modules/es-abstract/2019/ToInteger.js deleted file mode 100644 index 2975818..0000000 --- a/node_modules/es-abstract/2019/ToInteger.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - return ES5ToInteger(number); -}; diff --git a/node_modules/es-abstract/2019/ToLength.js b/node_modules/es-abstract/2019/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2019/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2019/ToNumber.js b/node_modules/es-abstract/2019/ToNumber.js deleted file mode 100644 index e776bb2..0000000 --- a/node_modules/es-abstract/2019/ToNumber.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2019/ToObject.js b/node_modules/es-abstract/2019/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2019/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2019/ToPrimitive.js b/node_modules/es-abstract/2019/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2019/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2019/ToPropertyDescriptor.js b/node_modules/es-abstract/2019/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2019/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2019/ToPropertyKey.js b/node_modules/es-abstract/2019/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2019/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2019/ToString.js b/node_modules/es-abstract/2019/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2019/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2019/ToUint16.js b/node_modules/es-abstract/2019/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2019/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2019/ToUint32.js b/node_modules/es-abstract/2019/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2019/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2019/ToUint8.js b/node_modules/es-abstract/2019/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2019/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2019/ToUint8Clamp.js b/node_modules/es-abstract/2019/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2019/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2019/TrimString.js b/node_modules/es-abstract/2019/TrimString.js deleted file mode 100644 index 113dcf8..0000000 --- a/node_modules/es-abstract/2019/TrimString.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var trimStart = require('string.prototype.trimstart'); -var trimEnd = require('string.prototype.trimend'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/10.0/#sec-trimstring - -module.exports = function TrimString(string, where) { - var str = RequireObjectCoercible(string); - var S = ToString(str); - var T; - if (where === 'start') { - T = trimStart(S); - } else if (where === 'end') { - T = trimEnd(S); - } else if (where === 'start+end') { - T = trimStart(trimEnd(S)); - } else { - throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); - } - return T; -}; diff --git a/node_modules/es-abstract/2019/Type.js b/node_modules/es-abstract/2019/Type.js deleted file mode 100644 index 0bd1165..0000000 --- a/node_modules/es-abstract/2019/Type.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2019/UTF16Decode.js b/node_modules/es-abstract/2019/UTF16Decode.js deleted file mode 100644 index 86927b4..0000000 --- a/node_modules/es-abstract/2019/UTF16Decode.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -// https://262.ecma-international.org/7.0/#sec-utf16decode - -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair - -module.exports = function UTF16Decode(lead, trail) { - if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { - throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); - } - // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return $fromCharCode(lead) + $fromCharCode(trail); -}; diff --git a/node_modules/es-abstract/2019/UTF16Encoding.js b/node_modules/es-abstract/2019/UTF16Encoding.js deleted file mode 100644 index f381595..0000000 --- a/node_modules/es-abstract/2019/UTF16Encoding.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var isCodePoint = require('../helpers/isCodePoint'); - -// https://262.ecma-international.org/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (!isCodePoint(cp)) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return $fromCharCode(cp); - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/es-abstract/2019/UnicodeEscape.js b/node_modules/es-abstract/2019/UnicodeEscape.js deleted file mode 100644 index db7163f..0000000 --- a/node_modules/es-abstract/2019/UnicodeEscape.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); -var $strSlice = callBound('String.prototype.slice'); - -// https://262.ecma-international.org/9.0/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + $strSlice('0000' + $toLowerCase($numberToString(n, 16)), -4); -}; diff --git a/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2019/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2019/WeekDay.js b/node_modules/es-abstract/2019/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2019/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2019/YearFromTime.js b/node_modules/es-abstract/2019/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2019/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2019/abs.js b/node_modules/es-abstract/2019/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2019/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2019/floor.js b/node_modules/es-abstract/2019/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2019/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2019/modulo.js b/node_modules/es-abstract/2019/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2019/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2019/msFromTime.js b/node_modules/es-abstract/2019/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2019/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2019/thisBooleanValue.js b/node_modules/es-abstract/2019/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2019/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2019/thisNumberValue.js b/node_modules/es-abstract/2019/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2019/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2019/thisStringValue.js b/node_modules/es-abstract/2019/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2019/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2019/thisSymbolValue.js b/node_modules/es-abstract/2019/thisSymbolValue.js deleted file mode 100644 index 91a5525..0000000 --- a/node_modules/es-abstract/2019/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/es-abstract/2019/thisTimeValue.js b/node_modules/es-abstract/2019/thisTimeValue.js deleted file mode 100644 index a9a47ac..0000000 --- a/node_modules/es-abstract/2019/thisTimeValue.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../2018/thisTimeValue'); diff --git a/node_modules/es-abstract/2020/AbstractEqualityComparison.js b/node_modules/es-abstract/2020/AbstractEqualityComparison.js deleted file mode 100644 index c776194..0000000 --- a/node_modules/es-abstract/2020/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-equality-comparison - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number' || xType === 'Symbol') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number' || yType === 'Symbol')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/2020/AbstractRelationalComparison.js b/node_modules/es-abstract/2020/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/2020/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/2020/AddEntriesFromIterable.js b/node_modules/es-abstract/2020/AddEntriesFromIterable.js deleted file mode 100644 index a0a5e71..0000000 --- a/node_modules/es-abstract/2020/AddEntriesFromIterable.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var inspect = require('object-inspect'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var Get = require('./Get'); -var GetIterator = require('./GetIterator'); -var IsCallable = require('./IsCallable'); -var IteratorClose = require('./IteratorClose'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); -var Type = require('./Type'); - -// https://262.ecma-international.org/10.0//#sec-add-entries-from-iterable - -module.exports = function AddEntriesFromIterable(target, iterable, adder) { - if (!IsCallable(adder)) { - throw new $TypeError('Assertion failed: `adder` is not callable'); - } - if (iterable == null) { - throw new $TypeError('Assertion failed: `iterable` is present, and not nullish'); - } - var iteratorRecord = GetIterator(iterable); - while (true) { // eslint-disable-line no-constant-condition - var next = IteratorStep(iteratorRecord); - if (!next) { - return target; - } - var nextItem = IteratorValue(next); - if (Type(nextItem) !== 'Object') { - var error = new $TypeError('iterator next must return an Object, got ' + inspect(nextItem)); - return IteratorClose( - iteratorRecord, - function () { throw error; } // eslint-disable-line no-loop-func - ); - } - try { - var k = Get(nextItem, '0'); - var v = Get(nextItem, '1'); - Call(adder, target, [k, v]); - } catch (e) { - return IteratorClose( - iteratorRecord, - function () { throw e; } - ); - } - } -}; diff --git a/node_modules/es-abstract/2020/AdvanceStringIndex.js b/node_modules/es-abstract/2020/AdvanceStringIndex.js deleted file mode 100644 index 0e62c4a..0000000 --- a/node_modules/es-abstract/2020/AdvanceStringIndex.js +++ /dev/null @@ -1,34 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var CodePointAt = require('./CodePointAt'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://262.ecma-international.org/6.0/#sec-advancestringindex - -module.exports = function AdvanceStringIndex(S, index, unicode) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(index) || index < 0 || index > MAX_SAFE_INTEGER) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0 and <= 2**53'); - } - if (Type(unicode) !== 'Boolean') { - throw new $TypeError('Assertion failed: `unicode` must be a Boolean'); - } - if (!unicode) { - return index + 1; - } - var length = S.length; - if ((index + 1) >= length) { - return index + 1; - } - var cp = CodePointAt(S, index); - return index + cp['[[CodeUnitCount]]']; -}; diff --git a/node_modules/es-abstract/2020/ArrayCreate.js b/node_modules/es-abstract/2020/ArrayCreate.js deleted file mode 100644 index 4d20e2e..0000000 --- a/node_modules/es-abstract/2020/ArrayCreate.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ArrayPrototype = GetIntrinsic('%Array.prototype%'); -var $RangeError = GetIntrinsic('%RangeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); - -var MAX_ARRAY_LENGTH = Math.pow(2, 32) - 1; - -var $setProto = GetIntrinsic('%Object.setPrototypeOf%', true) || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayPrototype - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraycreate - -module.exports = function ArrayCreate(length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: `length` must be an integer Number >= 0'); - } - if (length > MAX_ARRAY_LENGTH) { - throw new $RangeError('length is greater than (2**32 - 1)'); - } - var proto = arguments.length > 1 ? arguments[1] : $ArrayPrototype; - var A = []; // steps 5 - 7, and 9 - if (proto !== $ArrayPrototype) { // step 8 - if (!$setProto) { - throw new $SyntaxError('ArrayCreate: a `proto` argument that is not `Array.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - $setProto(A, proto); - } - if (length !== 0) { // bypasses the need for step 2 - A.length = length; - } - /* step 10, the above as a shortcut for the below - OrdinaryDefineOwnProperty(A, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': true - }); - */ - return A; -}; diff --git a/node_modules/es-abstract/2020/ArraySetLength.js b/node_modules/es-abstract/2020/ArraySetLength.js deleted file mode 100644 index 08db9c2..0000000 --- a/node_modules/es-abstract/2020/ArraySetLength.js +++ /dev/null @@ -1,85 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var assign = require('object.assign'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsArray = require('./IsArray'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var OrdinaryDefineOwnProperty = require('./OrdinaryDefineOwnProperty'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arraysetlength - -// eslint-disable-next-line max-statements, max-lines-per-function -module.exports = function ArraySetLength(A, Desc) { - if (!IsArray(A)) { - throw new $TypeError('Assertion failed: A must be an Array'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!('[[Value]]' in Desc)) { - return OrdinaryDefineOwnProperty(A, 'length', Desc); - } - var newLenDesc = assign({}, Desc); - var newLen = ToUint32(Desc['[[Value]]']); - var numberLen = ToNumber(Desc['[[Value]]']); - if (newLen !== numberLen) { - throw new $RangeError('Invalid array length'); - } - newLenDesc['[[Value]]'] = newLen; - var oldLenDesc = OrdinaryGetOwnProperty(A, 'length'); - if (!IsDataDescriptor(oldLenDesc)) { - throw new $TypeError('Assertion failed: an array had a non-data descriptor on `length`'); - } - var oldLen = oldLenDesc['[[Value]]']; - if (newLen >= oldLen) { - return OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - } - if (!oldLenDesc['[[Writable]]']) { - return false; - } - var newWritable; - if (!('[[Writable]]' in newLenDesc) || newLenDesc['[[Writable]]']) { - newWritable = true; - } else { - newWritable = false; - newLenDesc['[[Writable]]'] = true; - } - var succeeded = OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - if (!succeeded) { - return false; - } - while (newLen < oldLen) { - oldLen -= 1; - // eslint-disable-next-line no-param-reassign - var deleteSucceeded = delete A[ToString(oldLen)]; - if (!deleteSucceeded) { - newLenDesc['[[Value]]'] = oldLen + 1; - if (!newWritable) { - newLenDesc['[[Writable]]'] = false; - OrdinaryDefineOwnProperty(A, 'length', newLenDesc); - return false; - } - } - } - if (!newWritable) { - return OrdinaryDefineOwnProperty(A, 'length', { '[[Writable]]': false }); - } - return true; -}; diff --git a/node_modules/es-abstract/2020/ArraySpeciesCreate.js b/node_modules/es-abstract/2020/ArraySpeciesCreate.js deleted file mode 100644 index 26d63b5..0000000 --- a/node_modules/es-abstract/2020/ArraySpeciesCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsConstructor = require('./IsConstructor'); -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-arrayspeciescreate - -module.exports = function ArraySpeciesCreate(originalArray, length) { - if (!IsInteger(length) || length < 0) { - throw new $TypeError('Assertion failed: length must be an integer >= 0'); - } - var len = length === 0 ? 0 : length; - var C; - var isArray = IsArray(originalArray); - if (isArray) { - C = Get(originalArray, 'constructor'); - // TODO: figure out how to make a cross-realm normal Array, a same-realm Array - // if (IsConstructor(C)) { - // if C is another realm's Array, C = undefined - // Object.getPrototypeOf(Object.getPrototypeOf(Object.getPrototypeOf(Array))) === null ? - // } - if ($species && Type(C) === 'Object') { - C = Get(C, $species); - if (C === null) { - C = void 0; - } - } - } - if (typeof C === 'undefined') { - return $Array(len); - } - if (!IsConstructor(C)) { - throw new $TypeError('C must be a constructor'); - } - return new C(len); // Construct(C, len); -}; - diff --git a/node_modules/es-abstract/2020/BigInt/add.js b/node_modules/es-abstract/2020/BigInt/add.js deleted file mode 100644 index 22b5db4..0000000 --- a/node_modules/es-abstract/2020/BigInt/add.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-add - -module.exports = function BigIntAdd(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - // shortcut for the actual spec mechanics - return x + y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/bitwiseAND.js b/node_modules/es-abstract/2020/BigInt/bitwiseAND.js deleted file mode 100644 index 83cd2c3..0000000 --- a/node_modules/es-abstract/2020/BigInt/bitwiseAND.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var BigIntBitwiseOp = require('../BigIntBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseAND - -module.exports = function BigIntBitwiseAND(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - return BigIntBitwiseOp('&', x, y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/bitwiseNOT.js b/node_modules/es-abstract/2020/BigInt/bitwiseNOT.js deleted file mode 100644 index 9a444df..0000000 --- a/node_modules/es-abstract/2020/BigInt/bitwiseNOT.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseNOT - -module.exports = function BigIntBitwiseNOT(x) { - if (Type(x) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); - } - return -x - $BigInt(1); -}; diff --git a/node_modules/es-abstract/2020/BigInt/bitwiseOR.js b/node_modules/es-abstract/2020/BigInt/bitwiseOR.js deleted file mode 100644 index 3c1b571..0000000 --- a/node_modules/es-abstract/2020/BigInt/bitwiseOR.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var BigIntBitwiseOp = require('../BigIntBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseOR - -module.exports = function BigIntBitwiseOR(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - return BigIntBitwiseOp('|', x, y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/bitwiseXOR.js b/node_modules/es-abstract/2020/BigInt/bitwiseXOR.js deleted file mode 100644 index 45f8217..0000000 --- a/node_modules/es-abstract/2020/BigInt/bitwiseXOR.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var BigIntBitwiseOp = require('../BigIntBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseXOR - -module.exports = function BigIntBitwiseXOR(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - return BigIntBitwiseOp('^', x, y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/divide.js b/node_modules/es-abstract/2020/BigInt/divide.js deleted file mode 100644 index 5706e7d..0000000 --- a/node_modules/es-abstract/2020/BigInt/divide.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-divide - -module.exports = function BigIntDivide(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - if (y === $BigInt(0)) { - throw new $RangeError('Division by zero'); - } - // shortcut for the actual spec mechanics - return x / y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/equal.js b/node_modules/es-abstract/2020/BigInt/equal.js deleted file mode 100644 index a28826d..0000000 --- a/node_modules/es-abstract/2020/BigInt/equal.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-equal - -module.exports = function BigIntEqual(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - // shortcut for the actual spec mechanics - return x === y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/exponentiate.js b/node_modules/es-abstract/2020/BigInt/exponentiate.js deleted file mode 100644 index 2365838..0000000 --- a/node_modules/es-abstract/2020/BigInt/exponentiate.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-exponentiate - -module.exports = function BigIntExponentiate(base, exponent) { - if (Type(base) !== 'BigInt' || Type(exponent) !== 'BigInt') { - throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be BigInts'); - } - if (exponent < $BigInt(0)) { - throw new $RangeError('Exponent must be positive'); - } - if (/* base === $BigInt(0) && */ exponent === $BigInt(0)) { - return $BigInt(1); - } - - var square = base; - var remaining = exponent; - while (remaining > $BigInt(0)) { - square += exponent; - --remaining; // eslint-disable-line no-plusplus - } - return square; -}; diff --git a/node_modules/es-abstract/2020/BigInt/index.js b/node_modules/es-abstract/2020/BigInt/index.js deleted file mode 100644 index 63ec52d..0000000 --- a/node_modules/es-abstract/2020/BigInt/index.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var add = require('./add'); -var bitwiseAND = require('./bitwiseAND'); -var bitwiseNOT = require('./bitwiseNOT'); -var bitwiseOR = require('./bitwiseOR'); -var bitwiseXOR = require('./bitwiseXOR'); -var divide = require('./divide'); -var equal = require('./equal'); -var exponentiate = require('./exponentiate'); -var leftShift = require('./leftShift'); -var lessThan = require('./lessThan'); -var multiply = require('./multiply'); -var remainder = require('./remainder'); -var sameValue = require('./sameValue'); -var sameValueZero = require('./sameValueZero'); -var signedRightShift = require('./signedRightShift'); -var subtract = require('./subtract'); -var toString = require('./toString'); -var unaryMinus = require('./unaryMinus'); -var unsignedRightShift = require('./unsignedRightShift'); - -module.exports = { - add: add, - bitwiseAND: bitwiseAND, - bitwiseNOT: bitwiseNOT, - bitwiseOR: bitwiseOR, - bitwiseXOR: bitwiseXOR, - divide: divide, - equal: equal, - exponentiate: exponentiate, - leftShift: leftShift, - lessThan: lessThan, - multiply: multiply, - remainder: remainder, - sameValue: sameValue, - sameValueZero: sameValueZero, - signedRightShift: signedRightShift, - subtract: subtract, - toString: toString, - unaryMinus: unaryMinus, - unsignedRightShift: unsignedRightShift -}; diff --git a/node_modules/es-abstract/2020/BigInt/leftShift.js b/node_modules/es-abstract/2020/BigInt/leftShift.js deleted file mode 100644 index d2a5702..0000000 --- a/node_modules/es-abstract/2020/BigInt/leftShift.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-leftShift - -module.exports = function BigIntLeftShift(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - // shortcut for the actual spec mechanics - return x << y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/lessThan.js b/node_modules/es-abstract/2020/BigInt/lessThan.js deleted file mode 100644 index 0b3cd6b..0000000 --- a/node_modules/es-abstract/2020/BigInt/lessThan.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-lessThan - -module.exports = function BigIntLessThan(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - // shortcut for the actual spec mechanics - return x < y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/multiply.js b/node_modules/es-abstract/2020/BigInt/multiply.js deleted file mode 100644 index 6e5d56c..0000000 --- a/node_modules/es-abstract/2020/BigInt/multiply.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-multiply - -module.exports = function BigIntMultiply(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - // shortcut for the actual spec mechanics - return x * y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/remainder.js b/node_modules/es-abstract/2020/BigInt/remainder.js deleted file mode 100644 index d2dc678..0000000 --- a/node_modules/es-abstract/2020/BigInt/remainder.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -var zero = $BigInt && $BigInt(0); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-remainder - -module.exports = function BigIntRemainder(n, d) { - if (Type(n) !== 'BigInt' || Type(d) !== 'BigInt') { - throw new $TypeError('Assertion failed: `n` and `d` arguments must be BigInts'); - } - - if (d === zero) { - throw new $RangeError('Division by zero'); - } - - if (n === zero) { - return zero; - } - - // shortcut for the actual spec mechanics - return n % d; -}; diff --git a/node_modules/es-abstract/2020/BigInt/sameValue.js b/node_modules/es-abstract/2020/BigInt/sameValue.js deleted file mode 100644 index 63ff063..0000000 --- a/node_modules/es-abstract/2020/BigInt/sameValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); -var BigIntEqual = require('./equal'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValue - -module.exports = function BigIntSameValue(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - return BigIntEqual(x, y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/sameValueZero.js b/node_modules/es-abstract/2020/BigInt/sameValueZero.js deleted file mode 100644 index 39f262c..0000000 --- a/node_modules/es-abstract/2020/BigInt/sameValueZero.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); -var BigIntEqual = require('./equal'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValueZero - -module.exports = function BigIntSameValueZero(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - return BigIntEqual(x, y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/signedRightShift.js b/node_modules/es-abstract/2020/BigInt/signedRightShift.js deleted file mode 100644 index f63c642..0000000 --- a/node_modules/es-abstract/2020/BigInt/signedRightShift.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); -var BigIntLeftShift = require('./leftShift'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-signedRightShift - -module.exports = function BigIntSignedRightShift(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - return BigIntLeftShift(x, -y); -}; diff --git a/node_modules/es-abstract/2020/BigInt/subtract.js b/node_modules/es-abstract/2020/BigInt/subtract.js deleted file mode 100644 index 0490784..0000000 --- a/node_modules/es-abstract/2020/BigInt/subtract.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-subtract - -module.exports = function BigIntSubtract(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - // shortcut for the actual spec mechanics - return x - y; -}; diff --git a/node_modules/es-abstract/2020/BigInt/toString.js b/node_modules/es-abstract/2020/BigInt/toString.js deleted file mode 100644 index 858d955..0000000 --- a/node_modules/es-abstract/2020/BigInt/toString.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-tostring - -module.exports = function BigIntToString(x) { - if (Type(x) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` must be a BigInt'); - } - - return $String(x); -}; diff --git a/node_modules/es-abstract/2020/BigInt/unaryMinus.js b/node_modules/es-abstract/2020/BigInt/unaryMinus.js deleted file mode 100644 index ee0f7ef..0000000 --- a/node_modules/es-abstract/2020/BigInt/unaryMinus.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -var zero = $BigInt && $BigInt(0); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unaryMinus - -module.exports = function BigIntUnaryMinus(x) { - if (Type(x) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` argument must be a BigInt'); - } - - if (x === zero) { - return zero; - } - - return -x; -}; diff --git a/node_modules/es-abstract/2020/BigInt/unsignedRightShift.js b/node_modules/es-abstract/2020/BigInt/unsignedRightShift.js deleted file mode 100644 index 7ad94f7..0000000 --- a/node_modules/es-abstract/2020/BigInt/unsignedRightShift.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unsignedRightShift - -module.exports = function BigIntUnsignedRightShift(x, y) { - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be BigInts'); - } - - throw new $TypeError('BigInts have no unsigned right shift, use >> instead'); -}; diff --git a/node_modules/es-abstract/2020/BigIntBitwiseOp.js b/node_modules/es-abstract/2020/BigIntBitwiseOp.js deleted file mode 100644 index 1af4cad..0000000 --- a/node_modules/es-abstract/2020/BigIntBitwiseOp.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -// var $BigInt = GetIntrinsic('%BigInt%', true); -// var $pow = GetIntrinsic('%Math.pow%'); - -// var BinaryAnd = require('./BinaryAnd'); -// var BinaryOr = require('./BinaryOr'); -// var BinaryXor = require('./BinaryXor'); -var Type = require('./Type'); -// var modulo = require('./modulo'); - -// var zero = $BigInt && $BigInt(0); -// var negOne = $BigInt && $BigInt(-1); -// var two = $BigInt && $BigInt(2); - -// https://262.ecma-international.org/11.0/#sec-bigintbitwiseop - -module.exports = function BigIntBitwiseOp(op, x, y) { - if (op !== '&' && op !== '|' && op !== '^') { - throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); - } - if (Type(x) !== 'BigInt' || Type(y) !== 'BigInt') { - throw new $TypeError('`x` and `y` must be BigInts'); - } - - if (op === '&') { - return x & y; - } - if (op === '|') { - return x | y; - } - return x ^ y; - /* - var result = zero; - var shift = 0; - while (x !== zero && x !== negOne && y !== zero && y !== negOne) { - var xDigit = modulo(x, two); - var yDigit = modulo(y, two); - if (op === '&') { - result += $pow(2, shift) * BinaryAnd(xDigit, yDigit); - } else if (op === '|') { - result += $pow(2, shift) * BinaryOr(xDigit, yDigit); - } else if (op === '^') { - result += $pow(2, shift) * BinaryXor(xDigit, yDigit); - } - shift += 1; - x = (x - xDigit) / two; - y = (y - yDigit) / two; - } - var tmp; - if (op === '&') { - tmp = BinaryAnd(modulo(x, two), modulo(y, two)); - } else if (op === '|') { - tmp = BinaryAnd(modulo(x, two), modulo(y, two)); - } else { - tmp = BinaryXor(modulo(x, two), modulo(y, two)); - } - if (tmp !== 0) { - result -= $pow(2, shift); - } - return result; - */ -}; diff --git a/node_modules/es-abstract/2020/BinaryAnd.js b/node_modules/es-abstract/2020/BinaryAnd.js deleted file mode 100644 index c617f38..0000000 --- a/node_modules/es-abstract/2020/BinaryAnd.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://262.ecma-international.org/11.0/#sec-binaryand - -module.exports = function BinaryAnd(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x & y; -}; diff --git a/node_modules/es-abstract/2020/BinaryOr.js b/node_modules/es-abstract/2020/BinaryOr.js deleted file mode 100644 index 6de0955..0000000 --- a/node_modules/es-abstract/2020/BinaryOr.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://262.ecma-international.org/11.0/#sec-binaryor - -module.exports = function BinaryOr(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x | y; -}; diff --git a/node_modules/es-abstract/2020/BinaryXor.js b/node_modules/es-abstract/2020/BinaryXor.js deleted file mode 100644 index 189d7d8..0000000 --- a/node_modules/es-abstract/2020/BinaryXor.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://262.ecma-international.org/11.0/#sec-binaryxor - -module.exports = function BinaryXor(x, y) { - if ((x !== 0 && x !== 1) || (y !== 0 && y !== 1)) { - throw new $TypeError('Assertion failed: `x` and `y` must be either 0 or 1'); - } - return x ^ y; -}; diff --git a/node_modules/es-abstract/2020/Call.js b/node_modules/es-abstract/2020/Call.js deleted file mode 100644 index 4b238c6..0000000 --- a/node_modules/es-abstract/2020/Call.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsArray = require('./IsArray'); - -var $apply = GetIntrinsic('%Reflect.apply%', true) || callBound('%Function.prototype.apply%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-call - -module.exports = function Call(F, V) { - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - return $apply(F, V, argumentsList); -}; diff --git a/node_modules/es-abstract/2020/CanonicalNumericIndexString.js b/node_modules/es-abstract/2020/CanonicalNumericIndexString.js deleted file mode 100644 index feb878c..0000000 --- a/node_modules/es-abstract/2020/CanonicalNumericIndexString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-canonicalnumericindexstring - -module.exports = function CanonicalNumericIndexString(argument) { - if (Type(argument) !== 'String') { - throw new $TypeError('Assertion failed: `argument` must be a String'); - } - if (argument === '-0') { return -0; } - var n = ToNumber(argument); - if (SameValue(ToString(n), argument)) { return n; } - return void 0; -}; diff --git a/node_modules/es-abstract/2020/CodePointAt.js b/node_modules/es-abstract/2020/CodePointAt.js deleted file mode 100644 index b887631..0000000 --- a/node_modules/es-abstract/2020/CodePointAt.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var callBound = require('call-bind/callBound'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var Type = require('./Type'); -var UTF16DecodeSurrogatePair = require('./UTF16DecodeSurrogatePair'); - -var $charAt = callBound('String.prototype.charAt'); -var $charCodeAt = callBound('String.prototype.charCodeAt'); - -// https://262.ecma-international.org/11.0/#sec-codepointat - -module.exports = function CodePointAt(string, position) { - if (Type(string) !== 'String') { - throw new $TypeError('Assertion failed: `string` must be a String'); - } - var size = string.length; - if (position < 0 || position >= size) { - throw new $TypeError('Assertion failed: `position` must be >= 0, and < the length of `string`'); - } - var first = $charCodeAt(string, position); - var cp = $charAt(string, position); - var firstIsLeading = isLeadingSurrogate(first); - var firstIsTrailing = isTrailingSurrogate(first); - if (!firstIsLeading && !firstIsTrailing) { - return { - '[[CodePoint]]': cp, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }; - } - if (firstIsTrailing || (position + 1 === size)) { - return { - '[[CodePoint]]': cp, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }; - } - var second = $charCodeAt(string, position + 1); - if (!isTrailingSurrogate(second)) { - return { - '[[CodePoint]]': cp, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }; - } - - return { - '[[CodePoint]]': UTF16DecodeSurrogatePair(first, second), - '[[CodeUnitCount]]': 2, - '[[IsUnpairedSurrogate]]': false - }; -}; diff --git a/node_modules/es-abstract/2020/CompletePropertyDescriptor.js b/node_modules/es-abstract/2020/CompletePropertyDescriptor.js deleted file mode 100644 index 548bf41..0000000 --- a/node_modules/es-abstract/2020/CompletePropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-completepropertydescriptor - -module.exports = function CompletePropertyDescriptor(Desc) { - /* eslint no-param-reassign: 0 */ - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (!has(Desc, '[[Value]]')) { - Desc['[[Value]]'] = void 0; - } - if (!has(Desc, '[[Writable]]')) { - Desc['[[Writable]]'] = false; - } - } else { - if (!has(Desc, '[[Get]]')) { - Desc['[[Get]]'] = void 0; - } - if (!has(Desc, '[[Set]]')) { - Desc['[[Set]]'] = void 0; - } - } - if (!has(Desc, '[[Enumerable]]')) { - Desc['[[Enumerable]]'] = false; - } - if (!has(Desc, '[[Configurable]]')) { - Desc['[[Configurable]]'] = false; - } - return Desc; -}; diff --git a/node_modules/es-abstract/2020/CopyDataProperties.js b/node_modules/es-abstract/2020/CopyDataProperties.js deleted file mode 100644 index 7bd7dda..0000000 --- a/node_modules/es-abstract/2020/CopyDataProperties.js +++ /dev/null @@ -1,64 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); -var every = require('../helpers/every'); -var OwnPropertyKeys = require('../helpers/OwnPropertyKeys'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToNumber = require('./ToNumber'); -var ToObject = require('./ToObject'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-copydataproperties - -module.exports = function CopyDataProperties(target, source, excludedItems) { - if (Type(target) !== 'Object') { - throw new $TypeError('Assertion failed: "target" must be an Object'); - } - - if (!IsArray(excludedItems) || !every(excludedItems, IsPropertyKey)) { - throw new $TypeError('Assertion failed: "excludedItems" must be a List of Property Keys'); - } - - if (typeof source === 'undefined' || source === null) { - return target; - } - - var from = ToObject(source); - - var sourceKeys = OwnPropertyKeys(from); - forEach(sourceKeys, function (nextKey) { - var excluded = false; - - forEach(excludedItems, function (e) { - if (SameValue(e, nextKey) === true) { - excluded = true; - } - }); - - var enumerable = $isEnumerable(from, nextKey) || ( - // this is to handle string keys being non-enumerable in older engines - typeof source === 'string' - && nextKey >= 0 - && IsInteger(ToNumber(nextKey)) - ); - if (excluded === false && enumerable) { - var propValue = Get(from, nextKey); - CreateDataPropertyOrThrow(target, nextKey, propValue); - } - }); - - return target; -}; diff --git a/node_modules/es-abstract/2020/CreateDataProperty.js b/node_modules/es-abstract/2020/CreateDataProperty.js deleted file mode 100644 index ff5ca30..0000000 --- a/node_modules/es-abstract/2020/CreateDataProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var OrdinaryGetOwnProperty = require('./OrdinaryGetOwnProperty'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createdataproperty - -module.exports = function CreateDataProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var oldDesc = OrdinaryGetOwnProperty(O, P); - var extensible = !oldDesc || IsExtensible(O); - var immutable = oldDesc && (!oldDesc['[[Writable]]'] || !oldDesc['[[Configurable]]']); - if (immutable || !extensible) { - return false; - } - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Value]]': V, - '[[Writable]]': true - } - ); -}; diff --git a/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js b/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js deleted file mode 100644 index 2f7c410..0000000 --- a/node_modules/es-abstract/2020/CreateDataPropertyOrThrow.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var CreateDataProperty = require('./CreateDataProperty'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// // https://ecma-international.org/ecma-262/6.0/#sec-createdatapropertyorthrow - -module.exports = function CreateDataPropertyOrThrow(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - var success = CreateDataProperty(O, P, V); - if (!success) { - throw new $TypeError('unable to create data property'); - } - return success; -}; diff --git a/node_modules/es-abstract/2020/CreateHTML.js b/node_modules/es-abstract/2020/CreateHTML.js deleted file mode 100644 index ccded1e..0000000 --- a/node_modules/es-abstract/2020/CreateHTML.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $replace = callBound('String.prototype.replace'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createhtml - -module.exports = function CreateHTML(string, tag, attribute, value) { - if (Type(tag) !== 'String' || Type(attribute) !== 'String') { - throw new $TypeError('Assertion failed: `tag` and `attribute` must be strings'); - } - var str = RequireObjectCoercible(string); - var S = ToString(str); - var p1 = '<' + tag; - if (attribute !== '') { - var V = ToString(value); - var escapedV = $replace(V, /\x22/g, '"'); - p1 += '\x20' + attribute + '\x3D\x22' + escapedV + '\x22'; - } - return p1 + '>' + S + ''; -}; diff --git a/node_modules/es-abstract/2020/CreateIterResultObject.js b/node_modules/es-abstract/2020/CreateIterResultObject.js deleted file mode 100644 index eea77a5..0000000 --- a/node_modules/es-abstract/2020/CreateIterResultObject.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createiterresultobject - -module.exports = function CreateIterResultObject(value, done) { - if (Type(done) !== 'Boolean') { - throw new $TypeError('Assertion failed: Type(done) is not Boolean'); - } - return { - value: value, - done: done - }; -}; diff --git a/node_modules/es-abstract/2020/CreateListFromArrayLike.js b/node_modules/es-abstract/2020/CreateListFromArrayLike.js deleted file mode 100644 index 3e9f5f4..0000000 --- a/node_modules/es-abstract/2020/CreateListFromArrayLike.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $indexOf = callBound('Array.prototype.indexOf', true) || callBound('String.prototype.indexOf'); -var $push = callBound('Array.prototype.push'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var LengthOfArrayLike = require('./LengthOfArrayLike'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-createlistfromarraylike - -module.exports = function CreateListFromArrayLike(obj) { - var elementTypes = arguments.length > 1 - ? arguments[1] - : ['Undefined', 'Null', 'Boolean', 'String', 'Symbol', 'Number', 'Object']; - - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - if (!IsArray(elementTypes)) { - throw new $TypeError('Assertion failed: `elementTypes`, if provided, must be an array'); - } - var len = LengthOfArrayLike(obj); - var list = []; - var index = 0; - while (index < len) { - var indexName = ToString(index); - var next = Get(obj, indexName); - var nextType = Type(next); - if ($indexOf(elementTypes, nextType) < 0) { - throw new $TypeError('item type ' + nextType + ' is not a valid elementType'); - } - $push(list, next); - index += 1; - } - return list; -}; diff --git a/node_modules/es-abstract/2020/CreateMethodProperty.js b/node_modules/es-abstract/2020/CreateMethodProperty.js deleted file mode 100644 index 53274a5..0000000 --- a/node_modules/es-abstract/2020/CreateMethodProperty.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-createmethodproperty - -module.exports = function CreateMethodProperty(O, P, V) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var newDesc = { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': V, - '[[Writable]]': true - }; - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - newDesc - ); -}; diff --git a/node_modules/es-abstract/2020/DateFromTime.js b/node_modules/es-abstract/2020/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/2020/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/2020/DateString.js b/node_modules/es-abstract/2020/DateString.js deleted file mode 100644 index 939c14c..0000000 --- a/node_modules/es-abstract/2020/DateString.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var weekdays = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; -var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var Type = require('./Type'); -var WeekDay = require('./WeekDay'); -var MonthFromTime = require('./MonthFromTime'); -var YearFromTime = require('./YearFromTime'); -var DateFromTime = require('./DateFromTime'); - -// https://262.ecma-international.org/9.0/#sec-datestring - -module.exports = function DateString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var weekday = weekdays[WeekDay(tv)]; - var month = months[MonthFromTime(tv)]; - var day = padTimeComponent(DateFromTime(tv)); - var year = padTimeComponent(YearFromTime(tv), 4); - return weekday + '\x20' + month + '\x20' + day + '\x20' + year; -}; diff --git a/node_modules/es-abstract/2020/Day.js b/node_modules/es-abstract/2020/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/2020/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/2020/DayFromYear.js b/node_modules/es-abstract/2020/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/2020/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/2020/DayWithinYear.js b/node_modules/es-abstract/2020/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/2020/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/2020/DaysInYear.js b/node_modules/es-abstract/2020/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/2020/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/2020/DefinePropertyOrThrow.js b/node_modules/es-abstract/2020/DefinePropertyOrThrow.js deleted file mode 100644 index 26f2714..0000000 --- a/node_modules/es-abstract/2020/DefinePropertyOrThrow.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-definepropertyorthrow - -module.exports = function DefinePropertyOrThrow(O, P, desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - var Desc = isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, desc) ? desc : ToPropertyDescriptor(desc); - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc is not a valid Property Descriptor'); - } - - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); -}; diff --git a/node_modules/es-abstract/2020/DeletePropertyOrThrow.js b/node_modules/es-abstract/2020/DeletePropertyOrThrow.js deleted file mode 100644 index 30d5e57..0000000 --- a/node_modules/es-abstract/2020/DeletePropertyOrThrow.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-deletepropertyorthrow - -module.exports = function DeletePropertyOrThrow(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // eslint-disable-next-line no-param-reassign - var success = delete O[P]; - if (!success) { - throw new $TypeError('Attempt to delete property failed.'); - } - return success; -}; diff --git a/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js b/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js deleted file mode 100644 index 44171b9..0000000 --- a/node_modules/es-abstract/2020/EnumerableOwnPropertyNames.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var objectKeys = require('object-keys'); - -var callBound = require('call-bind/callBound'); - -var callBind = require('call-bind'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); - -var forEach = require('../helpers/forEach'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/8.0/#sec-enumerableownproperties - -module.exports = function EnumerableOwnProperties(O, kind) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - - var keys = objectKeys(O); - if (kind === 'key') { - return keys; - } - if (kind === 'value' || kind === 'key+value') { - var results = []; - forEach(keys, function (key) { - if ($isEnumerable(O, key)) { - $pushApply(results, [ - kind === 'value' ? O[key] : [key, O[key]] - ]); - } - }); - return results; - } - throw new $TypeError('Assertion failed: "kind" is not "key", "value", or "key+value": ' + kind); -}; diff --git a/node_modules/es-abstract/2020/FlattenIntoArray.js b/node_modules/es-abstract/2020/FlattenIntoArray.js deleted file mode 100644 index 6429ee7..0000000 --- a/node_modules/es-abstract/2020/FlattenIntoArray.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var Call = require('./Call'); -var CreateDataPropertyOrThrow = require('./CreateDataPropertyOrThrow'); -var Get = require('./Get'); -var HasProperty = require('./HasProperty'); -var IsArray = require('./IsArray'); -var LengthOfArrayLike = require('./LengthOfArrayLike'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/11.0/#sec-flattenintoarray - -// eslint-disable-next-line max-params -module.exports = function FlattenIntoArray(target, source, sourceLen, start, depth) { - var mapperFunction; - if (arguments.length > 5) { - mapperFunction = arguments[5]; - } - - var targetIndex = start; - var sourceIndex = 0; - while (sourceIndex < sourceLen) { - var P = ToString(sourceIndex); - var exists = HasProperty(source, P); - if (exists === true) { - var element = Get(source, P); - if (typeof mapperFunction !== 'undefined') { - if (arguments.length <= 6) { - throw new $TypeError('Assertion failed: thisArg is required when mapperFunction is provided'); - } - element = Call(mapperFunction, arguments[6], [element, sourceIndex, source]); - } - var shouldFlatten = false; - if (depth > 0) { - shouldFlatten = IsArray(element); - } - if (shouldFlatten) { - var elementLen = LengthOfArrayLike(element); - targetIndex = FlattenIntoArray(target, element, elementLen, targetIndex, depth - 1); - } else { - if (targetIndex >= MAX_SAFE_INTEGER) { - throw new $TypeError('index too large'); - } - CreateDataPropertyOrThrow(target, ToString(targetIndex), element); - targetIndex += 1; - } - } - sourceIndex += 1; - } - - return targetIndex; -}; diff --git a/node_modules/es-abstract/2020/FromPropertyDescriptor.js b/node_modules/es-abstract/2020/FromPropertyDescriptor.js deleted file mode 100644 index 9a69a26..0000000 --- a/node_modules/es-abstract/2020/FromPropertyDescriptor.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-frompropertydescriptor - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - var obj = {}; - if ('[[Value]]' in Desc) { - obj.value = Desc['[[Value]]']; - } - if ('[[Writable]]' in Desc) { - obj.writable = Desc['[[Writable]]']; - } - if ('[[Get]]' in Desc) { - obj.get = Desc['[[Get]]']; - } - if ('[[Set]]' in Desc) { - obj.set = Desc['[[Set]]']; - } - if ('[[Enumerable]]' in Desc) { - obj.enumerable = Desc['[[Enumerable]]']; - } - if ('[[Configurable]]' in Desc) { - obj.configurable = Desc['[[Configurable]]']; - } - return obj; -}; diff --git a/node_modules/es-abstract/2020/Get.js b/node_modules/es-abstract/2020/Get.js deleted file mode 100644 index 681055a..0000000 --- a/node_modules/es-abstract/2020/Get.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var inspect = require('object-inspect'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -/** - * 7.3.1 Get (O, P) - https://ecma-international.org/ecma-262/6.0/#sec-get-o-p - * 1. Assert: Type(O) is Object. - * 2. Assert: IsPropertyKey(P) is true. - * 3. Return O.[[Get]](P, O). - */ - -module.exports = function Get(O, P) { - // 7.3.1.1 - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - // 7.3.1.2 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true, got ' + inspect(P)); - } - // 7.3.1.3 - return O[P]; -}; diff --git a/node_modules/es-abstract/2020/GetIterator.js b/node_modules/es-abstract/2020/GetIterator.js deleted file mode 100644 index 0e74c17..0000000 --- a/node_modules/es-abstract/2020/GetIterator.js +++ /dev/null @@ -1,65 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $asyncIterator = GetIntrinsic('%Symbol.asyncIterator%', true); - -var inspect = require('object-inspect'); -var hasSymbols = require('has-symbols')(); - -var getIteratorMethod = require('../helpers/getIteratorMethod'); -var AdvanceStringIndex = require('./AdvanceStringIndex'); -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-getiterator -module.exports = function GetIterator(obj, hint, method) { - var actualHint = hint; - if (arguments.length < 2) { - actualHint = 'sync'; - } - if (actualHint !== 'sync' && actualHint !== 'async') { - throw new $TypeError("Assertion failed: `hint` must be one of 'sync' or 'async', got " + inspect(hint)); - } - - var actualMethod = method; - if (arguments.length < 3) { - if (actualHint === 'async') { - if (hasSymbols && $asyncIterator) { - actualMethod = GetMethod(obj, $asyncIterator); - } - if (actualMethod === undefined) { - throw new $TypeError("async from sync iterators aren't currently supported"); - } - } else { - actualMethod = getIteratorMethod( - { - AdvanceStringIndex: AdvanceStringIndex, - GetMethod: GetMethod, - IsArray: IsArray, - Type: Type - }, - obj - ); - } - } - var iterator = Call(actualMethod, obj); - if (Type(iterator) !== 'Object') { - throw new $TypeError('iterator must return an object'); - } - - return iterator; - - // TODO: This should return an IteratorRecord - /* - var nextMethod = GetV(iterator, 'next'); - return { - '[[Iterator]]': iterator, - '[[NextMethod]]': nextMethod, - '[[Done]]': false - }; - */ -}; diff --git a/node_modules/es-abstract/2020/GetMethod.js b/node_modules/es-abstract/2020/GetMethod.js deleted file mode 100644 index 775d3fb..0000000 --- a/node_modules/es-abstract/2020/GetMethod.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetV = require('./GetV'); -var IsCallable = require('./IsCallable'); -var IsPropertyKey = require('./IsPropertyKey'); - -/** - * 7.3.9 - https://ecma-international.org/ecma-262/6.0/#sec-getmethod - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let func be GetV(O, P). - * 3. ReturnIfAbrupt(func). - * 4. If func is either undefined or null, return undefined. - * 5. If IsCallable(func) is false, throw a TypeError exception. - * 6. Return func. - */ - -module.exports = function GetMethod(O, P) { - // 7.3.9.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.9.2 - var func = GetV(O, P); - - // 7.3.9.4 - if (func == null) { - return void 0; - } - - // 7.3.9.5 - if (!IsCallable(func)) { - throw new $TypeError(P + 'is not a function'); - } - - // 7.3.9.6 - return func; -}; diff --git a/node_modules/es-abstract/2020/GetOwnPropertyKeys.js b/node_modules/es-abstract/2020/GetOwnPropertyKeys.js deleted file mode 100644 index b8f4167..0000000 --- a/node_modules/es-abstract/2020/GetOwnPropertyKeys.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var hasSymbols = require('has-symbols')(); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $gOPS = hasSymbols && GetIntrinsic('%Object.getOwnPropertySymbols%'); -var keys = require('object-keys'); - -var esType = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getownpropertykeys - -module.exports = function GetOwnPropertyKeys(O, Type) { - if (esType(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (Type === 'Symbol') { - return $gOPS ? $gOPS(O) : []; - } - if (Type === 'String') { - if (!$gOPN) { - return keys(O); - } - return $gOPN(O); - } - throw new $TypeError('Assertion failed: `Type` must be `"String"` or `"Symbol"`'); -}; diff --git a/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js b/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js deleted file mode 100644 index 5f369ca..0000000 --- a/node_modules/es-abstract/2020/GetPrototypeFromConstructor.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Function = GetIntrinsic('%Function%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-getprototypefromconstructor - -module.exports = function GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { - var intrinsic = GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - if (!IsConstructor(constructor)) { - throw new $TypeError('Assertion failed: `constructor` must be a constructor'); - } - var proto = Get(constructor, 'prototype'); - if (Type(proto) !== 'Object') { - if (!(constructor instanceof $Function)) { - // ignore other realms, for now - throw new $TypeError('cross-realm constructors not currently supported'); - } - proto = intrinsic; - } - return proto; -}; diff --git a/node_modules/es-abstract/2020/GetSubstitution.js b/node_modules/es-abstract/2020/GetSubstitution.js deleted file mode 100644 index a5a7a1b..0000000 --- a/node_modules/es-abstract/2020/GetSubstitution.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var every = require('../helpers/every'); - -var $charAt = callBound('String.prototype.charAt'); -var $strSlice = callBound('String.prototype.slice'); -var $indexOf = callBound('String.prototype.indexOf'); -var $parseInt = parseInt; - -var isDigit = regexTester(/^[0-9]$/); - -var inspect = require('object-inspect'); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var IsInteger = require('./IsInteger'); -var ToObject = require('./ToObject'); -var ToString = require('./ToString'); -var Type = require('./Type'); - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -var isStringOrHole = function (capture, index, arr) { - return Type(capture) === 'String' || (canDistinguishSparseFromUndefined ? !(index in arr) : Type(capture) === 'Undefined'); -}; - -// http://262.ecma-international.org/9.0/#sec-getsubstitution - -// eslint-disable-next-line max-statements, max-params, max-lines-per-function -module.exports = function GetSubstitution(matched, str, position, captures, namedCaptures, replacement) { - if (Type(matched) !== 'String') { - throw new $TypeError('Assertion failed: `matched` must be a String'); - } - var matchLength = matched.length; - - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `str` must be a String'); - } - var stringLength = str.length; - - if (!IsInteger(position) || position < 0 || position > stringLength) { - throw new $TypeError('Assertion failed: `position` must be a nonnegative integer, and less than or equal to the length of `string`, got ' + inspect(position)); - } - - if (!IsArray(captures) || !every(captures, isStringOrHole)) { - throw new $TypeError('Assertion failed: `captures` must be a List of Strings, got ' + inspect(captures)); - } - - if (Type(replacement) !== 'String') { - throw new $TypeError('Assertion failed: `replacement` must be a String'); - } - - var tailPos = position + matchLength; - var m = captures.length; - if (Type(namedCaptures) !== 'Undefined') { - namedCaptures = ToObject(namedCaptures); // eslint-disable-line no-param-reassign - } - - var result = ''; - for (var i = 0; i < replacement.length; i += 1) { - // if this is a $, and it's not the end of the replacement - var current = $charAt(replacement, i); - var isLast = (i + 1) >= replacement.length; - var nextIsLast = (i + 2) >= replacement.length; - if (current === '$' && !isLast) { - var next = $charAt(replacement, i + 1); - if (next === '$') { - result += '$'; - i += 1; - } else if (next === '&') { - result += matched; - i += 1; - } else if (next === '`') { - result += position === 0 ? '' : $strSlice(str, 0, position - 1); - i += 1; - } else if (next === "'") { - result += tailPos >= stringLength ? '' : $strSlice(str, tailPos); - i += 1; - } else { - var nextNext = nextIsLast ? null : $charAt(replacement, i + 2); - if (isDigit(next) && next !== '0' && (nextIsLast || !isDigit(nextNext))) { - // $1 through $9, and not followed by a digit - var n = $parseInt(next, 10); - // if (n > m, impl-defined) - result += n <= m && Type(captures[n - 1]) === 'Undefined' ? '' : captures[n - 1]; - i += 1; - } else if (isDigit(next) && (nextIsLast || isDigit(nextNext))) { - // $00 through $99 - var nn = next + nextNext; - var nnI = $parseInt(nn, 10) - 1; - // if nn === '00' or nn > m, impl-defined - result += nn <= m && Type(captures[nnI]) === 'Undefined' ? '' : captures[nnI]; - i += 2; - } else if (next === '<') { - // eslint-disable-next-line max-depth - if (Type(namedCaptures) === 'Undefined') { - result += '$<'; - i += 2; - } else { - var endIndex = $indexOf(replacement, '>', i); - // eslint-disable-next-line max-depth - if (endIndex > -1) { - var groupName = $strSlice(replacement, i + '$<'.length, endIndex); - var capture = Get(namedCaptures, groupName); - // eslint-disable-next-line max-depth - if (Type(capture) !== 'Undefined') { - result += ToString(capture); - } - i += ('<' + groupName + '>').length; - } - } - } else { - result += '$'; - } - } - } else { - // the final $, or else not a $ - result += $charAt(replacement, i); - } - } - return result; -}; diff --git a/node_modules/es-abstract/2020/GetV.js b/node_modules/es-abstract/2020/GetV.js deleted file mode 100644 index 2d8cc82..0000000 --- a/node_modules/es-abstract/2020/GetV.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var ToObject = require('./ToObject'); - -/** - * 7.3.2 GetV (V, P) - * 1. Assert: IsPropertyKey(P) is true. - * 2. Let O be ToObject(V). - * 3. ReturnIfAbrupt(O). - * 4. Return O.[[Get]](P, V). - */ - -module.exports = function GetV(V, P) { - // 7.3.2.1 - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - - // 7.3.2.2-3 - var O = ToObject(V); - - // 7.3.2.4 - return O[P]; -}; diff --git a/node_modules/es-abstract/2020/HasOwnProperty.js b/node_modules/es-abstract/2020/HasOwnProperty.js deleted file mode 100644 index 04d2849..0000000 --- a/node_modules/es-abstract/2020/HasOwnProperty.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var has = require('has'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasownproperty - -module.exports = function HasOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return has(O, P); -}; diff --git a/node_modules/es-abstract/2020/HasProperty.js b/node_modules/es-abstract/2020/HasProperty.js deleted file mode 100644 index b341654..0000000 --- a/node_modules/es-abstract/2020/HasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-hasproperty - -module.exports = function HasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2020/HourFromTime.js b/node_modules/es-abstract/2020/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/2020/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/2020/InLeapYear.js b/node_modules/es-abstract/2020/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/2020/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/2020/InstanceofOperator.js b/node_modules/es-abstract/2020/InstanceofOperator.js deleted file mode 100644 index a3c4d23..0000000 --- a/node_modules/es-abstract/2020/InstanceofOperator.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $hasInstance = GetIntrinsic('Symbol.hasInstance', true); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var OrdinaryHasInstance = require('./OrdinaryHasInstance'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-instanceofoperator - -module.exports = function InstanceofOperator(O, C) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var instOfHandler = $hasInstance ? GetMethod(C, $hasInstance) : void 0; - if (typeof instOfHandler !== 'undefined') { - return ToBoolean(Call(instOfHandler, C, [O])); - } - if (!IsCallable(C)) { - throw new $TypeError('`C` is not Callable'); - } - return OrdinaryHasInstance(C, O); -}; diff --git a/node_modules/es-abstract/2020/Invoke.js b/node_modules/es-abstract/2020/Invoke.js deleted file mode 100644 index d4214ee..0000000 --- a/node_modules/es-abstract/2020/Invoke.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var IsArray = require('./IsArray'); -var GetV = require('./GetV'); -var IsPropertyKey = require('./IsPropertyKey'); - -// https://ecma-international.org/ecma-262/6.0/#sec-invoke - -module.exports = function Invoke(O, P) { - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - var argumentsList = arguments.length > 2 ? arguments[2] : []; - if (!IsArray(argumentsList)) { - throw new $TypeError('Assertion failed: optional `argumentsList`, if provided, must be a List'); - } - var func = GetV(O, P); - return Call(func, O, argumentsList); -}; diff --git a/node_modules/es-abstract/2020/IsAccessorDescriptor.js b/node_modules/es-abstract/2020/IsAccessorDescriptor.js deleted file mode 100644 index 78563e7..0000000 --- a/node_modules/es-abstract/2020/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isaccessordescriptor - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2020/IsArray.js b/node_modules/es-abstract/2020/IsArray.js deleted file mode 100644 index f933cec..0000000 --- a/node_modules/es-abstract/2020/IsArray.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Array = GetIntrinsic('%Array%'); - -// eslint-disable-next-line global-require -var toStr = !$Array.isArray && require('call-bind/callBound')('Object.prototype.toString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isarray - -module.exports = $Array.isArray || function IsArray(argument) { - return toStr(argument) === '[object Array]'; -}; diff --git a/node_modules/es-abstract/2020/IsBigIntElementType.js b/node_modules/es-abstract/2020/IsBigIntElementType.js deleted file mode 100644 index e3f58a9..0000000 --- a/node_modules/es-abstract/2020/IsBigIntElementType.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://262.ecma-international.org/11.0/#sec-isbigintelementtype - -module.exports = function IsBigIntElementType(type) { - return type === 'BigUint64' || type === 'BigInt64'; -}; diff --git a/node_modules/es-abstract/2020/IsCallable.js b/node_modules/es-abstract/2020/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/2020/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/2020/IsConcatSpreadable.js b/node_modules/es-abstract/2020/IsConcatSpreadable.js deleted file mode 100644 index 141b334..0000000 --- a/node_modules/es-abstract/2020/IsConcatSpreadable.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $isConcatSpreadable = GetIntrinsic('%Symbol.isConcatSpreadable%', true); - -var Get = require('./Get'); -var IsArray = require('./IsArray'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isconcatspreadable - -module.exports = function IsConcatSpreadable(O) { - if (Type(O) !== 'Object') { - return false; - } - if ($isConcatSpreadable) { - var spreadable = Get(O, $isConcatSpreadable); - if (typeof spreadable !== 'undefined') { - return ToBoolean(spreadable); - } - } - return IsArray(O); -}; diff --git a/node_modules/es-abstract/2020/IsConstructor.js b/node_modules/es-abstract/2020/IsConstructor.js deleted file mode 100644 index fe626e1..0000000 --- a/node_modules/es-abstract/2020/IsConstructor.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../GetIntrinsic.js'); - -var $construct = GetIntrinsic('%Reflect.construct%', true); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -try { - DefinePropertyOrThrow({}, '', { '[[Get]]': function () {} }); -} catch (e) { - // Accessor properties aren't supported - DefinePropertyOrThrow = null; -} - -// https://ecma-international.org/ecma-262/6.0/#sec-isconstructor - -if (DefinePropertyOrThrow && $construct) { - var isConstructorMarker = {}; - var badArrayLike = {}; - DefinePropertyOrThrow(badArrayLike, 'length', { - '[[Get]]': function () { - throw isConstructorMarker; - }, - '[[Enumerable]]': true - }); - - module.exports = function IsConstructor(argument) { - try { - // `Reflect.construct` invokes `IsConstructor(target)` before `Get(args, 'length')`: - $construct(argument, badArrayLike); - } catch (err) { - return err === isConstructorMarker; - } - }; -} else { - module.exports = function IsConstructor(argument) { - // unfortunately there's no way to truly check this without try/catch `new argument` in old environments - return typeof argument === 'function' && !!argument.prototype; - }; -} diff --git a/node_modules/es-abstract/2020/IsDataDescriptor.js b/node_modules/es-abstract/2020/IsDataDescriptor.js deleted file mode 100644 index 00d14a6..0000000 --- a/node_modules/es-abstract/2020/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var assertRecord = require('../helpers/assertRecord'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isdatadescriptor - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/2020/IsExtensible.js b/node_modules/es-abstract/2020/IsExtensible.js deleted file mode 100644 index 9df5b80..0000000 --- a/node_modules/es-abstract/2020/IsExtensible.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var $preventExtensions = $Object.preventExtensions; -var $isExtensible = $Object.isExtensible; - -// https://ecma-international.org/ecma-262/6.0/#sec-isextensible-o - -module.exports = $preventExtensions - ? function IsExtensible(obj) { - return !isPrimitive(obj) && $isExtensible(obj); - } - : function IsExtensible(obj) { - return !isPrimitive(obj); - }; diff --git a/node_modules/es-abstract/2020/IsGenericDescriptor.js b/node_modules/es-abstract/2020/IsGenericDescriptor.js deleted file mode 100644 index 95b1d35..0000000 --- a/node_modules/es-abstract/2020/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var assertRecord = require('../helpers/assertRecord'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isgenericdescriptor - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/2020/IsInteger.js b/node_modules/es-abstract/2020/IsInteger.js deleted file mode 100644 index f4d1a2a..0000000 --- a/node_modules/es-abstract/2020/IsInteger.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isinteger - -module.exports = function IsInteger(argument) { - if (typeof argument !== 'number' || $isNaN(argument) || !$isFinite(argument)) { - return false; - } - var absValue = abs(argument); - return floor(absValue) === absValue; -}; diff --git a/node_modules/es-abstract/2020/IsNoTearConfiguration.js b/node_modules/es-abstract/2020/IsNoTearConfiguration.js deleted file mode 100644 index f0d2808..0000000 --- a/node_modules/es-abstract/2020/IsNoTearConfiguration.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var IsUnclampedIntegerElementType = require('./IsUnclampedIntegerElementType'); -var IsBigIntElementType = require('./IsBigIntElementType'); - -// https://262.ecma-international.org/11.0/#sec-isnotearconfiguration - -module.exports = function IsNoTearConfiguration(type, order) { - if (IsUnclampedIntegerElementType(type)) { - return true; - } - if (IsBigIntElementType(type) && order !== 'Init' && order !== 'Unordered') { - return true; - } - return false; -}; diff --git a/node_modules/es-abstract/2020/IsNonNegativeInteger.js b/node_modules/es-abstract/2020/IsNonNegativeInteger.js deleted file mode 100644 index ae1f69c..0000000 --- a/node_modules/es-abstract/2020/IsNonNegativeInteger.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var IsInteger = require('./IsInteger'); - -// https://262.ecma-international.org/11.0/#sec-isnonnegativeinteger - -module.exports = function IsNonNegativeInteger(argument) { - return !!IsInteger(argument) && argument >= 0; -}; diff --git a/node_modules/es-abstract/2020/IsPromise.js b/node_modules/es-abstract/2020/IsPromise.js deleted file mode 100644 index a551ae0..0000000 --- a/node_modules/es-abstract/2020/IsPromise.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $PromiseThen = callBound('Promise.prototype.then', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ispromise - -module.exports = function IsPromise(x) { - if (Type(x) !== 'Object') { - return false; - } - if (!$PromiseThen) { // Promises are not supported - return false; - } - try { - $PromiseThen(x); // throws if not a promise - } catch (e) { - return false; - } - return true; -}; diff --git a/node_modules/es-abstract/2020/IsPropertyKey.js b/node_modules/es-abstract/2020/IsPropertyKey.js deleted file mode 100644 index f43ab58..0000000 --- a/node_modules/es-abstract/2020/IsPropertyKey.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -// https://ecma-international.org/ecma-262/6.0/#sec-ispropertykey - -module.exports = function IsPropertyKey(argument) { - return typeof argument === 'string' || typeof argument === 'symbol'; -}; diff --git a/node_modules/es-abstract/2020/IsRegExp.js b/node_modules/es-abstract/2020/IsRegExp.js deleted file mode 100644 index e105481..0000000 --- a/node_modules/es-abstract/2020/IsRegExp.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $match = GetIntrinsic('%Symbol.match%', true); - -var hasRegExpMatcher = require('is-regex'); - -var ToBoolean = require('./ToBoolean'); - -// https://ecma-international.org/ecma-262/6.0/#sec-isregexp - -module.exports = function IsRegExp(argument) { - if (!argument || typeof argument !== 'object') { - return false; - } - if ($match) { - var isRegExp = argument[$match]; - if (typeof isRegExp !== 'undefined') { - return ToBoolean(isRegExp); - } - } - return hasRegExpMatcher(argument); -}; diff --git a/node_modules/es-abstract/2020/IsStringPrefix.js b/node_modules/es-abstract/2020/IsStringPrefix.js deleted file mode 100644 index 4958544..0000000 --- a/node_modules/es-abstract/2020/IsStringPrefix.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPrefixOf = require('../helpers/isPrefixOf'); - -// var callBound = require('call-bind/callBound'); - -// var $charAt = callBound('String.prototype.charAt'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-isstringprefix - -module.exports = function IsStringPrefix(p, q) { - if (Type(p) !== 'String') { - throw new $TypeError('Assertion failed: "p" must be a String'); - } - - if (Type(q) !== 'String') { - throw new $TypeError('Assertion failed: "q" must be a String'); - } - - return isPrefixOf(p, q); - /* - if (p === q || p === '') { - return true; - } - - var pLength = p.length; - var qLength = q.length; - if (pLength >= qLength) { - return false; - } - - // assert: pLength < qLength - - for (var i = 0; i < pLength; i += 1) { - if ($charAt(p, i) !== $charAt(q, i)) { - return false; - } - } - return true; - */ -}; diff --git a/node_modules/es-abstract/2020/IsUnclampedIntegerElementType.js b/node_modules/es-abstract/2020/IsUnclampedIntegerElementType.js deleted file mode 100644 index 15237b1..0000000 --- a/node_modules/es-abstract/2020/IsUnclampedIntegerElementType.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -// https://262.ecma-international.org/11.0/#sec-isunclampedintegerelementtype - -module.exports = function IsUnclampedIntegerElementType(type) { - return type === 'Int8' - || type === 'Uint8' - || type === 'Int16' - || type === 'Uint16' - || type === 'Int32' - || type === 'Uint32'; -}; diff --git a/node_modules/es-abstract/2020/IsUnsignedElementType.js b/node_modules/es-abstract/2020/IsUnsignedElementType.js deleted file mode 100644 index 5eb1e7c..0000000 --- a/node_modules/es-abstract/2020/IsUnsignedElementType.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// https://262.ecma-international.org/11.0/#sec-isunsignedelementtype - -module.exports = function IsUnsignedElementType(type) { - return type === 'Uint8' - || type === 'Uint8C' - || type === 'Uint16' - || type === 'Uint32' - || type === 'BigUint64'; -}; diff --git a/node_modules/es-abstract/2020/IterableToList.js b/node_modules/es-abstract/2020/IterableToList.js deleted file mode 100644 index d994d74..0000000 --- a/node_modules/es-abstract/2020/IterableToList.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $arrayPush = callBound('Array.prototype.push'); - -var GetIterator = require('./GetIterator'); -var IteratorStep = require('./IteratorStep'); -var IteratorValue = require('./IteratorValue'); - -// https://262.ecma-international.org/9.0/#sec-iterabletolist - -module.exports = function IterableToList(items, method) { - var iterator = GetIterator(items, 'sync', method); - var values = []; - var next = true; - while (next) { - next = IteratorStep(iterator); - if (next) { - var nextValue = IteratorValue(next); - $arrayPush(values, nextValue); - } - } - return values; -}; diff --git a/node_modules/es-abstract/2020/IteratorClose.js b/node_modules/es-abstract/2020/IteratorClose.js deleted file mode 100644 index dd1118d..0000000 --- a/node_modules/es-abstract/2020/IteratorClose.js +++ /dev/null @@ -1,50 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Call = require('./Call'); -var GetMethod = require('./GetMethod'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorclose - -module.exports = function IteratorClose(iterator, completion) { - if (Type(iterator) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterator) is not Object'); - } - if (!IsCallable(completion)) { - throw new $TypeError('Assertion failed: completion is not a thunk for a Completion Record'); - } - var completionThunk = completion; - - var iteratorReturn = GetMethod(iterator, 'return'); - - if (typeof iteratorReturn === 'undefined') { - return completionThunk(); - } - - var completionRecord; - try { - var innerResult = Call(iteratorReturn, iterator, []); - } catch (e) { - // if we hit here, then "e" is the innerResult completion that needs re-throwing - - // if the completion is of type "throw", this will throw. - completionThunk(); - completionThunk = null; // ensure it's not called twice. - - // if not, then return the innerResult completion - throw e; - } - completionRecord = completionThunk(); // if innerResult worked, then throw if the completion does - completionThunk = null; // ensure it's not called twice. - - if (Type(innerResult) !== 'Object') { - throw new $TypeError('iterator .return must return an object'); - } - - return completionRecord; -}; diff --git a/node_modules/es-abstract/2020/IteratorComplete.js b/node_modules/es-abstract/2020/IteratorComplete.js deleted file mode 100644 index ed4efa3..0000000 --- a/node_modules/es-abstract/2020/IteratorComplete.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToBoolean = require('./ToBoolean'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorcomplete - -module.exports = function IteratorComplete(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return ToBoolean(Get(iterResult, 'done')); -}; diff --git a/node_modules/es-abstract/2020/IteratorNext.js b/node_modules/es-abstract/2020/IteratorNext.js deleted file mode 100644 index cf80655..0000000 --- a/node_modules/es-abstract/2020/IteratorNext.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Invoke = require('./Invoke'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratornext - -module.exports = function IteratorNext(iterator, value) { - var result = Invoke(iterator, 'next', arguments.length < 2 ? [] : [value]); - if (Type(result) !== 'Object') { - throw new $TypeError('iterator next must return an object'); - } - return result; -}; diff --git a/node_modules/es-abstract/2020/IteratorStep.js b/node_modules/es-abstract/2020/IteratorStep.js deleted file mode 100644 index 41b9d1b..0000000 --- a/node_modules/es-abstract/2020/IteratorStep.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var IteratorComplete = require('./IteratorComplete'); -var IteratorNext = require('./IteratorNext'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorstep - -module.exports = function IteratorStep(iterator) { - var result = IteratorNext(iterator); - var done = IteratorComplete(result); - return done === true ? false : result; -}; - diff --git a/node_modules/es-abstract/2020/IteratorValue.js b/node_modules/es-abstract/2020/IteratorValue.js deleted file mode 100644 index d15d8ae..0000000 --- a/node_modules/es-abstract/2020/IteratorValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-iteratorvalue - -module.exports = function IteratorValue(iterResult) { - if (Type(iterResult) !== 'Object') { - throw new $TypeError('Assertion failed: Type(iterResult) is not Object'); - } - return Get(iterResult, 'value'); -}; - diff --git a/node_modules/es-abstract/2020/LengthOfArrayLike.js b/node_modules/es-abstract/2020/LengthOfArrayLike.js deleted file mode 100644 index 132c4d5..0000000 --- a/node_modules/es-abstract/2020/LengthOfArrayLike.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var ToLength = require('./ToLength'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-lengthofarraylike - -module.exports = function LengthOfArrayLike(obj) { - if (Type(obj) !== 'Object') { - throw new $TypeError('Assertion failed: `obj` must be an Object'); - } - return ToLength(Get(obj, 'length')); -}; - -// TODO: use this all over diff --git a/node_modules/es-abstract/2020/MakeDate.js b/node_modules/es-abstract/2020/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/2020/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/2020/MakeDay.js b/node_modules/es-abstract/2020/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/2020/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/2020/MakeTime.js b/node_modules/es-abstract/2020/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/2020/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/2020/MinFromTime.js b/node_modules/es-abstract/2020/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/2020/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/2020/MonthFromTime.js b/node_modules/es-abstract/2020/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/2020/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/2020/Number/add.js b/node_modules/es-abstract/2020/Number/add.js deleted file mode 100644 index c2c2063..0000000 --- a/node_modules/es-abstract/2020/Number/add.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-add - -module.exports = function NumberAdd(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - if (isNaN(x) || isNaN(y) || (x === Infinity && y === -Infinity) || (x === -Infinity && y === Infinity)) { - return NaN; - } - - if ((x === Infinity && y === Infinity) || (x === -Infinity && y === -Infinity)) { - return x; - } - - if (x === Infinity) { - return x; - } - - if (y === Infinity) { - return y; - } - - if (x === y && x === 0) { - return Infinity / x === -Infinity && Infinity / y === -Infinity ? -0 : +0; - } - - if (x === -y || -x === y) { - return +0; - } - - // shortcut for the actual spec mechanics - return x + y; -}; diff --git a/node_modules/es-abstract/2020/Number/bitwiseAND.js b/node_modules/es-abstract/2020/Number/bitwiseAND.js deleted file mode 100644 index a715980..0000000 --- a/node_modules/es-abstract/2020/Number/bitwiseAND.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var NumberBitwiseOp = require('../NumberBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND - -module.exports = function NumberBitwiseAND(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - return NumberBitwiseOp('&', x, y); -}; diff --git a/node_modules/es-abstract/2020/Number/bitwiseNOT.js b/node_modules/es-abstract/2020/Number/bitwiseNOT.js deleted file mode 100644 index ae8032a..0000000 --- a/node_modules/es-abstract/2020/Number/bitwiseNOT.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('../ToInt32'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT - -module.exports = function NumberBitwiseNOT(x) { - if (Type(x) !== 'Number') { - throw new $TypeError('Assertion failed: `x` argument must be a Number'); - } - var oldValue = ToInt32(x); - // Return the result of applying the bitwise operator op to lnum and rnum. The result is a signed 32-bit integer. - return ~oldValue; -}; diff --git a/node_modules/es-abstract/2020/Number/bitwiseOR.js b/node_modules/es-abstract/2020/Number/bitwiseOR.js deleted file mode 100644 index c5e67b9..0000000 --- a/node_modules/es-abstract/2020/Number/bitwiseOR.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var NumberBitwiseOp = require('../NumberBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR - -module.exports = function NumberBitwiseOR(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - return NumberBitwiseOp('|', x, y); -}; diff --git a/node_modules/es-abstract/2020/Number/bitwiseXOR.js b/node_modules/es-abstract/2020/Number/bitwiseXOR.js deleted file mode 100644 index a4030e9..0000000 --- a/node_modules/es-abstract/2020/Number/bitwiseXOR.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var NumberBitwiseOp = require('../NumberBitwiseOp'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR - -module.exports = function NumberBitwiseXOR(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - return NumberBitwiseOp('^', x, y); -}; diff --git a/node_modules/es-abstract/2020/Number/divide.js b/node_modules/es-abstract/2020/Number/divide.js deleted file mode 100644 index 6524462..0000000 --- a/node_modules/es-abstract/2020/Number/divide.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isFinite = require('../../helpers/isFinite'); -var isNaN = require('../../helpers/isNaN'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide - -module.exports = function NumberDivide(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - if (isNaN(x) || isNaN(y) || (!isFinite(x) && !isFinite(y))) { - return NaN; - } - // shortcut for the actual spec mechanics - return x / y; -}; diff --git a/node_modules/es-abstract/2020/Number/equal.js b/node_modules/es-abstract/2020/Number/equal.js deleted file mode 100644 index db68afa..0000000 --- a/node_modules/es-abstract/2020/Number/equal.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal - -module.exports = function NumberEqual(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - if (isNaN(x) || isNaN(y)) { - return false; - } - // shortcut for the actual spec mechanics - return x === y; -}; diff --git a/node_modules/es-abstract/2020/Number/exponentiate.js b/node_modules/es-abstract/2020/Number/exponentiate.js deleted file mode 100644 index bafa7b1..0000000 --- a/node_modules/es-abstract/2020/Number/exponentiate.js +++ /dev/null @@ -1,77 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -// var isNegativeZero = require('is-negative-zero'); - -var $pow = GetIntrinsic('%Math.pow%'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -/* -var abs = require('../../helpers/abs'); -var isFinite = require('../../helpers/isFinite'); -var isNaN = require('../../helpers/isNaN'); - -var IsInteger = require('../IsInteger'); -*/ -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate - -/* eslint max-lines-per-function: 0, max-statements: 0 */ - -module.exports = function NumberExponentiate(base, exponent) { - if (Type(base) !== 'Number' || Type(exponent) !== 'Number') { - throw new $TypeError('Assertion failed: `base` and `exponent` arguments must be Numbers'); - } - return $pow(base, exponent); - /* - if (isNaN(exponent)) { - return NaN; - } - if (exponent === 0) { - return 1; - } - if (isNaN(base)) { - return NaN; - } - var aB = abs(base); - if (aB > 1 && exponent === Infinity) { - return Infinity; - } - if (aB > 1 && exponent === -Infinity) { - return 0; - } - if (aB === 1 && (exponent === Infinity || exponent === -Infinity)) { - return NaN; - } - if (aB < 1 && exponent === Infinity) { - return +0; - } - if (aB < 1 && exponent === -Infinity) { - return Infinity; - } - if (base === Infinity) { - return exponent > 0 ? Infinity : 0; - } - if (base === -Infinity) { - var isOdd = true; - if (exponent > 0) { - return isOdd ? -Infinity : Infinity; - } - return isOdd ? -0 : 0; - } - if (exponent > 0) { - return isNegativeZero(base) ? Infinity : 0; - } - if (isNegativeZero(base)) { - if (exponent > 0) { - return isOdd ? -0 : 0; - } - return isOdd ? -Infinity : Infinity; - } - if (base < 0 && isFinite(base) && isFinite(exponent) && !IsInteger(exponent)) { - return NaN; - } - */ -}; diff --git a/node_modules/es-abstract/2020/Number/index.js b/node_modules/es-abstract/2020/Number/index.js deleted file mode 100644 index 63ec52d..0000000 --- a/node_modules/es-abstract/2020/Number/index.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var add = require('./add'); -var bitwiseAND = require('./bitwiseAND'); -var bitwiseNOT = require('./bitwiseNOT'); -var bitwiseOR = require('./bitwiseOR'); -var bitwiseXOR = require('./bitwiseXOR'); -var divide = require('./divide'); -var equal = require('./equal'); -var exponentiate = require('./exponentiate'); -var leftShift = require('./leftShift'); -var lessThan = require('./lessThan'); -var multiply = require('./multiply'); -var remainder = require('./remainder'); -var sameValue = require('./sameValue'); -var sameValueZero = require('./sameValueZero'); -var signedRightShift = require('./signedRightShift'); -var subtract = require('./subtract'); -var toString = require('./toString'); -var unaryMinus = require('./unaryMinus'); -var unsignedRightShift = require('./unsignedRightShift'); - -module.exports = { - add: add, - bitwiseAND: bitwiseAND, - bitwiseNOT: bitwiseNOT, - bitwiseOR: bitwiseOR, - bitwiseXOR: bitwiseXOR, - divide: divide, - equal: equal, - exponentiate: exponentiate, - leftShift: leftShift, - lessThan: lessThan, - multiply: multiply, - remainder: remainder, - sameValue: sameValue, - sameValueZero: sameValueZero, - signedRightShift: signedRightShift, - subtract: subtract, - toString: toString, - unaryMinus: unaryMinus, - unsignedRightShift: unsignedRightShift -}; diff --git a/node_modules/es-abstract/2020/Number/leftShift.js b/node_modules/es-abstract/2020/Number/leftShift.js deleted file mode 100644 index 804fde4..0000000 --- a/node_modules/es-abstract/2020/Number/leftShift.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('../ToInt32'); -var ToUint32 = require('../ToUint32'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-leftShift - -module.exports = function NumberLeftShift(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - var lnum = ToInt32(x); - var rnum = ToUint32(y); - - var shiftCount = rnum & 0x1F; - - return lnum << shiftCount; -}; diff --git a/node_modules/es-abstract/2020/Number/lessThan.js b/node_modules/es-abstract/2020/Number/lessThan.js deleted file mode 100644 index 5fcac24..0000000 --- a/node_modules/es-abstract/2020/Number/lessThan.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan - -module.exports = function NumberLessThan(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - // If x is NaN, return undefined. - // If y is NaN, return undefined. - if (isNaN(x) || isNaN(y)) { - return void undefined; - } - - // shortcut for the actual spec mechanics - return x < y; -}; diff --git a/node_modules/es-abstract/2020/Number/multiply.js b/node_modules/es-abstract/2020/Number/multiply.js deleted file mode 100644 index 2a6c478..0000000 --- a/node_modules/es-abstract/2020/Number/multiply.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply - -module.exports = function NumberMultiply(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - if (isNaN(x) || isNaN(y) || (x === 0 && !isFinite(y)) || (!isFinite(x) && y === 0)) { - return NaN; - } - if (!isFinite(x) && !isFinite(y)) { - return x === y ? Infinity : -Infinity; - } - if (!isFinite(x) && y !== 0) { - return x > 0 ? Infinity : -Infinity; - } - if (!isFinite(y) && x !== 0) { - return y > 0 ? Infinity : -Infinity; - } - - // shortcut for the actual spec mechanics - return x * y; -}; diff --git a/node_modules/es-abstract/2020/Number/remainder.js b/node_modules/es-abstract/2020/Number/remainder.js deleted file mode 100644 index bc61064..0000000 --- a/node_modules/es-abstract/2020/Number/remainder.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-remainder - -module.exports = function NumberRemainder(n, d) { - if (Type(n) !== 'Number' || Type(d) !== 'Number') { - throw new $TypeError('Assertion failed: `n` and `d` arguments must be Numbers'); - } - - // If either operand is NaN, the result is NaN. - // If the dividend is an infinity, or the divisor is a zero, or both, the result is NaN. - if (isNaN(n) || isNaN(d) || !isFinite(n) || d === 0) { - return NaN; - } - - // If the dividend is finite and the divisor is an infinity, the result equals the dividend. - // If the dividend is a zero and the divisor is nonzero and finite, the result is the same as the dividend. - if (!isFinite(d) || (n === 0 && d !== 0)) { - return n; - } - - // In the remaining cases, where neither an infinity, nor a zero, nor NaN is involved… - return n % d; -}; diff --git a/node_modules/es-abstract/2020/Number/sameValue.js b/node_modules/es-abstract/2020/Number/sameValue.js deleted file mode 100644 index 19efc37..0000000 --- a/node_modules/es-abstract/2020/Number/sameValue.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var isNegativeZero = require('is-negative-zero'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); -var NumberSameValueZero = require('./sameValueZero'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue - -module.exports = function NumberSameValue(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - if (x === 0 && y === 0) { - return !(isNegativeZero(x) ^ isNegativeZero(y)); - } - return NumberSameValueZero(x, y); -}; diff --git a/node_modules/es-abstract/2020/Number/sameValueZero.js b/node_modules/es-abstract/2020/Number/sameValueZero.js deleted file mode 100644 index 5688198..0000000 --- a/node_modules/es-abstract/2020/Number/sameValueZero.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero - -module.exports = function NumberSameValueZero(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - var xNaN = isNaN(x); - var yNaN = isNaN(y); - if (xNaN || yNaN) { - return xNaN === yNaN; - } - return x === y; -}; diff --git a/node_modules/es-abstract/2020/Number/signedRightShift.js b/node_modules/es-abstract/2020/Number/signedRightShift.js deleted file mode 100644 index 043ca89..0000000 --- a/node_modules/es-abstract/2020/Number/signedRightShift.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('../ToInt32'); -var ToUint32 = require('../ToUint32'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-signedRightShift - -module.exports = function NumberSignedRightShift(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - var lnum = ToInt32(x); - var rnum = ToUint32(y); - - var shiftCount = rnum & 0x1F; - - return lnum >> shiftCount; -}; diff --git a/node_modules/es-abstract/2020/Number/subtract.js b/node_modules/es-abstract/2020/Number/subtract.js deleted file mode 100644 index 3ff2dd2..0000000 --- a/node_modules/es-abstract/2020/Number/subtract.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-subtract - -module.exports = function NumberSubtract(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - return x - y; -}; diff --git a/node_modules/es-abstract/2020/Number/toString.js b/node_modules/es-abstract/2020/Number/toString.js deleted file mode 100644 index 4f13316..0000000 --- a/node_modules/es-abstract/2020/Number/toString.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-tostring - -module.exports = function NumberToString(x) { - if (Type(x) !== 'Number') { - throw new $TypeError('Assertion failed: `x` must be a Number'); - } - - return $String(x); -}; diff --git a/node_modules/es-abstract/2020/Number/unaryMinus.js b/node_modules/es-abstract/2020/Number/unaryMinus.js deleted file mode 100644 index 794582a..0000000 --- a/node_modules/es-abstract/2020/Number/unaryMinus.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var isNaN = require('../../helpers/isNaN'); - -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus - -module.exports = function NumberUnaryMinus(x) { - if (Type(x) !== 'Number') { - throw new $TypeError('Assertion failed: `x` argument must be a Number'); - } - if (isNaN(x)) { - return NaN; - } - return -x; -}; diff --git a/node_modules/es-abstract/2020/Number/unsignedRightShift.js b/node_modules/es-abstract/2020/Number/unsignedRightShift.js deleted file mode 100644 index 874439e..0000000 --- a/node_modules/es-abstract/2020/Number/unsignedRightShift.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('../ToInt32'); -var ToUint32 = require('../ToUint32'); -var Type = require('../Type'); - -// https://262.ecma-international.org/11.0/#sec-numeric-types-number-unsignedRightShift - -module.exports = function NumberUnsignedRightShift(x, y) { - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - - var lnum = ToInt32(x); - var rnum = ToUint32(y); - - var shiftCount = rnum & 0x1F; - - return lnum >>> shiftCount; -}; diff --git a/node_modules/es-abstract/2020/NumberBitwiseOp.js b/node_modules/es-abstract/2020/NumberBitwiseOp.js deleted file mode 100644 index 11425ff..0000000 --- a/node_modules/es-abstract/2020/NumberBitwiseOp.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var ToInt32 = require('./ToInt32'); -var ToUint32 = require('./ToUint32'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-numberbitwiseop - -module.exports = function NumberBitwiseOp(op, x, y) { - if (op !== '&' && op !== '|' && op !== '^') { - throw new $TypeError('Assertion failed: `op` must be `&`, `|`, or `^`'); - } - if (Type(x) !== 'Number' || Type(y) !== 'Number') { - throw new $TypeError('Assertion failed: `x` and `y` arguments must be Numbers'); - } - var lnum = ToInt32(x); - var rnum = ToUint32(y); - if (op === '&') { - return lnum & rnum; - } - if (op === '|') { - return lnum | rnum; - } - return lnum ^ rnum; -}; diff --git a/node_modules/es-abstract/2020/NumberToBigInt.js b/node_modules/es-abstract/2020/NumberToBigInt.js deleted file mode 100644 index a186988..0000000 --- a/node_modules/es-abstract/2020/NumberToBigInt.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $BigInt = GetIntrinsic('%BigInt%', true); -var $RangeError = GetIntrinsic('%RangeError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-numbertobigint - -module.exports = function NumberToBigInt(number) { - if (Type(number) !== 'Number') { - throw new $TypeError('Assertion failed: `number` must be a String'); - } - if (!IsInteger(number)) { - throw new $RangeError('The number ' + number + ' cannot be converted to a BigInt because it is not an integer'); - } - return $BigInt(number); -}; diff --git a/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js b/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js deleted file mode 100644 index 8f3bb82..0000000 --- a/node_modules/es-abstract/2020/OrdinaryCreateFromConstructor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var GetPrototypeFromConstructor = require('./GetPrototypeFromConstructor'); -var IsArray = require('./IsArray'); -var OrdinaryObjectCreate = require('./OrdinaryObjectCreate'); - -// https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor - -module.exports = function OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { - GetIntrinsic(intrinsicDefaultProto); // throws if not a valid intrinsic - var proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto); - var slots = arguments.length < 3 ? [] : arguments[2]; - if (!IsArray(slots)) { - throw new $TypeError('Assertion failed: if provided, `internalSlotsList` must be a List'); - } - return OrdinaryObjectCreate(proto, slots); -}; diff --git a/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js b/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js deleted file mode 100644 index 5d33aa6..0000000 --- a/node_modules/es-abstract/2020/OrdinaryDefineOwnProperty.js +++ /dev/null @@ -1,61 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var IsPropertyKey = require('./IsPropertyKey'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); -var ValidateAndApplyPropertyDescriptor = require('./ValidateAndApplyPropertyDescriptor'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarydefineownproperty - -module.exports = function OrdinaryDefineOwnProperty(O, P, Desc) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (!$gOPD) { - // ES3/IE 8 fallback - if (IsAccessorDescriptor(Desc)) { - throw new $SyntaxError('This environment does not support accessor property descriptors.'); - } - var creatingNormalDataProperty = !(P in O) - && Desc['[[Writable]]'] - && Desc['[[Enumerable]]'] - && Desc['[[Configurable]]'] - && '[[Value]]' in Desc; - var settingExistingDataProperty = (P in O) - && (!('[[Configurable]]' in Desc) || Desc['[[Configurable]]']) - && (!('[[Enumerable]]' in Desc) || Desc['[[Enumerable]]']) - && (!('[[Writable]]' in Desc) || Desc['[[Writable]]']) - && '[[Value]]' in Desc; - if (creatingNormalDataProperty || settingExistingDataProperty) { - O[P] = Desc['[[Value]]']; // eslint-disable-line no-param-reassign - return SameValue(O[P], Desc['[[Value]]']); - } - throw new $SyntaxError('This environment does not support defining non-writable, non-enumerable, or non-configurable properties'); - } - var desc = $gOPD(O, P); - var current = desc && ToPropertyDescriptor(desc); - var extensible = IsExtensible(O); - return ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current); -}; diff --git a/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js b/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js deleted file mode 100644 index 3d11e9f..0000000 --- a/node_modules/es-abstract/2020/OrdinaryGetOwnProperty.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -var has = require('has'); - -var IsArray = require('./IsArray'); -var IsPropertyKey = require('./IsPropertyKey'); -var IsRegExp = require('./IsRegExp'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinarygetownproperty - -module.exports = function OrdinaryGetOwnProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - if (!has(O, P)) { - return void 0; - } - if (!$gOPD) { - // ES3 / IE 8 fallback - var arrayLength = IsArray(O) && P === 'length'; - var regexLastIndex = IsRegExp(O) && P === 'lastIndex'; - return { - '[[Configurable]]': !(arrayLength || regexLastIndex), - '[[Enumerable]]': $isEnumerable(O, P), - '[[Value]]': O[P], - '[[Writable]]': true - }; - } - return ToPropertyDescriptor($gOPD(O, P)); -}; diff --git a/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js b/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js deleted file mode 100644 index ba17b98..0000000 --- a/node_modules/es-abstract/2020/OrdinaryGetPrototypeOf.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $getProto = require('../helpers/getProto'); - -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof - -module.exports = function OrdinaryGetPrototypeOf(O) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: O must be an Object'); - } - if (!$getProto) { - throw new $TypeError('This environment does not support fetching prototypes.'); - } - return $getProto(O); -}; diff --git a/node_modules/es-abstract/2020/OrdinaryHasInstance.js b/node_modules/es-abstract/2020/OrdinaryHasInstance.js deleted file mode 100644 index 85a240c..0000000 --- a/node_modules/es-abstract/2020/OrdinaryHasInstance.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasinstance - -module.exports = function OrdinaryHasInstance(C, O) { - if (IsCallable(C) === false) { - return false; - } - if (Type(O) !== 'Object') { - return false; - } - var P = Get(C, 'prototype'); - if (Type(P) !== 'Object') { - throw new $TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.'); - } - return O instanceof C; -}; diff --git a/node_modules/es-abstract/2020/OrdinaryHasProperty.js b/node_modules/es-abstract/2020/OrdinaryHasProperty.js deleted file mode 100644 index dd09ca3..0000000 --- a/node_modules/es-abstract/2020/OrdinaryHasProperty.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-ordinaryhasproperty - -module.exports = function OrdinaryHasProperty(O, P) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: P must be a Property Key'); - } - return P in O; -}; diff --git a/node_modules/es-abstract/2020/OrdinaryObjectCreate.js b/node_modules/es-abstract/2020/OrdinaryObjectCreate.js deleted file mode 100644 index 34810cd..0000000 --- a/node_modules/es-abstract/2020/OrdinaryObjectCreate.js +++ /dev/null @@ -1,46 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $ObjectCreate = GetIntrinsic('%Object.create%', true); -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var IsArray = require('./IsArray'); -var Type = require('./Type'); - -var hasProto = !({ __proto__: null } instanceof Object); - -// https://262.ecma-international.org/6.0/#sec-objectcreate - -module.exports = function OrdinaryObjectCreate(proto) { - if (proto !== null && Type(proto) !== 'Object') { - throw new $TypeError('Assertion failed: `proto` must be null or an object'); - } - var additionalInternalSlotsList = arguments.length < 2 ? [] : arguments[1]; - if (!IsArray(additionalInternalSlotsList)) { - throw new $TypeError('Assertion failed: `additionalInternalSlotsList` must be an Array'); - } - // var internalSlotsList = ['[[Prototype]]', '[[Extensible]]']; - if (additionalInternalSlotsList.length > 0) { - throw new $SyntaxError('es-abstract does not yet support internal slots'); - // internalSlotsList.push(...additionalInternalSlotsList); - } - // var O = MakeBasicObject(internalSlotsList); - // setProto(O, proto); - // return O; - - if ($ObjectCreate) { - return $ObjectCreate(proto); - } - if (hasProto) { - return { __proto__: proto }; - } - - if (proto === null) { - throw new $SyntaxError('native Object.create support is required to create null objects'); - } - var T = function T() {}; - T.prototype = proto; - return new T(); -}; diff --git a/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js b/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js deleted file mode 100644 index d0ff7a7..0000000 --- a/node_modules/es-abstract/2020/OrdinarySetPrototypeOf.js +++ /dev/null @@ -1,53 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $setProto = require('../helpers/setProto'); - -var OrdinaryGetPrototypeOf = require('./OrdinaryGetPrototypeOf'); -var Type = require('./Type'); - -// https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof - -module.exports = function OrdinarySetPrototypeOf(O, V) { - if (Type(V) !== 'Object' && Type(V) !== 'Null') { - throw new $TypeError('Assertion failed: V must be Object or Null'); - } - /* - var extensible = IsExtensible(O); - var current = OrdinaryGetPrototypeOf(O); - if (SameValue(V, current)) { - return true; - } - if (!extensible) { - return false; - } - */ - try { - $setProto(O, V); - } catch (e) { - return false; - } - return OrdinaryGetPrototypeOf(O) === V; - /* - var p = V; - var done = false; - while (!done) { - if (p === null) { - done = true; - } else if (SameValue(p, O)) { - return false; - } else { - if (wat) { - done = true; - } else { - p = p.[[Prototype]]; - } - } - } - O.[[Prototype]] = V; - return true; - */ -}; diff --git a/node_modules/es-abstract/2020/PromiseResolve.js b/node_modules/es-abstract/2020/PromiseResolve.js deleted file mode 100644 index 6474b79..0000000 --- a/node_modules/es-abstract/2020/PromiseResolve.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBind = require('call-bind'); - -var $resolve = GetIntrinsic('%Promise.resolve%', true); -var $PromiseResolve = $resolve && callBind($resolve); - -// https://262.ecma-international.org/9.0/#sec-promise-resolve - -module.exports = function PromiseResolve(C, x) { - if (!$PromiseResolve) { - throw new SyntaxError('This environment does not support Promises.'); - } - return $PromiseResolve(C, x); -}; - diff --git a/node_modules/es-abstract/2020/QuoteJSONString.js b/node_modules/es-abstract/2020/QuoteJSONString.js deleted file mode 100644 index c7ac054..0000000 --- a/node_modules/es-abstract/2020/QuoteJSONString.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var forEach = require('../helpers/forEach'); -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); - -var Type = require('./Type'); -var UnicodeEscape = require('./UnicodeEscape'); -var UTF16Encoding = require('./UTF16Encoding'); -var UTF16DecodeString = require('./UTF16DecodeString'); - -var has = require('has'); - -// https://262.ecma-international.org/11.0/#sec-quotejsonstring - -var escapes = { - '\u0008': '\\b', - '\u0009': '\\t', - '\u000A': '\\n', - '\u000C': '\\f', - '\u000D': '\\r', - '\u0022': '\\"', - '\u005c': '\\\\' -}; - -module.exports = function QuoteJSONString(value) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `value` must be a String'); - } - var product = '"'; - if (value) { - forEach(UTF16DecodeString(value), function (C) { - if (has(escapes, C)) { - product += escapes[C]; - } else { - var cCharCode = $charCodeAt(C, 0); - if (cCharCode < 0x20 || isLeadingSurrogate(C) || isTrailingSurrogate(C)) { - product += UnicodeEscape(C); - } else { - product += UTF16Encoding(cCharCode); - } - } - }); - } - product += '"'; - return product; -}; diff --git a/node_modules/es-abstract/2020/RegExpCreate.js b/node_modules/es-abstract/2020/RegExpCreate.js deleted file mode 100644 index 68e3160..0000000 --- a/node_modules/es-abstract/2020/RegExpCreate.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RegExp = GetIntrinsic('%RegExp%'); - -// var RegExpAlloc = require('./RegExpAlloc'); -// var RegExpInitialize = require('./RegExpInitialize'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/6.0/#sec-regexpcreate - -module.exports = function RegExpCreate(P, F) { - // var obj = RegExpAlloc($RegExp); - // return RegExpInitialize(obj, P, F); - - // covers spec mechanics; bypass regex brand checking - var pattern = typeof P === 'undefined' ? '' : ToString(P); - var flags = typeof F === 'undefined' ? '' : ToString(F); - return new $RegExp(pattern, flags); -}; diff --git a/node_modules/es-abstract/2020/RegExpExec.js b/node_modules/es-abstract/2020/RegExpExec.js deleted file mode 100644 index 29fee17..0000000 --- a/node_modules/es-abstract/2020/RegExpExec.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var regexExec = require('call-bind/callBound')('RegExp.prototype.exec'); - -var Call = require('./Call'); -var Get = require('./Get'); -var IsCallable = require('./IsCallable'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-regexpexec - -module.exports = function RegExpExec(R, S) { - if (Type(R) !== 'Object') { - throw new $TypeError('Assertion failed: `R` must be an Object'); - } - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - var exec = Get(R, 'exec'); - if (IsCallable(exec)) { - var result = Call(exec, R, [S]); - if (result === null || Type(result) === 'Object') { - return result; - } - throw new $TypeError('"exec" method must return `null` or an Object'); - } - return regexExec(R, S); -}; diff --git a/node_modules/es-abstract/2020/RequireObjectCoercible.js b/node_modules/es-abstract/2020/RequireObjectCoercible.js deleted file mode 100644 index 9008359..0000000 --- a/node_modules/es-abstract/2020/RequireObjectCoercible.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../5/CheckObjectCoercible'); diff --git a/node_modules/es-abstract/2020/SameValue.js b/node_modules/es-abstract/2020/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/2020/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/2020/SameValueNonNumeric.js b/node_modules/es-abstract/2020/SameValueNonNumeric.js deleted file mode 100644 index f7ef12c..0000000 --- a/node_modules/es-abstract/2020/SameValueNonNumeric.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-samevaluenonnumeric - -module.exports = function SameValueNonNumeric(x, y) { - var xType = Type(x); - if (xType === 'Number' || xType === 'Bigint') { - throw new $TypeError('Assertion failed: SameValueNonNumeric does not accept Number or BigInt values'); - } - if (xType !== Type(y)) { - throw new $TypeError('SameValueNonNumeric requires two non-numeric values of the same type.'); - } - return SameValue(x, y); -}; diff --git a/node_modules/es-abstract/2020/SameValueZero.js b/node_modules/es-abstract/2020/SameValueZero.js deleted file mode 100644 index bf1a148..0000000 --- a/node_modules/es-abstract/2020/SameValueZero.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-samevaluezero - -module.exports = function SameValueZero(x, y) { - return (x === y) || ($isNaN(x) && $isNaN(y)); -}; diff --git a/node_modules/es-abstract/2020/SecFromTime.js b/node_modules/es-abstract/2020/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/2020/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/2020/Set.js b/node_modules/es-abstract/2020/Set.js deleted file mode 100644 index ea49e81..0000000 --- a/node_modules/es-abstract/2020/Set.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - return false; - } -}()); - -// https://ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw - -module.exports = function Set(O, P, V, Throw) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: `O` must be an Object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: `P` must be a Property Key'); - } - if (Type(Throw) !== 'Boolean') { - throw new $TypeError('Assertion failed: `Throw` must be a Boolean'); - } - if (Throw) { - O[P] = V; // eslint-disable-line no-param-reassign - if (noThrowOnStrictViolation && !SameValue(O[P], V)) { - throw new $TypeError('Attempted to assign to readonly property.'); - } - return true; - } else { - try { - O[P] = V; // eslint-disable-line no-param-reassign - return noThrowOnStrictViolation ? SameValue(O[P], V) : true; - } catch (e) { - return false; - } - } -}; diff --git a/node_modules/es-abstract/2020/SetFunctionLength.js b/node_modules/es-abstract/2020/SetFunctionLength.js deleted file mode 100644 index a471b0c..0000000 --- a/node_modules/es-abstract/2020/SetFunctionLength.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var HasOwnProperty = require('./HasOwnProperty'); -var IsExtensible = require('./IsExtensible'); -var IsNonNegativeInteger = require('./IsNonNegativeInteger'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-setfunctionlength - -module.exports = function SetFunctionLength(F, length) { - if (typeof F !== 'function' || !IsExtensible(F) || HasOwnProperty(F, 'length')) { - throw new $TypeError('Assertion failed: `F` must be an extensible function and lack an own `length` property'); - } - if (Type(length) !== 'Number') { - throw new $TypeError('Assertion failed: `length` must be a Number'); - } - if (!IsNonNegativeInteger(length)) { - throw new $TypeError('Assertion failed: `length` must be an integer >= 0'); - } - return DefinePropertyOrThrow(F, 'length', { - '[[Configurable]]': true, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); -}; diff --git a/node_modules/es-abstract/2020/SetFunctionName.js b/node_modules/es-abstract/2020/SetFunctionName.js deleted file mode 100644 index f59cb7b..0000000 --- a/node_modules/es-abstract/2020/SetFunctionName.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var getSymbolDescription = require('../helpers/getSymbolDescription'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsExtensible = require('./IsExtensible'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setfunctionname - -module.exports = function SetFunctionName(F, name) { - if (typeof F !== 'function') { - throw new $TypeError('Assertion failed: `F` must be a function'); - } - if (!IsExtensible(F) || has(F, 'name')) { - throw new $TypeError('Assertion failed: `F` must be extensible, and must not have a `name` own property'); - } - var nameType = Type(name); - if (nameType !== 'Symbol' && nameType !== 'String') { - throw new $TypeError('Assertion failed: `name` must be a Symbol or a String'); - } - if (nameType === 'Symbol') { - var description = getSymbolDescription(name); - // eslint-disable-next-line no-param-reassign - name = typeof description === 'undefined' ? '' : '[' + description + ']'; - } - if (arguments.length > 2) { - var prefix = arguments[2]; - // eslint-disable-next-line no-param-reassign - name = prefix + ' ' + name; - } - return DefinePropertyOrThrow(F, 'name', { - '[[Value]]': name, - '[[Writable]]': false, - '[[Enumerable]]': false, - '[[Configurable]]': true - }); -}; diff --git a/node_modules/es-abstract/2020/SetIntegrityLevel.js b/node_modules/es-abstract/2020/SetIntegrityLevel.js deleted file mode 100644 index 1ac7d61..0000000 --- a/node_modules/es-abstract/2020/SetIntegrityLevel.js +++ /dev/null @@ -1,57 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); -var $preventExtensions = GetIntrinsic('%Object.preventExtensions%'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); - -var forEach = require('../helpers/forEach'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-setintegritylevel - -module.exports = function SetIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - if (!$preventExtensions) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.preventExtensions` support'); - } - var status = $preventExtensions(O); - if (!status) { - return false; - } - if (!$gOPN) { - throw new $SyntaxError('SetIntegrityLevel requires native `Object.getOwnPropertyNames` support'); - } - var theKeys = $gOPN(O); - if (level === 'sealed') { - forEach(theKeys, function (k) { - DefinePropertyOrThrow(O, k, { configurable: false }); - }); - } else if (level === 'frozen') { - forEach(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - var desc; - if (IsAccessorDescriptor(ToPropertyDescriptor(currentDesc))) { - desc = { configurable: false }; - } else { - desc = { configurable: false, writable: false }; - } - DefinePropertyOrThrow(O, k, desc); - } - }); - } - return true; -}; diff --git a/node_modules/es-abstract/2020/SpeciesConstructor.js b/node_modules/es-abstract/2020/SpeciesConstructor.js deleted file mode 100644 index 491eb9b..0000000 --- a/node_modules/es-abstract/2020/SpeciesConstructor.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $species = GetIntrinsic('%Symbol.species%', true); -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsConstructor = require('./IsConstructor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-speciesconstructor - -module.exports = function SpeciesConstructor(O, defaultConstructor) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - var C = O.constructor; - if (typeof C === 'undefined') { - return defaultConstructor; - } - if (Type(C) !== 'Object') { - throw new $TypeError('O.constructor is not an Object'); - } - var S = $species ? C[$species] : void 0; - if (S == null) { - return defaultConstructor; - } - if (IsConstructor(S)) { - return S; - } - throw new $TypeError('no constructor found'); -}; diff --git a/node_modules/es-abstract/2020/SplitMatch.js b/node_modules/es-abstract/2020/SplitMatch.js deleted file mode 100644 index 8ab0535..0000000 --- a/node_modules/es-abstract/2020/SplitMatch.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var IsInteger = require('./IsInteger'); -var Type = require('./Type'); - -var $charAt = callBound('String.prototype.charAt'); - -// https://262.ecma-international.org/6.0/#sec-splitmatch - -module.exports = function SplitMatch(S, q, R) { - if (Type(S) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - if (!IsInteger(q)) { - throw new $TypeError('Assertion failed: `q` must be an integer'); - } - if (Type(R) !== 'String') { - throw new $TypeError('Assertion failed: `R` must be a String'); - } - var r = R.length; - var s = S.length; - if (q + r > s) { - return false; - } - - for (var i = 0; i < r; i += 1) { - if ($charAt(S, q + i) !== $charAt(R, i)) { - return false; - } - } - - return q + r; -}; diff --git a/node_modules/es-abstract/2020/StrictEqualityComparison.js b/node_modules/es-abstract/2020/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/2020/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/2020/StringCreate.js b/node_modules/es-abstract/2020/StringCreate.js deleted file mode 100644 index da0c0ea..0000000 --- a/node_modules/es-abstract/2020/StringCreate.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); -var $StringPrototype = GetIntrinsic('%String.prototype%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefinePropertyOrThrow = require('./DefinePropertyOrThrow'); -var Type = require('./Type'); - -var setProto = require('../helpers/setProto'); - -// https://262.ecma-international.org/6.0/#sec-stringcreate - -module.exports = function StringCreate(value, prototype) { - if (Type(value) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a String'); - } - - var S = $Object(value); - if (S !== $StringPrototype) { - if (setProto) { - setProto(S, prototype); - } else { - throw new $SyntaxError('StringCreate: a `proto` argument that is not `String.prototype` is not supported in an environment that does not support setting the [[Prototype]]'); - } - } - - var length = value.length; - DefinePropertyOrThrow(S, 'length', { - '[[Configurable]]': false, - '[[Enumerable]]': false, - '[[Value]]': length, - '[[Writable]]': false - }); - - return S; -}; diff --git a/node_modules/es-abstract/2020/StringGetOwnProperty.js b/node_modules/es-abstract/2020/StringGetOwnProperty.js deleted file mode 100644 index b6f904e..0000000 --- a/node_modules/es-abstract/2020/StringGetOwnProperty.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); -var $charAt = callBound('String.prototype.charAt'); -var $stringToString = callBound('String.prototype.toString'); - -var CanonicalNumericIndexString = require('./CanonicalNumericIndexString'); -var IsInteger = require('./IsInteger'); -var IsPropertyKey = require('./IsPropertyKey'); -var Type = require('./Type'); - -var isNegativeZero = require('is-negative-zero'); - -// https://262.ecma-international.org/8.0/#sec-stringgetownproperty - -module.exports = function StringGetOwnProperty(S, P) { - var str; - if (Type(S) === 'Object') { - try { - str = $stringToString(S); - } catch (e) { /**/ } - } - if (Type(str) !== 'String') { - throw new $TypeError('Assertion failed: `S` must be a boxed string object'); - } - if (!IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: IsPropertyKey(P) is not true'); - } - if (Type(P) !== 'String') { - return void undefined; - } - var index = CanonicalNumericIndexString(P); - var len = str.length; - if (typeof index === 'undefined' || !IsInteger(index) || isNegativeZero(index) || index < 0 || len <= index) { - return void undefined; - } - var resultStr = $charAt(S, index); - return { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': resultStr, - '[[Writable]]': false - }; -}; diff --git a/node_modules/es-abstract/2020/StringPad.js b/node_modules/es-abstract/2020/StringPad.js deleted file mode 100644 index cdf6900..0000000 --- a/node_modules/es-abstract/2020/StringPad.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var ToLength = require('./ToLength'); -var ToString = require('./ToString'); - -var $strSlice = callBound('String.prototype.slice'); - -// https://262.ecma-international.org/11.0/#sec-stringpad - -module.exports = function StringPad(O, maxLength, fillString, placement) { - if (placement !== 'start' && placement !== 'end') { - throw new $TypeError('Assertion failed: `placement` must be "start" or "end"'); - } - var S = ToString(O); - var intMaxLength = ToLength(maxLength); - var stringLength = S.length; - if (intMaxLength <= stringLength) { - return S; - } - var filler = typeof fillString === 'undefined' ? ' ' : ToString(fillString); - if (filler === '') { - return S; - } - var fillLen = intMaxLength - stringLength; - - // the String value consisting of repeated concatenations of filler truncated to length fillLen. - var truncatedStringFiller = ''; - while (truncatedStringFiller.length < fillLen) { - truncatedStringFiller += filler; - } - truncatedStringFiller = $strSlice(truncatedStringFiller, 0, fillLen); - - if (placement === 'start') { - return truncatedStringFiller + S; - } - return S + truncatedStringFiller; -}; diff --git a/node_modules/es-abstract/2020/SymbolDescriptiveString.js b/node_modules/es-abstract/2020/SymbolDescriptiveString.js deleted file mode 100644 index 1efd131..0000000 --- a/node_modules/es-abstract/2020/SymbolDescriptiveString.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $SymbolToString = callBound('Symbol.prototype.toString', true); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-symboldescriptivestring - -module.exports = function SymbolDescriptiveString(sym) { - if (Type(sym) !== 'Symbol') { - throw new $TypeError('Assertion failed: `sym` must be a Symbol'); - } - return $SymbolToString(sym); -}; diff --git a/node_modules/es-abstract/2020/TestIntegrityLevel.js b/node_modules/es-abstract/2020/TestIntegrityLevel.js deleted file mode 100644 index cf1649c..0000000 --- a/node_modules/es-abstract/2020/TestIntegrityLevel.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var every = require('../helpers/every'); - -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsExtensible = require('./IsExtensible'); -var ToPropertyDescriptor = require('./ToPropertyDescriptor'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-testintegritylevel - -module.exports = function TestIntegrityLevel(O, level) { - if (Type(O) !== 'Object') { - throw new $TypeError('Assertion failed: Type(O) is not Object'); - } - if (level !== 'sealed' && level !== 'frozen') { - throw new $TypeError('Assertion failed: `level` must be `"sealed"` or `"frozen"`'); - } - var status = IsExtensible(O); - if (status) { - return false; - } - var theKeys = $gOPN(O); - return theKeys.length === 0 || every(theKeys, function (k) { - var currentDesc = $gOPD(O, k); - if (typeof currentDesc !== 'undefined') { - if (currentDesc.configurable) { - return false; - } - if (level === 'frozen' && IsDataDescriptor(ToPropertyDescriptor(currentDesc)) && currentDesc.writable) { - return false; - } - } - return true; - }); -}; diff --git a/node_modules/es-abstract/2020/TimeClip.js b/node_modules/es-abstract/2020/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/2020/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/2020/TimeFromYear.js b/node_modules/es-abstract/2020/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/2020/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/2020/TimeString.js b/node_modules/es-abstract/2020/TimeString.js deleted file mode 100644 index 051c472..0000000 --- a/node_modules/es-abstract/2020/TimeString.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var padTimeComponent = require('../helpers/padTimeComponent'); - -var HourFromTime = require('./HourFromTime'); -var MinFromTime = require('./MinFromTime'); -var SecFromTime = require('./SecFromTime'); -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-timestring - -module.exports = function TimeString(tv) { - if (Type(tv) !== 'Number' || $isNaN(tv)) { - throw new $TypeError('Assertion failed: `tv` must be a non-NaN Number'); - } - var hour = HourFromTime(tv); - var minute = MinFromTime(tv); - var second = SecFromTime(tv); - return padTimeComponent(hour) + ':' + padTimeComponent(minute) + ':' + padTimeComponent(second) + '\x20GMT'; -}; diff --git a/node_modules/es-abstract/2020/TimeWithinDay.js b/node_modules/es-abstract/2020/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/2020/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/2020/ToBoolean.js b/node_modules/es-abstract/2020/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/2020/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/2020/ToDateString.js b/node_modules/es-abstract/2020/ToDateString.js deleted file mode 100644 index e636a9b..0000000 --- a/node_modules/es-abstract/2020/ToDateString.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Date = GetIntrinsic('%Date%'); - -var $isNaN = require('../helpers/isNaN'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-todatestring - -module.exports = function ToDateString(tv) { - if (Type(tv) !== 'Number') { - throw new $TypeError('Assertion failed: `tv` must be a Number'); - } - if ($isNaN(tv)) { - return 'Invalid Date'; - } - return $Date(tv); -}; diff --git a/node_modules/es-abstract/2020/ToIndex.js b/node_modules/es-abstract/2020/ToIndex.js deleted file mode 100644 index c0185d1..0000000 --- a/node_modules/es-abstract/2020/ToIndex.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $RangeError = GetIntrinsic('%RangeError%'); - -var ToInteger = require('./ToInteger'); -var ToLength = require('./ToLength'); -var SameValue = require('./SameValue'); - -// https://262.ecma-international.org/12.0/#sec-toindex - -module.exports = function ToIndex(value) { - if (typeof value === 'undefined') { - return 0; - } - var integerIndex = ToInteger(value); - if (integerIndex < 0) { - throw new $RangeError('index must be >= 0'); - } - var index = ToLength(integerIndex); - if (!SameValue(integerIndex, index)) { - throw new $RangeError('index must be >= 0 and < 2 ** 53 - 1'); - } - return index; -}; diff --git a/node_modules/es-abstract/2020/ToInt16.js b/node_modules/es-abstract/2020/ToInt16.js deleted file mode 100644 index cb8e793..0000000 --- a/node_modules/es-abstract/2020/ToInt16.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint16 = require('./ToUint16'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint16 - -module.exports = function ToInt16(argument) { - var int16bit = ToUint16(argument); - return int16bit >= 0x8000 ? int16bit - 0x10000 : int16bit; -}; diff --git a/node_modules/es-abstract/2020/ToInt32.js b/node_modules/es-abstract/2020/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/2020/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/2020/ToInt8.js b/node_modules/es-abstract/2020/ToInt8.js deleted file mode 100644 index bc452d8..0000000 --- a/node_modules/es-abstract/2020/ToInt8.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var ToUint8 = require('./ToUint8'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toint8 - -module.exports = function ToInt8(argument) { - var int8bit = ToUint8(argument); - return int8bit >= 0x80 ? int8bit - 0x100 : int8bit; -}; diff --git a/node_modules/es-abstract/2020/ToInteger.js b/node_modules/es-abstract/2020/ToInteger.js deleted file mode 100644 index 9210af8..0000000 --- a/node_modules/es-abstract/2020/ToInteger.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var ES5ToInteger = require('../5/ToInteger'); - -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/11.0/#sec-tointeger - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - if (number !== 0) { - number = ES5ToInteger(number); - } - return number === 0 ? 0 : number; -}; diff --git a/node_modules/es-abstract/2020/ToLength.js b/node_modules/es-abstract/2020/ToLength.js deleted file mode 100644 index 1bef9be..0000000 --- a/node_modules/es-abstract/2020/ToLength.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var MAX_SAFE_INTEGER = require('../helpers/maxSafeInteger'); - -var ToInteger = require('./ToInteger'); - -module.exports = function ToLength(argument) { - var len = ToInteger(argument); - if (len <= 0) { return 0; } // includes converting -0 to +0 - if (len > MAX_SAFE_INTEGER) { return MAX_SAFE_INTEGER; } - return len; -}; diff --git a/node_modules/es-abstract/2020/ToNumber.js b/node_modules/es-abstract/2020/ToNumber.js deleted file mode 100644 index fcddeb6..0000000 --- a/node_modules/es-abstract/2020/ToNumber.js +++ /dev/null @@ -1,62 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $Number = GetIntrinsic('%Number%'); -var $RegExp = GetIntrinsic('%RegExp%'); -var $parseInteger = GetIntrinsic('%parseInt%'); - -var callBound = require('call-bind/callBound'); -var regexTester = require('../helpers/regexTester'); -var isPrimitive = require('../helpers/isPrimitive'); - -var $strSlice = callBound('String.prototype.slice'); -var isBinary = regexTester(/^0b[01]+$/i); -var isOctal = regexTester(/^0o[0-7]+$/i); -var isInvalidHexLiteral = regexTester(/^[-+]0x[0-9a-f]+$/i); -var nonWS = ['\u0085', '\u200b', '\ufffe'].join(''); -var nonWSregex = new $RegExp('[' + nonWS + ']', 'g'); -var hasNonWS = regexTester(nonWSregex); - -// whitespace from: https://es5.github.io/#x15.5.4.20 -// implementation from https://github.com/es-shims/es5-shim/blob/v3.4.0/es5-shim.js#L1304-L1324 -var ws = [ - '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003', - '\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028', - '\u2029\uFEFF' -].join(''); -var trimRegex = new RegExp('(^[' + ws + ']+)|([' + ws + ']+$)', 'g'); -var $replace = callBound('String.prototype.replace'); -var $trim = function (value) { - return $replace(value, trimRegex, ''); -}; - -var ToPrimitive = require('./ToPrimitive'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tonumber - -module.exports = function ToNumber(argument) { - var value = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (typeof value === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a number'); - } - if (typeof value === 'bigint') { - throw new $TypeError('Conversion from \'BigInt\' to \'number\' is not allowed.'); - } - if (typeof value === 'string') { - if (isBinary(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 2)); - } else if (isOctal(value)) { - return ToNumber($parseInteger($strSlice(value, 2), 8)); - } else if (hasNonWS(value) || isInvalidHexLiteral(value)) { - return NaN; - } else { - var trimmed = $trim(value); - if (trimmed !== value) { - return ToNumber(trimmed); - } - } - } - return $Number(value); -}; diff --git a/node_modules/es-abstract/2020/ToNumeric.js b/node_modules/es-abstract/2020/ToNumeric.js deleted file mode 100644 index c187760..0000000 --- a/node_modules/es-abstract/2020/ToNumeric.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); - -var isPrimitive = require('../helpers/isPrimitive'); - -var ToPrimitive = require('./ToPrimitive'); -var ToNumber = require('./ToNumber'); -var Type = require('./Type'); - -// https://262.ecma-international.org/6.0/#sec-tonumber - -module.exports = function ToNumeric(argument) { - var primValue = isPrimitive(argument) ? argument : ToPrimitive(argument, $Number); - if (Type(primValue) === 'BigInt') { - return primValue; - } - return ToNumber(primValue); -}; diff --git a/node_modules/es-abstract/2020/ToObject.js b/node_modules/es-abstract/2020/ToObject.js deleted file mode 100644 index cb26bac..0000000 --- a/node_modules/es-abstract/2020/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toobject - -module.exports = function ToObject(value) { - RequireObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/2020/ToPrimitive.js b/node_modules/es-abstract/2020/ToPrimitive.js deleted file mode 100644 index 0fbe9b8..0000000 --- a/node_modules/es-abstract/2020/ToPrimitive.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var toPrimitive = require('es-to-primitive/es2015'); - -// https://ecma-international.org/ecma-262/6.0/#sec-toprimitive - -module.exports = function ToPrimitive(input) { - if (arguments.length > 1) { - return toPrimitive(input, arguments[1]); - } - return toPrimitive(input); -}; diff --git a/node_modules/es-abstract/2020/ToPropertyDescriptor.js b/node_modules/es-abstract/2020/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/2020/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/2020/ToPropertyKey.js b/node_modules/es-abstract/2020/ToPropertyKey.js deleted file mode 100644 index fc1bf7d..0000000 --- a/node_modules/es-abstract/2020/ToPropertyKey.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -var ToPrimitive = require('./ToPrimitive'); -var ToString = require('./ToString'); - -// https://ecma-international.org/ecma-262/6.0/#sec-topropertykey - -module.exports = function ToPropertyKey(argument) { - var key = ToPrimitive(argument, $String); - return typeof key === 'symbol' ? key : ToString(key); -}; diff --git a/node_modules/es-abstract/2020/ToString.js b/node_modules/es-abstract/2020/ToString.js deleted file mode 100644 index 4d494e1..0000000 --- a/node_modules/es-abstract/2020/ToString.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -// https://ecma-international.org/ecma-262/6.0/#sec-tostring - -module.exports = function ToString(argument) { - if (typeof argument === 'symbol') { - throw new $TypeError('Cannot convert a Symbol value to a string'); - } - return $String(argument); -}; diff --git a/node_modules/es-abstract/2020/ToUint16.js b/node_modules/es-abstract/2020/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/2020/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/2020/ToUint32.js b/node_modules/es-abstract/2020/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/2020/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/2020/ToUint8.js b/node_modules/es-abstract/2020/ToUint8.js deleted file mode 100644 index 2dfd97c..0000000 --- a/node_modules/es-abstract/2020/ToUint8.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8 - -module.exports = function ToUint8(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x100); -}; diff --git a/node_modules/es-abstract/2020/ToUint8Clamp.js b/node_modules/es-abstract/2020/ToUint8Clamp.js deleted file mode 100644 index b0b8ce8..0000000 --- a/node_modules/es-abstract/2020/ToUint8Clamp.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var floor = require('./floor'); - -var $isNaN = require('../helpers/isNaN'); - -// https://ecma-international.org/ecma-262/6.0/#sec-touint8clamp - -module.exports = function ToUint8Clamp(argument) { - var number = ToNumber(argument); - if ($isNaN(number) || number <= 0) { return 0; } - if (number >= 0xFF) { return 0xFF; } - var f = floor(argument); - if (f + 0.5 < number) { return f + 1; } - if (number < f + 0.5) { return f; } - if (f % 2 !== 0) { return f + 1; } - return f; -}; diff --git a/node_modules/es-abstract/2020/TrimString.js b/node_modules/es-abstract/2020/TrimString.js deleted file mode 100644 index 113dcf8..0000000 --- a/node_modules/es-abstract/2020/TrimString.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var trimStart = require('string.prototype.trimstart'); -var trimEnd = require('string.prototype.trimend'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var RequireObjectCoercible = require('./RequireObjectCoercible'); -var ToString = require('./ToString'); - -// https://262.ecma-international.org/10.0/#sec-trimstring - -module.exports = function TrimString(string, where) { - var str = RequireObjectCoercible(string); - var S = ToString(str); - var T; - if (where === 'start') { - T = trimStart(S); - } else if (where === 'end') { - T = trimEnd(S); - } else if (where === 'start+end') { - T = trimStart(trimEnd(S)); - } else { - throw new $TypeError('Assertion failed: invalid `where` value; must be "start", "end", or "start+end"'); - } - return T; -}; diff --git a/node_modules/es-abstract/2020/Type.js b/node_modules/es-abstract/2020/Type.js deleted file mode 100644 index 555ca74..0000000 --- a/node_modules/es-abstract/2020/Type.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var ES5Type = require('../5/Type'); - -// https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values - -module.exports = function Type(x) { - if (typeof x === 'symbol') { - return 'Symbol'; - } - if (typeof x === 'bigint') { - return 'BigInt'; - } - return ES5Type(x); -}; diff --git a/node_modules/es-abstract/2020/UTF16DecodeString.js b/node_modules/es-abstract/2020/UTF16DecodeString.js deleted file mode 100644 index 8e27a21..0000000 --- a/node_modules/es-abstract/2020/UTF16DecodeString.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $push = callBound('Array.prototype.push'); - -var CodePointAt = require('./CodePointAt'); -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodestring - -module.exports = function UTF16DecodeString(string) { - if (Type(string) !== 'String') { - throw new $TypeError('Assertion failed: `string` must be a String'); - } - var codePoints = []; - var size = string.length; - var position = 0; - while (position < size) { - var cp = CodePointAt(string, position); - $push(codePoints, cp['[[CodePoint]]']); - position += cp['[[CodeUnitCount]]']; - } - return codePoints; -}; diff --git a/node_modules/es-abstract/2020/UTF16DecodeSurrogatePair.js b/node_modules/es-abstract/2020/UTF16DecodeSurrogatePair.js deleted file mode 100644 index 2632e65..0000000 --- a/node_modules/es-abstract/2020/UTF16DecodeSurrogatePair.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var isLeadingSurrogate = require('../helpers/isLeadingSurrogate'); -var isTrailingSurrogate = require('../helpers/isTrailingSurrogate'); - -// https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair - -module.exports = function UTF16DecodeSurrogatePair(lead, trail) { - if (!isLeadingSurrogate(lead) || !isTrailingSurrogate(trail)) { - throw new $TypeError('Assertion failed: `lead` must be a leading surrogate char code, and `trail` must be a trailing surrogate char code'); - } - // var cp = (lead - 0xD800) * 0x400 + (trail - 0xDC00) + 0x10000; - return $fromCharCode(lead) + $fromCharCode(trail); -}; diff --git a/node_modules/es-abstract/2020/UTF16Encoding.js b/node_modules/es-abstract/2020/UTF16Encoding.js deleted file mode 100644 index f381595..0000000 --- a/node_modules/es-abstract/2020/UTF16Encoding.js +++ /dev/null @@ -1,25 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $fromCharCode = GetIntrinsic('%String.fromCharCode%'); - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var isCodePoint = require('../helpers/isCodePoint'); - -// https://262.ecma-international.org/7.0/#sec-utf16encoding - -module.exports = function UTF16Encoding(cp) { - if (!isCodePoint(cp)) { - throw new $TypeError('Assertion failed: `cp` must be >= 0 and <= 0x10FFFF'); - } - if (cp <= 65535) { - return $fromCharCode(cp); - } - var cu1 = floor((cp - 65536) / 1024) + 0xD800; - var cu2 = modulo(cp - 65536, 1024) + 0xDC00; - return $fromCharCode(cu1) + $fromCharCode(cu2); -}; diff --git a/node_modules/es-abstract/2020/UnicodeEscape.js b/node_modules/es-abstract/2020/UnicodeEscape.js deleted file mode 100644 index b708c90..0000000 --- a/node_modules/es-abstract/2020/UnicodeEscape.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var callBound = require('call-bind/callBound'); - -var $charCodeAt = callBound('String.prototype.charCodeAt'); -var $numberToString = callBound('Number.prototype.toString'); -var $toLowerCase = callBound('String.prototype.toLowerCase'); - -var StringPad = require('./StringPad'); - -// https://262.ecma-international.org/11.0/#sec-unicodeescape - -module.exports = function UnicodeEscape(C) { - if (typeof C !== 'string' || C.length !== 1) { - throw new $TypeError('Assertion failed: `C` must be a single code unit'); - } - var n = $charCodeAt(C, 0); - if (n > 0xFFFF) { - throw new $TypeError('`Assertion failed: numeric value of `C` must be <= 0xFFFF'); - } - - return '\\u' + StringPad($toLowerCase($numberToString(n, 16)), 4, '0', 'start'); -}; diff --git a/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js b/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js deleted file mode 100644 index a7fd218..0000000 --- a/node_modules/es-abstract/2020/ValidateAndApplyPropertyDescriptor.js +++ /dev/null @@ -1,170 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var DefineOwnProperty = require('../helpers/DefineOwnProperty'); -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); -var isSamePropertyDescriptor = require('../helpers/isSamePropertyDescriptor'); - -var FromPropertyDescriptor = require('./FromPropertyDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsGenericDescriptor = require('./IsGenericDescriptor'); -var IsPropertyKey = require('./IsPropertyKey'); -var SameValue = require('./SameValue'); -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-validateandapplypropertydescriptor -// https://ecma-international.org/ecma-262/8.0/#sec-validateandapplypropertydescriptor - -// eslint-disable-next-line max-lines-per-function, max-statements, max-params -module.exports = function ValidateAndApplyPropertyDescriptor(O, P, extensible, Desc, current) { - // this uses the ES2017+ logic, since it fixes a number of bugs in the ES2015 logic. - var oType = Type(O); - if (oType !== 'Undefined' && oType !== 'Object') { - throw new $TypeError('Assertion failed: O must be undefined or an Object'); - } - if (Type(extensible) !== 'Boolean') { - throw new $TypeError('Assertion failed: extensible must be a Boolean'); - } - if (!isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, Desc)) { - throw new $TypeError('Assertion failed: Desc must be a Property Descriptor'); - } - if (Type(current) !== 'Undefined' && !isPropertyDescriptor({ - Type: Type, - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor - }, current)) { - throw new $TypeError('Assertion failed: current must be a Property Descriptor, or undefined'); - } - if (oType !== 'Undefined' && !IsPropertyKey(P)) { - throw new $TypeError('Assertion failed: if O is not undefined, P must be a Property Key'); - } - if (Type(current) === 'Undefined') { - if (!extensible) { - return false; - } - if (IsGenericDescriptor(Desc) || IsDataDescriptor(Desc)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': Desc['[[Configurable]]'], - '[[Enumerable]]': Desc['[[Enumerable]]'], - '[[Value]]': Desc['[[Value]]'], - '[[Writable]]': Desc['[[Writable]]'] - } - ); - } - } else { - if (!IsAccessorDescriptor(Desc)) { - throw new $TypeError('Assertion failed: Desc is not an accessor descriptor'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - } - return true; - } - if (IsGenericDescriptor(Desc) && !('[[Configurable]]' in Desc) && !('[[Enumerable]]' in Desc)) { - return true; - } - if (isSamePropertyDescriptor({ SameValue: SameValue }, Desc, current)) { - return true; // removed by ES2017, but should still be correct - } - // "if every field in Desc is absent, return true" can't really match the assertion that it's a Property Descriptor - if (!current['[[Configurable]]']) { - if (Desc['[[Configurable]]']) { - return false; - } - if ('[[Enumerable]]' in Desc && !Desc['[[Enumerable]]'] === !!current['[[Enumerable]]']) { - return false; - } - } - if (IsGenericDescriptor(Desc)) { - // no further validation is required. - } else if (IsDataDescriptor(current) !== IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - return false; - } - if (IsDataDescriptor(current)) { - if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Get]]': undefined - } - ); - } - } else if (oType !== 'Undefined') { - DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - { - '[[Configurable]]': current['[[Configurable]]'], - '[[Enumerable]]': current['[[Enumerable]]'], - '[[Value]]': undefined - } - ); - } - } else if (IsDataDescriptor(current) && IsDataDescriptor(Desc)) { - if (!current['[[Configurable]]'] && !current['[[Writable]]']) { - if ('[[Writable]]' in Desc && Desc['[[Writable]]']) { - return false; - } - if ('[[Value]]' in Desc && !SameValue(Desc['[[Value]]'], current['[[Value]]'])) { - return false; - } - return true; - } - } else if (IsAccessorDescriptor(current) && IsAccessorDescriptor(Desc)) { - if (!current['[[Configurable]]']) { - if ('[[Set]]' in Desc && !SameValue(Desc['[[Set]]'], current['[[Set]]'])) { - return false; - } - if ('[[Get]]' in Desc && !SameValue(Desc['[[Get]]'], current['[[Get]]'])) { - return false; - } - return true; - } - } else { - throw new $TypeError('Assertion failed: current and Desc are not both data, both accessors, or one accessor and one data.'); - } - if (oType !== 'Undefined') { - return DefineOwnProperty( - IsDataDescriptor, - SameValue, - FromPropertyDescriptor, - O, - P, - Desc - ); - } - return true; -}; diff --git a/node_modules/es-abstract/2020/WeekDay.js b/node_modules/es-abstract/2020/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/2020/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/2020/YearFromTime.js b/node_modules/es-abstract/2020/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/2020/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/2020/abs.js b/node_modules/es-abstract/2020/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/2020/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/2020/floor.js b/node_modules/es-abstract/2020/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/2020/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/2020/modulo.js b/node_modules/es-abstract/2020/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/2020/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/2020/msFromTime.js b/node_modules/es-abstract/2020/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/2020/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/2020/thisBigIntValue.js b/node_modules/es-abstract/2020/thisBigIntValue.js deleted file mode 100644 index 1fd1298..0000000 --- a/node_modules/es-abstract/2020/thisBigIntValue.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $bigIntValueOf = callBound('BigInt.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://262.ecma-international.org/11.0/#sec-thisbigintvalue - -module.exports = function thisBigIntValue(value) { - var type = Type(value); - if (type === 'BigInt') { - return value; - } - if (!$bigIntValueOf) { - throw new $TypeError('BigInt is not supported'); - } - return $bigIntValueOf(value); -}; diff --git a/node_modules/es-abstract/2020/thisBooleanValue.js b/node_modules/es-abstract/2020/thisBooleanValue.js deleted file mode 100644 index 27075b9..0000000 --- a/node_modules/es-abstract/2020/thisBooleanValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $BooleanValueOf = require('call-bind/callBound')('Boolean.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-boolean-prototype-object - -module.exports = function thisBooleanValue(value) { - if (Type(value) === 'Boolean') { - return value; - } - - return $BooleanValueOf(value); -}; diff --git a/node_modules/es-abstract/2020/thisNumberValue.js b/node_modules/es-abstract/2020/thisNumberValue.js deleted file mode 100644 index 92968dc..0000000 --- a/node_modules/es-abstract/2020/thisNumberValue.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var Type = require('./Type'); - -var $NumberValueOf = callBound('Number.prototype.valueOf'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-number-prototype-object - -module.exports = function thisNumberValue(value) { - if (Type(value) === 'Number') { - return value; - } - - return $NumberValueOf(value); -}; - diff --git a/node_modules/es-abstract/2020/thisStringValue.js b/node_modules/es-abstract/2020/thisStringValue.js deleted file mode 100644 index 8e4274d..0000000 --- a/node_modules/es-abstract/2020/thisStringValue.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var $StringValueOf = require('call-bind/callBound')('String.prototype.valueOf'); - -var Type = require('./Type'); - -// https://ecma-international.org/ecma-262/6.0/#sec-properties-of-the-string-prototype-object - -module.exports = function thisStringValue(value) { - if (Type(value) === 'String') { - return value; - } - - return $StringValueOf(value); -}; diff --git a/node_modules/es-abstract/2020/thisSymbolValue.js b/node_modules/es-abstract/2020/thisSymbolValue.js deleted file mode 100644 index 91a5525..0000000 --- a/node_modules/es-abstract/2020/thisSymbolValue.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); - -var Type = require('./Type'); - -// https://262.ecma-international.org/9.0/#sec-thissymbolvalue - -module.exports = function thisSymbolValue(value) { - if (!$SymbolValueOf) { - throw new SyntaxError('Symbols are not supported; thisSymbolValue requires that `value` be a Symbol or a Symbol object'); - } - if (Type(value) === 'Symbol') { - return value; - } - return $SymbolValueOf(value); -}; diff --git a/node_modules/es-abstract/2020/thisTimeValue.js b/node_modules/es-abstract/2020/thisTimeValue.js deleted file mode 100644 index a9a47ac..0000000 --- a/node_modules/es-abstract/2020/thisTimeValue.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('../2018/thisTimeValue'); diff --git a/node_modules/es-abstract/5/AbstractEqualityComparison.js b/node_modules/es-abstract/5/AbstractEqualityComparison.js deleted file mode 100644 index 568bb40..0000000 --- a/node_modules/es-abstract/5/AbstractEqualityComparison.js +++ /dev/null @@ -1,37 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.3 - -module.exports = function AbstractEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType === yType) { - return x === y; // ES6+ specified this shortcut anyways. - } - if (x == null && y == null) { - return true; - } - if (xType === 'Number' && yType === 'String') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if (xType === 'String' && yType === 'Number') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (xType === 'Boolean') { - return AbstractEqualityComparison(ToNumber(x), y); - } - if (yType === 'Boolean') { - return AbstractEqualityComparison(x, ToNumber(y)); - } - if ((xType === 'String' || xType === 'Number') && yType === 'Object') { - return AbstractEqualityComparison(x, ToPrimitive(y)); - } - if (xType === 'Object' && (yType === 'String' || yType === 'Number')) { - return AbstractEqualityComparison(ToPrimitive(x), y); - } - return false; -}; diff --git a/node_modules/es-abstract/5/AbstractRelationalComparison.js b/node_modules/es-abstract/5/AbstractRelationalComparison.js deleted file mode 100644 index 0dfed5f..0000000 --- a/node_modules/es-abstract/5/AbstractRelationalComparison.js +++ /dev/null @@ -1,63 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Number = GetIntrinsic('%Number%'); -var $TypeError = GetIntrinsic('%TypeError%'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var isPrefixOf = require('../helpers/isPrefixOf'); - -var ToNumber = require('./ToNumber'); -var ToPrimitive = require('./ToPrimitive'); -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.8.5 - -// eslint-disable-next-line max-statements -module.exports = function AbstractRelationalComparison(x, y, LeftFirst) { - if (Type(LeftFirst) !== 'Boolean') { - throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean'); - } - var px; - var py; - if (LeftFirst) { - px = ToPrimitive(x, $Number); - py = ToPrimitive(y, $Number); - } else { - py = ToPrimitive(y, $Number); - px = ToPrimitive(x, $Number); - } - var bothStrings = Type(px) === 'String' && Type(py) === 'String'; - if (!bothStrings) { - var nx = ToNumber(px); - var ny = ToNumber(py); - if ($isNaN(nx) || $isNaN(ny)) { - return undefined; - } - if ($isFinite(nx) && $isFinite(ny) && nx === ny) { - return false; - } - if (nx === Infinity) { - return false; - } - if (ny === Infinity) { - return true; - } - if (ny === -Infinity) { - return false; - } - if (nx === -Infinity) { - return true; - } - return nx < ny; // by now, these are both nonzero, finite, and not equal - } - if (isPrefixOf(py, px)) { - return false; - } - if (isPrefixOf(px, py)) { - return true; - } - return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f -}; diff --git a/node_modules/es-abstract/5/CheckObjectCoercible.js b/node_modules/es-abstract/5/CheckObjectCoercible.js deleted file mode 100644 index 9083c71..0000000 --- a/node_modules/es-abstract/5/CheckObjectCoercible.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -// http://262.ecma-international.org/5.1/#sec-9.10 - -module.exports = function CheckObjectCoercible(value, optMessage) { - if (value == null) { - throw new $TypeError(optMessage || ('Cannot call method on ' + value)); - } - return value; -}; diff --git a/node_modules/es-abstract/5/DateFromTime.js b/node_modules/es-abstract/5/DateFromTime.js deleted file mode 100644 index 20e4f2e..0000000 --- a/node_modules/es-abstract/5/DateFromTime.js +++ /dev/null @@ -1,54 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); -var MonthFromTime = require('./MonthFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.5 - -module.exports = function DateFromTime(t) { - var m = MonthFromTime(t); - var d = DayWithinYear(t); - if (m === 0) { - return d + 1; - } - if (m === 1) { - return d - 30; - } - var leap = InLeapYear(t); - if (m === 2) { - return d - 58 - leap; - } - if (m === 3) { - return d - 89 - leap; - } - if (m === 4) { - return d - 119 - leap; - } - if (m === 5) { - return d - 150 - leap; - } - if (m === 6) { - return d - 180 - leap; - } - if (m === 7) { - return d - 211 - leap; - } - if (m === 8) { - return d - 242 - leap; - } - if (m === 9) { - return d - 272 - leap; - } - if (m === 10) { - return d - 303 - leap; - } - if (m === 11) { - return d - 333 - leap; - } - throw new $EvalError('Assertion failed: MonthFromTime returned an impossible value: ' + m); -}; diff --git a/node_modules/es-abstract/5/Day.js b/node_modules/es-abstract/5/Day.js deleted file mode 100644 index 51d0103..0000000 --- a/node_modules/es-abstract/5/Day.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function Day(t) { - return floor(t / msPerDay); -}; diff --git a/node_modules/es-abstract/5/DayFromYear.js b/node_modules/es-abstract/5/DayFromYear.js deleted file mode 100644 index 341bf22..0000000 --- a/node_modules/es-abstract/5/DayFromYear.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var floor = require('./floor'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DayFromYear(y) { - return (365 * (y - 1970)) + floor((y - 1969) / 4) - floor((y - 1901) / 100) + floor((y - 1601) / 400); -}; - diff --git a/node_modules/es-abstract/5/DayWithinYear.js b/node_modules/es-abstract/5/DayWithinYear.js deleted file mode 100644 index 4c58094..0000000 --- a/node_modules/es-abstract/5/DayWithinYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var DayFromYear = require('./DayFromYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function DayWithinYear(t) { - return Day(t) - DayFromYear(YearFromTime(t)); -}; diff --git a/node_modules/es-abstract/5/DaysInYear.js b/node_modules/es-abstract/5/DaysInYear.js deleted file mode 100644 index 7116c69..0000000 --- a/node_modules/es-abstract/5/DaysInYear.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function DaysInYear(y) { - if (modulo(y, 4) !== 0) { - return 365; - } - if (modulo(y, 100) !== 0) { - return 366; - } - if (modulo(y, 400) !== 0) { - return 365; - } - return 366; -}; diff --git a/node_modules/es-abstract/5/FromPropertyDescriptor.js b/node_modules/es-abstract/5/FromPropertyDescriptor.js deleted file mode 100644 index 506f65c..0000000 --- a/node_modules/es-abstract/5/FromPropertyDescriptor.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://262.ecma-international.org/5.1/#sec-8.10.4 - -module.exports = function FromPropertyDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return Desc; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (IsDataDescriptor(Desc)) { - return { - value: Desc['[[Value]]'], - writable: !!Desc['[[Writable]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else if (IsAccessorDescriptor(Desc)) { - return { - get: Desc['[[Get]]'], - set: Desc['[[Set]]'], - enumerable: !!Desc['[[Enumerable]]'], - configurable: !!Desc['[[Configurable]]'] - }; - } else { - throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor'); - } -}; diff --git a/node_modules/es-abstract/5/HourFromTime.js b/node_modules/es-abstract/5/HourFromTime.js deleted file mode 100644 index f963bfb..0000000 --- a/node_modules/es-abstract/5/HourFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerHour = timeConstants.msPerHour; -var HoursPerDay = timeConstants.HoursPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function HourFromTime(t) { - return modulo(floor(t / msPerHour), HoursPerDay); -}; diff --git a/node_modules/es-abstract/5/InLeapYear.js b/node_modules/es-abstract/5/InLeapYear.js deleted file mode 100644 index bfe0c45..0000000 --- a/node_modules/es-abstract/5/InLeapYear.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $EvalError = GetIntrinsic('%EvalError%'); - -var DaysInYear = require('./DaysInYear'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function InLeapYear(t) { - var days = DaysInYear(YearFromTime(t)); - if (days === 365) { - return 0; - } - if (days === 366) { - return 1; - } - throw new $EvalError('Assertion failed: there are not 365 or 366 days in a year, got: ' + days); -}; diff --git a/node_modules/es-abstract/5/IsAccessorDescriptor.js b/node_modules/es-abstract/5/IsAccessorDescriptor.js deleted file mode 100644 index da64a30..0000000 --- a/node_modules/es-abstract/5/IsAccessorDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://262.ecma-international.org/5.1/#sec-8.10.1 - -module.exports = function IsAccessorDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/5/IsCallable.js b/node_modules/es-abstract/5/IsCallable.js deleted file mode 100644 index 3a69b19..0000000 --- a/node_modules/es-abstract/5/IsCallable.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.11 - -module.exports = require('is-callable'); diff --git a/node_modules/es-abstract/5/IsDataDescriptor.js b/node_modules/es-abstract/5/IsDataDescriptor.js deleted file mode 100644 index 9db441e..0000000 --- a/node_modules/es-abstract/5/IsDataDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var has = require('has'); - -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://262.ecma-international.org/5.1/#sec-8.10.2 - -module.exports = function IsDataDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) { - return false; - } - - return true; -}; diff --git a/node_modules/es-abstract/5/IsGenericDescriptor.js b/node_modules/es-abstract/5/IsGenericDescriptor.js deleted file mode 100644 index b47bfc3..0000000 --- a/node_modules/es-abstract/5/IsGenericDescriptor.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var Type = require('./Type'); - -var assertRecord = require('../helpers/assertRecord'); - -// https://262.ecma-international.org/5.1/#sec-8.10.3 - -module.exports = function IsGenericDescriptor(Desc) { - if (typeof Desc === 'undefined') { - return false; - } - - assertRecord(Type, 'Property Descriptor', 'Desc', Desc); - - if (!IsAccessorDescriptor(Desc) && !IsDataDescriptor(Desc)) { - return true; - } - - return false; -}; diff --git a/node_modules/es-abstract/5/IsPropertyDescriptor.js b/node_modules/es-abstract/5/IsPropertyDescriptor.js deleted file mode 100644 index 4cfe79b..0000000 --- a/node_modules/es-abstract/5/IsPropertyDescriptor.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -// TODO, semver-major: delete this - -var isPropertyDescriptor = require('../helpers/isPropertyDescriptor'); - -var Type = require('./Type'); -var IsDataDescriptor = require('./IsDataDescriptor'); -var IsAccessorDescriptor = require('./IsAccessorDescriptor'); - -// https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type - -module.exports = function IsPropertyDescriptor(Desc) { - return isPropertyDescriptor({ - IsDataDescriptor: IsDataDescriptor, - IsAccessorDescriptor: IsAccessorDescriptor, - Type: Type - }, Desc); -}; diff --git a/node_modules/es-abstract/5/MakeDate.js b/node_modules/es-abstract/5/MakeDate.js deleted file mode 100644 index efeb645..0000000 --- a/node_modules/es-abstract/5/MakeDate.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.13 - -module.exports = function MakeDate(day, time) { - if (!$isFinite(day) || !$isFinite(time)) { - return NaN; - } - return (day * msPerDay) + time; -}; diff --git a/node_modules/es-abstract/5/MakeDay.js b/node_modules/es-abstract/5/MakeDay.js deleted file mode 100644 index 13f5686..0000000 --- a/node_modules/es-abstract/5/MakeDay.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $DateUTC = GetIntrinsic('%Date.UTC%'); - -var $isFinite = require('../helpers/isFinite'); - -var DateFromTime = require('./DateFromTime'); -var Day = require('./Day'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var MonthFromTime = require('./MonthFromTime'); -var ToInteger = require('./ToInteger'); -var YearFromTime = require('./YearFromTime'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.12 - -module.exports = function MakeDay(year, month, date) { - if (!$isFinite(year) || !$isFinite(month) || !$isFinite(date)) { - return NaN; - } - var y = ToInteger(year); - var m = ToInteger(month); - var dt = ToInteger(date); - var ym = y + floor(m / 12); - var mn = modulo(m, 12); - var t = $DateUTC(ym, mn, 1); - if (YearFromTime(t) !== ym || MonthFromTime(t) !== mn || DateFromTime(t) !== 1) { - return NaN; - } - return Day(t) + dt - 1; -}; diff --git a/node_modules/es-abstract/5/MakeTime.js b/node_modules/es-abstract/5/MakeTime.js deleted file mode 100644 index 34cb4dc..0000000 --- a/node_modules/es-abstract/5/MakeTime.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var $isFinite = require('../helpers/isFinite'); -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var msPerMinute = timeConstants.msPerMinute; -var msPerHour = timeConstants.msPerHour; - -var ToInteger = require('./ToInteger'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.11 - -module.exports = function MakeTime(hour, min, sec, ms) { - if (!$isFinite(hour) || !$isFinite(min) || !$isFinite(sec) || !$isFinite(ms)) { - return NaN; - } - var h = ToInteger(hour); - var m = ToInteger(min); - var s = ToInteger(sec); - var milli = ToInteger(ms); - var t = (h * msPerHour) + (m * msPerMinute) + (s * msPerSecond) + milli; - return t; -}; diff --git a/node_modules/es-abstract/5/MinFromTime.js b/node_modules/es-abstract/5/MinFromTime.js deleted file mode 100644 index a0c631d..0000000 --- a/node_modules/es-abstract/5/MinFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerMinute = timeConstants.msPerMinute; -var MinutesPerHour = timeConstants.MinutesPerHour; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function MinFromTime(t) { - return modulo(floor(t / msPerMinute), MinutesPerHour); -}; diff --git a/node_modules/es-abstract/5/MonthFromTime.js b/node_modules/es-abstract/5/MonthFromTime.js deleted file mode 100644 index a482a7d..0000000 --- a/node_modules/es-abstract/5/MonthFromTime.js +++ /dev/null @@ -1,47 +0,0 @@ -'use strict'; - -var DayWithinYear = require('./DayWithinYear'); -var InLeapYear = require('./InLeapYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.4 - -module.exports = function MonthFromTime(t) { - var day = DayWithinYear(t); - if (0 <= day && day < 31) { - return 0; - } - var leap = InLeapYear(t); - if (31 <= day && day < (59 + leap)) { - return 1; - } - if ((59 + leap) <= day && day < (90 + leap)) { - return 2; - } - if ((90 + leap) <= day && day < (120 + leap)) { - return 3; - } - if ((120 + leap) <= day && day < (151 + leap)) { - return 4; - } - if ((151 + leap) <= day && day < (181 + leap)) { - return 5; - } - if ((181 + leap) <= day && day < (212 + leap)) { - return 6; - } - if ((212 + leap) <= day && day < (243 + leap)) { - return 7; - } - if ((243 + leap) <= day && day < (273 + leap)) { - return 8; - } - if ((273 + leap) <= day && day < (304 + leap)) { - return 9; - } - if ((304 + leap) <= day && day < (334 + leap)) { - return 10; - } - if ((334 + leap) <= day && day < (365 + leap)) { - return 11; - } -}; diff --git a/node_modules/es-abstract/5/SameValue.js b/node_modules/es-abstract/5/SameValue.js deleted file mode 100644 index b73939b..0000000 --- a/node_modules/es-abstract/5/SameValue.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $isNaN = require('../helpers/isNaN'); - -// http://262.ecma-international.org/5.1/#sec-9.12 - -module.exports = function SameValue(x, y) { - if (x === y) { // 0 === -0, but they are not identical. - if (x === 0) { return 1 / x === 1 / y; } - return true; - } - return $isNaN(x) && $isNaN(y); -}; diff --git a/node_modules/es-abstract/5/SecFromTime.js b/node_modules/es-abstract/5/SecFromTime.js deleted file mode 100644 index fc2e445..0000000 --- a/node_modules/es-abstract/5/SecFromTime.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var floor = require('./floor'); -var modulo = require('./modulo'); - -var timeConstants = require('../helpers/timeConstants'); -var msPerSecond = timeConstants.msPerSecond; -var SecondsPerMinute = timeConstants.SecondsPerMinute; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function SecFromTime(t) { - return modulo(floor(t / msPerSecond), SecondsPerMinute); -}; diff --git a/node_modules/es-abstract/5/StrictEqualityComparison.js b/node_modules/es-abstract/5/StrictEqualityComparison.js deleted file mode 100644 index f3435ba..0000000 --- a/node_modules/es-abstract/5/StrictEqualityComparison.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var Type = require('./Type'); - -// https://262.ecma-international.org/5.1/#sec-11.9.6 - -module.exports = function StrictEqualityComparison(x, y) { - var xType = Type(x); - var yType = Type(y); - if (xType !== yType) { - return false; - } - if (xType === 'Undefined' || xType === 'Null') { - return true; - } - return x === y; // shortcut for steps 4-7 -}; diff --git a/node_modules/es-abstract/5/TimeClip.js b/node_modules/es-abstract/5/TimeClip.js deleted file mode 100644 index e416cab..0000000 --- a/node_modules/es-abstract/5/TimeClip.js +++ /dev/null @@ -1,21 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); -var $Number = GetIntrinsic('%Number%'); - -var $isFinite = require('../helpers/isFinite'); - -var abs = require('./abs'); -var ToNumber = require('./ToNumber'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.14 - -module.exports = function TimeClip(time) { - if (!$isFinite(time) || abs(time) > 8.64e15) { - return NaN; - } - return $Number(new $Date(ToNumber(time))); -}; - diff --git a/node_modules/es-abstract/5/TimeFromYear.js b/node_modules/es-abstract/5/TimeFromYear.js deleted file mode 100644 index f3518a4..0000000 --- a/node_modules/es-abstract/5/TimeFromYear.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -var DayFromYear = require('./DayFromYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function TimeFromYear(y) { - return msPerDay * DayFromYear(y); -}; diff --git a/node_modules/es-abstract/5/TimeWithinDay.js b/node_modules/es-abstract/5/TimeWithinDay.js deleted file mode 100644 index 2bba833..0000000 --- a/node_modules/es-abstract/5/TimeWithinDay.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerDay = require('../helpers/timeConstants').msPerDay; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.2 - -module.exports = function TimeWithinDay(t) { - return modulo(t, msPerDay); -}; - diff --git a/node_modules/es-abstract/5/ToBoolean.js b/node_modules/es-abstract/5/ToBoolean.js deleted file mode 100644 index 466404b..0000000 --- a/node_modules/es-abstract/5/ToBoolean.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.2 - -module.exports = function ToBoolean(value) { return !!value; }; diff --git a/node_modules/es-abstract/5/ToInt32.js b/node_modules/es-abstract/5/ToInt32.js deleted file mode 100644 index b879ccc..0000000 --- a/node_modules/es-abstract/5/ToInt32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.5 - -module.exports = function ToInt32(x) { - return ToNumber(x) >> 0; -}; diff --git a/node_modules/es-abstract/5/ToInteger.js b/node_modules/es-abstract/5/ToInteger.js deleted file mode 100644 index d1c9b61..0000000 --- a/node_modules/es-abstract/5/ToInteger.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.4 - -module.exports = function ToInteger(value) { - var number = ToNumber(value); - if ($isNaN(number)) { return 0; } - if (number === 0 || !$isFinite(number)) { return number; } - return $sign(number) * floor(abs(number)); -}; diff --git a/node_modules/es-abstract/5/ToNumber.js b/node_modules/es-abstract/5/ToNumber.js deleted file mode 100644 index 2bfc74c..0000000 --- a/node_modules/es-abstract/5/ToNumber.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var ToPrimitive = require('./ToPrimitive'); - -// http://262.ecma-international.org/5.1/#sec-9.3 - -module.exports = function ToNumber(value) { - var prim = ToPrimitive(value, Number); - if (typeof prim !== 'string') { - return +prim; // eslint-disable-line no-implicit-coercion - } - - // eslint-disable-next-line no-control-regex - var trimmed = prim.replace(/^[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+|[ \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085]+$/g, ''); - if ((/^0[ob]|^[+-]0x/).test(trimmed)) { - return NaN; - } - - return +trimmed; // eslint-disable-line no-implicit-coercion -}; diff --git a/node_modules/es-abstract/5/ToObject.js b/node_modules/es-abstract/5/ToObject.js deleted file mode 100644 index 816e537..0000000 --- a/node_modules/es-abstract/5/ToObject.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Object = GetIntrinsic('%Object%'); - -var CheckObjectCoercible = require('./CheckObjectCoercible'); - -// http://262.ecma-international.org/5.1/#sec-9.9 - -module.exports = function ToObject(value) { - CheckObjectCoercible(value); - return $Object(value); -}; diff --git a/node_modules/es-abstract/5/ToPrimitive.js b/node_modules/es-abstract/5/ToPrimitive.js deleted file mode 100644 index 56dfdb0..0000000 --- a/node_modules/es-abstract/5/ToPrimitive.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// http://262.ecma-international.org/5.1/#sec-9.1 - -module.exports = require('es-to-primitive/es5'); diff --git a/node_modules/es-abstract/5/ToPropertyDescriptor.js b/node_modules/es-abstract/5/ToPropertyDescriptor.js deleted file mode 100644 index 53db874..0000000 --- a/node_modules/es-abstract/5/ToPropertyDescriptor.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var has = require('has'); - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); - -var Type = require('./Type'); -var ToBoolean = require('./ToBoolean'); -var IsCallable = require('./IsCallable'); - -// https://262.ecma-international.org/5.1/#sec-8.10.5 - -module.exports = function ToPropertyDescriptor(Obj) { - if (Type(Obj) !== 'Object') { - throw new $TypeError('ToPropertyDescriptor requires an object'); - } - - var desc = {}; - if (has(Obj, 'enumerable')) { - desc['[[Enumerable]]'] = ToBoolean(Obj.enumerable); - } - if (has(Obj, 'configurable')) { - desc['[[Configurable]]'] = ToBoolean(Obj.configurable); - } - if (has(Obj, 'value')) { - desc['[[Value]]'] = Obj.value; - } - if (has(Obj, 'writable')) { - desc['[[Writable]]'] = ToBoolean(Obj.writable); - } - if (has(Obj, 'get')) { - var getter = Obj.get; - if (typeof getter !== 'undefined' && !IsCallable(getter)) { - throw new $TypeError('getter must be a function'); - } - desc['[[Get]]'] = getter; - } - if (has(Obj, 'set')) { - var setter = Obj.set; - if (typeof setter !== 'undefined' && !IsCallable(setter)) { - throw new $TypeError('setter must be a function'); - } - desc['[[Set]]'] = setter; - } - - if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) { - throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute'); - } - return desc; -}; diff --git a/node_modules/es-abstract/5/ToString.js b/node_modules/es-abstract/5/ToString.js deleted file mode 100644 index c39faeb..0000000 --- a/node_modules/es-abstract/5/ToString.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $String = GetIntrinsic('%String%'); - -// http://262.ecma-international.org/5.1/#sec-9.8 - -module.exports = function ToString(value) { - return $String(value); -}; - diff --git a/node_modules/es-abstract/5/ToUint16.js b/node_modules/es-abstract/5/ToUint16.js deleted file mode 100644 index 633ca84..0000000 --- a/node_modules/es-abstract/5/ToUint16.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var abs = require('./abs'); -var floor = require('./floor'); -var modulo = require('./modulo'); -var ToNumber = require('./ToNumber'); - -var $isNaN = require('../helpers/isNaN'); -var $isFinite = require('../helpers/isFinite'); -var $sign = require('../helpers/sign'); - -// http://262.ecma-international.org/5.1/#sec-9.7 - -module.exports = function ToUint16(value) { - var number = ToNumber(value); - if ($isNaN(number) || number === 0 || !$isFinite(number)) { return 0; } - var posInt = $sign(number) * floor(abs(number)); - return modulo(posInt, 0x10000); -}; diff --git a/node_modules/es-abstract/5/ToUint32.js b/node_modules/es-abstract/5/ToUint32.js deleted file mode 100644 index 2a8e9dd..0000000 --- a/node_modules/es-abstract/5/ToUint32.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var ToNumber = require('./ToNumber'); - -// http://262.ecma-international.org/5.1/#sec-9.6 - -module.exports = function ToUint32(x) { - return ToNumber(x) >>> 0; -}; diff --git a/node_modules/es-abstract/5/Type.js b/node_modules/es-abstract/5/Type.js deleted file mode 100644 index f023030..0000000 --- a/node_modules/es-abstract/5/Type.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -// https://262.ecma-international.org/5.1/#sec-8 - -module.exports = function Type(x) { - if (x === null) { - return 'Null'; - } - if (typeof x === 'undefined') { - return 'Undefined'; - } - if (typeof x === 'function' || typeof x === 'object') { - return 'Object'; - } - if (typeof x === 'number') { - return 'Number'; - } - if (typeof x === 'boolean') { - return 'Boolean'; - } - if (typeof x === 'string') { - return 'String'; - } -}; diff --git a/node_modules/es-abstract/5/WeekDay.js b/node_modules/es-abstract/5/WeekDay.js deleted file mode 100644 index 17cf94c..0000000 --- a/node_modules/es-abstract/5/WeekDay.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var Day = require('./Day'); -var modulo = require('./modulo'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.6 - -module.exports = function WeekDay(t) { - return modulo(Day(t) + 4, 7); -}; diff --git a/node_modules/es-abstract/5/YearFromTime.js b/node_modules/es-abstract/5/YearFromTime.js deleted file mode 100644 index be06ecb..0000000 --- a/node_modules/es-abstract/5/YearFromTime.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Date = GetIntrinsic('%Date%'); - -var callBound = require('call-bind/callBound'); - -var $getUTCFullYear = callBound('Date.prototype.getUTCFullYear'); - -// https://262.ecma-international.org/5.1/#sec-15.9.1.3 - -module.exports = function YearFromTime(t) { - // largest y such that this.TimeFromYear(y) <= t - return $getUTCFullYear(new $Date(t)); -}; diff --git a/node_modules/es-abstract/5/abs.js b/node_modules/es-abstract/5/abs.js deleted file mode 100644 index 8bc4543..0000000 --- a/node_modules/es-abstract/5/abs.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $abs = GetIntrinsic('%Math.abs%'); - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function abs(x) { - return $abs(x); -}; diff --git a/node_modules/es-abstract/5/floor.js b/node_modules/es-abstract/5/floor.js deleted file mode 100644 index 8439df0..0000000 --- a/node_modules/es-abstract/5/floor.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -// var modulo = require('./modulo'); -var $floor = Math.floor; - -// http://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function floor(x) { - // return x - modulo(x, 1); - return $floor(x); -}; diff --git a/node_modules/es-abstract/5/modulo.js b/node_modules/es-abstract/5/modulo.js deleted file mode 100644 index b94bb52..0000000 --- a/node_modules/es-abstract/5/modulo.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var mod = require('../helpers/mod'); - -// https://262.ecma-international.org/5.1/#sec-5.2 - -module.exports = function modulo(x, y) { - return mod(x, y); -}; diff --git a/node_modules/es-abstract/5/msFromTime.js b/node_modules/es-abstract/5/msFromTime.js deleted file mode 100644 index a6bae76..0000000 --- a/node_modules/es-abstract/5/msFromTime.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var modulo = require('./modulo'); - -var msPerSecond = require('../helpers/timeConstants').msPerSecond; - -// https://262.ecma-international.org/5.1/#sec-15.9.1.10 - -module.exports = function msFromTime(t) { - return modulo(t, msPerSecond); -}; diff --git a/node_modules/es-abstract/CHANGELOG.md b/node_modules/es-abstract/CHANGELOG.md deleted file mode 100644 index c409f84..0000000 --- a/node_modules/es-abstract/CHANGELOG.md +++ /dev/null @@ -1,486 +0,0 @@ -1.18.3 / 2021-05-27 -================= - * [Fix] `ES2020+`: `ToNumber`: ensure it throws on a BigInt (#130) - -1.18.2 / 2021-05-25 -================= - * [meta] add `helpers` to "exports" field, for back compat - -1.18.1 / 2021-05-25 -================= - * [readme] update and clarify entry points - * [meta] add "exports" field, with escape hatch - * [meta] add `sideEffects` field - * [meta] use `prepublishOnly`, for npm 7+ - * [eslint] clean up eslint rules - * [Deps] update `is-regex`, `is-string`, `object-inspect`, `unbox-primitive` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` - * [actions] disable fail-fast on matrix jobs - * [actions] use `node/install` action instead of `node/run` - * [actions] update codeql-analysis to new best practices - -1.18.0 / 2021-03-03 -================= - * [New] add `ES2020`, and a number of additional AOs: See the changelog entries for the prereleases for more information: - - [next.3](./CHANGELOG.md#1180-next3--2021-03-01) - - [next.2](./CHANGELOG.md#1180-next2--2021-01-17) - - [next.1](./CHANGELOG.md#1180-next1--2020-09-30) - - [next.0](./CHANGELOG.md#1180-next0--2020-08-14) - * [Refactor] `ES5+`: `Abstract Relational Comparison`: increase coverage - * [Tests] increase coverage - * [Tests] do not run coverage on node 0.6 - -1.18.0-next.3 / 2021-03-01 -================= - * [New] `ES2015`: add `StringGetIndexProperty` - * [New] `ES2015+`: add `RegExpCreate`, `SplitMatch`, `StringCreate` - * [New] `ES2016-ES2019`: add `UTF16Decode` - * [New] `ES2020+`: add `NumberToBigInt` - * [New] `ES2020+: add `BigInt::`/`Number::` methods: - * [Fix] `ES5`: `ToNumber`: properly refuse to parse ES6+ forms - * [Fix] `ES2015+`: `Invoke`: optional argumentsList must be a List of arguments, not a list of arguments - * [Fix] `ES2016+`: `UTF16Encoding`: properly return a string code point instead of a numeric code point - * [Fix] `ES2020`: `NumberBitwiseOp`: assert that x and y are Numbers - * [readme] remove travis/testling badge, fix repo URLs - * [meta] `ES2015`: add missing `CreateArrayIterator` AO - * [meta] `ES2015-ES2017`: add missing `DaylightSavingTA` AO - * [meta] rerun `npm run spackle` to update URLs left after 11d8c8df11c0d15d094a6035afed662e22b440ef - * [meta] update ecma URLs - * [meta] unignore 2020 operations list - * [meta] update operations scripts linting - * [meta] refactor getOps script to fetch all years at once - * [meta] refactor operations script to keep years in one place - * [meta] fix ES2015 spec URL - * [Deps] update `has-symbols`, `string.prototype.trimend`, `string.prototype.trimstart`, `get-intrinsic`, `is-callable`, `is-regex` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `array.prototype.indexof`, `aud`, `es-value-fixtures`, `object.fromentries`, `tape`, `diff` - * [operations] detect ES2020+ style `T::` numeric operations - * [Tests] increase coverage - * [Tests] `BigInt(1e17)` throws on node v10.4-v10.6 - * [Tests] improve coverage on `Number::` methods - * [Tests] `tape` v5 `.equal` now uses strict equality, so no more need for `is()` - * [Tests] improve BigInt:: and Number:: coverage - * [Tests] actually run all the helpers tests - * [Tests] ensure "expected missing" ops list is accurate - * [Tests] abstract away per-operation skips - * [Tests] skip BigInt:: tests on envs without BigInts - * [Tests] use `es-value-fixtures` - * [actions] update workflows - -1.18.0-next.2 / 2021-01-17 -================= - * [New] `helpers`: add `isByteValue`, `isCodePoint`, `some` - * [Fix] `ES2018+`: fix `GetSubstitution` with named captures - * [Fix] `ES2020`: `GetIterator`: add omitted `hint` parameter - * [Fix] `ES2018`/`ES2019`: `SetFunctionLength`: Infinities should throw - * [Fix] `ES2020`: `ToIndex` uses `SameValue` instead of `SameValueZero` - * [Fix] `ES2020`: `CopyDataProperties` uses `CreateDataPropertyOrThrow` instead of `CreateDataProperty` - * [Refactor] use extracted `call-bind` instead of local helpers - * [Refactor] use extracted `get-intrinsic` package - * [Deps] update `call-bind`, `get-intrinsic`, `is-callable`, `is-negative-zero`, `is-regex`, `object-inspect`, `object.assign`, `string.prototype.trimend`, `string.prototype.trimstart` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `array.prototype.indexof`, `aud`, `diff`, `functions-have-names`, `has-bigints`, `has-strict-mode`, `object-is`, `object.fromentries`, `tape` - * [actions] switch Automatic Rebase workflow to `pull_request_target` event - * [actions] add "Allow Edits" workflow - * [meta] pin cheerio to v1.0.0-rc.3, to fix getOps - * [meta] make all URLs consistent, and point to spec artifacts - * [meta] refactor `deltas` script; update eslint on operations scripts - * [meta] do not publish .github dir (#123) - * [Tests] add `v.notNonNegativeIntegers`, `v.nonConstructorFunctions` - * [Tests] migrate tests to Github Actions - * [Tests] run coverage on all tests - * [Tests] add `npm run test:ses` - -1.18.0-next.1 / 2020-09-30 -================= - * [Fix] `ES2020`: `ToInteger`: `-0` should always be normalized to `+0` (#116) - * [patch] `GetIntrinsic`: Adapt to override-mistake-fix pattern (#115) - * [Fix] `callBind`: ensure compatibility with SES - * [Deps] update `is-callable`, `object.assign` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config` - * [eslint] fix warning - * [Tests] temporarily allow SES tests to fail (#115) - * [Tests] ses-compat - initialize module after ses lockdown (#113) - * [Tests] [Refactor] use defineProperty helper rather than assignment - * [Tests] [Refactor] clean up defineProperty test helper - -1.18.0-next.0 / 2020-08-14 -================= - * [New] add `ES2020` - * [New] `GetIntrinsic`: add `%AggregateError%`, `%FinalizationRegistry%`, and `%WeakRef%` - * [New] `ES5`+: add `abs`, `floor`; use `modulo` consistently - * [New] `GetIntrinsic`: Cache accessed intrinsics (#98) - * [New] `GetIntrinsic`: Add ES201x function intrinsics (#97) - * [New] `ES2015`+: add `QuoteJSONString`, `OrdinaryCreateFromConstructor` - * [New] `ES2017`+: add `StringGetOwnProperty` - * [New] `ES2016`+: add `UTF16Encoding` - * [New] `ES2018`+: add `SetFunctionLength`, `UnicodeEscape` - * [New] add `isLeadingSurrogate`/`isTrailingSurrogate` helpers - * [Fix] `ES5`+: `ToPropertyDescriptor`: use intrinsic TypeError - * [Fix] `ES2018+`: `CopyDataProperties`/`NumberToString`: use intrinsic TypeError - * [Deps] update `is-regex`, `object-inspect` - * [Dev Deps] update `eslint` - -1.17.7 / 2020-09-30 -================= - * [Fix] `ES2020`: `ToInteger`: `-0` should always be normalized to `+0` (#116) - * [patch] `GetIntrinsic`: Adapt to override-mistake-fix pattern (#115) - * [Fix] `callBind`: ensure compatibility with SES - * [Deps] update `is-callable`, `is-regex`, `object-inspect`, `object.assign` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config` - -1.17.6 / 2020-06-13 -================= - * [Fix] `helpers/getSymbolDescription`: use the global Symbol registry when available (#92) - * [Fix] `ES2015+`: `IsConstructor`: when `Reflect.construct` is available, be spec-accurate (#93) - * [Fix] `ES2015+`: `Set`: Always return boolean value (#101) - * [Fix] `ES2015+`: `Set`: ensure exceptions are thrown in IE 9 when requested - * [Fix] Use `Reflect.apply(…)` if available (#99) - * [Fix] `helpers/floor`: module-cache `Math.floor` - * [Fix] `helpers/getSymbolDescription`: Prefer bound `description` getter when present - * [Fix] `2016`: Use `getIteratorMethod` in `IterableToArrayLike` (#94) - * [Fix] `helpers/OwnPropertyKeys`: Use `Reflect.ownKeys(…)` if available (#91) - * [Fix] `2018+`: Fix `CopyDataProperties` depending on `this` (#95) - * [meta] mark spackled files as autogenerated - * [meta] `Type`: fix spec URL - * [meta] `ES2015`: complete ops list - * [Deps] update `is‑callable`, `is‑regex` - * [Deps] switch from `string.prototype.trimleft`/`string.prototype.trimright` to `string.prototype.trimstart`/`string.prototype.trimend` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `in-publish`, `object-is`, `tape`; add `aud` - * [eslint] `helpers/isPropertyDescriptor`: fix indentation - * [Tests] `helpers/getSymbolDescription`: add test cases; some envs have `Symbol.for` but can not infer a name (#92) - * [Tests] try out CodeQL analysis - * [Tests] reformat expected missing ops - * [Tests] Run tests with `undefined` this (#96) - -1.17.5 / 2020-03-22 -================= - * [Fix] `CreateDataProperty`: update an existing property - * [Fix] run missing spackle from cd7504701879ddea0f5981e99cbcf93bfea9171d - * [Dev Deps] update `make-arrow-function`, `tape`, `@ljharb/eslint-config` - -1.17.4 / 2020-01-21 -================= - * [Fix] `2015+`: add code to handle IE 8’s problems - * [Tests] fix tests for IE 8 - -1.17.3 / 2020-01-19 -================= - * [Fix] `ObjectCreate` `2015+`: Fall back to `__proto__` and normal `new` in older browsers - * [Fix] `GetIntrinsic`: ensure the `allowMissing` property actually works on dotted intrinsics - -1.17.2 / 2020-01-14 -================= - * [Fix] `helpers/OwnPropertyKeys`: include non-enumerables too - -1.17.1 / 2020-01-14 -================= - * [Refactor] add `OwnPropertyKeys` helper, use it in `CopyDataProperties` - * [Refactor] `IteratorClose`: remove useless assignment - * [Dev Deps] update `eslint`, `tape`, `diff` - -1.17.0 / 2019-12-20 -================= - * [New] Split up each operation into its own file (prereleased) - * [Fix] `GetIntrinsic`: IE 8 has a broken `Object.getOwnPropertyDescriptor` - * [Fix] `object.assign` is a runtime dep (prereleased) - * [Refactor] `GetIntrinsic`: remove the internal property salts, since % already handles that - * [Refactor] `GetIntrinsic`: further simplification - * [Deps] update `is-callable`, `string.prototype.trimleft`, `string.prototype.trimright`, `is-regex` - * [Dev Deps] update `@ljharb/eslint-config`, `object-is`, `object.fromentries`, `tape` - * [Tests] add `.eslintignore` - * [meta] remove unused Makefile and associated utils - * [meta] only run spackle script in publish (#78) (prereleased) - -1.17.0-next.1 / 2019-12-11 -================= - * [Fix] `object.assign` is a runtime dep - * [meta] only run spackle script in publish (#78) - -1.17.0-next.0 / 2019-12-11 -================= - * [New] Split up each operation into its own file - -1.16.3 / 2019-12-04 -================= - * [Fix] `GetIntrinsic`: when given a path to a getter, return the actual getter - * [Dev Deps] update `eslint` - -1.16.2 / 2019-11-24 -================= - * [Fix] IE 6-7 lack JSON - * [Fix] IE 6-8 strings can’t use array slice, they need string slice - * [Dev Deps] update `eslint` - -1.16.1 / 2019-11-24 -================= - * [Fix] `GetIntrinsics`: turns out IE 8 throws when `Object.getOwnPropertyDescriptor(arguments);`, and does not throw on `callee` anyways - * [Deps] update `es-to-primitive`, `has-symbols`, `object-inspect` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` - * [meta] re-include year files inside `operations` - * [meta] add `funding` field - * [actions] add Automatic Rebase github action - * [Tests] use shared travis-ci config - * [Tests] disable `check-coverage`, and let codecov do it - -1.16.0 / 2019-10-18 -================= - * [New] `ES2015+`: add `SetFunctionName` - * [New] `ES2015+`: add `GetPrototypeFromConstructor`, with caveats - * [New] `ES2015+`: add `CreateListFromArrayLike` - * [New] `ES2016+`: add `OrdinarySetPrototypeOf` - * [New] `ES2016+`: add `OrdinaryGetPrototypeOf` - * [New] add `getSymbolDescription` and `getInferredName` helpers - * [Fix] `GetIterator`: add fallback for pre-Symbol environments, tests - * [Dev Deps] update `object.fromentries` - * [Tests] add `node` `v12.2` - -1.15.0 / 2019-10-02 -================= - * [New] `ES2018`+: add `DateString`, `TimeString` - * [New] `ES2015`+: add `ToDateString` - * [New] `ES5`+: add `msFromTime`, `SecFromTime`, `MinFromTime`, `HourFromTime`, `TimeWithinDay`, `Day`, `DayFromYear`, `TimeFromYear`, `YearFromTime`, `WeekDay`, `DaysInYear`, `InLeapYear`, `DayWithinYear`, `MonthFromTime`, `DateFromTime`, `MakeDay`, `MakeDate`, `MakeTime`, `TimeClip`, `modulo` - * [New] add `regexTester` helper - * [New] add `callBound` helper - * [New] add ES2020’s intrinsic dot notation - * [New] add `isPrefixOf` helper - * [New] add `maxSafeInteger` helper - * [Deps] update `string.prototype.trimleft`, `string.prototype.trimright` - * [Dev Deps] update `eslint` - * [Tests] on `node` `v12.11` - * [meta] npmignore operations scripts; add "deltas" - -1.14.2 / 2019-09-08 -================= - * [Fix] `ES2016`: `IterableToArrayLike`: add proper fallback for strings, pre-Symbols - * [Tests] on `node` `v12.10` - -1.14.1 / 2019-09-03 -================= - * [meta] republish with some extra files removed - -1.14.0 / 2019-09-02 -================= - * [New] add ES2019 - * [New] `ES2017+`: add `IterableToList` - * [New] `ES2016`: add `IterableToArrayLike` - * [New] `ES2015+`: add `ArrayCreate`, `ArraySetLength`, `OrdinaryDefineOwnProperty`, `OrdinaryGetOwnProperty`, `OrdinaryHasProperty`, `CreateHTML`, `GetOwnPropertyKeys`, `InstanceofOperator`, `SymbolDescriptiveString`, `GetSubstitution`, `ValidateAndApplyPropertyDescriptor`, `IsPromise`, `OrdinaryHasInstance`, `TestIntegrityLevel`, `SetIntegrityLevel` - * [New] add `callBind` helper, and use it - * [New] add helpers: `isPropertyDescriptor`, `every` - * [New] ES5+: add `Abstract Relational Comparison` - * [New] ES5+: add `Abstract Equality Comparison`, `Strict Equality Comparison` - * [Fix] `ES2015+`: `GetIterator`: only require native Symbols when `method` is omitted - * [Fix] `ES2015`: `Call`: error message now properly displays Symbols using `object-inspect` - * [Fix] `ES2015+`: `ValidateAndApplyPropertyDescriptor`: use ES2017 logic to bypass spec bugs - * [Fix] `ES2015+`: `CreateDataProperty`, `DefinePropertyOrThrow`, `ValidateAndApplyPropertyDescriptor`: add fallbacks for ES3 - * [Fix] `ES2015+`: `FromPropertyDescriptor`: no longer requires a fully complete Property Descriptor - * [Fix] `ES5`: `IsPropertyDescriptor`: call into `IsDataDescriptor` and `IsAccessorDescriptor` - * [Refactor] use `has-symbols` for Symbol detection - * [Fix] `helpers/assertRecord`: remove `console.log` - * [Deps] update `object-keys` - * [readme] add security note - * [meta] change http URLs to https - * [meta] linter cleanup - * [meta] fix getOps script - * [meta] add FUNDING.yml - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `replace`, `cheerio`, `tape` - * [Tests] up to `node` `v12.9`, `v11.15`, `v10.16`, `v8.16`, `v6.17` - * [Tests] temporarily allow node 0.6 to fail; segfaulting in travis - * [Tests] use the values helper more in es5 tests - * [Tests] fix linting to apply to all files - * [Tests] run `npx aud` only on prod deps - * [Tests] add v.descriptors helpers - * [Tests] use `npx aud` instead of `npm audit` with hoops - * [Tests] use `eclint` instead of `editorconfig-tools` - * [Tests] some intrinsic cleanup - * [Tests] migrate es5 tests to use values helper - * [Tests] add some missing ES2015 ops - -1.13.0 / 2019-01-02 -================= - * [New] add ES2018 - * [New] add ES2015/ES2016: EnumerableOwnNames; ES2017: EnumerableOwnProperties - * [New] `ES2015+`: add `thisBooleanValue`, `thisNumberValue`, `thisStringValue`, `thisTimeValue` - * [New] `ES2015+`: add `DefinePropertyOrThrow`, `DeletePropertyOrThrow`, `CreateMethodProperty` - * [New] add `assertRecord` helper - * [Deps] update `is-callable`, `has`, `object-keys`, `es-to-primitive` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `semver`, `safe-publish-latest`, `replace` - * [Tests] use `npm audit` instead of `nsp` - * [Tests] remove `jscs` - * [Tests] up to `node` `v11.6`, `v10.15`, `v8.15`, `v6.16` - * [Tests] move descriptor factories to `values` helper - * [Tests] add `getOps` to programmatically fetch abstract operation names - -1.12.0 / 2018-05-31 -================= - * [New] add `GetIntrinsic` entry point - * [New] `ES2015`+: add `ObjectCreate` - * [Robustness]: `ES2015+`: ensure `Math.{abs,floor}` and `Function.call` are cached - -1.11.0 / 2018-03-21 -================= - * [New] `ES2015+`: add iterator abstract ops - * [Dev Deps] update `eslint`, `nsp`, `object.assign`, `semver`, `tape` - * [Tests] up to `node` `v9.8`, `v8.10`, `v6.13` - -1.10.0 / 2017-11-24 -================= - * [New] ES2015+: `AdvanceStringIndex` - * [Dev Deps] update `eslint`, `nsp` - * [Tests] require node 0.6 to pass again - * [Tests] up to `node` `v9.2`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS - -1.9.0 / 2017-09-30 -================= - * [New] `es2015+`: add `ArraySpeciesCreate` - * [New] ES2015+: add `CreateDataProperty` and `CreateDataPropertyOrThrow` - * [Tests] consolidate duplicated tests - * [Tests] increase coverage - * [Dev Deps] update `nsp`, `eslint` - -1.8.2 / 2017-09-03 -================= - * [Fix] `es2015`+: `ToNumber`: provide the proper hint for Date objects (#27) - * [Dev Deps] update `eslint` - -1.8.1 / 2017-08-30 -================= - * [Fix] ES2015+: `ToPropertyKey`: should return a symbol for Symbols (#26) - * [Deps] update `function-bind` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config` - * [Docs] github broke markdown parsing - -1.8.0 / 2017-08-04 -================= - * [New] add ES2017 - * [New] move es6+ to es2015+; leave es6/es7 as aliases - * [New] ES5+: add `IsPropertyDescriptor`, `IsAccessorDescriptor`, `IsDataDescriptor`, `IsGenericDescriptor`, `FromPropertyDescriptor`, `ToPropertyDescriptor` - * [New] ES2015+: add `CompletePropertyDescriptor`, `Set`, `HasOwnProperty`, `HasProperty`, `IsConcatSpreadable`, `Invoke`, `CreateIterResultObject`, `RegExpExec` - * [Fix] es7/es2016: do not mutate ES6 - * [Fix] assign helper only supports one source - * [Deps] update `is-regex` - * [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config` - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape` - * [Tests] add tests for missing and excess operations - * [Tests] add codecov for coverage - * [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`, `v4.8`; newer npm breaks on older node - * [Tests] use same lists of value types across tests; ensure tests are the same when ops are the same - * [Tests] ES2015: add ToNumber symbol tests - * [Tests] switch to `nyc` for code coverage - * [Tests] make IsRegExp tests consistent across editions - -1.7.0 / 2017-01-22 -================= - * [New] ES6: Add `GetMethod` (#16) - * [New] ES6: Add `GetV` (#16) - * [New] ES6: Add `Get` (#17) - * [Tests] up to `node` `v7.4`, `v6.9`, `v4.6`; improve test matrix - * [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` - -1.6.1 / 2016-08-21 -================= - * [Fix] ES6: IsConstructor should return true for `class` constructors. - -1.6.0 / 2016-08-20 -================= - * [New] ES5 / ES6: add `Type` - * [New] ES6: `SpeciesConstructor` - * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`; add `safe-publish-latest` - * [Tests] up to `node` `v6.4`, `v5.12`, `v4.5` - -1.5.1 / 2016-05-30 -================= - * [Fix] `ES.IsRegExp`: actually look up `Symbol.match` on the argument - * [Refactor] create `isNaN` helper - * [Deps] update `is-callable`, `function-bind` - * [Deps] update `es-to-primitive`, fix ES5 tests - * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape`, `nsp` - * [Tests] up to `node` `v6.2`, `v5.11`, `v4.4` - * [Tests] use pretest/posttest for linting/security - -1.5.0 / 2015-12-27 -================= - * [New] adds `Symbol.toPrimitive` support via `es-to-primitive` - * [Deps] update `is-callable`, `es-to-primitive` - * [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `tape` - * [Tests] up to `node` `v5.3` - -1.4.3 / 2015-11-04 -================= - * [Fix] `ES6.ToNumber`: should give `NaN` for explicitly signed hex strings (#4) - * [Refactor] `ES6.ToNumber`: No need to double-trim - * [Refactor] group tests better - * [Tests] should still pass on `node` `v0.8` - -1.4.2 / 2015-11-02 -================= - * [Fix] ensure `ES.ToNumber` trims whitespace, and does not trim non-whitespace (#3) - -1.4.1 / 2015-10-31 -================= - * [Fix] ensure only 0-1 are valid binary and 0-7 are valid octal digits (#2) - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` - * [Tests] on `node` `v5.0` - * [Tests] fix npm upgrades for older node versions - * package.json: use object form of "authors", add "contributors" - -1.4.0 / 2015-09-26 -================= - * [Deps] update `is-callable` - * [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` - * [Tests] on `node` `v4.2` - * [New] Add `SameValueNonNumber` to ES7 - -1.3.2 / 2015-09-26 -================= - * [Fix] Fix `ES6.IsRegExp` to properly handle `Symbol.match`, per spec. - * [Tests] up to `io.js` `v3.3`, `node` `v4.1` - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` - -1.3.1 / 2015-08-15 -================= - * [Fix] Ensure that objects that `toString` to a binary or octal literal also convert properly - -1.3.0 / 2015-08-15 -================= - * [New] ES6’s ToNumber now supports binary and octal literals. - * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `tape` - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - * [Tests] up to `io.js` `v3.0` - -1.2.2 / 2015-07-28 -================= - * [Fix] Both `ES5.CheckObjectCoercible` and `ES6.RequireObjectCoercible` return the value if they don't throw. - * [Tests] Test on latest `io.js` versions. - * [Dev Deps] Update `eslint`, `jscs`, `tape`, `semver`, `covert`, `nsp` - -1.2.1 / 2015-03-20 -================= - * Fix `isFinite` helper. - -1.2.0 / 2015-03-19 -================= - * Use `es-to-primitive` for ToPrimitive methods. - * Test on latest `io.js` versions; allow failures on all but 2 latest `node`/`io.js` versions. - -1.1.2 / 2015-03-20 -================= - * Fix isFinite helper. - -1.1.1 / 2015-03-19 -================= - * Fix isPrimitive check for functions - * Update `eslint`, `editorconfig-tools`, `semver`, `nsp` - -1.1.0 / 2015-02-17 -================= - * Add ES7 export (non-default). - * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. - * Test on `iojs-v1.2`. - -1.0.1 / 2015-01-30 -================= - * Use `is-callable` instead of an internal function. - * Update `tape`, `jscs`, `nsp`, `eslint` - -1.0.0 / 2015-01-10 -================= - * v1.0.0 diff --git a/node_modules/es-abstract/GetIntrinsic.js b/node_modules/es-abstract/GetIntrinsic.js deleted file mode 100644 index d7e67b4..0000000 --- a/node_modules/es-abstract/GetIntrinsic.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// TODO: remove, semver-major - -module.exports = require('get-intrinsic'); diff --git a/node_modules/es-abstract/LICENSE b/node_modules/es-abstract/LICENSE deleted file mode 100644 index 8c271c1..0000000 --- a/node_modules/es-abstract/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (C) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/es-abstract/README.md b/node_modules/es-abstract/README.md deleted file mode 100644 index 2d76a5d..0000000 --- a/node_modules/es-abstract/README.md +++ /dev/null @@ -1,43 +0,0 @@ -# es-abstract [![Version Badge][npm-version-svg]][package-url] - -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -ECMAScript spec abstract operations. - -Every operation is available by edition/year and by name - for example, `es-abstract/2020/Call` gives you the `Call` operation from ES2020, `es-abstract/5/Type` gives you the `Type` operation from ES5. - -All abstract operations are also available under an `es5`/`es2015`/`es2016`/`es2017`/`es2018`/`es2019`/`es2020` entry point, and as a property on the `main` export, but using deep imports is highly encouraged for bundle size and performance reasons. Non-deep entry points will be removed in the next semver-major release. - -## Example - -```js -var ES = require('es-abstract'); -var assert = require('assert'); - -assert(ES.isCallable(function () {})); -assert(!ES.isCallable(/a/g)); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -## Security - -Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. - -[package-url]: https://npmjs.org/package/es-abstract -[npm-version-svg]: https://versionbadg.es/ljharb/es-abstract.svg -[deps-svg]: https://david-dm.org/ljharb/es-abstract.svg -[deps-url]: https://david-dm.org/ljharb/es-abstract -[dev-deps-svg]: https://david-dm.org/ljharb/es-abstract/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/es-abstract#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/es-abstract.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/es-abstract.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/es-abstract.svg -[downloads-url]: https://npm-stat.com/charts.html?package=es-abstract diff --git a/node_modules/es-abstract/es2015.js b/node_modules/es-abstract/es2015.js deleted file mode 100644 index 79be967..0000000 --- a/node_modules/es-abstract/es2015.js +++ /dev/null @@ -1,123 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://ecma-international.org/ecma-262/6.0/#sec-abstract-operations -var ES6 = { - 'Abstract Equality Comparison': require('./2015/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2015/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2015/StrictEqualityComparison'), - abs: require('./2015/abs'), - AdvanceStringIndex: require('./2015/AdvanceStringIndex'), - ArrayCreate: require('./2015/ArrayCreate'), - ArraySetLength: require('./2015/ArraySetLength'), - ArraySpeciesCreate: require('./2015/ArraySpeciesCreate'), - Call: require('./2015/Call'), - CanonicalNumericIndexString: require('./2015/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2015/CompletePropertyDescriptor'), - CreateDataProperty: require('./2015/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2015/CreateDataPropertyOrThrow'), - CreateHTML: require('./2015/CreateHTML'), - CreateIterResultObject: require('./2015/CreateIterResultObject'), - CreateListFromArrayLike: require('./2015/CreateListFromArrayLike'), - CreateMethodProperty: require('./2015/CreateMethodProperty'), - DateFromTime: require('./2015/DateFromTime'), - Day: require('./2015/Day'), - DayFromYear: require('./2015/DayFromYear'), - DaysInYear: require('./2015/DaysInYear'), - DayWithinYear: require('./2015/DayWithinYear'), - DefinePropertyOrThrow: require('./2015/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2015/DeletePropertyOrThrow'), - EnumerableOwnNames: require('./2015/EnumerableOwnNames'), - floor: require('./2015/floor'), - FromPropertyDescriptor: require('./2015/FromPropertyDescriptor'), - Get: require('./2015/Get'), - GetIterator: require('./2015/GetIterator'), - GetMethod: require('./2015/GetMethod'), - GetOwnPropertyKeys: require('./2015/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2015/GetPrototypeFromConstructor'), - GetSubstitution: require('./2015/GetSubstitution'), - GetV: require('./2015/GetV'), - HasOwnProperty: require('./2015/HasOwnProperty'), - HasProperty: require('./2015/HasProperty'), - HourFromTime: require('./2015/HourFromTime'), - InLeapYear: require('./2015/InLeapYear'), - InstanceofOperator: require('./2015/InstanceofOperator'), - Invoke: require('./2015/Invoke'), - IsAccessorDescriptor: require('./2015/IsAccessorDescriptor'), - IsArray: require('./2015/IsArray'), - IsCallable: require('./2015/IsCallable'), - IsConcatSpreadable: require('./2015/IsConcatSpreadable'), - IsConstructor: require('./2015/IsConstructor'), - IsDataDescriptor: require('./2015/IsDataDescriptor'), - IsExtensible: require('./2015/IsExtensible'), - IsGenericDescriptor: require('./2015/IsGenericDescriptor'), - IsInteger: require('./2015/IsInteger'), - IsPromise: require('./2015/IsPromise'), - IsPropertyDescriptor: require('./2015/IsPropertyDescriptor'), - IsPropertyKey: require('./2015/IsPropertyKey'), - IsRegExp: require('./2015/IsRegExp'), - IteratorClose: require('./2015/IteratorClose'), - IteratorComplete: require('./2015/IteratorComplete'), - IteratorNext: require('./2015/IteratorNext'), - IteratorStep: require('./2015/IteratorStep'), - IteratorValue: require('./2015/IteratorValue'), - MakeDate: require('./2015/MakeDate'), - MakeDay: require('./2015/MakeDay'), - MakeTime: require('./2015/MakeTime'), - MinFromTime: require('./2015/MinFromTime'), - modulo: require('./2015/modulo'), - MonthFromTime: require('./2015/MonthFromTime'), - msFromTime: require('./2015/msFromTime'), - ObjectCreate: require('./2015/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2015/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2015/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2015/OrdinaryGetOwnProperty'), - OrdinaryHasInstance: require('./2015/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2015/OrdinaryHasProperty'), - QuoteJSONString: require('./2015/QuoteJSONString'), - RegExpCreate: require('./2015/RegExpCreate'), - RegExpExec: require('./2015/RegExpExec'), - RequireObjectCoercible: require('./2015/RequireObjectCoercible'), - SameValue: require('./2015/SameValue'), - SameValueZero: require('./2015/SameValueZero'), - SecFromTime: require('./2015/SecFromTime'), - Set: require('./2015/Set'), - SetFunctionName: require('./2015/SetFunctionName'), - SetIntegrityLevel: require('./2015/SetIntegrityLevel'), - SpeciesConstructor: require('./2015/SpeciesConstructor'), - SplitMatch: require('./2015/SplitMatch'), - StringCreate: require('./2015/StringCreate'), - StringGetIndexProperty: require('./2015/StringGetIndexProperty'), - SymbolDescriptiveString: require('./2015/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2015/TestIntegrityLevel'), - thisBooleanValue: require('./2015/thisBooleanValue'), - thisNumberValue: require('./2015/thisNumberValue'), - thisStringValue: require('./2015/thisStringValue'), - thisTimeValue: require('./2015/thisTimeValue'), - TimeClip: require('./2015/TimeClip'), - TimeFromYear: require('./2015/TimeFromYear'), - TimeWithinDay: require('./2015/TimeWithinDay'), - ToBoolean: require('./2015/ToBoolean'), - ToDateString: require('./2015/ToDateString'), - ToInt16: require('./2015/ToInt16'), - ToInt32: require('./2015/ToInt32'), - ToInt8: require('./2015/ToInt8'), - ToInteger: require('./2015/ToInteger'), - ToLength: require('./2015/ToLength'), - ToNumber: require('./2015/ToNumber'), - ToObject: require('./2015/ToObject'), - ToPrimitive: require('./2015/ToPrimitive'), - ToPropertyDescriptor: require('./2015/ToPropertyDescriptor'), - ToPropertyKey: require('./2015/ToPropertyKey'), - ToString: require('./2015/ToString'), - ToUint16: require('./2015/ToUint16'), - ToUint32: require('./2015/ToUint32'), - ToUint8: require('./2015/ToUint8'), - ToUint8Clamp: require('./2015/ToUint8Clamp'), - Type: require('./2015/Type'), - ValidateAndApplyPropertyDescriptor: require('./2015/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2015/WeekDay'), - YearFromTime: require('./2015/YearFromTime') -}; - -module.exports = ES6; diff --git a/node_modules/es-abstract/es2016.js b/node_modules/es-abstract/es2016.js deleted file mode 100644 index 6fbdb0c..0000000 --- a/node_modules/es-abstract/es2016.js +++ /dev/null @@ -1,128 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://262.ecma-international.org/7.0/#sec-abstract-operations -var ES2016 = { - 'Abstract Equality Comparison': require('./2016/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2016/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2016/StrictEqualityComparison'), - abs: require('./2016/abs'), - AdvanceStringIndex: require('./2016/AdvanceStringIndex'), - ArrayCreate: require('./2016/ArrayCreate'), - ArraySetLength: require('./2016/ArraySetLength'), - ArraySpeciesCreate: require('./2016/ArraySpeciesCreate'), - Call: require('./2016/Call'), - CanonicalNumericIndexString: require('./2016/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2016/CompletePropertyDescriptor'), - CreateDataProperty: require('./2016/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2016/CreateDataPropertyOrThrow'), - CreateHTML: require('./2016/CreateHTML'), - CreateIterResultObject: require('./2016/CreateIterResultObject'), - CreateListFromArrayLike: require('./2016/CreateListFromArrayLike'), - CreateMethodProperty: require('./2016/CreateMethodProperty'), - DateFromTime: require('./2016/DateFromTime'), - Day: require('./2016/Day'), - DayFromYear: require('./2016/DayFromYear'), - DaysInYear: require('./2016/DaysInYear'), - DayWithinYear: require('./2016/DayWithinYear'), - DefinePropertyOrThrow: require('./2016/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2016/DeletePropertyOrThrow'), - EnumerableOwnNames: require('./2016/EnumerableOwnNames'), - floor: require('./2016/floor'), - FromPropertyDescriptor: require('./2016/FromPropertyDescriptor'), - Get: require('./2016/Get'), - GetIterator: require('./2016/GetIterator'), - GetMethod: require('./2016/GetMethod'), - GetOwnPropertyKeys: require('./2016/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2016/GetPrototypeFromConstructor'), - GetSubstitution: require('./2016/GetSubstitution'), - GetV: require('./2016/GetV'), - HasOwnProperty: require('./2016/HasOwnProperty'), - HasProperty: require('./2016/HasProperty'), - HourFromTime: require('./2016/HourFromTime'), - InLeapYear: require('./2016/InLeapYear'), - InstanceofOperator: require('./2016/InstanceofOperator'), - Invoke: require('./2016/Invoke'), - IsAccessorDescriptor: require('./2016/IsAccessorDescriptor'), - IsArray: require('./2016/IsArray'), - IsCallable: require('./2016/IsCallable'), - IsConcatSpreadable: require('./2016/IsConcatSpreadable'), - IsConstructor: require('./2016/IsConstructor'), - IsDataDescriptor: require('./2016/IsDataDescriptor'), - IsExtensible: require('./2016/IsExtensible'), - IsGenericDescriptor: require('./2016/IsGenericDescriptor'), - IsInteger: require('./2016/IsInteger'), - IsPromise: require('./2016/IsPromise'), - IsPropertyDescriptor: require('./2016/IsPropertyDescriptor'), - IsPropertyKey: require('./2016/IsPropertyKey'), - IsRegExp: require('./2016/IsRegExp'), - IterableToArrayLike: require('./2016/IterableToArrayLike'), - IteratorClose: require('./2016/IteratorClose'), - IteratorComplete: require('./2016/IteratorComplete'), - IteratorNext: require('./2016/IteratorNext'), - IteratorStep: require('./2016/IteratorStep'), - IteratorValue: require('./2016/IteratorValue'), - MakeDate: require('./2016/MakeDate'), - MakeDay: require('./2016/MakeDay'), - MakeTime: require('./2016/MakeTime'), - MinFromTime: require('./2016/MinFromTime'), - modulo: require('./2016/modulo'), - MonthFromTime: require('./2016/MonthFromTime'), - msFromTime: require('./2016/msFromTime'), - ObjectCreate: require('./2016/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2016/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2016/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2016/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2016/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2016/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2016/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2016/OrdinarySetPrototypeOf'), - QuoteJSONString: require('./2016/QuoteJSONString'), - RegExpCreate: require('./2016/RegExpCreate'), - RegExpExec: require('./2016/RegExpExec'), - RequireObjectCoercible: require('./2016/RequireObjectCoercible'), - SameValue: require('./2016/SameValue'), - SameValueNonNumber: require('./2016/SameValueNonNumber'), - SameValueZero: require('./2016/SameValueZero'), - SecFromTime: require('./2016/SecFromTime'), - Set: require('./2016/Set'), - SetFunctionName: require('./2016/SetFunctionName'), - SetIntegrityLevel: require('./2016/SetIntegrityLevel'), - SpeciesConstructor: require('./2016/SpeciesConstructor'), - SplitMatch: require('./2016/SplitMatch'), - StringCreate: require('./2016/StringCreate'), - SymbolDescriptiveString: require('./2016/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2016/TestIntegrityLevel'), - thisBooleanValue: require('./2016/thisBooleanValue'), - thisNumberValue: require('./2016/thisNumberValue'), - thisStringValue: require('./2016/thisStringValue'), - thisTimeValue: require('./2016/thisTimeValue'), - TimeClip: require('./2016/TimeClip'), - TimeFromYear: require('./2016/TimeFromYear'), - TimeWithinDay: require('./2016/TimeWithinDay'), - ToBoolean: require('./2016/ToBoolean'), - ToDateString: require('./2016/ToDateString'), - ToInt16: require('./2016/ToInt16'), - ToInt32: require('./2016/ToInt32'), - ToInt8: require('./2016/ToInt8'), - ToInteger: require('./2016/ToInteger'), - ToLength: require('./2016/ToLength'), - ToNumber: require('./2016/ToNumber'), - ToObject: require('./2016/ToObject'), - ToPrimitive: require('./2016/ToPrimitive'), - ToPropertyDescriptor: require('./2016/ToPropertyDescriptor'), - ToPropertyKey: require('./2016/ToPropertyKey'), - ToString: require('./2016/ToString'), - ToUint16: require('./2016/ToUint16'), - ToUint32: require('./2016/ToUint32'), - ToUint8: require('./2016/ToUint8'), - ToUint8Clamp: require('./2016/ToUint8Clamp'), - Type: require('./2016/Type'), - UTF16Decode: require('./2016/UTF16Decode'), - UTF16Encoding: require('./2016/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2016/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2016/WeekDay'), - YearFromTime: require('./2016/YearFromTime') -}; - -module.exports = ES2016; diff --git a/node_modules/es-abstract/es2017.js b/node_modules/es-abstract/es2017.js deleted file mode 100644 index 3cf0c00..0000000 --- a/node_modules/es-abstract/es2017.js +++ /dev/null @@ -1,130 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://262.ecma-international.org/8.0/#sec-abstract-operations -var ES2017 = { - 'Abstract Equality Comparison': require('./2017/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2017/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2017/StrictEqualityComparison'), - abs: require('./2017/abs'), - AdvanceStringIndex: require('./2017/AdvanceStringIndex'), - ArrayCreate: require('./2017/ArrayCreate'), - ArraySetLength: require('./2017/ArraySetLength'), - ArraySpeciesCreate: require('./2017/ArraySpeciesCreate'), - Call: require('./2017/Call'), - CanonicalNumericIndexString: require('./2017/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2017/CompletePropertyDescriptor'), - CreateDataProperty: require('./2017/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2017/CreateDataPropertyOrThrow'), - CreateHTML: require('./2017/CreateHTML'), - CreateIterResultObject: require('./2017/CreateIterResultObject'), - CreateListFromArrayLike: require('./2017/CreateListFromArrayLike'), - CreateMethodProperty: require('./2017/CreateMethodProperty'), - DateFromTime: require('./2017/DateFromTime'), - Day: require('./2017/Day'), - DayFromYear: require('./2017/DayFromYear'), - DaysInYear: require('./2017/DaysInYear'), - DayWithinYear: require('./2017/DayWithinYear'), - DefinePropertyOrThrow: require('./2017/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2017/DeletePropertyOrThrow'), - EnumerableOwnProperties: require('./2017/EnumerableOwnProperties'), - floor: require('./2017/floor'), - FromPropertyDescriptor: require('./2017/FromPropertyDescriptor'), - Get: require('./2017/Get'), - GetIterator: require('./2017/GetIterator'), - GetMethod: require('./2017/GetMethod'), - GetOwnPropertyKeys: require('./2017/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2017/GetPrototypeFromConstructor'), - GetSubstitution: require('./2017/GetSubstitution'), - GetV: require('./2017/GetV'), - HasOwnProperty: require('./2017/HasOwnProperty'), - HasProperty: require('./2017/HasProperty'), - HourFromTime: require('./2017/HourFromTime'), - InLeapYear: require('./2017/InLeapYear'), - InstanceofOperator: require('./2017/InstanceofOperator'), - Invoke: require('./2017/Invoke'), - IsAccessorDescriptor: require('./2017/IsAccessorDescriptor'), - IsArray: require('./2017/IsArray'), - IsCallable: require('./2017/IsCallable'), - IsConcatSpreadable: require('./2017/IsConcatSpreadable'), - IsConstructor: require('./2017/IsConstructor'), - IsDataDescriptor: require('./2017/IsDataDescriptor'), - IsExtensible: require('./2017/IsExtensible'), - IsGenericDescriptor: require('./2017/IsGenericDescriptor'), - IsInteger: require('./2017/IsInteger'), - IsPromise: require('./2017/IsPromise'), - IsPropertyDescriptor: require('./2017/IsPropertyDescriptor'), - IsPropertyKey: require('./2017/IsPropertyKey'), - IsRegExp: require('./2017/IsRegExp'), - IterableToList: require('./2017/IterableToList'), - IteratorClose: require('./2017/IteratorClose'), - IteratorComplete: require('./2017/IteratorComplete'), - IteratorNext: require('./2017/IteratorNext'), - IteratorStep: require('./2017/IteratorStep'), - IteratorValue: require('./2017/IteratorValue'), - MakeDate: require('./2017/MakeDate'), - MakeDay: require('./2017/MakeDay'), - MakeTime: require('./2017/MakeTime'), - MinFromTime: require('./2017/MinFromTime'), - modulo: require('./2017/modulo'), - MonthFromTime: require('./2017/MonthFromTime'), - msFromTime: require('./2017/msFromTime'), - ObjectCreate: require('./2017/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2017/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2017/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2017/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2017/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2017/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2017/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2017/OrdinarySetPrototypeOf'), - QuoteJSONString: require('./2017/QuoteJSONString'), - RegExpCreate: require('./2017/RegExpCreate'), - RegExpExec: require('./2017/RegExpExec'), - RequireObjectCoercible: require('./2017/RequireObjectCoercible'), - SameValue: require('./2017/SameValue'), - SameValueNonNumber: require('./2017/SameValueNonNumber'), - SameValueZero: require('./2017/SameValueZero'), - SecFromTime: require('./2017/SecFromTime'), - Set: require('./2017/Set'), - SetFunctionName: require('./2017/SetFunctionName'), - SetIntegrityLevel: require('./2017/SetIntegrityLevel'), - SpeciesConstructor: require('./2017/SpeciesConstructor'), - SplitMatch: require('./2017/SplitMatch'), - StringCreate: require('./2017/StringCreate'), - StringGetOwnProperty: require('./2017/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2017/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2017/TestIntegrityLevel'), - thisBooleanValue: require('./2017/thisBooleanValue'), - thisNumberValue: require('./2017/thisNumberValue'), - thisStringValue: require('./2017/thisStringValue'), - thisTimeValue: require('./2017/thisTimeValue'), - TimeClip: require('./2017/TimeClip'), - TimeFromYear: require('./2017/TimeFromYear'), - TimeWithinDay: require('./2017/TimeWithinDay'), - ToBoolean: require('./2017/ToBoolean'), - ToDateString: require('./2017/ToDateString'), - ToIndex: require('./2017/ToIndex'), - ToInt16: require('./2017/ToInt16'), - ToInt32: require('./2017/ToInt32'), - ToInt8: require('./2017/ToInt8'), - ToInteger: require('./2017/ToInteger'), - ToLength: require('./2017/ToLength'), - ToNumber: require('./2017/ToNumber'), - ToObject: require('./2017/ToObject'), - ToPrimitive: require('./2017/ToPrimitive'), - ToPropertyDescriptor: require('./2017/ToPropertyDescriptor'), - ToPropertyKey: require('./2017/ToPropertyKey'), - ToString: require('./2017/ToString'), - ToUint16: require('./2017/ToUint16'), - ToUint32: require('./2017/ToUint32'), - ToUint8: require('./2017/ToUint8'), - ToUint8Clamp: require('./2017/ToUint8Clamp'), - Type: require('./2017/Type'), - UTF16Decode: require('./2017/UTF16Decode'), - UTF16Encoding: require('./2017/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2017/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2017/WeekDay'), - YearFromTime: require('./2017/YearFromTime') -}; - -module.exports = ES2017; diff --git a/node_modules/es-abstract/es2018.js b/node_modules/es-abstract/es2018.js deleted file mode 100644 index 2beb989..0000000 --- a/node_modules/es-abstract/es2018.js +++ /dev/null @@ -1,138 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://262.ecma-international.org/9.0/#sec-abstract-operations -var ES2018 = { - 'Abstract Equality Comparison': require('./2018/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2018/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2018/StrictEqualityComparison'), - abs: require('./2018/abs'), - AdvanceStringIndex: require('./2018/AdvanceStringIndex'), - ArrayCreate: require('./2018/ArrayCreate'), - ArraySetLength: require('./2018/ArraySetLength'), - ArraySpeciesCreate: require('./2018/ArraySpeciesCreate'), - Call: require('./2018/Call'), - CanonicalNumericIndexString: require('./2018/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2018/CompletePropertyDescriptor'), - CopyDataProperties: require('./2018/CopyDataProperties'), - CreateDataProperty: require('./2018/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2018/CreateDataPropertyOrThrow'), - CreateHTML: require('./2018/CreateHTML'), - CreateIterResultObject: require('./2018/CreateIterResultObject'), - CreateListFromArrayLike: require('./2018/CreateListFromArrayLike'), - CreateMethodProperty: require('./2018/CreateMethodProperty'), - DateFromTime: require('./2018/DateFromTime'), - DateString: require('./2018/DateString'), - Day: require('./2018/Day'), - DayFromYear: require('./2018/DayFromYear'), - DaysInYear: require('./2018/DaysInYear'), - DayWithinYear: require('./2018/DayWithinYear'), - DefinePropertyOrThrow: require('./2018/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2018/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2018/EnumerableOwnPropertyNames'), - floor: require('./2018/floor'), - FromPropertyDescriptor: require('./2018/FromPropertyDescriptor'), - Get: require('./2018/Get'), - GetIterator: require('./2018/GetIterator'), - GetMethod: require('./2018/GetMethod'), - GetOwnPropertyKeys: require('./2018/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2018/GetPrototypeFromConstructor'), - GetSubstitution: require('./2018/GetSubstitution'), - GetV: require('./2018/GetV'), - HasOwnProperty: require('./2018/HasOwnProperty'), - HasProperty: require('./2018/HasProperty'), - HourFromTime: require('./2018/HourFromTime'), - InLeapYear: require('./2018/InLeapYear'), - InstanceofOperator: require('./2018/InstanceofOperator'), - Invoke: require('./2018/Invoke'), - IsAccessorDescriptor: require('./2018/IsAccessorDescriptor'), - IsArray: require('./2018/IsArray'), - IsCallable: require('./2018/IsCallable'), - IsConcatSpreadable: require('./2018/IsConcatSpreadable'), - IsConstructor: require('./2018/IsConstructor'), - IsDataDescriptor: require('./2018/IsDataDescriptor'), - IsExtensible: require('./2018/IsExtensible'), - IsGenericDescriptor: require('./2018/IsGenericDescriptor'), - IsInteger: require('./2018/IsInteger'), - IsPromise: require('./2018/IsPromise'), - IsPropertyKey: require('./2018/IsPropertyKey'), - IsRegExp: require('./2018/IsRegExp'), - IsStringPrefix: require('./2018/IsStringPrefix'), - IterableToList: require('./2018/IterableToList'), - IteratorClose: require('./2018/IteratorClose'), - IteratorComplete: require('./2018/IteratorComplete'), - IteratorNext: require('./2018/IteratorNext'), - IteratorStep: require('./2018/IteratorStep'), - IteratorValue: require('./2018/IteratorValue'), - MakeDate: require('./2018/MakeDate'), - MakeDay: require('./2018/MakeDay'), - MakeTime: require('./2018/MakeTime'), - MinFromTime: require('./2018/MinFromTime'), - modulo: require('./2018/modulo'), - MonthFromTime: require('./2018/MonthFromTime'), - msFromTime: require('./2018/msFromTime'), - NumberToString: require('./2018/NumberToString'), - ObjectCreate: require('./2018/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2018/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2018/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2018/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2018/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2018/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2018/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2018/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2018/PromiseResolve'), - QuoteJSONString: require('./2018/QuoteJSONString'), - RegExpCreate: require('./2018/RegExpCreate'), - RegExpExec: require('./2018/RegExpExec'), - RequireObjectCoercible: require('./2018/RequireObjectCoercible'), - SameValue: require('./2018/SameValue'), - SameValueNonNumber: require('./2018/SameValueNonNumber'), - SameValueZero: require('./2018/SameValueZero'), - SecFromTime: require('./2018/SecFromTime'), - Set: require('./2018/Set'), - SetFunctionLength: require('./2018/SetFunctionLength'), - SetFunctionName: require('./2018/SetFunctionName'), - SetIntegrityLevel: require('./2018/SetIntegrityLevel'), - SpeciesConstructor: require('./2018/SpeciesConstructor'), - SplitMatch: require('./2018/SplitMatch'), - StringCreate: require('./2018/StringCreate'), - StringGetOwnProperty: require('./2018/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2018/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2018/TestIntegrityLevel'), - thisBooleanValue: require('./2018/thisBooleanValue'), - thisNumberValue: require('./2018/thisNumberValue'), - thisStringValue: require('./2018/thisStringValue'), - thisSymbolValue: require('./2018/thisSymbolValue'), - thisTimeValue: require('./2018/thisTimeValue'), - TimeClip: require('./2018/TimeClip'), - TimeFromYear: require('./2018/TimeFromYear'), - TimeString: require('./2018/TimeString'), - TimeWithinDay: require('./2018/TimeWithinDay'), - ToBoolean: require('./2018/ToBoolean'), - ToDateString: require('./2018/ToDateString'), - ToIndex: require('./2018/ToIndex'), - ToInt16: require('./2018/ToInt16'), - ToInt32: require('./2018/ToInt32'), - ToInt8: require('./2018/ToInt8'), - ToInteger: require('./2018/ToInteger'), - ToLength: require('./2018/ToLength'), - ToNumber: require('./2018/ToNumber'), - ToObject: require('./2018/ToObject'), - ToPrimitive: require('./2018/ToPrimitive'), - ToPropertyDescriptor: require('./2018/ToPropertyDescriptor'), - ToPropertyKey: require('./2018/ToPropertyKey'), - ToString: require('./2018/ToString'), - ToUint16: require('./2018/ToUint16'), - ToUint32: require('./2018/ToUint32'), - ToUint8: require('./2018/ToUint8'), - ToUint8Clamp: require('./2018/ToUint8Clamp'), - Type: require('./2018/Type'), - UnicodeEscape: require('./2018/UnicodeEscape'), - UTF16Decode: require('./2018/UTF16Decode'), - UTF16Encoding: require('./2018/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2018/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2018/WeekDay'), - YearFromTime: require('./2018/YearFromTime') -}; - -module.exports = ES2018; diff --git a/node_modules/es-abstract/es2019.js b/node_modules/es-abstract/es2019.js deleted file mode 100644 index a49e115..0000000 --- a/node_modules/es-abstract/es2019.js +++ /dev/null @@ -1,141 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://262.ecma-international.org/10.0/#sec-abstract-operations -var ES2019 = { - 'Abstract Equality Comparison': require('./2019/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2019/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2019/StrictEqualityComparison'), - abs: require('./2019/abs'), - AddEntriesFromIterable: require('./2019/AddEntriesFromIterable'), - AdvanceStringIndex: require('./2019/AdvanceStringIndex'), - ArrayCreate: require('./2019/ArrayCreate'), - ArraySetLength: require('./2019/ArraySetLength'), - ArraySpeciesCreate: require('./2019/ArraySpeciesCreate'), - Call: require('./2019/Call'), - CanonicalNumericIndexString: require('./2019/CanonicalNumericIndexString'), - CompletePropertyDescriptor: require('./2019/CompletePropertyDescriptor'), - CopyDataProperties: require('./2019/CopyDataProperties'), - CreateDataProperty: require('./2019/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2019/CreateDataPropertyOrThrow'), - CreateHTML: require('./2019/CreateHTML'), - CreateIterResultObject: require('./2019/CreateIterResultObject'), - CreateListFromArrayLike: require('./2019/CreateListFromArrayLike'), - CreateMethodProperty: require('./2019/CreateMethodProperty'), - DateFromTime: require('./2019/DateFromTime'), - DateString: require('./2019/DateString'), - Day: require('./2019/Day'), - DayFromYear: require('./2019/DayFromYear'), - DaysInYear: require('./2019/DaysInYear'), - DayWithinYear: require('./2019/DayWithinYear'), - DefinePropertyOrThrow: require('./2019/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2019/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2019/EnumerableOwnPropertyNames'), - FlattenIntoArray: require('./2019/FlattenIntoArray'), - floor: require('./2019/floor'), - FromPropertyDescriptor: require('./2019/FromPropertyDescriptor'), - Get: require('./2019/Get'), - GetIterator: require('./2019/GetIterator'), - GetMethod: require('./2019/GetMethod'), - GetOwnPropertyKeys: require('./2019/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2019/GetPrototypeFromConstructor'), - GetSubstitution: require('./2019/GetSubstitution'), - GetV: require('./2019/GetV'), - HasOwnProperty: require('./2019/HasOwnProperty'), - HasProperty: require('./2019/HasProperty'), - HourFromTime: require('./2019/HourFromTime'), - InLeapYear: require('./2019/InLeapYear'), - InstanceofOperator: require('./2019/InstanceofOperator'), - Invoke: require('./2019/Invoke'), - IsAccessorDescriptor: require('./2019/IsAccessorDescriptor'), - IsArray: require('./2019/IsArray'), - IsCallable: require('./2019/IsCallable'), - IsConcatSpreadable: require('./2019/IsConcatSpreadable'), - IsConstructor: require('./2019/IsConstructor'), - IsDataDescriptor: require('./2019/IsDataDescriptor'), - IsExtensible: require('./2019/IsExtensible'), - IsGenericDescriptor: require('./2019/IsGenericDescriptor'), - IsInteger: require('./2019/IsInteger'), - IsPromise: require('./2019/IsPromise'), - IsPropertyKey: require('./2019/IsPropertyKey'), - IsRegExp: require('./2019/IsRegExp'), - IsStringPrefix: require('./2019/IsStringPrefix'), - IterableToList: require('./2019/IterableToList'), - IteratorClose: require('./2019/IteratorClose'), - IteratorComplete: require('./2019/IteratorComplete'), - IteratorNext: require('./2019/IteratorNext'), - IteratorStep: require('./2019/IteratorStep'), - IteratorValue: require('./2019/IteratorValue'), - MakeDate: require('./2019/MakeDate'), - MakeDay: require('./2019/MakeDay'), - MakeTime: require('./2019/MakeTime'), - MinFromTime: require('./2019/MinFromTime'), - modulo: require('./2019/modulo'), - MonthFromTime: require('./2019/MonthFromTime'), - msFromTime: require('./2019/msFromTime'), - NumberToString: require('./2019/NumberToString'), - ObjectCreate: require('./2019/ObjectCreate'), - OrdinaryCreateFromConstructor: require('./2019/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2019/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2019/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2019/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2019/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2019/OrdinaryHasProperty'), - OrdinarySetPrototypeOf: require('./2019/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2019/PromiseResolve'), - QuoteJSONString: require('./2019/QuoteJSONString'), - RegExpCreate: require('./2019/RegExpCreate'), - RegExpExec: require('./2019/RegExpExec'), - RequireObjectCoercible: require('./2019/RequireObjectCoercible'), - SameValue: require('./2019/SameValue'), - SameValueNonNumber: require('./2019/SameValueNonNumber'), - SameValueZero: require('./2019/SameValueZero'), - SecFromTime: require('./2019/SecFromTime'), - Set: require('./2019/Set'), - SetFunctionLength: require('./2019/SetFunctionLength'), - SetFunctionName: require('./2019/SetFunctionName'), - SetIntegrityLevel: require('./2019/SetIntegrityLevel'), - SpeciesConstructor: require('./2019/SpeciesConstructor'), - SplitMatch: require('./2019/SplitMatch'), - StringCreate: require('./2019/StringCreate'), - StringGetOwnProperty: require('./2019/StringGetOwnProperty'), - SymbolDescriptiveString: require('./2019/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2019/TestIntegrityLevel'), - thisBooleanValue: require('./2019/thisBooleanValue'), - thisNumberValue: require('./2019/thisNumberValue'), - thisStringValue: require('./2019/thisStringValue'), - thisSymbolValue: require('./2019/thisSymbolValue'), - thisTimeValue: require('./2019/thisTimeValue'), - TimeClip: require('./2019/TimeClip'), - TimeFromYear: require('./2019/TimeFromYear'), - TimeString: require('./2019/TimeString'), - TimeWithinDay: require('./2019/TimeWithinDay'), - ToBoolean: require('./2019/ToBoolean'), - ToDateString: require('./2019/ToDateString'), - ToIndex: require('./2019/ToIndex'), - ToInt16: require('./2019/ToInt16'), - ToInt32: require('./2019/ToInt32'), - ToInt8: require('./2019/ToInt8'), - ToInteger: require('./2019/ToInteger'), - ToLength: require('./2019/ToLength'), - ToNumber: require('./2019/ToNumber'), - ToObject: require('./2019/ToObject'), - ToPrimitive: require('./2019/ToPrimitive'), - ToPropertyDescriptor: require('./2019/ToPropertyDescriptor'), - ToPropertyKey: require('./2019/ToPropertyKey'), - ToString: require('./2019/ToString'), - ToUint16: require('./2019/ToUint16'), - ToUint32: require('./2019/ToUint32'), - ToUint8: require('./2019/ToUint8'), - ToUint8Clamp: require('./2019/ToUint8Clamp'), - TrimString: require('./2019/TrimString'), - Type: require('./2019/Type'), - UnicodeEscape: require('./2019/UnicodeEscape'), - UTF16Decode: require('./2019/UTF16Decode'), - UTF16Encoding: require('./2019/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2019/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2019/WeekDay'), - YearFromTime: require('./2019/YearFromTime') -}; - -module.exports = ES2019; diff --git a/node_modules/es-abstract/es2020.js b/node_modules/es-abstract/es2020.js deleted file mode 100644 index e6d1c79..0000000 --- a/node_modules/es-abstract/es2020.js +++ /dev/null @@ -1,159 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ -// https://ecma-international.org/ecma-262/11.0/#sec-abstract-operations -var ES2020 = { - 'Abstract Equality Comparison': require('./2020/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./2020/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./2020/StrictEqualityComparison'), - abs: require('./2020/abs'), - AddEntriesFromIterable: require('./2020/AddEntriesFromIterable'), - AdvanceStringIndex: require('./2020/AdvanceStringIndex'), - ArrayCreate: require('./2020/ArrayCreate'), - ArraySetLength: require('./2020/ArraySetLength'), - ArraySpeciesCreate: require('./2020/ArraySpeciesCreate'), - BigInt: require('./2020/BigInt'), - BigIntBitwiseOp: require('./2020/BigIntBitwiseOp'), - BinaryAnd: require('./2020/BinaryAnd'), - BinaryOr: require('./2020/BinaryOr'), - BinaryXor: require('./2020/BinaryXor'), - Call: require('./2020/Call'), - CanonicalNumericIndexString: require('./2020/CanonicalNumericIndexString'), - CodePointAt: require('./2020/CodePointAt'), - CompletePropertyDescriptor: require('./2020/CompletePropertyDescriptor'), - CopyDataProperties: require('./2020/CopyDataProperties'), - CreateDataProperty: require('./2020/CreateDataProperty'), - CreateDataPropertyOrThrow: require('./2020/CreateDataPropertyOrThrow'), - CreateHTML: require('./2020/CreateHTML'), - CreateIterResultObject: require('./2020/CreateIterResultObject'), - CreateListFromArrayLike: require('./2020/CreateListFromArrayLike'), - CreateMethodProperty: require('./2020/CreateMethodProperty'), - DateFromTime: require('./2020/DateFromTime'), - DateString: require('./2020/DateString'), - Day: require('./2020/Day'), - DayFromYear: require('./2020/DayFromYear'), - DaysInYear: require('./2020/DaysInYear'), - DayWithinYear: require('./2020/DayWithinYear'), - DefinePropertyOrThrow: require('./2020/DefinePropertyOrThrow'), - DeletePropertyOrThrow: require('./2020/DeletePropertyOrThrow'), - EnumerableOwnPropertyNames: require('./2020/EnumerableOwnPropertyNames'), - FlattenIntoArray: require('./2020/FlattenIntoArray'), - floor: require('./2020/floor'), - FromPropertyDescriptor: require('./2020/FromPropertyDescriptor'), - Get: require('./2020/Get'), - GetIterator: require('./2020/GetIterator'), - GetMethod: require('./2020/GetMethod'), - GetOwnPropertyKeys: require('./2020/GetOwnPropertyKeys'), - GetPrototypeFromConstructor: require('./2020/GetPrototypeFromConstructor'), - GetSubstitution: require('./2020/GetSubstitution'), - GetV: require('./2020/GetV'), - HasOwnProperty: require('./2020/HasOwnProperty'), - HasProperty: require('./2020/HasProperty'), - HourFromTime: require('./2020/HourFromTime'), - InLeapYear: require('./2020/InLeapYear'), - InstanceofOperator: require('./2020/InstanceofOperator'), - Invoke: require('./2020/Invoke'), - IsAccessorDescriptor: require('./2020/IsAccessorDescriptor'), - IsArray: require('./2020/IsArray'), - IsBigIntElementType: require('./2020/IsBigIntElementType'), - IsCallable: require('./2020/IsCallable'), - IsConcatSpreadable: require('./2020/IsConcatSpreadable'), - IsConstructor: require('./2020/IsConstructor'), - IsDataDescriptor: require('./2020/IsDataDescriptor'), - IsExtensible: require('./2020/IsExtensible'), - IsGenericDescriptor: require('./2020/IsGenericDescriptor'), - IsInteger: require('./2020/IsInteger'), - IsNonNegativeInteger: require('./2020/IsNonNegativeInteger'), - IsNoTearConfiguration: require('./2020/IsNoTearConfiguration'), - IsPromise: require('./2020/IsPromise'), - IsPropertyKey: require('./2020/IsPropertyKey'), - IsRegExp: require('./2020/IsRegExp'), - IsStringPrefix: require('./2020/IsStringPrefix'), - IsUnclampedIntegerElementType: require('./2020/IsUnclampedIntegerElementType'), - IsUnsignedElementType: require('./2020/IsUnsignedElementType'), - IterableToList: require('./2020/IterableToList'), - IteratorClose: require('./2020/IteratorClose'), - IteratorComplete: require('./2020/IteratorComplete'), - IteratorNext: require('./2020/IteratorNext'), - IteratorStep: require('./2020/IteratorStep'), - IteratorValue: require('./2020/IteratorValue'), - LengthOfArrayLike: require('./2020/LengthOfArrayLike'), - MakeDate: require('./2020/MakeDate'), - MakeDay: require('./2020/MakeDay'), - MakeTime: require('./2020/MakeTime'), - MinFromTime: require('./2020/MinFromTime'), - modulo: require('./2020/modulo'), - MonthFromTime: require('./2020/MonthFromTime'), - msFromTime: require('./2020/msFromTime'), - Number: require('./2020/Number'), - NumberBitwiseOp: require('./2020/NumberBitwiseOp'), - NumberToBigInt: require('./2020/NumberToBigInt'), - OrdinaryCreateFromConstructor: require('./2020/OrdinaryCreateFromConstructor'), - OrdinaryDefineOwnProperty: require('./2020/OrdinaryDefineOwnProperty'), - OrdinaryGetOwnProperty: require('./2020/OrdinaryGetOwnProperty'), - OrdinaryGetPrototypeOf: require('./2020/OrdinaryGetPrototypeOf'), - OrdinaryHasInstance: require('./2020/OrdinaryHasInstance'), - OrdinaryHasProperty: require('./2020/OrdinaryHasProperty'), - OrdinaryObjectCreate: require('./2020/OrdinaryObjectCreate'), - OrdinarySetPrototypeOf: require('./2020/OrdinarySetPrototypeOf'), - PromiseResolve: require('./2020/PromiseResolve'), - QuoteJSONString: require('./2020/QuoteJSONString'), - RegExpCreate: require('./2020/RegExpCreate'), - RegExpExec: require('./2020/RegExpExec'), - RequireObjectCoercible: require('./2020/RequireObjectCoercible'), - SameValue: require('./2020/SameValue'), - SameValueNonNumeric: require('./2020/SameValueNonNumeric'), - SameValueZero: require('./2020/SameValueZero'), - SecFromTime: require('./2020/SecFromTime'), - Set: require('./2020/Set'), - SetFunctionLength: require('./2020/SetFunctionLength'), - SetFunctionName: require('./2020/SetFunctionName'), - SetIntegrityLevel: require('./2020/SetIntegrityLevel'), - SpeciesConstructor: require('./2020/SpeciesConstructor'), - SplitMatch: require('./2020/SplitMatch'), - StringCreate: require('./2020/StringCreate'), - StringGetOwnProperty: require('./2020/StringGetOwnProperty'), - StringPad: require('./2020/StringPad'), - SymbolDescriptiveString: require('./2020/SymbolDescriptiveString'), - TestIntegrityLevel: require('./2020/TestIntegrityLevel'), - thisBigIntValue: require('./2020/thisBigIntValue'), - thisBooleanValue: require('./2020/thisBooleanValue'), - thisNumberValue: require('./2020/thisNumberValue'), - thisStringValue: require('./2020/thisStringValue'), - thisSymbolValue: require('./2020/thisSymbolValue'), - thisTimeValue: require('./2020/thisTimeValue'), - TimeClip: require('./2020/TimeClip'), - TimeFromYear: require('./2020/TimeFromYear'), - TimeString: require('./2020/TimeString'), - TimeWithinDay: require('./2020/TimeWithinDay'), - ToBoolean: require('./2020/ToBoolean'), - ToDateString: require('./2020/ToDateString'), - ToIndex: require('./2020/ToIndex'), - ToInt16: require('./2020/ToInt16'), - ToInt32: require('./2020/ToInt32'), - ToInt8: require('./2020/ToInt8'), - ToInteger: require('./2020/ToInteger'), - ToLength: require('./2020/ToLength'), - ToNumber: require('./2020/ToNumber'), - ToNumeric: require('./2020/ToNumeric'), - ToObject: require('./2020/ToObject'), - ToPrimitive: require('./2020/ToPrimitive'), - ToPropertyDescriptor: require('./2020/ToPropertyDescriptor'), - ToPropertyKey: require('./2020/ToPropertyKey'), - ToString: require('./2020/ToString'), - ToUint16: require('./2020/ToUint16'), - ToUint32: require('./2020/ToUint32'), - ToUint8: require('./2020/ToUint8'), - ToUint8Clamp: require('./2020/ToUint8Clamp'), - TrimString: require('./2020/TrimString'), - Type: require('./2020/Type'), - UnicodeEscape: require('./2020/UnicodeEscape'), - UTF16DecodeString: require('./2020/UTF16DecodeString'), - UTF16DecodeSurrogatePair: require('./2020/UTF16DecodeSurrogatePair'), - UTF16Encoding: require('./2020/UTF16Encoding'), - ValidateAndApplyPropertyDescriptor: require('./2020/ValidateAndApplyPropertyDescriptor'), - WeekDay: require('./2020/WeekDay'), - YearFromTime: require('./2020/YearFromTime') -}; - -module.exports = ES2020; diff --git a/node_modules/es-abstract/es5.js b/node_modules/es-abstract/es5.js deleted file mode 100644 index 46eb6e1..0000000 --- a/node_modules/es-abstract/es5.js +++ /dev/null @@ -1,51 +0,0 @@ -'use strict'; - -/* eslint global-require: 0 */ - -// https://es5.github.io/#x9 -module.exports = { - 'Abstract Equality Comparison': require('./5/AbstractEqualityComparison'), - 'Abstract Relational Comparison': require('./5/AbstractRelationalComparison'), - 'Strict Equality Comparison': require('./5/StrictEqualityComparison'), - abs: require('./5/abs'), - CheckObjectCoercible: require('./5/CheckObjectCoercible'), - DateFromTime: require('./5/DateFromTime'), - Day: require('./5/Day'), - DayFromYear: require('./5/DayFromYear'), - DaysInYear: require('./5/DaysInYear'), - DayWithinYear: require('./5/DayWithinYear'), - floor: require('./5/floor'), - FromPropertyDescriptor: require('./5/FromPropertyDescriptor'), - HourFromTime: require('./5/HourFromTime'), - InLeapYear: require('./5/InLeapYear'), - IsAccessorDescriptor: require('./5/IsAccessorDescriptor'), - IsCallable: require('./5/IsCallable'), - IsDataDescriptor: require('./5/IsDataDescriptor'), - IsGenericDescriptor: require('./5/IsGenericDescriptor'), - IsPropertyDescriptor: require('./5/IsPropertyDescriptor'), - MakeDate: require('./5/MakeDate'), - MakeDay: require('./5/MakeDay'), - MakeTime: require('./5/MakeTime'), - MinFromTime: require('./5/MinFromTime'), - modulo: require('./5/modulo'), - MonthFromTime: require('./5/MonthFromTime'), - msFromTime: require('./5/msFromTime'), - SameValue: require('./5/SameValue'), - SecFromTime: require('./5/SecFromTime'), - TimeClip: require('./5/TimeClip'), - TimeFromYear: require('./5/TimeFromYear'), - TimeWithinDay: require('./5/TimeWithinDay'), - ToBoolean: require('./5/ToBoolean'), - ToInt32: require('./5/ToInt32'), - ToInteger: require('./5/ToInteger'), - ToNumber: require('./5/ToNumber'), - ToObject: require('./5/ToObject'), - ToPrimitive: require('./5/ToPrimitive'), - ToPropertyDescriptor: require('./5/ToPropertyDescriptor'), - ToString: require('./5/ToString'), - ToUint16: require('./5/ToUint16'), - ToUint32: require('./5/ToUint32'), - Type: require('./5/Type'), - WeekDay: require('./5/WeekDay'), - YearFromTime: require('./5/YearFromTime') -}; diff --git a/node_modules/es-abstract/es6.js b/node_modules/es-abstract/es6.js deleted file mode 100644 index 2d1f4dc..0000000 --- a/node_modules/es-abstract/es6.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./es2015'); diff --git a/node_modules/es-abstract/es7.js b/node_modules/es-abstract/es7.js deleted file mode 100644 index f2f15c0..0000000 --- a/node_modules/es-abstract/es7.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./es2016'); diff --git a/node_modules/es-abstract/helpers/DefineOwnProperty.js b/node_modules/es-abstract/helpers/DefineOwnProperty.js deleted file mode 100644 index 1a378a4..0000000 --- a/node_modules/es-abstract/helpers/DefineOwnProperty.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -var callBound = require('call-bind/callBound'); - -var $isEnumerable = callBound('Object.prototype.propertyIsEnumerable'); - -// eslint-disable-next-line max-params -module.exports = function DefineOwnProperty(IsDataDescriptor, SameValue, FromPropertyDescriptor, O, P, desc) { - if (!$defineProperty) { - if (!IsDataDescriptor(desc)) { - // ES3 does not support getters/setters - return false; - } - if (!desc['[[Configurable]]'] || !desc['[[Writable]]']) { - return false; - } - - // fallback for ES3 - if (P in O && $isEnumerable(O, P) !== !!desc['[[Enumerable]]']) { - // a non-enumerable existing property - return false; - } - - // property does not exist at all, or exists but is enumerable - var V = desc['[[Value]]']; - // eslint-disable-next-line no-param-reassign - O[P] = V; // will use [[Define]] - return SameValue(O[P], V); - } - $defineProperty(O, P, FromPropertyDescriptor(desc)); - return true; -}; diff --git a/node_modules/es-abstract/helpers/OwnPropertyKeys.js b/node_modules/es-abstract/helpers/OwnPropertyKeys.js deleted file mode 100644 index 6baa986..0000000 --- a/node_modules/es-abstract/helpers/OwnPropertyKeys.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBind = require('call-bind'); -var callBound = require('call-bind/callBound'); - -var $ownKeys = GetIntrinsic('%Reflect.ownKeys%', true); -var $pushApply = callBind.apply(GetIntrinsic('%Array.prototype.push%')); -var $SymbolValueOf = callBound('Symbol.prototype.valueOf', true); -var $gOPN = GetIntrinsic('%Object.getOwnPropertyNames%', true); -var $gOPS = $SymbolValueOf ? GetIntrinsic('%Object.getOwnPropertySymbols%') : null; - -var keys = require('object-keys'); - -module.exports = $ownKeys || function OwnPropertyKeys(source) { - var ownKeys = ($gOPN || keys)(source); - if ($gOPS) { - $pushApply(ownKeys, $gOPS(source)); - } - return ownKeys; -}; diff --git a/node_modules/es-abstract/helpers/assertRecord.js b/node_modules/es-abstract/helpers/assertRecord.js deleted file mode 100644 index 623bc56..0000000 --- a/node_modules/es-abstract/helpers/assertRecord.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $TypeError = GetIntrinsic('%TypeError%'); -var $SyntaxError = GetIntrinsic('%SyntaxError%'); - -var has = require('has'); - -var predicates = { - // https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type - 'Property Descriptor': function isPropertyDescriptor(Type, Desc) { - if (Type(Desc) !== 'Object') { - return false; - } - var allowed = { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Get]]': true, - '[[Set]]': true, - '[[Value]]': true, - '[[Writable]]': true - }; - - for (var key in Desc) { // eslint-disable-line - if (has(Desc, key) && !allowed[key]) { - return false; - } - } - - var isData = has(Desc, '[[Value]]'); - var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]'); - if (isData && IsAccessor) { - throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); - } - return true; - } -}; - -module.exports = function assertRecord(Type, recordType, argumentName, value) { - var predicate = predicates[recordType]; - if (typeof predicate !== 'function') { - throw new $SyntaxError('unknown record type: ' + recordType); - } - if (!predicate(Type, value)) { - throw new $TypeError(argumentName + ' must be a ' + recordType); - } -}; diff --git a/node_modules/es-abstract/helpers/assign.js b/node_modules/es-abstract/helpers/assign.js deleted file mode 100644 index 56eeb1c..0000000 --- a/node_modules/es-abstract/helpers/assign.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); - -var $assign = GetIntrinsic('%Object%').assign; - -module.exports = function assign(target, source) { - if ($assign) { - return $assign(target, source); - } - - // eslint-disable-next-line no-restricted-syntax - for (var key in source) { - if (has(source, key)) { - // eslint-disable-next-line no-param-reassign - target[key] = source[key]; - } - } - return target; -}; diff --git a/node_modules/es-abstract/helpers/callBind.js b/node_modules/es-abstract/helpers/callBind.js deleted file mode 100644 index 699dba7..0000000 --- a/node_modules/es-abstract/helpers/callBind.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// TODO; semver-major: remove - -module.exports = require('call-bind'); diff --git a/node_modules/es-abstract/helpers/callBound.js b/node_modules/es-abstract/helpers/callBound.js deleted file mode 100644 index 349030c..0000000 --- a/node_modules/es-abstract/helpers/callBound.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -// TODO; semver-major: remove - -module.exports = require('call-bind/callBound'); diff --git a/node_modules/es-abstract/helpers/every.js b/node_modules/es-abstract/helpers/every.js deleted file mode 100644 index 42a4582..0000000 --- a/node_modules/es-abstract/helpers/every.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function every(array, predicate) { - for (var i = 0; i < array.length; i += 1) { - if (!predicate(array[i], i, array)) { - return false; - } - } - return true; -}; diff --git a/node_modules/es-abstract/helpers/forEach.js b/node_modules/es-abstract/helpers/forEach.js deleted file mode 100644 index 35915a6..0000000 --- a/node_modules/es-abstract/helpers/forEach.js +++ /dev/null @@ -1,7 +0,0 @@ -'use strict'; - -module.exports = function forEach(array, callback) { - for (var i = 0; i < array.length; i += 1) { - callback(array[i], i, array); // eslint-disable-line callback-return - } -}; diff --git a/node_modules/es-abstract/helpers/getInferredName.js b/node_modules/es-abstract/helpers/getInferredName.js deleted file mode 100644 index 2dab6e7..0000000 --- a/node_modules/es-abstract/helpers/getInferredName.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var getInferredName; -try { - // eslint-disable-next-line no-new-func - getInferredName = Function('s', 'return { [s]() {} }[s].name;'); -} catch (e) {} - -var inferred = function () {}; -module.exports = getInferredName && inferred.name === 'inferred' ? getInferredName : null; diff --git a/node_modules/es-abstract/helpers/getIteratorMethod.js b/node_modules/es-abstract/helpers/getIteratorMethod.js deleted file mode 100644 index fe581f4..0000000 --- a/node_modules/es-abstract/helpers/getIteratorMethod.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var hasSymbols = require('has-symbols')(); -var GetIntrinsic = require('get-intrinsic'); -var callBound = require('call-bind/callBound'); - -var $iterator = GetIntrinsic('%Symbol.iterator%', true); -var $stringSlice = callBound('String.prototype.slice'); - -module.exports = function getIteratorMethod(ES, iterable) { - var usingIterator; - if (hasSymbols) { - usingIterator = ES.GetMethod(iterable, $iterator); - } else if (ES.IsArray(iterable)) { - usingIterator = function () { - var i = -1; - var arr = this; // eslint-disable-line no-invalid-this - return { - next: function () { - i += 1; - return { - done: i >= arr.length, - value: arr[i] - }; - } - }; - }; - } else if (ES.Type(iterable) === 'String') { - usingIterator = function () { - var i = 0; - return { - next: function () { - var nextIndex = ES.AdvanceStringIndex(iterable, i, true); - var value = $stringSlice(iterable, i, nextIndex); - i = nextIndex; - return { - done: nextIndex > iterable.length, - value: value - }; - } - }; - }; - } - return usingIterator; -}; diff --git a/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js b/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js deleted file mode 100644 index 79cf048..0000000 --- a/node_modules/es-abstract/helpers/getOwnPropertyDescriptor.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%'); -if ($gOPD) { - try { - $gOPD([], 'length'); - } catch (e) { - // IE 8 has a broken gOPD - $gOPD = null; - } -} - -module.exports = $gOPD; diff --git a/node_modules/es-abstract/helpers/getProto.js b/node_modules/es-abstract/helpers/getProto.js deleted file mode 100644 index c190c7b..0000000 --- a/node_modules/es-abstract/helpers/getProto.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var originalGetProto = GetIntrinsic('%Object.getPrototypeOf%', true); -var $ArrayProto = GetIntrinsic('%Array.prototype%'); - -module.exports = originalGetProto || ( - // eslint-disable-next-line no-proto - [].__proto__ === $ArrayProto - ? function (O) { - return O.__proto__; // eslint-disable-line no-proto - } - : null -); diff --git a/node_modules/es-abstract/helpers/getSymbolDescription.js b/node_modules/es-abstract/helpers/getSymbolDescription.js deleted file mode 100644 index e31cad2..0000000 --- a/node_modules/es-abstract/helpers/getSymbolDescription.js +++ /dev/null @@ -1,41 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var callBound = require('call-bind/callBound'); - -var $SyntaxError = GetIntrinsic('%SyntaxError%'); -var getGlobalSymbolDescription = GetIntrinsic('%Symbol.keyFor%', true); -var thisSymbolValue = callBound('%Symbol.prototype.valueOf%', true); -var symToStr = callBound('Symbol.prototype.toString', true); - -var getInferredName = require('./getInferredName'); - -/* eslint-disable consistent-return */ -module.exports = callBound('%Symbol.prototype.description%', true) || function getSymbolDescription(symbol) { - if (!thisSymbolValue) { - throw new $SyntaxError('Symbols are not supported in this environment'); - } - - // will throw if not a symbol primitive or wrapper object - var sym = thisSymbolValue(symbol); - - if (getInferredName) { - var name = getInferredName(sym); - if (name === '') { return; } - return name.slice(1, -1); // name.slice('['.length, -']'.length); - } - - var desc; - if (getGlobalSymbolDescription) { - desc = getGlobalSymbolDescription(sym); - if (typeof desc === 'string') { - return desc; - } - } - - desc = symToStr(sym).slice(7, -1); // str.slice('Symbol('.length, -')'.length); - if (desc) { - return desc; - } -}; diff --git a/node_modules/es-abstract/helpers/isByteValue.js b/node_modules/es-abstract/helpers/isByteValue.js deleted file mode 100644 index 1a7d0d3..0000000 --- a/node_modules/es-abstract/helpers/isByteValue.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isByteValue(value) { - return typeof value === 'number' && value >= 0 && value <= 255 && (value | 0) === value; -}; diff --git a/node_modules/es-abstract/helpers/isCodePoint.js b/node_modules/es-abstract/helpers/isCodePoint.js deleted file mode 100644 index acda02e..0000000 --- a/node_modules/es-abstract/helpers/isCodePoint.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isCodePoint(cp) { - return typeof cp === 'number' && cp >= 0 && cp <= 0x10FFFF && (cp | 0) === cp; -}; diff --git a/node_modules/es-abstract/helpers/isFinite.js b/node_modules/es-abstract/helpers/isFinite.js deleted file mode 100644 index 9e7cd4f..0000000 --- a/node_modules/es-abstract/helpers/isFinite.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -var $isNaN = Number.isNaN || function (a) { return a !== a; }; - -module.exports = Number.isFinite || function (x) { return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity; }; diff --git a/node_modules/es-abstract/helpers/isLeadingSurrogate.js b/node_modules/es-abstract/helpers/isLeadingSurrogate.js deleted file mode 100644 index fec61b2..0000000 --- a/node_modules/es-abstract/helpers/isLeadingSurrogate.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isLeadingSurrogate(charCode) { - return typeof charCode === 'number' && charCode >= 0xD800 && charCode <= 0xDBFF; -}; diff --git a/node_modules/es-abstract/helpers/isNaN.js b/node_modules/es-abstract/helpers/isNaN.js deleted file mode 100644 index cb8631d..0000000 --- a/node_modules/es-abstract/helpers/isNaN.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = Number.isNaN || function isNaN(a) { - return a !== a; -}; diff --git a/node_modules/es-abstract/helpers/isPrefixOf.js b/node_modules/es-abstract/helpers/isPrefixOf.js deleted file mode 100644 index 0f644d7..0000000 --- a/node_modules/es-abstract/helpers/isPrefixOf.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict'; - -var $strSlice = require('call-bind/callBound')('String.prototype.slice'); - -module.exports = function isPrefixOf(prefix, string) { - if (prefix === string) { - return true; - } - if (prefix.length > string.length) { - return false; - } - return $strSlice(string, 0, prefix.length) === prefix; -}; diff --git a/node_modules/es-abstract/helpers/isPrimitive.js b/node_modules/es-abstract/helpers/isPrimitive.js deleted file mode 100644 index 06f0bf0..0000000 --- a/node_modules/es-abstract/helpers/isPrimitive.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isPrimitive(value) { - return value === null || (typeof value !== 'function' && typeof value !== 'object'); -}; diff --git a/node_modules/es-abstract/helpers/isPropertyDescriptor.js b/node_modules/es-abstract/helpers/isPropertyDescriptor.js deleted file mode 100644 index 900964d..0000000 --- a/node_modules/es-abstract/helpers/isPropertyDescriptor.js +++ /dev/null @@ -1,31 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var has = require('has'); -var $TypeError = GetIntrinsic('%TypeError%'); - -module.exports = function IsPropertyDescriptor(ES, Desc) { - if (ES.Type(Desc) !== 'Object') { - return false; - } - var allowed = { - '[[Configurable]]': true, - '[[Enumerable]]': true, - '[[Get]]': true, - '[[Set]]': true, - '[[Value]]': true, - '[[Writable]]': true - }; - - for (var key in Desc) { // eslint-disable-line no-restricted-syntax - if (has(Desc, key) && !allowed[key]) { - return false; - } - } - - if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) { - throw new $TypeError('Property Descriptors may not be both accessor and data descriptors'); - } - return true; -}; diff --git a/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js b/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js deleted file mode 100644 index a6162a1..0000000 --- a/node_modules/es-abstract/helpers/isSamePropertyDescriptor.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var every = require('./every'); - -module.exports = function isSamePropertyDescriptor(ES, D1, D2) { - var fields = [ - '[[Configurable]]', - '[[Enumerable]]', - '[[Get]]', - '[[Set]]', - '[[Value]]', - '[[Writable]]' - ]; - return every(fields, function (field) { - if ((field in D1) !== (field in D2)) { - return false; - } - return ES.SameValue(D1[field], D2[field]); - }); -}; diff --git a/node_modules/es-abstract/helpers/isTrailingSurrogate.js b/node_modules/es-abstract/helpers/isTrailingSurrogate.js deleted file mode 100644 index 002930a..0000000 --- a/node_modules/es-abstract/helpers/isTrailingSurrogate.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isTrailingSurrogate(charCode) { - return typeof charCode === 'number' && charCode >= 0xDC00 && charCode <= 0xDFFF; -}; diff --git a/node_modules/es-abstract/helpers/maxSafeInteger.js b/node_modules/es-abstract/helpers/maxSafeInteger.js deleted file mode 100644 index 89e5246..0000000 --- a/node_modules/es-abstract/helpers/maxSafeInteger.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $Math = GetIntrinsic('%Math%'); -var $Number = GetIntrinsic('%Number%'); - -module.exports = $Number.MAX_SAFE_INTEGER || $Math.pow(2, 53) - 1; diff --git a/node_modules/es-abstract/helpers/mod.js b/node_modules/es-abstract/helpers/mod.js deleted file mode 100644 index 67c8b78..0000000 --- a/node_modules/es-abstract/helpers/mod.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -var $floor = Math.floor; - -module.exports = function mod(number, modulo) { - var remain = number % modulo; - return $floor(remain >= 0 ? remain : remain + modulo); -}; diff --git a/node_modules/es-abstract/helpers/padTimeComponent.js b/node_modules/es-abstract/helpers/padTimeComponent.js deleted file mode 100644 index 0d8afc0..0000000 --- a/node_modules/es-abstract/helpers/padTimeComponent.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); - -var $strSlice = callBound('String.prototype.slice'); - -module.exports = function padTimeComponent(c, count) { - return $strSlice('00' + c, -(count || 2)); -}; diff --git a/node_modules/es-abstract/helpers/regexTester.js b/node_modules/es-abstract/helpers/regexTester.js deleted file mode 100644 index b1699fb..0000000 --- a/node_modules/es-abstract/helpers/regexTester.js +++ /dev/null @@ -1,11 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var $test = GetIntrinsic('RegExp.prototype.test'); - -var callBind = require('call-bind'); - -module.exports = function regexTester(regex) { - return callBind($test, regex); -}; diff --git a/node_modules/es-abstract/helpers/setProto.js b/node_modules/es-abstract/helpers/setProto.js deleted file mode 100644 index 0ee884f..0000000 --- a/node_modules/es-abstract/helpers/setProto.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var originalSetProto = GetIntrinsic('%Object.setPrototypeOf%', true); -var $ArrayProto = GetIntrinsic('%Array.prototype%'); - -module.exports = originalSetProto || ( - // eslint-disable-next-line no-proto, no-negated-condition - [].__proto__ !== $ArrayProto - ? null - : function (O, proto) { - O.__proto__ = proto; // eslint-disable-line no-proto, no-param-reassign - return O; - } -); diff --git a/node_modules/es-abstract/helpers/sign.js b/node_modules/es-abstract/helpers/sign.js deleted file mode 100644 index 598ea7d..0000000 --- a/node_modules/es-abstract/helpers/sign.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function sign(number) { - return number >= 0 ? 1 : -1; -}; diff --git a/node_modules/es-abstract/helpers/some.js b/node_modules/es-abstract/helpers/some.js deleted file mode 100644 index c0b4405..0000000 --- a/node_modules/es-abstract/helpers/some.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -module.exports = function some(array, predicate) { - for (var i = 0; i < array.length; i += 1) { - if (predicate(array[i], i, array)) { - return true; - } - } - return false; -}; diff --git a/node_modules/es-abstract/helpers/timeConstants.js b/node_modules/es-abstract/helpers/timeConstants.js deleted file mode 100644 index c275b40..0000000 --- a/node_modules/es-abstract/helpers/timeConstants.js +++ /dev/null @@ -1,19 +0,0 @@ -'use strict'; - -var HoursPerDay = 24; -var MinutesPerHour = 60; -var SecondsPerMinute = 60; -var msPerSecond = 1e3; -var msPerMinute = msPerSecond * SecondsPerMinute; -var msPerHour = msPerMinute * MinutesPerHour; -var msPerDay = 86400000; - -module.exports = { - HoursPerDay: HoursPerDay, - MinutesPerHour: MinutesPerHour, - SecondsPerMinute: SecondsPerMinute, - msPerSecond: msPerSecond, - msPerMinute: msPerMinute, - msPerHour: msPerHour, - msPerDay: msPerDay -}; diff --git a/node_modules/es-abstract/index.js b/node_modules/es-abstract/index.js deleted file mode 100644 index 5cd5292..0000000 --- a/node_modules/es-abstract/index.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var assign = require('./helpers/assign'); - -var ES5 = require('./es5'); -var ES2015 = require('./es2015'); -var ES2016 = require('./es2016'); -var ES2017 = require('./es2017'); -var ES2018 = require('./es2018'); -var ES2019 = require('./es2019'); -var ES2020 = require('./es2020'); - -var ES = { - ES5: ES5, - ES6: ES2015, - ES2015: ES2015, - ES7: ES2016, - ES2016: ES2016, - ES2017: ES2017, - ES2018: ES2018, - ES2019: ES2019, - ES2020: ES2020 -}; -assign(ES, ES5); -delete ES.CheckObjectCoercible; // renamed in ES6 to RequireObjectCoercible -assign(ES, ES2015); - -module.exports = ES; diff --git a/node_modules/es-abstract/operations/.eslintrc b/node_modules/es-abstract/operations/.eslintrc deleted file mode 100644 index bcd76f7..0000000 --- a/node_modules/es-abstract/operations/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "id-length": 0, - }, -} diff --git a/node_modules/es-abstract/operations/2015.js b/node_modules/es-abstract/operations/2015.js deleted file mode 100644 index 7607ef4..0000000 --- a/node_modules/es-abstract/operations/2015.js +++ /dev/null @@ -1,251 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/6.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/6.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/6.0/#sec-addrestrictedfunctionproperties', - AdvanceStringIndex: 'https://262.ecma-international.org/6.0/#sec-advancestringindex', - AllocateArrayBuffer: 'https://262.ecma-international.org/6.0/#sec-allocatearraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/6.0/#sec-allocatetypedarray', - ArrayCreate: 'https://262.ecma-international.org/6.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/6.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/6.0/#sec-arrayspeciescreate', - BoundFunctionCreate: 'https://262.ecma-international.org/6.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/6.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/6.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/6.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/6.0/#sec-implicit-completion-values', - Construct: 'https://262.ecma-international.org/6.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/6.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://262.ecma-international.org/6.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/6.0/#sec-createarrayiterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/6.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/6.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/6.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/6.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/6.0/#sec-createdynamicfunction', - CreateHTML: 'https://262.ecma-international.org/6.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/6.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/6.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/6.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://262.ecma-international.org/6.0/#sec-createlistiterator', - CreateMapIterator: 'https://262.ecma-international.org/6.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/6.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/6.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/6.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/6.0/#sec-createrealm', - CreateSetIterator: 'https://262.ecma-international.org/6.0/#sec-createsetiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/6.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/6.0/#sec-date-number', - Day: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day', - DayFromYear: 'https://262.ecma-international.org/6.0/#sec-year-number', - DaylightSavingTA: 'https://262.ecma-international.org/6.0/#sec-daylight-saving-time-adjustment', - DaysInYear: 'https://262.ecma-international.org/6.0/#sec-year-number', - DayWithinYear: 'https://262.ecma-international.org/6.0/#sec-month-number', - Decode: 'https://262.ecma-international.org/6.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/6.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/6.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/6.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/6.0/#sec-encode', - EnqueueJob: 'https://262.ecma-international.org/6.0/#sec-enqueuejob', - EnumerableOwnNames: 'https://262.ecma-international.org/6.0/#sec-enumerableownnames', - EscapeRegExpPattern: 'https://262.ecma-international.org/6.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/6.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/6.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://262.ecma-international.org/6.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://262.ecma-international.org/6.0/#sec-evaluatenew', - floor: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - ForBodyEvaluation: 'https://262.ecma-international.org/6.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/6.0/#sec-fulfillpromise', - FunctionAllocate: 'https://262.ecma-international.org/6.0/#sec-functionallocate', - FunctionCreate: 'https://262.ecma-international.org/6.0/#sec-functioncreate', - FunctionInitialize: 'https://262.ecma-international.org/6.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://262.ecma-international.org/6.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://262.ecma-international.org/6.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/6.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/6.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/6.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/6.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/6.0/#sec-get-o-p', - GetBase: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - GetFunctionRealm: 'https://262.ecma-international.org/6.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://262.ecma-international.org/6.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/6.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/6.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/6.0/#sec-getmethod', - GetModuleNamespace: 'https://262.ecma-international.org/6.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/6.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/6.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/6.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - GetSubstitution: 'https://262.ecma-international.org/6.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/6.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/6.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/6.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/6.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/6.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/6.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/6.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/6.0/#sec-getviewvalue', - HasOwnProperty: 'https://262.ecma-international.org/6.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - HasProperty: 'https://262.ecma-international.org/6.0/#sec-hasproperty', - HostResolveImportedModule: 'sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds', - ImportedLocalNames: 'https://262.ecma-international.org/6.0/#sec-importedlocalnames', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/6.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/6.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/6.0/#sec-year-number', - InstanceofOperator: 'https://262.ecma-international.org/6.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/6.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/6.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/6.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/6.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/6.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/6.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/6.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/6.0/#sec-isarray', - IsCallable: 'https://262.ecma-international.org/6.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/6.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/6.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/6.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/6.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/6.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/6.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/6.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/6.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/6.0/#sec-islabelledfunction', - IsPromise: 'https://262.ecma-international.org/6.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/6.0/#sec-ispropertykey', - IsPropertyReference: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - IsRegExp: 'https://262.ecma-international.org/6.0/#sec-isregexp', - IsStrictReference: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - IsSuperReference: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - IsUnresolvableReference: 'https://262.ecma-international.org/6.0/#sec-jobs-and-job-queues', - IsWordChar: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IteratorClose: 'https://262.ecma-international.org/6.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/6.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/6.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/6.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/6.0/#sec-iteratorvalue', - LocalTime: 'https://262.ecma-international.org/6.0/#sec-localtime', - LoopContinues: 'https://262.ecma-international.org/6.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/6.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/6.0/#sec-makeargsetter', - MakeClassConstructor: 'https://262.ecma-international.org/6.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/6.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/6.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/6.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/6.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/6.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/6.0/#sec-maketime', - max: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - min: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - MinFromTime: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds', - ModuleNamespaceCreate: 'https://262.ecma-international.org/6.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - MonthFromTime: 'https://262.ecma-international.org/6.0/#sec-month-number', - msFromTime: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds', - msPerDay: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/6.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/6.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/6.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/6.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/6.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/6.0/#sec-newpromisecapability', - NormalCompletion: 'https://262.ecma-international.org/6.0/#sec-normalcompletion', - ObjectCreate: 'https://262.ecma-international.org/6.0/#sec-objectcreate', - ObjectDefineProperties: 'https://262.ecma-international.org/6.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/6.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/6.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/6.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/6.0/#sec-ordinarydefineownproperty', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/6.0/#sec-ordinarygetownproperty', - OrdinaryHasInstance: 'https://262.ecma-international.org/6.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/6.0/#sec-ordinaryhasproperty', - ParseModule: 'https://262.ecma-international.org/6.0/#sec-parsemodule', - PerformEval: 'https://262.ecma-international.org/6.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/6.0/#sec-performpromiseall', - PerformPromiseRace: 'https://262.ecma-international.org/6.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/6.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/6.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/6.0/#sec-preparefortailcall', - ProxyCreate: 'https://262.ecma-international.org/6.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/6.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/6.0/#sec-quotejsonstring', - RegExpAlloc: 'https://262.ecma-international.org/6.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/6.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/6.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/6.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/6.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/6.0/#sec-rejectpromise', - RepeatMatcher: 'https://262.ecma-international.org/6.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://262.ecma-international.org/6.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/6.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/6.0/#sec-resolvethisbinding', - SameValue: 'https://262.ecma-international.org/6.0/#sec-samevalue', - SameValueZero: 'https://262.ecma-international.org/6.0/#sec-samevaluezero', - SecFromTime: 'https://262.ecma-international.org/6.0/#sec-hours-minutes-second-and-milliseconds', - SerializeJSONArray: 'https://262.ecma-international.org/6.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/6.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/6.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/6.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/6.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://262.ecma-international.org/6.0/#sec-setfunctionname', - SetIntegrityLevel: 'https://262.ecma-international.org/6.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/6.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/6.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/6.0/#sec-setviewvalue', - sign: 'https://262.ecma-international.org/6.0/#sec-algorithm-conventions', - SortCompare: 'https://262.ecma-international.org/6.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/6.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/6.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/6.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/6.0/#sec-stringcreate', - StringGetIndexProperty: 'https://262.ecma-international.org/6.0/#sec-stringgetindexproperty', - SymbolDescriptiveString: 'https://262.ecma-international.org/6.0/#sec-symboldescriptivestring', - TestIntegrityLevel: 'https://262.ecma-international.org/6.0/#sec-testintegritylevel', - thisBooleanValue: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-boolean-prototype-object', - thisNumberValue: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-number-prototype-object', - thisStringValue: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-string-prototype-object', - thisTimeValue: 'https://262.ecma-international.org/6.0/#sec-properties-of-the-date-prototype-object', - TimeClip: 'https://262.ecma-international.org/6.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/6.0/#sec-year-number', - TimeWithinDay: 'https://262.ecma-international.org/6.0/#sec-day-number-and-time-within-day', - ToBoolean: 'https://262.ecma-international.org/6.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/6.0/#sec-todatestring', - ToInt16: 'https://262.ecma-international.org/6.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/6.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/6.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/6.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/6.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/6.0/#sec-tonumber', - ToObject: 'https://262.ecma-international.org/6.0/#sec-toobject', - ToPrimitive: 'https://262.ecma-international.org/6.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/6.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/6.0/#sec-tostring', - ToUint16: 'https://262.ecma-international.org/6.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/6.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/6.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/6.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/6.0/#sec-triggerpromisereactions', - Type: 'https://262.ecma-international.org/6.0/#sec-ecmascript-data-types-and-values', - TypedArrayFrom: 'https://262.ecma-international.org/6.0/#sec-typedarrayfrom', - UpdateEmpty: 'https://262.ecma-international.org/6.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/6.0/#sec-utc-t', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-validateandapplypropertydescriptor', - WeekDay: 'https://262.ecma-international.org/6.0/#sec-week-day', - YearFromTime: 'https://262.ecma-international.org/6.0/#sec-year-number' -}; diff --git a/node_modules/es-abstract/operations/2016.js b/node_modules/es-abstract/operations/2016.js deleted file mode 100644 index 3cfd8e7..0000000 --- a/node_modules/es-abstract/operations/2016.js +++ /dev/null @@ -1,277 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/7.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/7.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/7.0/#sec-addrestrictedfunctionproperties', - AdvanceStringIndex: 'https://262.ecma-international.org/7.0/#sec-advancestringindex', - AllocateArrayBuffer: 'https://262.ecma-international.org/7.0/#sec-allocatearraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/7.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://262.ecma-international.org/7.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://262.ecma-international.org/7.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/7.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/7.0/#sec-arrayspeciescreate', - BlockDeclarationInstantiation: 'https://262.ecma-international.org/7.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://262.ecma-international.org/7.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/7.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/7.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/7.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://262.ecma-international.org/7.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/7.0/#sec-completion-record-specification-type', - Construct: 'https://262.ecma-international.org/7.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/7.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://262.ecma-international.org/7.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/7.0/#sec-createarrayiterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/7.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/7.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/7.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/7.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/7.0/#sec-createdynamicfunction', - CreateHTML: 'https://262.ecma-international.org/7.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/7.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/7.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/7.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://262.ecma-international.org/7.0/#sec-createlistiterator', - CreateMapIterator: 'https://262.ecma-international.org/7.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/7.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/7.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/7.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/7.0/#sec-createrealm', - CreateResolvingFunctions: 'https://262.ecma-international.org/7.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://262.ecma-international.org/7.0/#sec-createsetiterator', - CreateStringIterator: 'https://262.ecma-international.org/7.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/7.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/7.0/#sec-date-number', - Day: 'https://262.ecma-international.org/7.0/#sec-day-number-and-time-within-day', - DayFromYear: 'https://262.ecma-international.org/7.0/#sec-year-number', - DaylightSavingTA: 'https://262.ecma-international.org/7.0/#sec-daylight-saving-time-adjustment', - DaysInYear: 'https://262.ecma-international.org/7.0/#sec-year-number', - DayWithinYear: 'https://262.ecma-international.org/7.0/#sec-month-number', - Decode: 'https://262.ecma-international.org/7.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/7.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/7.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/7.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/7.0/#sec-encode', - EnqueueJob: 'https://262.ecma-international.org/7.0/#sec-enqueuejob', - EnumerableOwnNames: 'https://262.ecma-international.org/7.0/#sec-enumerableownnames', - EnumerateObjectProperties: 'https://262.ecma-international.org/7.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://262.ecma-international.org/7.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/7.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/7.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://262.ecma-international.org/7.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://262.ecma-international.org/7.0/#sec-evaluatenew', - floor: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions', - ForBodyEvaluation: 'https://262.ecma-international.org/7.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://262.ecma-international.org/7.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/7.0/#sec-fulfillpromise', - FunctionAllocate: 'https://262.ecma-international.org/7.0/#sec-functionallocate', - FunctionCreate: 'https://262.ecma-international.org/7.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://262.ecma-international.org/7.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://262.ecma-international.org/7.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://262.ecma-international.org/7.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://262.ecma-international.org/7.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/7.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/7.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/7.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/7.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/7.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://262.ecma-international.org/7.0/#sec-getactivescriptormodule', - GetFunctionRealm: 'https://262.ecma-international.org/7.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://262.ecma-international.org/7.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/7.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/7.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/7.0/#sec-getmethod', - GetModuleNamespace: 'https://262.ecma-international.org/7.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/7.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/7.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/7.0/#sec-getprototypefromconstructor', - GetSubstitution: 'https://262.ecma-international.org/7.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/7.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/7.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/7.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/7.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/7.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/7.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/7.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/7.0/#sec-getviewvalue', - GlobalDeclarationInstantiation: 'https://262.ecma-international.org/7.0/#sec-globaldeclarationinstantiation', - HasOwnProperty: 'https://262.ecma-international.org/7.0/#sec-hasownproperty', - HasProperty: 'https://262.ecma-international.org/7.0/#sec-hasproperty', - HostPromiseRejectionTracker: 'https://262.ecma-international.org/7.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://262.ecma-international.org/7.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://262.ecma-international.org/7.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds', - IfAbruptRejectPromise: 'https://262.ecma-international.org/7.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://262.ecma-international.org/7.0/#sec-importedlocalnames', - InitializeBoundName: 'https://262.ecma-international.org/7.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/7.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/7.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/7.0/#sec-year-number', - InstanceofOperator: 'https://262.ecma-international.org/7.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/7.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/7.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/7.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/7.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/7.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/7.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/7.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/7.0/#sec-isarray', - IsCallable: 'https://262.ecma-international.org/7.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/7.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/7.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/7.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/7.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/7.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/7.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/7.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/7.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/7.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/7.0/#sec-islabelledfunction', - IsPromise: 'https://262.ecma-international.org/7.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/7.0/#sec-ispropertykey', - IsRegExp: 'https://262.ecma-international.org/7.0/#sec-isregexp', - IsWordChar: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToArrayLike: 'https://262.ecma-international.org/7.0/#sec-iterabletoarraylike', - IteratorClose: 'https://262.ecma-international.org/7.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/7.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/7.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/7.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/7.0/#sec-iteratorvalue', - LocalTime: 'https://262.ecma-international.org/7.0/#sec-localtime', - LoopContinues: 'https://262.ecma-international.org/7.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/7.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/7.0/#sec-makeargsetter', - MakeClassConstructor: 'https://262.ecma-international.org/7.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/7.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/7.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/7.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/7.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/7.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/7.0/#sec-maketime', - max: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions', - min: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions', - MinFromTime: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds', - ModuleNamespaceCreate: 'https://262.ecma-international.org/7.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/7.0/#sec-algorithm-conventions', - MonthFromTime: 'https://262.ecma-international.org/7.0/#sec-month-number', - msFromTime: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/7.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/7.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/7.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/7.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/7.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/7.0/#sec-newpromisecapability', - NextJob: 'https://262.ecma-international.org/7.0/#sec-nextjob-result', - NormalCompletion: 'https://262.ecma-international.org/7.0/#sec-normalcompletion', - ObjectCreate: 'https://262.ecma-international.org/7.0/#sec-objectcreate', - ObjectDefineProperties: 'https://262.ecma-international.org/7.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/7.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/7.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/7.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/7.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://262.ecma-international.org/7.0/#sec-ordinarydelete', - OrdinaryGet: 'https://262.ecma-international.org/7.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/7.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://262.ecma-international.org/7.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://262.ecma-international.org/7.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/7.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://262.ecma-international.org/7.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://262.ecma-international.org/7.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://262.ecma-international.org/7.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://262.ecma-international.org/7.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://262.ecma-international.org/7.0/#sec-ordinarysetprototypeof', - ParseModule: 'https://262.ecma-international.org/7.0/#sec-parsemodule', - ParseScript: 'https://262.ecma-international.org/7.0/#sec-parse-script', - PerformEval: 'https://262.ecma-international.org/7.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/7.0/#sec-performpromiseall', - PerformPromiseRace: 'https://262.ecma-international.org/7.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/7.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/7.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/7.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://262.ecma-international.org/7.0/#sec-promisereactionjob', - PromiseResolveThenableJob: 'https://262.ecma-international.org/7.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://262.ecma-international.org/7.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/7.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/7.0/#sec-quotejsonstring', - RegExpAlloc: 'https://262.ecma-international.org/7.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/7.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/7.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/7.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/7.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/7.0/#sec-rejectpromise', - RepeatMatcher: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://262.ecma-international.org/7.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/7.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/7.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://262.ecma-international.org/7.0/#sec-returnifabrupt', - SameValue: 'https://262.ecma-international.org/7.0/#sec-samevalue', - SameValueNonNumber: 'https://262.ecma-international.org/7.0/#sec-samevaluenonnumber', - SameValueZero: 'https://262.ecma-international.org/7.0/#sec-samevaluezero', - ScriptEvaluation: 'https://262.ecma-international.org/7.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://262.ecma-international.org/7.0/#sec-scriptevaluationjob', - SecFromTime: 'https://262.ecma-international.org/7.0/#sec-hours-minutes-second-and-milliseconds', - SerializeJSONArray: 'https://262.ecma-international.org/7.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/7.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/7.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/7.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/7.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://262.ecma-international.org/7.0/#sec-setfunctionname', - SetIntegrityLevel: 'https://262.ecma-international.org/7.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/7.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/7.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/7.0/#sec-setviewvalue', - SortCompare: 'https://262.ecma-international.org/7.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/7.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/7.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/7.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/7.0/#sec-stringcreate', - SymbolDescriptiveString: 'https://262.ecma-international.org/7.0/#sec-symboldescriptivestring', - TestIntegrityLevel: 'https://262.ecma-international.org/7.0/#sec-testintegritylevel', - thisBooleanValue: 'https://262.ecma-international.org/7.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-number-prototype-object', - thisStringValue: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-string-prototype-object', - thisTimeValue: 'https://262.ecma-international.org/7.0/#sec-properties-of-the-date-prototype-object', - TimeClip: 'https://262.ecma-international.org/7.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/7.0/#sec-year-number', - TimeWithinDay: 'https://262.ecma-international.org/7.0/#sec-day-number-and-time-within-day', - ToBoolean: 'https://262.ecma-international.org/7.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/7.0/#sec-todatestring', - ToInt16: 'https://262.ecma-international.org/7.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/7.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/7.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/7.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/7.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/7.0/#sec-tonumber', - ToObject: 'https://262.ecma-international.org/7.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://262.ecma-international.org/7.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://262.ecma-international.org/7.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/7.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/7.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/7.0/#sec-tostring', - 'ToString Applied to the Number Type': 'https://262.ecma-international.org/7.0/#sec-tostring-applied-to-the-number-type', - ToUint16: 'https://262.ecma-international.org/7.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/7.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/7.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/7.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/7.0/#sec-triggerpromisereactions', - Type: 'https://262.ecma-international.org/7.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://262.ecma-international.org/7.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://262.ecma-international.org/7.0/#typedarray-species-create', - UpdateEmpty: 'https://262.ecma-international.org/7.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/7.0/#sec-utc-t', - UTF16Decode: 'https://262.ecma-international.org/7.0/#sec-utf16decode', - UTF16Encoding: 'https://262.ecma-international.org/7.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/7.0/#sec-validateandapplypropertydescriptor', - ValidateTypedArray: 'https://262.ecma-international.org/7.0/#sec-validatetypedarray', - WeekDay: 'https://262.ecma-international.org/7.0/#sec-week-day', - YearFromTime: 'https://262.ecma-international.org/7.0/#sec-year-number' -}; diff --git a/node_modules/es-abstract/operations/2017.js b/node_modules/es-abstract/operations/2017.js deleted file mode 100644 index b3a313f..0000000 --- a/node_modules/es-abstract/operations/2017.js +++ /dev/null @@ -1,325 +0,0 @@ -'use strict'; - -module.exports = { - IsPropertyDescriptor: 'https://262.ecma-international.org/6.0/#sec-property-descriptor-specification-type', // not actually an abstract op - - abs: 'https://262.ecma-international.org/8.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/8.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/8.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/8.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://262.ecma-international.org/8.0/#sec-addwaiter', - AdvanceStringIndex: 'https://262.ecma-international.org/8.0/#sec-advancestringindex', - 'agent-order': 'https://262.ecma-international.org/8.0/#sec-agent-order', - AgentCanSuspend: 'https://262.ecma-international.org/8.0/#sec-agentcansuspend', - AgentSignifier: 'https://262.ecma-international.org/8.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/8.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://262.ecma-international.org/8.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/8.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/8.0/#sec-arrayspeciescreate', - AsyncFunctionAwait: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-await', - AsyncFunctionCreate: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://262.ecma-international.org/8.0/#sec-async-functions-abstract-operations-async-function-start', - AtomicLoad: 'https://262.ecma-international.org/8.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://262.ecma-international.org/8.0/#sec-atomicreadmodifywrite', - BlockDeclarationInstantiation: 'https://262.ecma-international.org/8.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://262.ecma-international.org/8.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/8.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/8.0/#sec-canonicalnumericindexstring', - CharacterRange: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://262.ecma-international.org/8.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/8.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://262.ecma-international.org/8.0/#sec-composewriteeventbytes', - Construct: 'https://262.ecma-international.org/8.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/8.0/#sec-copydatablockbytes', - CreateArrayFromList: 'https://262.ecma-international.org/8.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/8.0/#sec-createarrayiterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/8.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/8.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/8.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/8.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/8.0/#sec-createdynamicfunction', - CreateHTML: 'https://262.ecma-international.org/8.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/8.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/8.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/8.0/#sec-createlistfromarraylike', - CreateListIterator: 'https://262.ecma-international.org/8.0/#sec-createlistiterator', - CreateMapIterator: 'https://262.ecma-international.org/8.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/8.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/8.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/8.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/8.0/#sec-createrealm', - CreateResolvingFunctions: 'https://262.ecma-international.org/8.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://262.ecma-international.org/8.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://262.ecma-international.org/8.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://262.ecma-international.org/8.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/8.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/8.0/#sec-date-number', - Day: 'https://262.ecma-international.org/8.0/#eqn-Day', - DayFromYear: 'https://262.ecma-international.org/8.0/#eqn-DaysFromYear', - DaylightSavingTA: 'https://262.ecma-international.org/8.0/#sec-daylight-saving-time-adjustment', - DaysInYear: 'https://262.ecma-international.org/8.0/#eqn-DaysInYear', - DayWithinYear: 'https://262.ecma-international.org/8.0/#eqn-DayWithinYear', - Decode: 'https://262.ecma-international.org/8.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/8.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/8.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/8.0/#sec-encode', - EnqueueJob: 'https://262.ecma-international.org/8.0/#sec-enqueuejob', - EnterCriticalSection: 'https://262.ecma-international.org/8.0/#sec-entercriticalsection', - EnumerableOwnProperties: 'https://262.ecma-international.org/8.0/#sec-enumerableownproperties', - EnumerateObjectProperties: 'https://262.ecma-international.org/8.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://262.ecma-international.org/8.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/8.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/8.0/#sec-evaluatecall', - EvaluateDirectCall: 'https://262.ecma-international.org/8.0/#sec-evaluatedirectcall', - EvaluateNew: 'https://262.ecma-international.org/8.0/#sec-evaluatenew', - EventSet: 'https://262.ecma-international.org/8.0/#sec-event-set', - floor: 'https://262.ecma-international.org/8.0/#eqn-floor', - ForBodyEvaluation: 'https://262.ecma-international.org/8.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://262.ecma-international.org/8.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/8.0/#sec-fulfillpromise', - FunctionAllocate: 'https://262.ecma-international.org/8.0/#sec-functionallocate', - FunctionCreate: 'https://262.ecma-international.org/8.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://262.ecma-international.org/8.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://262.ecma-international.org/8.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://262.ecma-international.org/8.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://262.ecma-international.org/8.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/8.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/8.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/8.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/8.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/8.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://262.ecma-international.org/8.0/#sec-getactivescriptormodule', - GetBase: 'https://262.ecma-international.org/8.0/#ao-getbase', - GetFunctionRealm: 'https://262.ecma-international.org/8.0/#sec-getfunctionrealm', - GetGlobalObject: 'https://262.ecma-international.org/8.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/8.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/8.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/8.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://262.ecma-international.org/8.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://262.ecma-international.org/8.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/8.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/8.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/8.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://262.ecma-international.org/8.0/#ao-getreferencedname', - GetSubstitution: 'https://262.ecma-international.org/8.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/8.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/8.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/8.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/8.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/8.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/8.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/8.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/8.0/#sec-getviewvalue', - GetWaiterList: 'https://262.ecma-international.org/8.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://262.ecma-international.org/8.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://262.ecma-international.org/8.0/#sec-happens-before', - HasOwnProperty: 'https://262.ecma-international.org/8.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://262.ecma-international.org/8.0/#ao-hasprimitivebase', - HasProperty: 'https://262.ecma-international.org/8.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://262.ecma-international.org/8.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://262.ecma-international.org/8.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://262.ecma-international.org/8.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://262.ecma-international.org/8.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://262.ecma-international.org/8.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://262.ecma-international.org/8.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/8.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://262.ecma-international.org/8.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://262.ecma-international.org/8.0/#sec-importedlocalnames', - InitializeBoundName: 'https://262.ecma-international.org/8.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/8.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/8.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/8.0/#eqn-InLeapYear', - InstanceofOperator: 'https://262.ecma-international.org/8.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/8.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/8.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/8.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/8.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/8.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/8.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/8.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/8.0/#sec-isarray', - IsCallable: 'https://262.ecma-international.org/8.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/8.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/8.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/8.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/8.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/8.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/8.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/8.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/8.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/8.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/8.0/#sec-islabelledfunction', - IsPromise: 'https://262.ecma-international.org/8.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/8.0/#sec-ispropertykey', - IsPropertyReference: 'https://262.ecma-international.org/8.0/#ao-ispropertyreference', - IsRegExp: 'https://262.ecma-international.org/8.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://262.ecma-international.org/8.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://262.ecma-international.org/8.0/#ao-isstrictreference', - IsSuperReference: 'https://262.ecma-international.org/8.0/#ao-issuperreference', - IsUnresolvableReference: 'https://262.ecma-international.org/8.0/#ao-isunresolvablereference', - IsWordChar: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://262.ecma-international.org/8.0/#sec-iterabletolist', - IteratorClose: 'https://262.ecma-international.org/8.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/8.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/8.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/8.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/8.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://262.ecma-international.org/8.0/#sec-leavecriticalsection', - LocalTime: 'https://262.ecma-international.org/8.0/#sec-localtime', - LoopContinues: 'https://262.ecma-international.org/8.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/8.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/8.0/#sec-makeargsetter', - MakeClassConstructor: 'https://262.ecma-international.org/8.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/8.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/8.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/8.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/8.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/8.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/8.0/#sec-maketime', - max: 'https://262.ecma-international.org/8.0/#eqn-max', - 'memory-order': 'https://262.ecma-international.org/8.0/#sec-memory-order', - min: 'https://262.ecma-international.org/8.0/#eqn-min', - MinFromTime: 'https://262.ecma-international.org/8.0/#eqn-MinFromTime', - ModuleNamespaceCreate: 'https://262.ecma-international.org/8.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/8.0/#eqn-modulo', - MonthFromTime: 'https://262.ecma-international.org/8.0/#eqn-MonthFromTime', - msFromTime: 'https://262.ecma-international.org/8.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/8.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/8.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/8.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/8.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/8.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/8.0/#sec-newpromisecapability', - NormalCompletion: 'https://262.ecma-international.org/8.0/#sec-normalcompletion', - NumberToRawBytes: 'https://262.ecma-international.org/8.0/#sec-numbertorawbytes', - ObjectCreate: 'https://262.ecma-international.org/8.0/#sec-objectcreate', - ObjectDefineProperties: 'https://262.ecma-international.org/8.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/8.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/8.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/8.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/8.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://262.ecma-international.org/8.0/#sec-ordinarydelete', - OrdinaryGet: 'https://262.ecma-international.org/8.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/8.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://262.ecma-international.org/8.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://262.ecma-international.org/8.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/8.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://262.ecma-international.org/8.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://262.ecma-international.org/8.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://262.ecma-international.org/8.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://262.ecma-international.org/8.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://262.ecma-international.org/8.0/#sec-ordinarysetprototypeof', - OrdinaryToPrimitive: 'https://262.ecma-international.org/8.0/#sec-ordinarytoprimitive', - ParseModule: 'https://262.ecma-international.org/8.0/#sec-parsemodule', - ParseScript: 'https://262.ecma-international.org/8.0/#sec-parse-script', - PerformEval: 'https://262.ecma-international.org/8.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/8.0/#sec-performpromiseall', - PerformPromiseRace: 'https://262.ecma-international.org/8.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/8.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/8.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/8.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://262.ecma-international.org/8.0/#sec-promisereactionjob', - PromiseResolveThenableJob: 'https://262.ecma-international.org/8.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://262.ecma-international.org/8.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/8.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/8.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://262.ecma-international.org/8.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://262.ecma-international.org/8.0/#sec-reads-bytes-from', - 'reads-from': 'https://262.ecma-international.org/8.0/#sec-reads-from', - RegExpAlloc: 'https://262.ecma-international.org/8.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/8.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/8.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/8.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/8.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/8.0/#sec-rejectpromise', - RemoveWaiter: 'https://262.ecma-international.org/8.0/#sec-removewaiter', - RemoveWaiters: 'https://262.ecma-international.org/8.0/#sec-removewaiters', - RepeatMatcher: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://262.ecma-international.org/8.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/8.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/8.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://262.ecma-international.org/8.0/#sec-returnifabrupt', - RunJobs: 'https://262.ecma-international.org/8.0/#sec-runjobs', - SameValue: 'https://262.ecma-international.org/8.0/#sec-samevalue', - SameValueNonNumber: 'https://262.ecma-international.org/8.0/#sec-samevaluenonnumber', - SameValueZero: 'https://262.ecma-international.org/8.0/#sec-samevaluezero', - ScriptEvaluation: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://262.ecma-international.org/8.0/#sec-scriptevaluationjob', - SecFromTime: 'https://262.ecma-international.org/8.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://262.ecma-international.org/8.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/8.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/8.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/8.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/8.0/#sec-setdefaultglobalbindings', - SetFunctionName: 'https://262.ecma-international.org/8.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://262.ecma-international.org/8.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://262.ecma-international.org/8.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/8.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/8.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/8.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://262.ecma-international.org/8.0/#sec-sharedatablockeventset', - SortCompare: 'https://262.ecma-international.org/8.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/8.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/8.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/8.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/8.0/#sec-stringcreate', - StringGetOwnProperty: 'https://262.ecma-international.org/8.0/#sec-stringgetownproperty', - Suspend: 'https://262.ecma-international.org/8.0/#sec-suspend', - SymbolDescriptiveString: 'https://262.ecma-international.org/8.0/#sec-symboldescriptivestring', - 'synchronizes-with': 'https://262.ecma-international.org/8.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://262.ecma-international.org/8.0/#sec-testintegritylevel', - thisBooleanValue: 'https://262.ecma-international.org/8.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://262.ecma-international.org/8.0/#sec-thisnumbervalue', - thisStringValue: 'https://262.ecma-international.org/8.0/#sec-thisstringvalue', - thisTimeValue: 'https://262.ecma-international.org/8.0/#sec-thistimevalue', - TimeClip: 'https://262.ecma-international.org/8.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/8.0/#eqn-TimeFromYear', - TimeWithinDay: 'https://262.ecma-international.org/8.0/#eqn-TimeWithinDay', - ToBoolean: 'https://262.ecma-international.org/8.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/8.0/#sec-todatestring', - ToIndex: 'https://262.ecma-international.org/8.0/#sec-toindex', - ToInt16: 'https://262.ecma-international.org/8.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/8.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/8.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/8.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/8.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/8.0/#sec-tonumber', - ToObject: 'https://262.ecma-international.org/8.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://262.ecma-international.org/8.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://262.ecma-international.org/8.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/8.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/8.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/8.0/#sec-tostring', - 'ToString Applied to the Number Type': 'https://262.ecma-international.org/8.0/#sec-tostring-applied-to-the-number-type', - ToUint16: 'https://262.ecma-international.org/8.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/8.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/8.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/8.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/8.0/#sec-triggerpromisereactions', - Type: 'https://262.ecma-international.org/8.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://262.ecma-international.org/8.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://262.ecma-international.org/8.0/#typedarray-species-create', - UpdateEmpty: 'https://262.ecma-international.org/8.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/8.0/#sec-utc-t', - UTF16Decode: 'https://262.ecma-international.org/8.0/#sec-utf16decode', - UTF16Encoding: 'https://262.ecma-international.org/8.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/8.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://262.ecma-international.org/8.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://262.ecma-international.org/8.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://262.ecma-international.org/8.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://262.ecma-international.org/8.0/#sec-valueofreadevent', - WakeWaiter: 'https://262.ecma-international.org/8.0/#sec-wakewaiter', - WeekDay: 'https://262.ecma-international.org/8.0/#sec-week-day', - WordCharacters: 'https://262.ecma-international.org/8.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://262.ecma-international.org/8.0/#eqn-YearFromTime' -}; diff --git a/node_modules/es-abstract/operations/2018.js b/node_modules/es-abstract/operations/2018.js deleted file mode 100644 index 10d10f2..0000000 --- a/node_modules/es-abstract/operations/2018.js +++ /dev/null @@ -1,350 +0,0 @@ -'use strict'; - -module.exports = { - abs: 'https://262.ecma-international.org/9.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/9.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/9.0/#sec-abstract-relational-comparison', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/9.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://262.ecma-international.org/9.0/#sec-addwaiter', - AdvanceStringIndex: 'https://262.ecma-international.org/9.0/#sec-advancestringindex', - 'agent-order': 'https://262.ecma-international.org/9.0/#sec-agent-order', - AgentCanSuspend: 'https://262.ecma-international.org/9.0/#sec-agentcansuspend', - AgentSignifier: 'https://262.ecma-international.org/9.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/9.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://262.ecma-international.org/9.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/9.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/9.0/#sec-arrayspeciescreate', - AsyncFunctionCreate: 'https://262.ecma-international.org/9.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://262.ecma-international.org/9.0/#sec-async-functions-abstract-operations-async-function-start', - AsyncGeneratorEnqueue: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorenqueue', - AsyncGeneratorFunctionCreate: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorfunctioncreate', - AsyncGeneratorReject: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorreject', - AsyncGeneratorResolve: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorresolve', - AsyncGeneratorResumeNext: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorresumenext', - AsyncGeneratorStart: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratorstart', - AsyncGeneratorYield: 'https://262.ecma-international.org/9.0/#sec-asyncgeneratoryield', - AsyncIteratorClose: 'https://262.ecma-international.org/9.0/#sec-asynciteratorclose', - AtomicLoad: 'https://262.ecma-international.org/9.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://262.ecma-international.org/9.0/#sec-atomicreadmodifywrite', - Await: 'https://262.ecma-international.org/9.0/#await', - BackreferenceMatcher: 'https://262.ecma-international.org/9.0/#sec-backreference-matcher', - BlockDeclarationInstantiation: 'https://262.ecma-international.org/9.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://262.ecma-international.org/9.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/9.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/9.0/#sec-canonicalnumericindexstring', - CaseClauseIsSelected: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-caseclauseisselected', - CharacterRange: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://262.ecma-international.org/9.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/9.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://262.ecma-international.org/9.0/#sec-composewriteeventbytes', - Construct: 'https://262.ecma-international.org/9.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/9.0/#sec-copydatablockbytes', - CopyDataProperties: 'https://262.ecma-international.org/9.0/#sec-copydataproperties', - CreateArrayFromList: 'https://262.ecma-international.org/9.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/9.0/#sec-createarrayiterator', - CreateAsyncFromSyncIterator: 'https://262.ecma-international.org/9.0/#sec-createasyncfromsynciterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/9.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/9.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/9.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/9.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/9.0/#sec-createdynamicfunction', - CreateHTML: 'https://262.ecma-international.org/9.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/9.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/9.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/9.0/#sec-createlistfromarraylike', - CreateListIteratorRecord: 'https://262.ecma-international.org/9.0/#sec-createlistiteratorRecord', - CreateMapIterator: 'https://262.ecma-international.org/9.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/9.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/9.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/9.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/9.0/#sec-createrealm', - CreateResolvingFunctions: 'https://262.ecma-international.org/9.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://262.ecma-international.org/9.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://262.ecma-international.org/9.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://262.ecma-international.org/9.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/9.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/9.0/#sec-date-number', - DateString: 'https://262.ecma-international.org/9.0/#sec-datestring', - Day: 'https://262.ecma-international.org/9.0/#eqn-Day', - DayFromYear: 'https://262.ecma-international.org/9.0/#eqn-DaysFromYear', - DaysInYear: 'https://262.ecma-international.org/9.0/#eqn-DaysInYear', - DayWithinYear: 'https://262.ecma-international.org/9.0/#eqn-DayWithinYear', - Decode: 'https://262.ecma-international.org/9.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/9.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/9.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/9.0/#sec-encode', - EnqueueJob: 'https://262.ecma-international.org/9.0/#sec-enqueuejob', - EnterCriticalSection: 'https://262.ecma-international.org/9.0/#sec-entercriticalsection', - EnumerableOwnPropertyNames: 'https://262.ecma-international.org/9.0/#sec-enumerableownpropertynames', - EnumerateObjectProperties: 'https://262.ecma-international.org/9.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://262.ecma-international.org/9.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/9.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/9.0/#sec-evaluatecall', - EvaluateNew: 'https://262.ecma-international.org/9.0/#sec-evaluatenew', - EventSet: 'https://262.ecma-international.org/9.0/#sec-event-set', - floor: 'https://262.ecma-international.org/9.0/#eqn-floor', - ForBodyEvaluation: 'https://262.ecma-international.org/9.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://262.ecma-international.org/9.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/9.0/#sec-fulfillpromise', - FunctionAllocate: 'https://262.ecma-international.org/9.0/#sec-functionallocate', - FunctionCreate: 'https://262.ecma-international.org/9.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://262.ecma-international.org/9.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://262.ecma-international.org/9.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://262.ecma-international.org/9.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://262.ecma-international.org/9.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/9.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/9.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/9.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/9.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/9.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://262.ecma-international.org/9.0/#sec-getactivescriptormodule', - GetBase: 'https://262.ecma-international.org/9.0/#sec-getbase', - GetFunctionRealm: 'https://262.ecma-international.org/9.0/#sec-getfunctionrealm', - GetGeneratorKind: 'https://262.ecma-international.org/9.0/#sec-getgeneratorkind', - GetGlobalObject: 'https://262.ecma-international.org/9.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/9.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/9.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/9.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://262.ecma-international.org/9.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://262.ecma-international.org/9.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/9.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/9.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/9.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://262.ecma-international.org/9.0/#sec-getreferencedname', - GetSubstitution: 'https://262.ecma-international.org/9.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/9.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/9.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/9.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/9.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/9.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/9.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/9.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/9.0/#sec-getviewvalue', - GetWaiterList: 'https://262.ecma-international.org/9.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://262.ecma-international.org/9.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://262.ecma-international.org/9.0/#sec-happens-before', - HasOwnProperty: 'https://262.ecma-international.org/9.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://262.ecma-international.org/9.0/#sec-hasprimitivebase', - HasProperty: 'https://262.ecma-international.org/9.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://262.ecma-international.org/9.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://262.ecma-international.org/9.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://262.ecma-international.org/9.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://262.ecma-international.org/9.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://262.ecma-international.org/9.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://262.ecma-international.org/9.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/9.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://262.ecma-international.org/9.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://262.ecma-international.org/9.0/#sec-importedlocalnames', - InitializeBoundName: 'https://262.ecma-international.org/9.0/#sec-initializeboundname', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/9.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/9.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/9.0/#eqn-InLeapYear', - InnerModuleEvaluation: 'https://262.ecma-international.org/9.0/#sec-innermoduleevaluation', - InnerModuleInstantiation: 'https://262.ecma-international.org/9.0/#sec-innermoduleinstantiation', - InstanceofOperator: 'https://262.ecma-international.org/9.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/9.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/9.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/9.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/9.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/9.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/9.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/9.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/9.0/#sec-isarray', - IsCallable: 'https://262.ecma-international.org/9.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/9.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/9.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/9.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/9.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/9.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/9.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/9.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/9.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/9.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/9.0/#sec-islabelledfunction', - IsPromise: 'https://262.ecma-international.org/9.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/9.0/#sec-ispropertykey', - IsPropertyReference: 'https://262.ecma-international.org/9.0/#sec-ispropertyreference', - IsRegExp: 'https://262.ecma-international.org/9.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://262.ecma-international.org/9.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://262.ecma-international.org/9.0/#sec-isstrictreference', - IsStringPrefix: 'https://262.ecma-international.org/9.0/#sec-isstringprefix', - IsSuperReference: 'https://262.ecma-international.org/9.0/#sec-issuperreference', - IsUnresolvableReference: 'https://262.ecma-international.org/9.0/#sec-isunresolvablereference', - IsWordChar: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://262.ecma-international.org/9.0/#sec-iterabletolist', - IteratorClose: 'https://262.ecma-international.org/9.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/9.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/9.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/9.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/9.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://262.ecma-international.org/9.0/#sec-leavecriticalsection', - LocalTime: 'https://262.ecma-international.org/9.0/#sec-localtime', - LoopContinues: 'https://262.ecma-international.org/9.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/9.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/9.0/#sec-makeargsetter', - MakeClassConstructor: 'https://262.ecma-international.org/9.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/9.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/9.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/9.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/9.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/9.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/9.0/#sec-maketime', - max: 'https://262.ecma-international.org/9.0/#eqn-max', - 'memory-order': 'https://262.ecma-international.org/9.0/#sec-memory-order', - min: 'https://262.ecma-international.org/9.0/#eqn-min', - MinFromTime: 'https://262.ecma-international.org/9.0/#eqn-MinFromTime', - ModuleDeclarationEnvironmentSetup: 'https://262.ecma-international.org/9.0/#sec-moduledeclarationenvironmentsetup', - ModuleExecution: 'https://262.ecma-international.org/9.0/#sec-moduleexecution', - ModuleNamespaceCreate: 'https://262.ecma-international.org/9.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/9.0/#eqn-modulo', - MonthFromTime: 'https://262.ecma-international.org/9.0/#eqn-MonthFromTime', - msFromTime: 'https://262.ecma-international.org/9.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/9.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/9.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/9.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/9.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/9.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/9.0/#sec-newpromisecapability', - NormalCompletion: 'https://262.ecma-international.org/9.0/#sec-normalcompletion', - NumberToRawBytes: 'https://262.ecma-international.org/9.0/#sec-numbertorawbytes', - NumberToString: 'https://262.ecma-international.org/9.0/#sec-tostring-applied-to-the-number-type', - ObjectCreate: 'https://262.ecma-international.org/9.0/#sec-objectcreate', - ObjectDefineProperties: 'https://262.ecma-international.org/9.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/9.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/9.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/9.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/9.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://262.ecma-international.org/9.0/#sec-ordinarydelete', - OrdinaryGet: 'https://262.ecma-international.org/9.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/9.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://262.ecma-international.org/9.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://262.ecma-international.org/9.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/9.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://262.ecma-international.org/9.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://262.ecma-international.org/9.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://262.ecma-international.org/9.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://262.ecma-international.org/9.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://262.ecma-international.org/9.0/#sec-ordinarysetprototypeof', - OrdinarySetWithOwnDescriptor: 'https://262.ecma-international.org/9.0/#sec-ordinarysetwithowndescriptor', - OrdinaryToPrimitive: 'https://262.ecma-international.org/9.0/#sec-ordinarytoprimitive', - ParseModule: 'https://262.ecma-international.org/9.0/#sec-parsemodule', - ParseScript: 'https://262.ecma-international.org/9.0/#sec-parse-script', - PerformEval: 'https://262.ecma-international.org/9.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/9.0/#sec-performpromiseall', - PerformPromiseRace: 'https://262.ecma-international.org/9.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/9.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/9.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/9.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://262.ecma-international.org/9.0/#sec-promisereactionjob', - PromiseResolve: 'https://262.ecma-international.org/9.0/#sec-promise-resolve', - PromiseResolveThenableJob: 'https://262.ecma-international.org/9.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://262.ecma-international.org/9.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/9.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/9.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://262.ecma-international.org/9.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://262.ecma-international.org/9.0/#sec-reads-bytes-from', - 'reads-from': 'https://262.ecma-international.org/9.0/#sec-reads-from', - RegExpAlloc: 'https://262.ecma-international.org/9.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/9.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/9.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/9.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/9.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/9.0/#sec-rejectpromise', - RemoveWaiter: 'https://262.ecma-international.org/9.0/#sec-removewaiter', - RemoveWaiters: 'https://262.ecma-international.org/9.0/#sec-removewaiters', - RepeatMatcher: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://262.ecma-international.org/9.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/9.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/9.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://262.ecma-international.org/9.0/#sec-returnifabrupt', - RunJobs: 'https://262.ecma-international.org/9.0/#sec-runjobs', - SameValue: 'https://262.ecma-international.org/9.0/#sec-samevalue', - SameValueNonNumber: 'https://262.ecma-international.org/9.0/#sec-samevaluenonnumber', - SameValueZero: 'https://262.ecma-international.org/9.0/#sec-samevaluezero', - ScriptEvaluation: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://262.ecma-international.org/9.0/#sec-scriptevaluationjob', - SecFromTime: 'https://262.ecma-international.org/9.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://262.ecma-international.org/9.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/9.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/9.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/9.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/9.0/#sec-setdefaultglobalbindings', - SetFunctionLength: 'https://262.ecma-international.org/9.0/#sec-setfunctionlength', - SetFunctionName: 'https://262.ecma-international.org/9.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://262.ecma-international.org/9.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://262.ecma-international.org/9.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/9.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/9.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/9.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://262.ecma-international.org/9.0/#sec-sharedatablockeventset', - SortCompare: 'https://262.ecma-international.org/9.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/9.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/9.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/9.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/9.0/#sec-stringcreate', - StringGetOwnProperty: 'https://262.ecma-international.org/9.0/#sec-stringgetownproperty', - Suspend: 'https://262.ecma-international.org/9.0/#sec-suspend', - SymbolDescriptiveString: 'https://262.ecma-international.org/9.0/#sec-symboldescriptivestring', - 'synchronizes-with': 'https://262.ecma-international.org/9.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://262.ecma-international.org/9.0/#sec-testintegritylevel', - thisBooleanValue: 'https://262.ecma-international.org/9.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://262.ecma-international.org/9.0/#sec-thisnumbervalue', - thisStringValue: 'https://262.ecma-international.org/9.0/#sec-thisstringvalue', - thisSymbolValue: 'https://262.ecma-international.org/9.0/#sec-thissymbolvalue', - thisTimeValue: 'https://262.ecma-international.org/9.0/#sec-thistimevalue', - ThrowCompletion: 'https://262.ecma-international.org/9.0/#sec-throwcompletion', - TimeClip: 'https://262.ecma-international.org/9.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/9.0/#eqn-TimeFromYear', - TimeString: 'https://262.ecma-international.org/9.0/#sec-timestring', - TimeWithinDay: 'https://262.ecma-international.org/9.0/#eqn-TimeWithinDay', - TimeZoneString: 'https://262.ecma-international.org/9.0/#sec-timezoneestring', - ToBoolean: 'https://262.ecma-international.org/9.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/9.0/#sec-todatestring', - ToIndex: 'https://262.ecma-international.org/9.0/#sec-toindex', - ToInt16: 'https://262.ecma-international.org/9.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/9.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/9.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/9.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/9.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/9.0/#sec-tonumber', - ToObject: 'https://262.ecma-international.org/9.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://262.ecma-international.org/9.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://262.ecma-international.org/9.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/9.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/9.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/9.0/#sec-tostring', - ToUint16: 'https://262.ecma-international.org/9.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/9.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/9.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/9.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/9.0/#sec-triggerpromisereactions', - Type: 'https://262.ecma-international.org/9.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://262.ecma-international.org/9.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://262.ecma-international.org/9.0/#typedarray-species-create', - UnicodeEscape: 'https://262.ecma-international.org/9.0/#sec-unicodeescape', - UnicodeMatchProperty: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-unicodematchproperty-p', - UnicodeMatchPropertyValue: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v', - UpdateEmpty: 'https://262.ecma-international.org/9.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/9.0/#sec-utc-t', - UTF16Decode: 'https://262.ecma-international.org/9.0/#sec-utf16decode', - UTF16Encoding: 'https://262.ecma-international.org/9.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/9.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://262.ecma-international.org/9.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://262.ecma-international.org/9.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://262.ecma-international.org/9.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://262.ecma-international.org/9.0/#sec-valueofreadevent', - WakeWaiter: 'https://262.ecma-international.org/9.0/#sec-wakewaiter', - WeekDay: 'https://262.ecma-international.org/9.0/#sec-week-day', - WordCharacters: 'https://262.ecma-international.org/9.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://262.ecma-international.org/9.0/#eqn-YearFromTime' -}; diff --git a/node_modules/es-abstract/operations/2019.js b/node_modules/es-abstract/operations/2019.js deleted file mode 100644 index 57a4be4..0000000 --- a/node_modules/es-abstract/operations/2019.js +++ /dev/null @@ -1,355 +0,0 @@ -'use strict'; - -module.exports = { - abs: 'https://262.ecma-international.org/10.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/10.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/10.0/#sec-abstract-relational-comparison', - AddEntriesFromIterable: 'https://262.ecma-international.org/10.0/#sec-add-entries-from-iterable', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/10.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://262.ecma-international.org/10.0/#sec-addwaiter', - AdvanceStringIndex: 'https://262.ecma-international.org/10.0/#sec-advancestringindex', - 'agent-order': 'https://262.ecma-international.org/10.0/#sec-agent-order', - AgentCanSuspend: 'https://262.ecma-international.org/10.0/#sec-agentcansuspend', - AgentSignifier: 'https://262.ecma-international.org/10.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/10.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://262.ecma-international.org/10.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/10.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/10.0/#sec-arrayspeciescreate', - AsyncFromSyncIteratorContinuation: 'https://262.ecma-international.org/10.0/#sec-asyncfromsynciteratorcontinuation', - AsyncFunctionCreate: 'https://262.ecma-international.org/10.0/#sec-async-functions-abstract-operations-async-function-create', - AsyncFunctionStart: 'https://262.ecma-international.org/10.0/#sec-async-functions-abstract-operations-async-function-start', - AsyncGeneratorEnqueue: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorenqueue', - AsyncGeneratorFunctionCreate: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorfunctioncreate', - AsyncGeneratorReject: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorreject', - AsyncGeneratorResolve: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorresolve', - AsyncGeneratorResumeNext: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorresumenext', - AsyncGeneratorStart: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratorstart', - AsyncGeneratorYield: 'https://262.ecma-international.org/10.0/#sec-asyncgeneratoryield', - AsyncIteratorClose: 'https://262.ecma-international.org/10.0/#sec-asynciteratorclose', - AtomicLoad: 'https://262.ecma-international.org/10.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://262.ecma-international.org/10.0/#sec-atomicreadmodifywrite', - Await: 'https://262.ecma-international.org/10.0/#await', - BackreferenceMatcher: 'https://262.ecma-international.org/10.0/#sec-backreference-matcher', - BlockDeclarationInstantiation: 'https://262.ecma-international.org/10.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://262.ecma-international.org/10.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/10.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/10.0/#sec-canonicalnumericindexstring', - CaseClauseIsSelected: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-caseclauseisselected', - CharacterRange: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-clonearraybuffer', - CompletePropertyDescriptor: 'https://262.ecma-international.org/10.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/10.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://262.ecma-international.org/10.0/#sec-composewriteeventbytes', - Construct: 'https://262.ecma-international.org/10.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/10.0/#sec-copydatablockbytes', - CopyDataProperties: 'https://262.ecma-international.org/10.0/#sec-copydataproperties', - CreateArrayFromList: 'https://262.ecma-international.org/10.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/10.0/#sec-createarrayiterator', - CreateAsyncFromSyncIterator: 'https://262.ecma-international.org/10.0/#sec-createasyncfromsynciterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/10.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/10.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/10.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/10.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/10.0/#sec-createdynamicfunction', - CreateHTML: 'https://262.ecma-international.org/10.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/10.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/10.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/10.0/#sec-createlistfromarraylike', - CreateListIteratorRecord: 'https://262.ecma-international.org/10.0/#sec-createlistiteratorRecord', - CreateMapIterator: 'https://262.ecma-international.org/10.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/10.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/10.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/10.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/10.0/#sec-createrealm', - CreateResolvingFunctions: 'https://262.ecma-international.org/10.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://262.ecma-international.org/10.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://262.ecma-international.org/10.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://262.ecma-international.org/10.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/10.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/10.0/#sec-date-number', - DateString: 'https://262.ecma-international.org/10.0/#sec-datestring', - Day: 'https://262.ecma-international.org/10.0/#eqn-Day', - DayFromYear: 'https://262.ecma-international.org/10.0/#eqn-DaysFromYear', - DaysInYear: 'https://262.ecma-international.org/10.0/#eqn-DaysInYear', - DayWithinYear: 'https://262.ecma-international.org/10.0/#eqn-DayWithinYear', - Decode: 'https://262.ecma-international.org/10.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/10.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/10.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/10.0/#sec-encode', - EnqueueJob: 'https://262.ecma-international.org/10.0/#sec-enqueuejob', - EnterCriticalSection: 'https://262.ecma-international.org/10.0/#sec-entercriticalsection', - EnumerableOwnPropertyNames: 'https://262.ecma-international.org/10.0/#sec-enumerableownpropertynames', - EnumerateObjectProperties: 'https://262.ecma-international.org/10.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://262.ecma-international.org/10.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/10.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/10.0/#sec-evaluatecall', - EvaluateNew: 'https://262.ecma-international.org/10.0/#sec-evaluatenew', - EventSet: 'https://262.ecma-international.org/10.0/#sec-event-set', - ExecuteModule: 'https://262.ecma-international.org/10.0/#sec-source-text-module-record-execute-module', - FlattenIntoArray: 'https://262.ecma-international.org/10.0/#sec-flattenintoarray', - floor: 'https://262.ecma-international.org/10.0/#eqn-floor', - ForBodyEvaluation: 'https://262.ecma-international.org/10.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-forin-div-ofheadevaluation-tdznames-expr-iterationkind', - FromPropertyDescriptor: 'https://262.ecma-international.org/10.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/10.0/#sec-fulfillpromise', - FunctionAllocate: 'https://262.ecma-international.org/10.0/#sec-functionallocate', - FunctionCreate: 'https://262.ecma-international.org/10.0/#sec-functioncreate', - FunctionDeclarationInstantiation: 'https://262.ecma-international.org/10.0/#sec-functiondeclarationinstantiation', - FunctionInitialize: 'https://262.ecma-international.org/10.0/#sec-functioninitialize', - GeneratorFunctionCreate: 'https://262.ecma-international.org/10.0/#sec-generatorfunctioncreate', - GeneratorResume: 'https://262.ecma-international.org/10.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/10.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/10.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/10.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/10.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/10.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://262.ecma-international.org/10.0/#sec-getactivescriptormodule', - GetBase: 'https://262.ecma-international.org/10.0/#sec-getbase', - GetFunctionRealm: 'https://262.ecma-international.org/10.0/#sec-getfunctionrealm', - GetGeneratorKind: 'https://262.ecma-international.org/10.0/#sec-getgeneratorkind', - GetGlobalObject: 'https://262.ecma-international.org/10.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/10.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/10.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/10.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://262.ecma-international.org/10.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://262.ecma-international.org/10.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/10.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/10.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/10.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://262.ecma-international.org/10.0/#sec-getreferencedname', - GetSubstitution: 'https://262.ecma-international.org/10.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/10.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/10.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/10.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/10.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/10.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/10.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/10.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/10.0/#sec-getviewvalue', - GetWaiterList: 'https://262.ecma-international.org/10.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://262.ecma-international.org/10.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://262.ecma-international.org/10.0/#sec-happens-before', - HasOwnProperty: 'https://262.ecma-international.org/10.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://262.ecma-international.org/10.0/#sec-hasprimitivebase', - HasProperty: 'https://262.ecma-international.org/10.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://262.ecma-international.org/10.0/#sec-host-synchronizes-with', - HostEnsureCanCompileStrings: 'https://262.ecma-international.org/10.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://262.ecma-international.org/10.0/#sec-hosteventset', - HostPromiseRejectionTracker: 'https://262.ecma-international.org/10.0/#sec-host-promise-rejection-tracker', - HostReportErrors: 'https://262.ecma-international.org/10.0/#sec-host-report-errors', - HostResolveImportedModule: 'https://262.ecma-international.org/10.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/10.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://262.ecma-international.org/10.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://262.ecma-international.org/10.0/#sec-importedlocalnames', - InitializeBoundName: 'https://262.ecma-international.org/10.0/#sec-initializeboundname', - InitializeEnvironment: 'https://262.ecma-international.org/10.0/#sec-source-text-module-record-initialize-environment', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/10.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/10.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/10.0/#eqn-InLeapYear', - InnerModuleEvaluation: 'https://262.ecma-international.org/10.0/#sec-innermoduleevaluation', - InnerModuleInstantiation: 'https://262.ecma-international.org/10.0/#sec-innermoduleinstantiation', - InstanceofOperator: 'https://262.ecma-international.org/10.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/10.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/10.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/10.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/10.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/10.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/10.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/10.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/10.0/#sec-isarray', - IsCallable: 'https://262.ecma-international.org/10.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/10.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/10.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/10.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/10.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/10.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/10.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/10.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/10.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/10.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/10.0/#sec-islabelledfunction', - IsPromise: 'https://262.ecma-international.org/10.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/10.0/#sec-ispropertykey', - IsPropertyReference: 'https://262.ecma-international.org/10.0/#sec-ispropertyreference', - IsRegExp: 'https://262.ecma-international.org/10.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://262.ecma-international.org/10.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://262.ecma-international.org/10.0/#sec-isstrictreference', - IsStringPrefix: 'https://262.ecma-international.org/10.0/#sec-isstringprefix', - IsSuperReference: 'https://262.ecma-international.org/10.0/#sec-issuperreference', - IsUnresolvableReference: 'https://262.ecma-international.org/10.0/#sec-isunresolvablereference', - IsWordChar: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://262.ecma-international.org/10.0/#sec-iterabletolist', - IteratorClose: 'https://262.ecma-international.org/10.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/10.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/10.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/10.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/10.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://262.ecma-international.org/10.0/#sec-leavecriticalsection', - LocalTime: 'https://262.ecma-international.org/10.0/#sec-localtime', - LoopContinues: 'https://262.ecma-international.org/10.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/10.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/10.0/#sec-makeargsetter', - MakeClassConstructor: 'https://262.ecma-international.org/10.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/10.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/10.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/10.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/10.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/10.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/10.0/#sec-maketime', - max: 'https://262.ecma-international.org/10.0/#eqn-max', - 'memory-order': 'https://262.ecma-international.org/10.0/#sec-memory-order', - min: 'https://262.ecma-international.org/10.0/#eqn-min', - MinFromTime: 'https://262.ecma-international.org/10.0/#eqn-MinFromTime', - ModuleNamespaceCreate: 'https://262.ecma-international.org/10.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/10.0/#eqn-modulo', - MonthFromTime: 'https://262.ecma-international.org/10.0/#eqn-MonthFromTime', - msFromTime: 'https://262.ecma-international.org/10.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/10.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/10.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/10.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/10.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/10.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/10.0/#sec-newpromisecapability', - NormalCompletion: 'https://262.ecma-international.org/10.0/#sec-normalcompletion', - NotifyWaiter: 'https://262.ecma-international.org/10.0/#sec-notifywaiter', - NumberToRawBytes: 'https://262.ecma-international.org/10.0/#sec-numbertorawbytes', - NumberToString: 'https://262.ecma-international.org/10.0/#sec-tostring-applied-to-the-number-type', - ObjectCreate: 'https://262.ecma-international.org/10.0/#sec-objectcreate', - ObjectDefineProperties: 'https://262.ecma-international.org/10.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/10.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/10.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/10.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/10.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://262.ecma-international.org/10.0/#sec-ordinarydelete', - OrdinaryGet: 'https://262.ecma-international.org/10.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/10.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://262.ecma-international.org/10.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://262.ecma-international.org/10.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/10.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://262.ecma-international.org/10.0/#sec-ordinaryisextensible', - OrdinaryOwnPropertyKeys: 'https://262.ecma-international.org/10.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://262.ecma-international.org/10.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://262.ecma-international.org/10.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://262.ecma-international.org/10.0/#sec-ordinarysetprototypeof', - OrdinarySetWithOwnDescriptor: 'https://262.ecma-international.org/10.0/#sec-ordinarysetwithowndescriptor', - OrdinaryToPrimitive: 'https://262.ecma-international.org/10.0/#sec-ordinarytoprimitive', - ParseModule: 'https://262.ecma-international.org/10.0/#sec-parsemodule', - ParseScript: 'https://262.ecma-international.org/10.0/#sec-parse-script', - PerformEval: 'https://262.ecma-international.org/10.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/10.0/#sec-performpromiseall', - PerformPromiseRace: 'https://262.ecma-international.org/10.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/10.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/10.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/10.0/#sec-preparefortailcall', - PromiseReactionJob: 'https://262.ecma-international.org/10.0/#sec-promisereactionjob', - PromiseResolve: 'https://262.ecma-international.org/10.0/#sec-promise-resolve', - PromiseResolveThenableJob: 'https://262.ecma-international.org/10.0/#sec-promiseresolvethenablejob', - ProxyCreate: 'https://262.ecma-international.org/10.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/10.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/10.0/#sec-quotejsonstring', - RawBytesToNumber: 'https://262.ecma-international.org/10.0/#sec-rawbytestonumber', - 'reads-bytes-from': 'https://262.ecma-international.org/10.0/#sec-reads-bytes-from', - 'reads-from': 'https://262.ecma-international.org/10.0/#sec-reads-from', - RegExpAlloc: 'https://262.ecma-international.org/10.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/10.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/10.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/10.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/10.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/10.0/#sec-rejectpromise', - RemoveWaiter: 'https://262.ecma-international.org/10.0/#sec-removewaiter', - RemoveWaiters: 'https://262.ecma-international.org/10.0/#sec-removewaiters', - RepeatMatcher: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireObjectCoercible: 'https://262.ecma-international.org/10.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/10.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/10.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://262.ecma-international.org/10.0/#sec-returnifabrupt', - RunJobs: 'https://262.ecma-international.org/10.0/#sec-runjobs', - SameValue: 'https://262.ecma-international.org/10.0/#sec-samevalue', - SameValueNonNumber: 'https://262.ecma-international.org/10.0/#sec-samevaluenonnumber', - SameValueZero: 'https://262.ecma-international.org/10.0/#sec-samevaluezero', - ScriptEvaluation: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-scriptevaluation', - ScriptEvaluationJob: 'https://262.ecma-international.org/10.0/#sec-scriptevaluationjob', - SecFromTime: 'https://262.ecma-international.org/10.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://262.ecma-international.org/10.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/10.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/10.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/10.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/10.0/#sec-setdefaultglobalbindings', - SetFunctionLength: 'https://262.ecma-international.org/10.0/#sec-setfunctionlength', - SetFunctionName: 'https://262.ecma-international.org/10.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://262.ecma-international.org/10.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://262.ecma-international.org/10.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/10.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/10.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/10.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://262.ecma-international.org/10.0/#sec-sharedatablockeventset', - SortCompare: 'https://262.ecma-international.org/10.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/10.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/10.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/10.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/10.0/#sec-stringcreate', - StringGetOwnProperty: 'https://262.ecma-international.org/10.0/#sec-stringgetownproperty', - Suspend: 'https://262.ecma-international.org/10.0/#sec-suspend', - SymbolDescriptiveString: 'https://262.ecma-international.org/10.0/#sec-symboldescriptivestring', - SynchronizeEventSet: 'https://262.ecma-international.org/10.0/#sec-synchronizeeventset', - 'synchronizes-with': 'https://262.ecma-international.org/10.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://262.ecma-international.org/10.0/#sec-testintegritylevel', - thisBooleanValue: 'https://262.ecma-international.org/10.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://262.ecma-international.org/10.0/#sec-thisnumbervalue', - thisStringValue: 'https://262.ecma-international.org/10.0/#sec-thisstringvalue', - thisSymbolValue: 'https://262.ecma-international.org/10.0/#sec-thissymbolvalue', - thisTimeValue: 'https://262.ecma-international.org/10.0/#sec-thistimevalue', - ThrowCompletion: 'https://262.ecma-international.org/10.0/#sec-throwcompletion', - TimeClip: 'https://262.ecma-international.org/10.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/10.0/#eqn-TimeFromYear', - TimeString: 'https://262.ecma-international.org/10.0/#sec-timestring', - TimeWithinDay: 'https://262.ecma-international.org/10.0/#eqn-TimeWithinDay', - TimeZoneString: 'https://262.ecma-international.org/10.0/#sec-timezoneestring', - ToBoolean: 'https://262.ecma-international.org/10.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/10.0/#sec-todatestring', - ToIndex: 'https://262.ecma-international.org/10.0/#sec-toindex', - ToInt16: 'https://262.ecma-international.org/10.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/10.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/10.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/10.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/10.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/10.0/#sec-tonumber', - ToObject: 'https://262.ecma-international.org/10.0/#sec-toobject', - TopLevelModuleEvaluationJob: 'https://262.ecma-international.org/10.0/#sec-toplevelmoduleevaluationjob', - ToPrimitive: 'https://262.ecma-international.org/10.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/10.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/10.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/10.0/#sec-tostring', - ToUint16: 'https://262.ecma-international.org/10.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/10.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/10.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/10.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/10.0/#sec-triggerpromisereactions', - TrimString: 'https://262.ecma-international.org/10.0/#sec-trimstring', - Type: 'https://262.ecma-international.org/10.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://262.ecma-international.org/10.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://262.ecma-international.org/10.0/#typedarray-species-create', - UnicodeEscape: 'https://262.ecma-international.org/10.0/#sec-unicodeescape', - UnicodeMatchProperty: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-unicodematchproperty-p', - UnicodeMatchPropertyValue: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v', - UpdateEmpty: 'https://262.ecma-international.org/10.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/10.0/#sec-utc-t', - UTF16Decode: 'https://262.ecma-international.org/10.0/#sec-utf16decode', - UTF16Encoding: 'https://262.ecma-international.org/10.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/10.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://262.ecma-international.org/10.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://262.ecma-international.org/10.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://262.ecma-international.org/10.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://262.ecma-international.org/10.0/#sec-valueofreadevent', - WeekDay: 'https://262.ecma-international.org/10.0/#sec-week-day', - WordCharacters: 'https://262.ecma-international.org/10.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://262.ecma-international.org/10.0/#eqn-YearFromTime' -}; diff --git a/node_modules/es-abstract/operations/2020.js b/node_modules/es-abstract/operations/2020.js deleted file mode 100644 index 9464726..0000000 --- a/node_modules/es-abstract/operations/2020.js +++ /dev/null @@ -1,418 +0,0 @@ -'use strict'; - -module.exports = { - abs: 'https://262.ecma-international.org/11.0/#eqn-abs', - 'Abstract Equality Comparison': 'https://262.ecma-international.org/11.0/#sec-abstract-equality-comparison', - 'Abstract Relational Comparison': 'https://262.ecma-international.org/11.0/#sec-abstract-relational-comparison', - AddEntriesFromIterable: 'https://262.ecma-international.org/11.0/#sec-add-entries-from-iterable', - AddRestrictedFunctionProperties: 'https://262.ecma-international.org/11.0/#sec-addrestrictedfunctionproperties', - AddWaiter: 'https://262.ecma-international.org/11.0/#sec-addwaiter', - AdvanceStringIndex: 'https://262.ecma-international.org/11.0/#sec-advancestringindex', - 'agent-order': 'https://262.ecma-international.org/11.0/#sec-agent-order', - AgentCanSuspend: 'https://262.ecma-international.org/11.0/#sec-agentcansuspend', - AgentSignifier: 'https://262.ecma-international.org/11.0/#sec-agentsignifier', - AllocateArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-allocatearraybuffer', - AllocateSharedArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-allocatesharedarraybuffer', - AllocateTypedArray: 'https://262.ecma-international.org/11.0/#sec-allocatetypedarray', - AllocateTypedArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-allocatetypedarraybuffer', - ArrayCreate: 'https://262.ecma-international.org/11.0/#sec-arraycreate', - ArraySetLength: 'https://262.ecma-international.org/11.0/#sec-arraysetlength', - ArraySpeciesCreate: 'https://262.ecma-international.org/11.0/#sec-arrayspeciescreate', - AsyncFromSyncIteratorContinuation: 'https://262.ecma-international.org/11.0/#sec-asyncfromsynciteratorcontinuation', - AsyncFunctionStart: 'https://262.ecma-international.org/11.0/#sec-async-functions-abstract-operations-async-function-start', - AsyncGeneratorEnqueue: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorenqueue', - AsyncGeneratorReject: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorreject', - AsyncGeneratorResolve: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorresolve', - AsyncGeneratorResumeNext: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorresumenext', - AsyncGeneratorStart: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratorstart', - AsyncGeneratorYield: 'https://262.ecma-international.org/11.0/#sec-asyncgeneratoryield', - AsyncIteratorClose: 'https://262.ecma-international.org/11.0/#sec-asynciteratorclose', - AtomicLoad: 'https://262.ecma-international.org/11.0/#sec-atomicload', - AtomicReadModifyWrite: 'https://262.ecma-international.org/11.0/#sec-atomicreadmodifywrite', - Await: 'https://262.ecma-international.org/11.0/#await', - BackreferenceMatcher: 'https://262.ecma-international.org/11.0/#sec-backreference-matcher', - 'BigInt::add': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-add', - 'BigInt::bitwiseAND': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseAND', - 'BigInt::bitwiseNOT': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseNOT', - 'BigInt::bitwiseOR': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseOR', - 'BigInt::bitwiseXOR': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-bitwiseXOR', - 'BigInt::divide': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-divide', - 'BigInt::equal': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-equal', - 'BigInt::exponentiate': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-exponentiate', - 'BigInt::leftShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-leftShift', - 'BigInt::lessThan': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-lessThan', - 'BigInt::multiply': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-multiply', - 'BigInt::remainder': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-remainder', - 'BigInt::sameValue': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValue', - 'BigInt::sameValueZero': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-sameValueZero', - 'BigInt::signedRightShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-signedRightShift', - 'BigInt::subtract': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-subtract', - 'BigInt::toString': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-tostring', - 'BigInt::unaryMinus': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unaryMinus', - 'BigInt::unsignedRightShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-bigint-unsignedRightShift', - BigIntBitwiseOp: 'https://262.ecma-international.org/11.0/#sec-bigintbitwiseop', - BinaryAnd: 'https://262.ecma-international.org/11.0/#sec-binaryand', - BinaryOr: 'https://262.ecma-international.org/11.0/#sec-binaryor', - BinaryXor: 'https://262.ecma-international.org/11.0/#sec-binaryxor', - BlockDeclarationInstantiation: 'https://262.ecma-international.org/11.0/#sec-blockdeclarationinstantiation', - BoundFunctionCreate: 'https://262.ecma-international.org/11.0/#sec-boundfunctioncreate', - Call: 'https://262.ecma-international.org/11.0/#sec-call', - Canonicalize: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-canonicalize-ch', - CanonicalNumericIndexString: 'https://262.ecma-international.org/11.0/#sec-canonicalnumericindexstring', - CaseClauseIsSelected: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-caseclauseisselected', - CharacterRange: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-characterrange-abstract-operation', - CharacterRangeOrUnion: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-characterrangeorunion-abstract-operation', - CharacterSetMatcher: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-charactersetmatcher-abstract-operation', - CloneArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-clonearraybuffer', - CodePointAt: 'https://262.ecma-international.org/11.0/#sec-codepointat', - CompletePropertyDescriptor: 'https://262.ecma-international.org/11.0/#sec-completepropertydescriptor', - Completion: 'https://262.ecma-international.org/11.0/#sec-completion-record-specification-type', - ComposeWriteEventBytes: 'https://262.ecma-international.org/11.0/#sec-composewriteeventbytes', - Construct: 'https://262.ecma-international.org/11.0/#sec-construct', - CopyDataBlockBytes: 'https://262.ecma-international.org/11.0/#sec-copydatablockbytes', - CopyDataProperties: 'https://262.ecma-international.org/11.0/#sec-copydataproperties', - CreateArrayFromList: 'https://262.ecma-international.org/11.0/#sec-createarrayfromlist', - CreateArrayIterator: 'https://262.ecma-international.org/11.0/#sec-createarrayiterator', - CreateAsyncFromSyncIterator: 'https://262.ecma-international.org/11.0/#sec-createasyncfromsynciterator', - CreateBuiltinFunction: 'https://262.ecma-international.org/11.0/#sec-createbuiltinfunction', - CreateByteDataBlock: 'https://262.ecma-international.org/11.0/#sec-createbytedatablock', - CreateDataProperty: 'https://262.ecma-international.org/11.0/#sec-createdataproperty', - CreateDataPropertyOrThrow: 'https://262.ecma-international.org/11.0/#sec-createdatapropertyorthrow', - CreateDynamicFunction: 'https://262.ecma-international.org/11.0/#sec-createdynamicfunction', - CreateForInIterator: 'https://262.ecma-international.org/11.0/#sec-createforiniterator', - CreateHTML: 'https://262.ecma-international.org/11.0/#sec-createhtml', - CreateIntrinsics: 'https://262.ecma-international.org/11.0/#sec-createintrinsics', - CreateIterResultObject: 'https://262.ecma-international.org/11.0/#sec-createiterresultobject', - CreateListFromArrayLike: 'https://262.ecma-international.org/11.0/#sec-createlistfromarraylike', - CreateListIteratorRecord: 'https://262.ecma-international.org/11.0/#sec-createlistiteratorRecord', - CreateMapIterator: 'https://262.ecma-international.org/11.0/#sec-createmapiterator', - CreateMappedArgumentsObject: 'https://262.ecma-international.org/11.0/#sec-createmappedargumentsobject', - CreateMethodProperty: 'https://262.ecma-international.org/11.0/#sec-createmethodproperty', - CreatePerIterationEnvironment: 'https://262.ecma-international.org/11.0/#sec-createperiterationenvironment', - CreateRealm: 'https://262.ecma-international.org/11.0/#sec-createrealm', - CreateRegExpStringIterator: 'https://262.ecma-international.org/11.0/#sec-createregexpstringiterator', - CreateResolvingFunctions: 'https://262.ecma-international.org/11.0/#sec-createresolvingfunctions', - CreateSetIterator: 'https://262.ecma-international.org/11.0/#sec-createsetiterator', - CreateSharedByteDataBlock: 'https://262.ecma-international.org/11.0/#sec-createsharedbytedatablock', - CreateStringIterator: 'https://262.ecma-international.org/11.0/#sec-createstringiterator', - CreateUnmappedArgumentsObject: 'https://262.ecma-international.org/11.0/#sec-createunmappedargumentsobject', - DateFromTime: 'https://262.ecma-international.org/11.0/#sec-date-number', - DateString: 'https://262.ecma-international.org/11.0/#sec-datestring', - Day: 'https://262.ecma-international.org/11.0/#eqn-Day', - DayFromYear: 'https://262.ecma-international.org/11.0/#eqn-DaysFromYear', - DaysInYear: 'https://262.ecma-international.org/11.0/#eqn-DaysInYear', - DayWithinYear: 'https://262.ecma-international.org/11.0/#eqn-DayWithinYear', - Decode: 'https://262.ecma-international.org/11.0/#sec-decode', - DefinePropertyOrThrow: 'https://262.ecma-international.org/11.0/#sec-definepropertyorthrow', - DeletePropertyOrThrow: 'https://262.ecma-international.org/11.0/#sec-deletepropertyorthrow', - DetachArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-detacharraybuffer', - Encode: 'https://262.ecma-international.org/11.0/#sec-encode', - EnterCriticalSection: 'https://262.ecma-international.org/11.0/#sec-entercriticalsection', - EnumerableOwnPropertyNames: 'https://262.ecma-international.org/11.0/#sec-enumerableownpropertynames', - EnumerateObjectProperties: 'https://262.ecma-international.org/11.0/#sec-enumerate-object-properties', - EscapeRegExpPattern: 'https://262.ecma-international.org/11.0/#sec-escaperegexppattern', - EvalDeclarationInstantiation: 'https://262.ecma-international.org/11.0/#sec-evaldeclarationinstantiation', - EvaluateCall: 'https://262.ecma-international.org/11.0/#sec-evaluatecall', - EvaluateNew: 'https://262.ecma-international.org/11.0/#sec-evaluatenew', - EvaluatePropertyAccessWithExpressionKey: 'https://262.ecma-international.org/11.0/#sec-evaluate-property-access-with-expression-key', - EvaluatePropertyAccessWithIdentifierKey: 'https://262.ecma-international.org/11.0/#sec-evaluate-property-access-with-identifier-key', - EventSet: 'https://262.ecma-international.org/11.0/#sec-event-set', - ExecuteModule: 'https://262.ecma-international.org/11.0/#sec-source-text-module-record-execute-module', - FinishDynamicImport: 'https://262.ecma-international.org/11.0/#sec-finishdynamicimport', - FlattenIntoArray: 'https://262.ecma-international.org/11.0/#sec-flattenintoarray', - floor: 'https://262.ecma-international.org/11.0/#eqn-floor', - ForBodyEvaluation: 'https://262.ecma-international.org/11.0/#sec-forbodyevaluation', - 'ForIn/OfBodyEvaluation': 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-forin-div-ofbodyevaluation-lhs-stmt-iterator-lhskind-labelset', - 'ForIn/OfHeadEvaluation': 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-forinofheadevaluation', - FromPropertyDescriptor: 'https://262.ecma-international.org/11.0/#sec-frompropertydescriptor', - FulfillPromise: 'https://262.ecma-international.org/11.0/#sec-fulfillpromise', - FunctionDeclarationInstantiation: 'https://262.ecma-international.org/11.0/#sec-functiondeclarationinstantiation', - GeneratorResume: 'https://262.ecma-international.org/11.0/#sec-generatorresume', - GeneratorResumeAbrupt: 'https://262.ecma-international.org/11.0/#sec-generatorresumeabrupt', - GeneratorStart: 'https://262.ecma-international.org/11.0/#sec-generatorstart', - GeneratorValidate: 'https://262.ecma-international.org/11.0/#sec-generatorvalidate', - GeneratorYield: 'https://262.ecma-international.org/11.0/#sec-generatoryield', - Get: 'https://262.ecma-international.org/11.0/#sec-get-o-p', - GetActiveScriptOrModule: 'https://262.ecma-international.org/11.0/#sec-getactivescriptormodule', - GetBase: 'https://262.ecma-international.org/11.0/#sec-getbase', - GetFunctionRealm: 'https://262.ecma-international.org/11.0/#sec-getfunctionrealm', - GetGeneratorKind: 'https://262.ecma-international.org/11.0/#sec-getgeneratorkind', - GetGlobalObject: 'https://262.ecma-international.org/11.0/#sec-getglobalobject', - GetIdentifierReference: 'https://262.ecma-international.org/11.0/#sec-getidentifierreference', - GetIterator: 'https://262.ecma-international.org/11.0/#sec-getiterator', - GetMethod: 'https://262.ecma-international.org/11.0/#sec-getmethod', - GetModifySetValueInBuffer: 'https://262.ecma-international.org/11.0/#sec-getmodifysetvalueinbuffer', - GetModuleNamespace: 'https://262.ecma-international.org/11.0/#sec-getmodulenamespace', - GetNewTarget: 'https://262.ecma-international.org/11.0/#sec-getnewtarget', - GetOwnPropertyKeys: 'https://262.ecma-international.org/11.0/#sec-getownpropertykeys', - GetPrototypeFromConstructor: 'https://262.ecma-international.org/11.0/#sec-getprototypefromconstructor', - GetReferencedName: 'https://262.ecma-international.org/11.0/#sec-getreferencedname', - GetSubstitution: 'https://262.ecma-international.org/11.0/#sec-getsubstitution', - GetSuperConstructor: 'https://262.ecma-international.org/11.0/#sec-getsuperconstructor', - GetTemplateObject: 'https://262.ecma-international.org/11.0/#sec-gettemplateobject', - GetThisEnvironment: 'https://262.ecma-international.org/11.0/#sec-getthisenvironment', - GetThisValue: 'https://262.ecma-international.org/11.0/#sec-getthisvalue', - GetV: 'https://262.ecma-international.org/11.0/#sec-getv', - GetValue: 'https://262.ecma-international.org/11.0/#sec-getvalue', - GetValueFromBuffer: 'https://262.ecma-international.org/11.0/#sec-getvaluefrombuffer', - GetViewValue: 'https://262.ecma-international.org/11.0/#sec-getviewvalue', - GetWaiterList: 'https://262.ecma-international.org/11.0/#sec-getwaiterlist', - GlobalDeclarationInstantiation: 'https://262.ecma-international.org/11.0/#sec-globaldeclarationinstantiation', - 'happens-before': 'https://262.ecma-international.org/11.0/#sec-happens-before', - HasOwnProperty: 'https://262.ecma-international.org/11.0/#sec-hasownproperty', - HasPrimitiveBase: 'https://262.ecma-international.org/11.0/#sec-hasprimitivebase', - HasProperty: 'https://262.ecma-international.org/11.0/#sec-hasproperty', - 'host-synchronizes-with': 'https://262.ecma-international.org/11.0/#sec-host-synchronizes-with', - HostEnqueuePromiseJob: 'https://262.ecma-international.org/11.0/#sec-hostenqueuepromisejob', - HostEnsureCanCompileStrings: 'https://262.ecma-international.org/11.0/#sec-hostensurecancompilestrings', - HostEventSet: 'https://262.ecma-international.org/11.0/#sec-hosteventset', - HostFinalizeImportMeta: 'https://262.ecma-international.org/11.0/#sec-hostfinalizeimportmeta', - HostGetImportMetaProperties: 'https://262.ecma-international.org/11.0/#sec-hostgetimportmetaproperties', - HostImportModuleDynamically: 'https://262.ecma-international.org/11.0/#sec-hostimportmoduledynamically', - HostPromiseRejectionTracker: 'https://262.ecma-international.org/11.0/#sec-host-promise-rejection-tracker', - HostResolveImportedModule: 'https://262.ecma-international.org/11.0/#sec-hostresolveimportedmodule', - HourFromTime: 'https://262.ecma-international.org/11.0/#eqn-HourFromTime', - IfAbruptRejectPromise: 'https://262.ecma-international.org/11.0/#sec-ifabruptrejectpromise', - ImportedLocalNames: 'https://262.ecma-international.org/11.0/#sec-importedlocalnames', - InitializeBoundName: 'https://262.ecma-international.org/11.0/#sec-initializeboundname', - InitializeEnvironment: 'https://262.ecma-international.org/11.0/#sec-source-text-module-record-initialize-environment', - InitializeHostDefinedRealm: 'https://262.ecma-international.org/11.0/#sec-initializehostdefinedrealm', - InitializeReferencedBinding: 'https://262.ecma-international.org/11.0/#sec-initializereferencedbinding', - InLeapYear: 'https://262.ecma-international.org/11.0/#eqn-InLeapYear', - InnerModuleEvaluation: 'https://262.ecma-international.org/11.0/#sec-innermoduleevaluation', - InnerModuleLinking: 'https://262.ecma-international.org/11.0/#sec-InnerModuleLinking', - InstanceofOperator: 'https://262.ecma-international.org/11.0/#sec-instanceofoperator', - IntegerIndexedElementGet: 'https://262.ecma-international.org/11.0/#sec-integerindexedelementget', - IntegerIndexedElementSet: 'https://262.ecma-international.org/11.0/#sec-integerindexedelementset', - IntegerIndexedObjectCreate: 'https://262.ecma-international.org/11.0/#sec-integerindexedobjectcreate', - InternalizeJSONProperty: 'https://262.ecma-international.org/11.0/#sec-internalizejsonproperty', - Invoke: 'https://262.ecma-international.org/11.0/#sec-invoke', - IsAccessorDescriptor: 'https://262.ecma-international.org/11.0/#sec-isaccessordescriptor', - IsAnonymousFunctionDefinition: 'https://262.ecma-international.org/11.0/#sec-isanonymousfunctiondefinition', - IsArray: 'https://262.ecma-international.org/11.0/#sec-isarray', - IsBigIntElementType: 'https://262.ecma-international.org/11.0/#sec-isbigintelementtype', - IsCallable: 'https://262.ecma-international.org/11.0/#sec-iscallable', - IsCompatiblePropertyDescriptor: 'https://262.ecma-international.org/11.0/#sec-iscompatiblepropertydescriptor', - IsConcatSpreadable: 'https://262.ecma-international.org/11.0/#sec-isconcatspreadable', - IsConstructor: 'https://262.ecma-international.org/11.0/#sec-isconstructor', - IsDataDescriptor: 'https://262.ecma-international.org/11.0/#sec-isdatadescriptor', - IsDetachedBuffer: 'https://262.ecma-international.org/11.0/#sec-isdetachedbuffer', - IsExtensible: 'https://262.ecma-international.org/11.0/#sec-isextensible-o', - IsGenericDescriptor: 'https://262.ecma-international.org/11.0/#sec-isgenericdescriptor', - IsInTailPosition: 'https://262.ecma-international.org/11.0/#sec-isintailposition', - IsInteger: 'https://262.ecma-international.org/11.0/#sec-isinteger', - IsLabelledFunction: 'https://262.ecma-international.org/11.0/#sec-islabelledfunction', - IsNonNegativeInteger: 'https://262.ecma-international.org/11.0/#sec-isnonnegativeinteger', - IsNoTearConfiguration: 'https://262.ecma-international.org/11.0/#sec-isnotearconfiguration', - IsPromise: 'https://262.ecma-international.org/11.0/#sec-ispromise', - IsPropertyKey: 'https://262.ecma-international.org/11.0/#sec-ispropertykey', - IsPropertyReference: 'https://262.ecma-international.org/11.0/#sec-ispropertyreference', - IsRegExp: 'https://262.ecma-international.org/11.0/#sec-isregexp', - IsSharedArrayBuffer: 'https://262.ecma-international.org/11.0/#sec-issharedarraybuffer', - IsStrictReference: 'https://262.ecma-international.org/11.0/#sec-isstrictreference', - IsStringPrefix: 'https://262.ecma-international.org/11.0/#sec-isstringprefix', - IsSuperReference: 'https://262.ecma-international.org/11.0/#sec-issuperreference', - IsUnclampedIntegerElementType: 'https://262.ecma-international.org/11.0/#sec-isunclampedintegerelementtype', - IsUnresolvableReference: 'https://262.ecma-international.org/11.0/#sec-isunresolvablereference', - IsUnsignedElementType: 'https://262.ecma-international.org/11.0/#sec-isunsignedelementtype', - IsValidIntegerIndex: 'https://262.ecma-international.org/11.0/#sec-isvalidintegerindex', - IsValidRegularExpressionLiteral: 'https://262.ecma-international.org/11.0/#sec-isvalidregularexpressionliteral', - IsWordChar: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-iswordchar-abstract-operation', - IterableToList: 'https://262.ecma-international.org/11.0/#sec-iterabletolist', - IteratorClose: 'https://262.ecma-international.org/11.0/#sec-iteratorclose', - IteratorComplete: 'https://262.ecma-international.org/11.0/#sec-iteratorcomplete', - IteratorNext: 'https://262.ecma-international.org/11.0/#sec-iteratornext', - IteratorStep: 'https://262.ecma-international.org/11.0/#sec-iteratorstep', - IteratorValue: 'https://262.ecma-international.org/11.0/#sec-iteratorvalue', - LeaveCriticalSection: 'https://262.ecma-international.org/11.0/#sec-leavecriticalsection', - LengthOfArrayLike: 'https://262.ecma-international.org/11.0/#sec-lengthofarraylike', - LocalTime: 'https://262.ecma-international.org/11.0/#sec-localtime', - LocalTZA: 'https://262.ecma-international.org/11.0/#sec-local-time-zone-adjustment', - LoopContinues: 'https://262.ecma-international.org/11.0/#sec-loopcontinues', - MakeArgGetter: 'https://262.ecma-international.org/11.0/#sec-makearggetter', - MakeArgSetter: 'https://262.ecma-international.org/11.0/#sec-makeargsetter', - MakeBasicObject: 'https://262.ecma-international.org/11.0/#sec-makebasicobject', - MakeClassConstructor: 'https://262.ecma-international.org/11.0/#sec-makeclassconstructor', - MakeConstructor: 'https://262.ecma-international.org/11.0/#sec-makeconstructor', - MakeDate: 'https://262.ecma-international.org/11.0/#sec-makedate', - MakeDay: 'https://262.ecma-international.org/11.0/#sec-makeday', - MakeMethod: 'https://262.ecma-international.org/11.0/#sec-makemethod', - MakeSuperPropertyReference: 'https://262.ecma-international.org/11.0/#sec-makesuperpropertyreference', - MakeTime: 'https://262.ecma-international.org/11.0/#sec-maketime', - max: 'https://262.ecma-international.org/11.0/#eqn-max', - 'memory-order': 'https://262.ecma-international.org/11.0/#sec-memory-order', - min: 'https://262.ecma-international.org/11.0/#eqn-min', - MinFromTime: 'https://262.ecma-international.org/11.0/#eqn-MinFromTime', - ModuleNamespaceCreate: 'https://262.ecma-international.org/11.0/#sec-modulenamespacecreate', - modulo: 'https://262.ecma-international.org/11.0/#eqn-modulo', - MonthFromTime: 'https://262.ecma-international.org/11.0/#eqn-MonthFromTime', - msFromTime: 'https://262.ecma-international.org/11.0/#eqn-msFromTime', - NewDeclarativeEnvironment: 'https://262.ecma-international.org/11.0/#sec-newdeclarativeenvironment', - NewFunctionEnvironment: 'https://262.ecma-international.org/11.0/#sec-newfunctionenvironment', - NewGlobalEnvironment: 'https://262.ecma-international.org/11.0/#sec-newglobalenvironment', - NewModuleEnvironment: 'https://262.ecma-international.org/11.0/#sec-newmoduleenvironment', - NewObjectEnvironment: 'https://262.ecma-international.org/11.0/#sec-newobjectenvironment', - NewPromiseCapability: 'https://262.ecma-international.org/11.0/#sec-newpromisecapability', - NewPromiseReactionJob: 'https://262.ecma-international.org/11.0/#sec-newpromisereactionjob', - NewPromiseResolveThenableJob: 'https://262.ecma-international.org/11.0/#sec-newpromiseresolvethenablejob', - NormalCompletion: 'https://262.ecma-international.org/11.0/#sec-normalcompletion', - NotifyWaiter: 'https://262.ecma-international.org/11.0/#sec-notifywaiter', - 'Number::add': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-add', - 'Number::bitwiseAND': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseAND', - 'Number::bitwiseNOT': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseNOT', - 'Number::bitwiseOR': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseOR', - 'Number::bitwiseXOR': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-bitwiseXOR', - 'Number::divide': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-divide', - 'Number::equal': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-equal', - 'Number::exponentiate': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-exponentiate', - 'Number::leftShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-leftShift', - 'Number::lessThan': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-lessThan', - 'Number::multiply': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-multiply', - 'Number::remainder': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-remainder', - 'Number::sameValue': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValue', - 'Number::sameValueZero': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-sameValueZero', - 'Number::signedRightShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-signedRightShift', - 'Number::subtract': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-subtract', - 'Number::toString': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-tostring', - 'Number::unaryMinus': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-unaryMinus', - 'Number::unsignedRightShift': 'https://262.ecma-international.org/11.0/#sec-numeric-types-number-unsignedRightShift', - NumberBitwiseOp: 'https://262.ecma-international.org/11.0/#sec-numberbitwiseop', - NumberToBigInt: 'https://262.ecma-international.org/11.0/#sec-numbertobigint', - NumericToRawBytes: 'https://262.ecma-international.org/11.0/#sec-numerictorawbytes', - ObjectDefineProperties: 'https://262.ecma-international.org/11.0/#sec-objectdefineproperties', - OrdinaryCallBindThis: 'https://262.ecma-international.org/11.0/#sec-ordinarycallbindthis', - OrdinaryCallEvaluateBody: 'https://262.ecma-international.org/11.0/#sec-ordinarycallevaluatebody', - OrdinaryCreateFromConstructor: 'https://262.ecma-international.org/11.0/#sec-ordinarycreatefromconstructor', - OrdinaryDefineOwnProperty: 'https://262.ecma-international.org/11.0/#sec-ordinarydefineownproperty', - OrdinaryDelete: 'https://262.ecma-international.org/11.0/#sec-ordinarydelete', - OrdinaryFunctionCreate: 'https://262.ecma-international.org/11.0/#sec-ordinaryfunctioncreate', - OrdinaryGet: 'https://262.ecma-international.org/11.0/#sec-ordinaryget', - OrdinaryGetOwnProperty: 'https://262.ecma-international.org/11.0/#sec-ordinarygetownproperty', - OrdinaryGetPrototypeOf: 'https://262.ecma-international.org/11.0/#sec-ordinarygetprototypeof', - OrdinaryHasInstance: 'https://262.ecma-international.org/11.0/#sec-ordinaryhasinstance', - OrdinaryHasProperty: 'https://262.ecma-international.org/11.0/#sec-ordinaryhasproperty', - OrdinaryIsExtensible: 'https://262.ecma-international.org/11.0/#sec-ordinaryisextensible', - OrdinaryObjectCreate: 'https://262.ecma-international.org/11.0/#sec-ordinaryobjectcreate', - OrdinaryOwnPropertyKeys: 'https://262.ecma-international.org/11.0/#sec-ordinaryownpropertykeys', - OrdinaryPreventExtensions: 'https://262.ecma-international.org/11.0/#sec-ordinarypreventextensions', - OrdinarySet: 'https://262.ecma-international.org/11.0/#sec-ordinaryset', - OrdinarySetPrototypeOf: 'https://262.ecma-international.org/11.0/#sec-ordinarysetprototypeof', - OrdinarySetWithOwnDescriptor: 'https://262.ecma-international.org/11.0/#sec-ordinarysetwithowndescriptor', - OrdinaryToPrimitive: 'https://262.ecma-international.org/11.0/#sec-ordinarytoprimitive', - ParseModule: 'https://262.ecma-international.org/11.0/#sec-parsemodule', - ParseScript: 'https://262.ecma-international.org/11.0/#sec-parse-script', - PerformEval: 'https://262.ecma-international.org/11.0/#sec-performeval', - PerformPromiseAll: 'https://262.ecma-international.org/11.0/#sec-performpromiseall', - PerformPromiseAllSettled: 'https://262.ecma-international.org/11.0/#sec-performpromiseallsettled', - PerformPromiseRace: 'https://262.ecma-international.org/11.0/#sec-performpromiserace', - PerformPromiseThen: 'https://262.ecma-international.org/11.0/#sec-performpromisethen', - PrepareForOrdinaryCall: 'https://262.ecma-international.org/11.0/#sec-prepareforordinarycall', - PrepareForTailCall: 'https://262.ecma-international.org/11.0/#sec-preparefortailcall', - PromiseResolve: 'https://262.ecma-international.org/11.0/#sec-promise-resolve', - ProxyCreate: 'https://262.ecma-international.org/11.0/#sec-proxycreate', - PutValue: 'https://262.ecma-international.org/11.0/#sec-putvalue', - QuoteJSONString: 'https://262.ecma-international.org/11.0/#sec-quotejsonstring', - RawBytesToNumeric: 'https://262.ecma-international.org/11.0/#sec-rawbytestonumeric', - 'reads-bytes-from': 'https://262.ecma-international.org/11.0/#sec-reads-bytes-from', - 'reads-from': 'https://262.ecma-international.org/11.0/#sec-reads-from', - RegExpAlloc: 'https://262.ecma-international.org/11.0/#sec-regexpalloc', - RegExpBuiltinExec: 'https://262.ecma-international.org/11.0/#sec-regexpbuiltinexec', - RegExpCreate: 'https://262.ecma-international.org/11.0/#sec-regexpcreate', - RegExpExec: 'https://262.ecma-international.org/11.0/#sec-regexpexec', - RegExpInitialize: 'https://262.ecma-international.org/11.0/#sec-regexpinitialize', - RejectPromise: 'https://262.ecma-international.org/11.0/#sec-rejectpromise', - RemoveWaiter: 'https://262.ecma-international.org/11.0/#sec-removewaiter', - RemoveWaiters: 'https://262.ecma-international.org/11.0/#sec-removewaiters', - RepeatMatcher: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-repeatmatcher-abstract-operation', - RequireInternalSlot: 'https://262.ecma-international.org/11.0/#sec-requireinternalslot', - RequireObjectCoercible: 'https://262.ecma-international.org/11.0/#sec-requireobjectcoercible', - ResolveBinding: 'https://262.ecma-international.org/11.0/#sec-resolvebinding', - ResolveThisBinding: 'https://262.ecma-international.org/11.0/#sec-resolvethisbinding', - ReturnIfAbrupt: 'https://262.ecma-international.org/11.0/#sec-returnifabrupt', - SameValue: 'https://262.ecma-international.org/11.0/#sec-samevalue', - SameValueNonNumeric: 'https://262.ecma-international.org/11.0/#sec-samevaluenonnumeric', - SameValueZero: 'https://262.ecma-international.org/11.0/#sec-samevaluezero', - ScriptEvaluation: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-scriptevaluation', - SecFromTime: 'https://262.ecma-international.org/11.0/#eqn-SecFromTime', - SerializeJSONArray: 'https://262.ecma-international.org/11.0/#sec-serializejsonarray', - SerializeJSONObject: 'https://262.ecma-international.org/11.0/#sec-serializejsonobject', - SerializeJSONProperty: 'https://262.ecma-international.org/11.0/#sec-serializejsonproperty', - Set: 'https://262.ecma-international.org/11.0/#sec-set-o-p-v-throw', - SetDefaultGlobalBindings: 'https://262.ecma-international.org/11.0/#sec-setdefaultglobalbindings', - SetFunctionLength: 'https://262.ecma-international.org/11.0/#sec-setfunctionlength', - SetFunctionName: 'https://262.ecma-international.org/11.0/#sec-setfunctionname', - SetImmutablePrototype: 'https://262.ecma-international.org/11.0/#sec-set-immutable-prototype', - SetIntegrityLevel: 'https://262.ecma-international.org/11.0/#sec-setintegritylevel', - SetRealmGlobalObject: 'https://262.ecma-international.org/11.0/#sec-setrealmglobalobject', - SetValueInBuffer: 'https://262.ecma-international.org/11.0/#sec-setvalueinbuffer', - SetViewValue: 'https://262.ecma-international.org/11.0/#sec-setviewvalue', - SharedDataBlockEventSet: 'https://262.ecma-international.org/11.0/#sec-sharedatablockeventset', - SortCompare: 'https://262.ecma-international.org/11.0/#sec-sortcompare', - SpeciesConstructor: 'https://262.ecma-international.org/11.0/#sec-speciesconstructor', - SplitMatch: 'https://262.ecma-international.org/11.0/#sec-splitmatch', - 'Strict Equality Comparison': 'https://262.ecma-international.org/11.0/#sec-strict-equality-comparison', - StringCreate: 'https://262.ecma-international.org/11.0/#sec-stringcreate', - StringGetOwnProperty: 'https://262.ecma-international.org/11.0/#sec-stringgetownproperty', - StringPad: 'https://262.ecma-international.org/11.0/#sec-stringpad', - StringToBigInt: 'https://262.ecma-international.org/11.0/#sec-stringtobigint', - Suspend: 'https://262.ecma-international.org/11.0/#sec-suspend', - SymbolDescriptiveString: 'https://262.ecma-international.org/11.0/#sec-symboldescriptivestring', - 'synchronizes-with': 'https://262.ecma-international.org/11.0/#sec-synchronizes-with', - TestIntegrityLevel: 'https://262.ecma-international.org/11.0/#sec-testintegritylevel', - thisBigIntValue: 'https://262.ecma-international.org/11.0/#sec-thisbigintvalue', - thisBooleanValue: 'https://262.ecma-international.org/11.0/#sec-thisbooleanvalue', - thisNumberValue: 'https://262.ecma-international.org/11.0/#sec-thisnumbervalue', - thisStringValue: 'https://262.ecma-international.org/11.0/#sec-thisstringvalue', - thisSymbolValue: 'https://262.ecma-international.org/11.0/#sec-thissymbolvalue', - thisTimeValue: 'https://262.ecma-international.org/11.0/#sec-thistimevalue', - ThrowCompletion: 'https://262.ecma-international.org/11.0/#sec-throwcompletion', - TimeClip: 'https://262.ecma-international.org/11.0/#sec-timeclip', - TimeFromYear: 'https://262.ecma-international.org/11.0/#eqn-TimeFromYear', - TimeString: 'https://262.ecma-international.org/11.0/#sec-timestring', - TimeWithinDay: 'https://262.ecma-international.org/11.0/#eqn-TimeWithinDay', - TimeZoneString: 'https://262.ecma-international.org/11.0/#sec-timezoneestring', - ToBigInt: 'https://262.ecma-international.org/11.0/#sec-tobigint', - ToBigInt64: 'https://262.ecma-international.org/11.0/#sec-tobigint64', - ToBigUint64: 'https://262.ecma-international.org/11.0/#sec-tobiguint64', - ToBoolean: 'https://262.ecma-international.org/11.0/#sec-toboolean', - ToDateString: 'https://262.ecma-international.org/11.0/#sec-todatestring', - ToIndex: 'https://262.ecma-international.org/11.0/#sec-toindex', - ToInt16: 'https://262.ecma-international.org/11.0/#sec-toint16', - ToInt32: 'https://262.ecma-international.org/11.0/#sec-toint32', - ToInt8: 'https://262.ecma-international.org/11.0/#sec-toint8', - ToInteger: 'https://262.ecma-international.org/11.0/#sec-tointeger', - ToLength: 'https://262.ecma-international.org/11.0/#sec-tolength', - ToNumber: 'https://262.ecma-international.org/11.0/#sec-tonumber', - ToNumeric: 'https://262.ecma-international.org/11.0/#sec-tonumeric', - ToObject: 'https://262.ecma-international.org/11.0/#sec-toobject', - ToPrimitive: 'https://262.ecma-international.org/11.0/#sec-toprimitive', - ToPropertyDescriptor: 'https://262.ecma-international.org/11.0/#sec-topropertydescriptor', - ToPropertyKey: 'https://262.ecma-international.org/11.0/#sec-topropertykey', - ToString: 'https://262.ecma-international.org/11.0/#sec-tostring', - ToUint16: 'https://262.ecma-international.org/11.0/#sec-touint16', - ToUint32: 'https://262.ecma-international.org/11.0/#sec-touint32', - ToUint8: 'https://262.ecma-international.org/11.0/#sec-touint8', - ToUint8Clamp: 'https://262.ecma-international.org/11.0/#sec-touint8clamp', - TriggerPromiseReactions: 'https://262.ecma-international.org/11.0/#sec-triggerpromisereactions', - TrimString: 'https://262.ecma-international.org/11.0/#sec-trimstring', - Type: 'https://262.ecma-international.org/11.0/#sec-ecmascript-data-types-and-values', - TypedArrayCreate: 'https://262.ecma-international.org/11.0/#typedarray-create', - TypedArraySpeciesCreate: 'https://262.ecma-international.org/11.0/#typedarray-species-create', - UnicodeEscape: 'https://262.ecma-international.org/11.0/#sec-unicodeescape', - UnicodeMatchProperty: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-unicodematchproperty-p', - UnicodeMatchPropertyValue: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-unicodematchpropertyvalue-p-v', - UpdateEmpty: 'https://262.ecma-international.org/11.0/#sec-updateempty', - UTC: 'https://262.ecma-international.org/11.0/#sec-utc-t', - UTF16DecodeString: 'https://262.ecma-international.org/11.0/#sec-utf16decodestring', - UTF16DecodeSurrogatePair: 'https://262.ecma-international.org/11.0/#sec-utf16decodesurrogatepair', - UTF16Encode: 'https://262.ecma-international.org/11.0/#sec-utf16encode', - UTF16Encoding: 'https://262.ecma-international.org/11.0/#sec-utf16encoding', - ValidateAndApplyPropertyDescriptor: 'https://262.ecma-international.org/11.0/#sec-validateandapplypropertydescriptor', - ValidateAtomicAccess: 'https://262.ecma-international.org/11.0/#sec-validateatomicaccess', - ValidateSharedIntegerTypedArray: 'https://262.ecma-international.org/11.0/#sec-validatesharedintegertypedarray', - ValidateTypedArray: 'https://262.ecma-international.org/11.0/#sec-validatetypedarray', - ValueOfReadEvent: 'https://262.ecma-international.org/11.0/#sec-valueofreadevent', - WeekDay: 'https://262.ecma-international.org/11.0/#sec-week-day', - WordCharacters: 'https://262.ecma-international.org/11.0/#sec-runtime-semantics-wordcharacters-abstract-operation', - YearFromTime: 'https://262.ecma-international.org/11.0/#eqn-YearFromTime' -}; diff --git a/node_modules/es-abstract/package.json b/node_modules/es-abstract/package.json deleted file mode 100644 index a20aefe..0000000 --- a/node_modules/es-abstract/package.json +++ /dev/null @@ -1,135 +0,0 @@ -{ - "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" - ] - } -} diff --git a/node_modules/es-abstract/test/GetIntrinsic.js b/node_modules/es-abstract/test/GetIntrinsic.js deleted file mode 100644 index 2f21e76..0000000 --- a/node_modules/es-abstract/test/GetIntrinsic.js +++ /dev/null @@ -1,207 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('get-intrinsic'); - -var test = require('tape'); -var forEach = require('foreach'); -var debug = require('object-inspect'); -var generatorFns = require('make-generator-function')(); -var asyncFns = require('make-async-function').list(); -var asyncGenFns = require('make-async-generator-function')(); - -var callBound = require('call-bind/callBound'); -var v = require('es-value-fixtures'); -var $gOPD = require('../helpers/getOwnPropertyDescriptor'); -var defineProperty = require('./helpers/defineProperty'); - -var $isProto = callBound('%Object.prototype.isPrototypeOf%'); - -test('export', function (t) { - t.equal(typeof GetIntrinsic, 'function', 'it is a function'); - t.equal(GetIntrinsic.length, 2, 'function has length of 2'); - - t.end(); -}); - -test('throws', function (t) { - t['throws']( - function () { GetIntrinsic('not an intrinsic'); }, - SyntaxError, - 'nonexistent intrinsic throws a syntax error' - ); - - t['throws']( - function () { GetIntrinsic(''); }, - TypeError, - 'empty string intrinsic throws a type error' - ); - - t['throws']( - function () { GetIntrinsic('.'); }, - SyntaxError, - '"just a dot" intrinsic throws a syntax error' - ); - - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { GetIntrinsic(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { GetIntrinsic('%', nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach([ - 'toString', - 'propertyIsEnumerable', - 'hasOwnProperty' - ], function (objectProtoMember) { - t['throws']( - function () { GetIntrinsic(objectProtoMember); }, - SyntaxError, - debug(objectProtoMember) + ' is not an intrinsic' - ); - }); - - t.end(); -}); - -test('base intrinsics', function (t) { - t.equal(GetIntrinsic('%Object%'), Object, '%Object% yields Object'); - t.equal(GetIntrinsic('Object'), Object, 'Object yields Object'); - t.equal(GetIntrinsic('%Array%'), Array, '%Array% yields Array'); - t.equal(GetIntrinsic('Array'), Array, 'Array yields Array'); - - t.end(); -}); - -test('dotted paths', function (t) { - t.equal(GetIntrinsic('%Object.prototype.toString%'), Object.prototype.toString, '%Object.prototype.toString% yields Object.prototype.toString'); - t.equal(GetIntrinsic('Object.prototype.toString'), Object.prototype.toString, 'Object.prototype.toString yields Object.prototype.toString'); - t.equal(GetIntrinsic('%Array.prototype.push%'), Array.prototype.push, '%Array.prototype.push% yields Array.prototype.push'); - t.equal(GetIntrinsic('Array.prototype.push'), Array.prototype.push, 'Array.prototype.push yields Array.prototype.push'); - - test('underscore paths are aliases for dotted paths', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { - var original = GetIntrinsic('%ObjProto_toString%'); - - forEach([ - '%Object.prototype.toString%', - 'Object.prototype.toString', - '%ObjectPrototype.toString%', - 'ObjectPrototype.toString', - '%ObjProto_toString%', - 'ObjProto_toString' - ], function (name) { - defineProperty(Object.prototype, 'toString', { - value: function toString() { - return original.apply(this, arguments); - } - }); - st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString'); - }); - - defineProperty(Object.prototype, 'toString', { value: original }); - st.end(); - }); - - test('dotted paths cache', { skip: !Object.isFrozen || Object.isFrozen(Object.prototype) }, function (st) { - var original = GetIntrinsic('%Object.prototype.propertyIsEnumerable%'); - - forEach([ - '%Object.prototype.propertyIsEnumerable%', - 'Object.prototype.propertyIsEnumerable', - '%ObjectPrototype.propertyIsEnumerable%', - 'ObjectPrototype.propertyIsEnumerable' - ], function (name) { - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = function propertyIsEnumerable() { - return original.apply(this, arguments); - }; - st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable'); - }); - - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = original; - st.end(); - }); - - test('dotted path reports correct error', function (st) { - st['throws'](function () { - GetIntrinsic('%NonExistentIntrinsic.prototype.property%'); - }, /%NonExistentIntrinsic%/, 'The base intrinsic of %NonExistentIntrinsic.prototype.property% is %NonExistentIntrinsic%'); - - st['throws'](function () { - GetIntrinsic('%NonExistentIntrinsicPrototype.property%'); - }, /%NonExistentIntrinsicPrototype%/, 'The base intrinsic of %NonExistentIntrinsicPrototype.property% is %NonExistentIntrinsicPrototype%'); - - st.end(); - }); - - t.end(); -}); - -test('accessors', { skip: !$gOPD || typeof Map !== 'function' }, function (t) { - var actual = $gOPD(Map.prototype, 'size'); - t.ok(actual, 'Map.prototype.size has a descriptor'); - t.equal(typeof actual.get, 'function', 'Map.prototype.size has a getter function'); - t.equal(GetIntrinsic('%Map.prototype.size%'), actual.get, '%Map.prototype.size% yields the getter for it'); - t.equal(GetIntrinsic('Map.prototype.size'), actual.get, 'Map.prototype.size yields the getter for it'); - - t.end(); -}); - -test('generator functions', { skip: !generatorFns.length }, function (t) { - var $GeneratorFunction = GetIntrinsic('%GeneratorFunction%'); - var $GeneratorFunctionPrototype = GetIntrinsic('%Generator%'); - var $GeneratorPrototype = GetIntrinsic('%GeneratorPrototype%'); - - forEach(generatorFns, function (genFn) { - var fnName = genFn.name; - fnName = fnName ? "'" + fnName + "'" : 'genFn'; - - t.ok(genFn instanceof $GeneratorFunction, fnName + ' instanceof %GeneratorFunction%'); - t.ok($isProto($GeneratorFunctionPrototype, genFn), '%Generator% is prototype of ' + fnName); - t.ok($isProto($GeneratorPrototype, genFn.prototype), '%GeneratorPrototype% is prototype of ' + fnName + '.prototype'); - }); - - t.end(); -}); - -test('async functions', { skip: !asyncFns.length }, function (t) { - var $AsyncFunction = GetIntrinsic('%AsyncFunction%'); - var $AsyncFunctionPrototype = GetIntrinsic('%AsyncFunctionPrototype%'); - - forEach(asyncFns, function (asyncFn) { - var fnName = asyncFn.name; - fnName = fnName ? "'" + fnName + "'" : 'asyncFn'; - - t.ok(asyncFn instanceof $AsyncFunction, fnName + ' instanceof %AsyncFunction%'); - t.ok($isProto($AsyncFunctionPrototype, asyncFn), '%AsyncFunctionPrototype% is prototype of ' + fnName); - }); - - t.end(); -}); - -test('async generator functions', { skip: !asyncGenFns.length }, function (t) { - var $AsyncGeneratorFunction = GetIntrinsic('%AsyncGeneratorFunction%'); - var $AsyncGeneratorFunctionPrototype = GetIntrinsic('%AsyncGenerator%'); - var $AsyncGeneratorPrototype = GetIntrinsic('%AsyncGeneratorPrototype%'); - - forEach(asyncGenFns, function (asyncGenFn) { - var fnName = asyncGenFn.name; - fnName = fnName ? "'" + fnName + "'" : 'asyncGenFn'; - - t.ok(asyncGenFn instanceof $AsyncGeneratorFunction, fnName + ' instanceof %AsyncGeneratorFunction%'); - t.ok($isProto($AsyncGeneratorFunctionPrototype, asyncGenFn), '%AsyncGenerator% is prototype of ' + fnName); - t.ok($isProto($AsyncGeneratorPrototype, asyncGenFn.prototype), '%AsyncGeneratorPrototype% is prototype of ' + fnName + '.prototype'); - }); - - t.end(); -}); diff --git a/node_modules/es-abstract/test/diffOps.js b/node_modules/es-abstract/test/diffOps.js deleted file mode 100644 index 06641b1..0000000 --- a/node_modules/es-abstract/test/diffOps.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; - -var keys = require('object-keys'); -var forEach = require('foreach'); -var indexOf = require('array.prototype.indexof'); -var has = require('has'); - -module.exports = function diffOperations(actual, expected, expectedMissing) { - var actualKeys = keys(actual); - var expectedKeys = keys(expected); - - var extra = []; - var missing = []; - var extraMissing = []; - - forEach(actualKeys, function (op) { - if (!(op in expected)) { - if (actual[op] && typeof actual[op] === 'object') { - forEach(keys(actual[op]), function (nestedOp) { - var fullNestedOp = op + '::' + nestedOp; - if (!(fullNestedOp in expected)) { - extra.push(fullNestedOp); - } else if (indexOf(expectedMissing, fullNestedOp) !== -1) { - extra.push(fullNestedOp); - } - }); - } else { - extra.push(op); - } - } else if (indexOf(expectedMissing, op) !== -1) { - extra.push(op); - } - }); - var checkMissing = function checkMissing(op, actualValue) { - if (typeof actualValue !== 'function' && indexOf(expectedMissing, op) === -1) { - missing.push(op); - } - }; - forEach(expectedKeys, function (op) { - if (op.indexOf('::') > -1) { - var parts = op.split('::'); - var value = actual[parts[0]]; - if (value && typeof value === 'object' && typeof value[parts[1]] === 'function') { - checkMissing(op, value[parts[1]]); - } - } else { - checkMissing(op, actual[op]); - } - }); - - forEach(expectedMissing, function (expectedOp) { - if (!has(expected, expectedOp)) { - extraMissing.push(expectedOp); - } - }); - - return { missing: missing, extra: extra, extraMissing: extraMissing }; -}; diff --git a/node_modules/es-abstract/test/es2015.js b/node_modules/es-abstract/test/es2015.js deleted file mode 100644 index 33a8ead..0000000 --- a/node_modules/es-abstract/test/es2015.js +++ /dev/null @@ -1,144 +0,0 @@ -'use strict'; - -var ES = require('../').ES2015; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2015'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AllocateArrayBuffer', - 'AllocateTypedArray', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateSetIterator', - 'CreateUnmappedArgumentsObject', - 'DaylightSavingTA', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetBase', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'HasPrimitiveBase', - 'HostResolveImportedModule', - 'ImportedLocalNames', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'min', - 'ModuleNamespaceCreate', - 'msPerDay', // constant - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'ParseModule', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'sign', - 'SortCompare', // mystery access to `comparefn` arg - 'TriggerPromiseReactions', - 'TypedArrayFrom', - 'UpdateEmpty', // completion records - 'UTC' // depends on LocalTZA, DaylightSavingTA -]; - -require('./tests').es2015(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2015); diff --git a/node_modules/es-abstract/test/es2016.js b/node_modules/es-abstract/test/es2016.js deleted file mode 100644 index c813ac5..0000000 --- a/node_modules/es-abstract/test/es2016.js +++ /dev/null @@ -1,165 +0,0 @@ -'use strict'; - -var ES = require('../').ES2016; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2016'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AllocateArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'DaylightSavingTA', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GlobalDeclarationInstantiation', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsWordChar', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NextJob', - 'NormalCompletion', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SortCompare', // mystery access to `comparefn` arg - 'TopLevelModuleEvaluationJob', - 'ToString Applied to the Number Type', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UpdateEmpty', // completion records - 'UTC', // depends on LocalTZA, DaylightSavingTA - 'ValidateTypedArray' -]; - -require('./tests').es2016(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2016); diff --git a/node_modules/es-abstract/test/es2017.js b/node_modules/es-abstract/test/es2017.js deleted file mode 100644 index ab6ca6f..0000000 --- a/node_modules/es-abstract/test/es2017.js +++ /dev/null @@ -1,211 +0,0 @@ -'use strict'; - -var ES = require('../').ES2017; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2017'); - -var expectedMissing = [ - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFunctionAwait', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIterator', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'DaylightSavingTA', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateDirectCall', - 'EvaluateNew', - 'EventSet', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', // mystery access to `comparefn` arg - 'Suspend', - 'TopLevelModuleEvaluationJob', - 'ToString Applied to the Number Type', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UpdateEmpty', // completion records - 'UTC', // depends on LocalTZA, DaylightSavingTA - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters', // depends on Canonicalize - 'AddRestrictedFunctionProperties', - 'synchronizes-with' -]; - -require('./tests').es2017(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2017); diff --git a/node_modules/es-abstract/test/es2018.js b/node_modules/es-abstract/test/es2018.js deleted file mode 100644 index 112e958..0000000 --- a/node_modules/es-abstract/test/es2018.js +++ /dev/null @@ -1,229 +0,0 @@ -'use strict'; - -var ES = require('../').ES2018; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2018'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorFunctionCreate', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EventSet', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleInstantiation', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleDeclarationEnvironmentSetup', - 'ModuleExecution', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', // mystery access to `comparefn` arg - 'Suspend', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'TopLevelModuleEvaluationJob', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', // completion records - 'UTC', // depends on LocalTZA - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WakeWaiter', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2018(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2018); diff --git a/node_modules/es-abstract/test/es2019.js b/node_modules/es-abstract/test/es2019.js deleted file mode 100644 index a7cc84a..0000000 --- a/node_modules/es-abstract/test/es2019.js +++ /dev/null @@ -1,231 +0,0 @@ -'use strict'; - -var ES = require('../').ES2019; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2019'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFromSyncIteratorContinuation', - 'AsyncFunctionCreate', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorFunctionCreate', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnqueueJob', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EventSet', - 'ExecuteModule', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionAllocate', - 'FunctionCreate', - 'FunctionDeclarationInstantiation', - 'FunctionInitialize', - 'GeneratorFunctionCreate', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostPromiseRejectionTracker', - 'HostReportErrors', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeEnvironment', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleInstantiation', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NormalCompletion', - 'NotifyWaiter', - 'NumberToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'PromiseReactionJob', - 'PromiseResolveThenableJob', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RawBytesToNumber', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'RunJobs', - 'ScriptEvaluation', - 'ScriptEvaluationJob', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', // mystery access to `comparefn` arg - 'Suspend', - 'SynchronizeEventSet', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'TopLevelModuleEvaluationJob', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', // completion records - 'UTC', // depends on LocalTZA - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2019(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2019); diff --git a/node_modules/es-abstract/test/es2020.js b/node_modules/es-abstract/test/es2020.js deleted file mode 100644 index 83f0b3a..0000000 --- a/node_modules/es-abstract/test/es2020.js +++ /dev/null @@ -1,240 +0,0 @@ -'use strict'; - -var ES = require('../').ES2020; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/2020'); - -var expectedMissing = [ - 'AddRestrictedFunctionProperties', - 'AddWaiter', - 'agent-order', - 'AgentCanSuspend', - 'AgentSignifier', - 'AllocateArrayBuffer', - 'AllocateSharedArrayBuffer', - 'AllocateTypedArray', - 'AllocateTypedArrayBuffer', - 'AsyncFromSyncIteratorContinuation', - 'AsyncFunctionStart', - 'AsyncGeneratorEnqueue', - 'AsyncGeneratorReject', - 'AsyncGeneratorResolve', - 'AsyncGeneratorResumeNext', - 'AsyncGeneratorStart', - 'AsyncGeneratorYield', - 'AsyncIteratorClose', - 'AtomicLoad', - 'AtomicReadModifyWrite', - 'Await', - 'BackreferenceMatcher', - 'BlockDeclarationInstantiation', - 'BoundFunctionCreate', - 'Canonicalize', - 'CaseClauseIsSelected', - 'CharacterRange', - 'CharacterRangeOrUnion', - 'CharacterSetMatcher', - 'CloneArrayBuffer', - 'Completion', - 'ComposeWriteEventBytes', - 'Construct', - 'CopyDataBlockBytes', - 'CreateArrayFromList', - 'CreateArrayIterator', - 'CreateAsyncFromSyncIterator', - 'CreateBuiltinFunction', - 'CreateByteDataBlock', - 'CreateDynamicFunction', - 'CreateForInIterator', - 'CreateIntrinsics', - 'CreateListIteratorRecord', - 'CreateMapIterator', - 'CreateMappedArgumentsObject', - 'CreatePerIterationEnvironment', - 'CreateRealm', - 'CreateRegExpStringIterator', - 'CreateResolvingFunctions', - 'CreateSetIterator', - 'CreateSharedByteDataBlock', - 'CreateStringIterator', - 'CreateUnmappedArgumentsObject', - 'Decode', - 'DetachArrayBuffer', - 'Encode', - 'EnterCriticalSection', - 'EnumerateObjectProperties', - 'EscapeRegExpPattern', - 'EvalDeclarationInstantiation', - 'EvaluateCall', - 'EvaluateNew', - 'EvaluatePropertyAccessWithExpressionKey', - 'EvaluatePropertyAccessWithIdentifierKey', - 'EventSet', - 'ExecuteModule', - 'FinishDynamicImport', - 'ForBodyEvaluation', - 'ForIn/OfBodyEvaluation', - 'ForIn/OfHeadEvaluation', - 'FulfillPromise', - 'FunctionDeclarationInstantiation', - 'GeneratorResume', - 'GeneratorResumeAbrupt', - 'GeneratorStart', - 'GeneratorValidate', - 'GeneratorYield', - 'GetActiveScriptOrModule', - 'GetBase', - 'GetFunctionRealm', - 'GetGeneratorKind', - 'GetGlobalObject', - 'GetIdentifierReference', - 'GetModifySetValueInBuffer', - 'GetModuleNamespace', - 'GetNewTarget', - 'GetReferencedName', - 'GetSuperConstructor', - 'GetTemplateObject', - 'GetThisEnvironment', - 'GetThisValue', - 'GetValue', - 'GetValueFromBuffer', - 'GetViewValue', - 'GetWaiterList', - 'GlobalDeclarationInstantiation', - 'happens-before', - 'HasPrimitiveBase', - 'host-synchronizes-with', - 'HostEnqueuePromiseJob', - 'HostEnsureCanCompileStrings', - 'HostEventSet', - 'HostFinalizeImportMeta', - 'HostGetImportMetaProperties', - 'HostImportModuleDynamically', - 'HostPromiseRejectionTracker', - 'HostResolveImportedModule', - 'IfAbruptRejectPromise', - 'ImportedLocalNames', - 'InitializeBoundName', - 'InitializeEnvironment', - 'InitializeHostDefinedRealm', - 'InitializeReferencedBinding', - 'InnerModuleEvaluation', - 'InnerModuleLinking', - 'IntegerIndexedElementGet', - 'IntegerIndexedElementSet', - 'IntegerIndexedObjectCreate', - 'InternalizeJSONProperty', - 'IsAnonymousFunctionDefinition', - 'IsCompatiblePropertyDescriptor', - 'IsDetachedBuffer', - 'IsInTailPosition', - 'IsLabelledFunction', - 'IsPropertyReference', - 'IsSharedArrayBuffer', - 'IsStrictReference', - 'IsSuperReference', - 'IsUnresolvableReference', - 'IsValidIntegerIndex', - 'IsValidRegularExpressionLiteral', - 'IsWordChar', - 'LeaveCriticalSection', - 'LocalTime', - 'LocalTZA', - 'LoopContinues', - 'MakeArgGetter', - 'MakeArgSetter', - 'MakeBasicObject', - 'MakeClassConstructor', - 'MakeConstructor', - 'MakeMethod', - 'MakeSuperPropertyReference', - 'max', - 'memory-order', - 'min', - 'ModuleNamespaceCreate', - 'NewDeclarativeEnvironment', - 'NewFunctionEnvironment', - 'NewGlobalEnvironment', - 'NewModuleEnvironment', - 'NewObjectEnvironment', - 'NewPromiseCapability', - 'NewPromiseReactionJob', - 'NewPromiseResolveThenableJob', - 'NormalCompletion', - 'NotifyWaiter', - 'NumericToRawBytes', - 'ObjectDefineProperties', - 'OrdinaryCallBindThis', - 'OrdinaryCallEvaluateBody', - 'OrdinaryDelete', - 'OrdinaryFunctionCreate', - 'OrdinaryGet', - 'OrdinaryIsExtensible', - 'OrdinaryOwnPropertyKeys', - 'OrdinaryPreventExtensions', - 'OrdinarySet', - 'OrdinarySetWithOwnDescriptor', - 'OrdinaryToPrimitive', - 'ParseModule', - 'ParseScript', - 'PerformEval', - 'PerformPromiseAll', - 'PerformPromiseAllSettled', - 'PerformPromiseRace', - 'PerformPromiseThen', - 'PrepareForOrdinaryCall', - 'PrepareForTailCall', - 'ProxyCreate', - 'PutValue', // takes a Reference - 'RawBytesToNumeric', - 'reads-bytes-from', - 'reads-from', - 'RegExpAlloc', // creates a regex with uninitialized internal lots - 'RegExpBuiltinExec', - 'RegExpInitialize', // initializes allocated regex's internal slots - 'RejectPromise', - 'RemoveWaiter', - 'RemoveWaiters', - 'RepeatMatcher', - 'RequireInternalSlot', - 'ResolveBinding', - 'ResolveThisBinding', - 'ReturnIfAbrupt', - 'ScriptEvaluation', - 'SerializeJSONArray', - 'SerializeJSONObject', - 'SerializeJSONProperty', - 'SetDefaultGlobalBindings', - 'SetImmutablePrototype', - 'SetRealmGlobalObject', - 'SetValueInBuffer', - 'SetViewValue', - 'SharedDataBlockEventSet', - 'SortCompare', // mystery access to `comparefn` arg - 'StringToBigInt', - 'Suspend', - 'synchronizes-with', - 'ThrowCompletion', - 'TimeZoneString', - 'ToBigInt', - 'ToBigInt64', - 'ToBigUint64', - 'TriggerPromiseReactions', - 'TypedArrayCreate', - 'TypedArraySpeciesCreate', - 'UnicodeMatchProperty', - 'UnicodeMatchPropertyValue', - 'UpdateEmpty', // completion records - 'UTC', // depends on LocalTZA - 'UTF16Encode', - 'ValidateAtomicAccess', - 'ValidateSharedIntegerTypedArray', - 'ValidateTypedArray', - 'ValueOfReadEvent', - 'WordCharacters' // depends on Canonicalize -]; - -require('./tests').es2020(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 2020); diff --git a/node_modules/es-abstract/test/es5.js b/node_modules/es-abstract/test/es5.js deleted file mode 100644 index c4033f6..0000000 --- a/node_modules/es-abstract/test/es5.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var ES = require('../').ES5; -var boundES = require('./helpers/createBoundESNamespace')(ES); - -var ops = require('../operations/es5'); - -var expectedMissing = [ - 'SplitMatch' -]; - -require('./tests').es5(boundES, ops, expectedMissing); - -require('./helpers/runManifestTest')(require('tape'), ES, 5); diff --git a/node_modules/es-abstract/test/es6.js b/node_modules/es-abstract/test/es6.js deleted file mode 100644 index e7c9d98..0000000 --- a/node_modules/es-abstract/test/es6.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var ES = require('../'); -var ES6 = ES.ES6; -var ES2015 = ES.ES2015; -var ES6entry = require('../es6'); - -test('legacy es6 export', function (t) { - t.equal(ES6, ES2015, 'main ES6 === main ES2015'); - t.end(); -}); - -test('legacy es6 entry point', function (t) { - t.equal(ES6, ES6entry, 'main ES6 === ES6 entry point'); - t.end(); -}); diff --git a/node_modules/es-abstract/test/es7.js b/node_modules/es-abstract/test/es7.js deleted file mode 100644 index ee57e15..0000000 --- a/node_modules/es-abstract/test/es7.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var test = require('tape'); - -var ES = require('../'); -var ES7 = ES.ES7; -var ES2016 = ES.ES2016; -var ES7entry = require('../es7'); - -test('legacy es7 export', function (t) { - t.equal(ES7, ES2016, 'main ES7 === main ES2016'); - t.end(); -}); - -test('legacy es7 entry point', function (t) { - t.equal(ES7, ES7entry, 'main ES7 === ES7 entry point'); - t.end(); -}); diff --git a/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js b/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js deleted file mode 100644 index 9c2b4fc..0000000 --- a/node_modules/es-abstract/test/helpers/OwnPropertyKeys.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -var test = require('tape'); -var hasSymbols = require('has-symbols')(); - -var OwnPropertyKeys = require('../../helpers/OwnPropertyKeys'); -var defineProperty = require('./defineProperty'); - -test('OwnPropertyKeys', function (t) { - t.deepEqual(OwnPropertyKeys({ a: 1, b: 2 }).sort(), ['a', 'b'].sort(), 'returns own string keys'); - - t.test('Symbols', { skip: !hasSymbols }, function (st) { - var o = { a: 1 }; - var sym = Symbol(); - o[sym] = 2; - - st.deepEqual(OwnPropertyKeys(o), ['a', sym], 'returns own string and symbol keys'); - - st.end(); - }); - - t.test('non-enumerables', { skip: !defineProperty.oDP }, function (st) { - var o = { a: 1, b: 42, c: NaN }; - defineProperty(o, 'b', { enumerable: false, value: 42 }); - defineProperty(o, 'c', { enumerable: false, get: function () { return NaN; } }); - - if (hasSymbols) { - defineProperty(o, 'd', { enumerable: false, value: true }); - defineProperty(o, 'e', { enumerable: false, get: function () { return true; } }); - } - - st.deepEqual( - OwnPropertyKeys(o).sort(), - (hasSymbols ? ['a', 'b', 'c', 'd', 'e'] : ['a', 'b', 'c']).sort(), - 'returns non-enumerable own keys, including accessors and symbols if available' - ); - - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/es-abstract/test/helpers/assertRecord.js b/node_modules/es-abstract/test/helpers/assertRecord.js deleted file mode 100644 index 0231101..0000000 --- a/node_modules/es-abstract/test/helpers/assertRecord.js +++ /dev/null @@ -1,60 +0,0 @@ -'use strict'; - -var forEach = require('foreach'); -var debug = require('object-inspect'); - -var assertRecord = require('../../helpers/assertRecord'); -var v = require('es-value-fixtures'); - -module.exports = function assertRecordTests(ES, test) { - test('Property Descriptor', function (t) { - var record = 'Property Descriptor'; - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', { invalid: true }); }, - TypeError, - 'invalid keys not allowed on a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', {}); }, - 'empty object is an incomplete Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.accessorDescriptor()); }, - 'accessor descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.mutatorDescriptor()); }, - 'mutator descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.dataDescriptor()); }, - 'data descriptor is a Property Descriptor' - ); - - t.doesNotThrow( - function () { assertRecord(ES.Type, record, 'arg', v.genericDescriptor()); }, - 'generic descriptor is a Property Descriptor' - ); - - t['throws']( - function () { assertRecord(ES.Type, record, 'arg', v.bothDescriptor()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t.end(); - }); -}; diff --git a/node_modules/es-abstract/test/helpers/createBoundESNamespace.js b/node_modules/es-abstract/test/helpers/createBoundESNamespace.js deleted file mode 100644 index 0150404..0000000 --- a/node_modules/es-abstract/test/helpers/createBoundESNamespace.js +++ /dev/null @@ -1,23 +0,0 @@ -'use strict'; - -var bind = require('function-bind'); - -var OwnPropertyKeys = require('../../helpers/OwnPropertyKeys'); - -module.exports = function createBoundESNamespace(ES) { - var keys = OwnPropertyKeys(ES); - var result = {}; - - for (var i = 0; i < keys.length; i++) { - var key = keys[i]; - var prop = ES[key]; - if (typeof prop === 'function') { - prop = bind.call(prop, undefined); - } else if (prop && typeof prop === 'object') { - prop = createBoundESNamespace(prop); - } - result[key] = prop; - } - - return result; -}; diff --git a/node_modules/es-abstract/test/helpers/defineProperty.js b/node_modules/es-abstract/test/helpers/defineProperty.js deleted file mode 100644 index 03102a8..0000000 --- a/node_modules/es-abstract/test/helpers/defineProperty.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var GetIntrinsic = require('../../GetIntrinsic'); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -module.exports = function defineProperty(O, P, Desc) { - if ($defineProperty) { - return $defineProperty(O, P, Desc); - } - if ((Desc.enumerable && Desc.configurable && Desc.writable) || !(P in O)) { - O[P] = Desc.value; // eslint-disable-line no-param-reassign - return O; - } - - throw new SyntaxError('helper does not yet support this configuration'); -}; -module.exports.oDP = $defineProperty; diff --git a/node_modules/es-abstract/test/helpers/getSymbolDescription.js b/node_modules/es-abstract/test/helpers/getSymbolDescription.js deleted file mode 100644 index 05be3bb..0000000 --- a/node_modules/es-abstract/test/helpers/getSymbolDescription.js +++ /dev/null @@ -1,67 +0,0 @@ -'use strict'; - -var test = require('tape'); -var debug = require('object-inspect'); -var forEach = require('foreach'); -var has = require('has'); - -var v = require('es-value-fixtures'); -var getSymbolDescription = require('../../helpers/getSymbolDescription'); -var getInferredName = require('../../helpers/getInferredName'); - -test('getSymbolDescription', function (t) { - t.test('no symbols', { skip: v.hasSymbols }, function (st) { - st['throws']( - getSymbolDescription, - SyntaxError, - 'requires Symbol support' - ); - - st.end(); - }); - - forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { - t['throws']( - function () { getSymbolDescription(nonSymbol); }, - v.hasSymbols ? TypeError : SyntaxError, - debug(nonSymbol) + ' is not a Symbol' - ); - }); - - t.test('with symbols', { skip: !v.hasSymbols }, function (st) { - forEach( - [ - [Symbol(), undefined], - [Symbol(undefined), undefined], - [Symbol(null), 'null'], - [Symbol.iterator, 'Symbol.iterator'], - [Symbol('foo'), 'foo'] - ], - function (pair) { - var sym = pair[0]; - var desc = pair[1]; - st.equal(getSymbolDescription(sym), desc, debug(sym) + ' description is ' + debug(desc)); - } - ); - - st.test('only possible when inference or native `Symbol.prototype.description` is supported', { - skip: !getInferredName && !has(Symbol.prototype, 'description') - }, function (s2t) { - s2t.equal(getSymbolDescription(Symbol('')), '', 'Symbol("") description is ""'); - - s2t.end(); - }); - - st.test('only possible when global symbols are supported', { - skip: !has(Symbol, 'for') || !has(Symbol, 'keyFor') - }, function (s2t) { - // eslint-disable-next-line no-restricted-properties - s2t.equal(getSymbolDescription(Symbol['for']('')), '', 'Symbol.for("") description is ""'); - s2t.end(); - }); - - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/es-abstract/test/helpers/index.js b/node_modules/es-abstract/test/helpers/index.js deleted file mode 100644 index 4260bc2..0000000 --- a/node_modules/es-abstract/test/helpers/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -require('./getSymbolDescription'); -require('./isByteValue'); -require('./isCodePoint'); -require('./OwnPropertyKeys'); diff --git a/node_modules/es-abstract/test/helpers/isByteValue.js b/node_modules/es-abstract/test/helpers/isByteValue.js deleted file mode 100644 index f894910..0000000 --- a/node_modules/es-abstract/test/helpers/isByteValue.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var test = require('tape'); -var forEach = require('foreach'); -var debug = require('object-inspect'); - -var isByteValue = require('../../helpers/isByteValue'); -var v = require('es-value-fixtures'); - -test('isByteValue', function (t) { - forEach([].concat( - v.notNonNegativeIntegers, - -1, - -42, - -Infinity, - Infinity, - v.nonIntegerNumbers - ), function (nonByteValue) { - t.equal(isByteValue(nonByteValue), false, debug(nonByteValue) + ' is not a byte value'); - }); - - for (var i = 0; i <= 255; i += 1) { - t.equal(isByteValue(i), true, i + ' is a byte value'); - } - t.equal(isByteValue(256), false, '256 is not a byte value'); - - t.end(); -}); diff --git a/node_modules/es-abstract/test/helpers/isCodePoint.js b/node_modules/es-abstract/test/helpers/isCodePoint.js deleted file mode 100644 index 9106615..0000000 --- a/node_modules/es-abstract/test/helpers/isCodePoint.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var test = require('tape'); -var forEach = require('foreach'); -var debug = require('object-inspect'); - -var isCodePoint = require('../../helpers/isCodePoint'); -var v = require('es-value-fixtures'); - -test('isCodePoint', function (t) { - forEach(v.notNonNegativeIntegers.concat(0x10FFFF + 1), function (nonCodePoints) { - t.equal(isCodePoint(nonCodePoints), false, debug(nonCodePoints) + ' is not a Code Point'); - }); - - forEach([-0, 0, 1, 7, 42, 0x10FFFF], function (codePoint) { - t.equal(isCodePoint(codePoint), true, debug(codePoint) + ' is a Code Point'); - }); - - t.end(); -}); diff --git a/node_modules/es-abstract/test/helpers/runManifestTest.js b/node_modules/es-abstract/test/helpers/runManifestTest.js deleted file mode 100644 index 2fdb4f2..0000000 --- a/node_modules/es-abstract/test/helpers/runManifestTest.js +++ /dev/null @@ -1,27 +0,0 @@ -'use strict'; - -var path = require('path'); -var fs = require('fs'); - -var forEach = require('foreach'); -var keys = require('object-keys'); - -module.exports = function runManifestTest(test, ES, edition) { - test('ES' + edition + ' manifest', { skip: !fs.readdirSync }, function (t) { - var files = fs.readdirSync(path.join(__dirname, '../../' + edition), 'utf-8'); - var map = { - AbstractEqualityComparison: 'Abstract Equality Comparison', - AbstractRelationalComparison: 'Abstract Relational Comparison', - StrictEqualityComparison: 'Strict Equality Comparison' - }; - forEach(files, function (file) { - var name = path.basename(file, path.extname(file)); - var actual = ES[map[name] || name]; - var expected = require(path.join(__dirname, '../../' + edition + '/', file)); // eslint-disable-line global-require - t.equal(actual, expected, 'ES["' + name + '"] === ' + file); - }); - var actualCount = keys(ES).length; - t.equal(actualCount, files.length, 'expected ' + files.length + ' files, got ' + actualCount); - t.end(); - }); -}; diff --git a/node_modules/es-abstract/test/index.js b/node_modules/es-abstract/test/index.js deleted file mode 100644 index 5ebe3db..0000000 --- a/node_modules/es-abstract/test/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var ES = require('../'); -var test = require('tape'); -var keys = require('object-keys'); -var forEach = require('foreach'); - -var ESkeys = keys(ES).sort(); -var ES6keys = keys(ES.ES6).sort(); - -test('exposed properties', function (t) { - t.deepEqual(ESkeys, ES6keys.concat(['ES2020', 'ES2019', 'ES2018', 'ES2017', 'ES7', 'ES2016', 'ES6', 'ES2015', 'ES5']).sort(), 'main ES object keys match ES6 keys'); - t.end(); -}); - -test('methods match', function (t) { - forEach(ES6keys, function (key) { - t.equal(ES.ES6[key], ES[key], 'method ' + key + ' on main ES object is ES6 method'); - }); - t.end(); -}); - -require('./GetIntrinsic'); - -require('./helpers'); - -require('./es5'); -require('./es6'); -require('./es2015'); -require('./es7'); -require('./es2016'); -require('./es2017'); -require('./es2018'); -require('./es2019'); -require('./es2020'); diff --git a/node_modules/es-abstract/test/ses-compat.js b/node_modules/es-abstract/test/ses-compat.js deleted file mode 100644 index c3e60f4..0000000 --- a/node_modules/es-abstract/test/ses-compat.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict'; - -/* globals lockdown */ -require('ses'); - -lockdown({ errorTaming: 'unsafe' }); - -require('.'); diff --git a/node_modules/es-abstract/test/tests.js b/node_modules/es-abstract/test/tests.js deleted file mode 100644 index e3ec400..0000000 --- a/node_modules/es-abstract/test/tests.js +++ /dev/null @@ -1,6962 +0,0 @@ -'use strict'; - -var tape = require('tape'); - -var forEach = require('foreach'); -var debug = require('object-inspect'); -var assign = require('object.assign'); -var keys = require('object-keys'); -var has = require('has'); -var arrowFns = require('make-arrow-function').list(); -var hasStrictMode = require('has-strict-mode')(); -var functionsHaveNames = require('functions-have-names')(); -var functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames(); -var hasBigInts = require('has-bigints')(); - -var $getProto = require('../helpers/getProto'); -var $setProto = require('../helpers/setProto'); -var defineProperty = require('./helpers/defineProperty'); -var getInferredName = require('../helpers/getInferredName'); -var getOwnPropertyDescriptor = require('../helpers/getOwnPropertyDescriptor'); -var assertRecordTests = require('./helpers/assertRecord'); -var v = require('es-value-fixtures'); -var diffOps = require('./diffOps'); - -var $BigInt = hasBigInts ? BigInt : null; - -var MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || Math.pow(2, 53) - 1; - -var canDistinguishSparseFromUndefined = 0 in [undefined]; // IE 6 - 8 have a bug where this returns false - -// IE 9 does not throw in strict mode when writability/configurability/extensibility is violated -var noThrowOnStrictViolation = (function () { - try { - delete [].length; - return true; - } catch (e) { - } - return false; -}()); - -var makeTest = function makeTest(skips) { - return function test(opName, maybeOpts, maybeCb) { - var origOpts = arguments.length > 2 ? maybeOpts : {}; - var opts = assign( - {}, - origOpts, - { skip: (skips && skips[opName]) || origOpts.skip } - ); - var cb = arguments.length > 2 ? maybeCb : maybeOpts; - return tape(opName, opts, cb); - }; -}; - -var leadingPoo = '\uD83D'; -var trailingPoo = '\uDCA9'; -var wholePoo = leadingPoo + trailingPoo; - -var getArraySubclassWithSpeciesConstructor = function getArraySubclass(speciesConstructor) { - var Bar = function Bar() { - var inst = []; - Object.setPrototypeOf(inst, Bar.prototype); - defineProperty(inst, 'constructor', { value: Bar }); - return inst; - }; - Bar.prototype = Object.create(Array.prototype); - Object.setPrototypeOf(Bar, Array); - defineProperty(Bar, Symbol.species, { value: speciesConstructor }); - - return Bar; -}; - -var testIterator = function (t, iterator, expected) { - var resultCount = 0; - var result; - while (result = iterator.next(), !result.done) { // eslint-disable-line no-sequences - t.deepEqual(result, { done: false, value: expected[resultCount] }, 'result ' + resultCount); - resultCount += 1; - } - t.equal(resultCount, expected.length, 'expected ' + expected.length + ', got ' + resultCount); -}; - -var hasSpecies = v.hasSymbols && Symbol.species; - -var hasLastIndex = 'lastIndex' in (/a/).exec('a'); // IE 8 -var hasGroups = 'groups' in (/a/).exec('a'); // modern engines -var kludgeMatch = function kludgeMatch(R, matchObject) { - if (hasGroups) { - assign(matchObject, { groups: matchObject.groups }); - } - if (hasLastIndex) { - assign(matchObject, { lastIndex: R.lastIndex }); - } - return matchObject; -}; - -var testEnumerableOwnNames = function (t, enumerableOwnNames) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { enumerableOwnNames(nonObject); }, - debug(nonObject) + ' is not an Object' - ); - }); - - var Child = function Child() { - this.own = {}; - }; - Child.prototype = { - inherited: {} - }; - - var obj = new Child(); - - t.equal('own' in obj, true, 'has "own"'); - t.equal(has(obj, 'own'), true, 'has own "own"'); - t.equal(Object.prototype.propertyIsEnumerable.call(obj, 'own'), true, 'has enumerable "own"'); - - t.equal('inherited' in obj, true, 'has "inherited"'); - t.equal(has(obj, 'inherited'), false, 'has non-own "inherited"'); - t.equal(has(Child.prototype, 'inherited'), true, 'Child.prototype has own "inherited"'); - t.equal(Child.prototype.inherited, obj.inherited, 'Child.prototype.inherited === obj.inherited'); - t.equal(Object.prototype.propertyIsEnumerable.call(Child.prototype, 'inherited'), true, 'has enumerable "inherited"'); - - t.equal('toString' in obj, true, 'has "toString"'); - t.equal(has(obj, 'toString'), false, 'has non-own "toString"'); - t.equal(has(Object.prototype, 'toString'), true, 'Object.prototype has own "toString"'); - t.equal(Object.prototype.toString, obj.toString, 'Object.prototype.toString === obj.toString'); - // eslint-disable-next-line no-useless-call - t.equal(Object.prototype.propertyIsEnumerable.call(Object.prototype, 'toString'), false, 'has non-enumerable "toString"'); - - return obj; -}; - -var testToNumber = function (t, ES, ToNumber) { - t.equal(NaN, ToNumber(undefined), 'undefined coerces to NaN'); - t.equal(ToNumber(null), 0, 'null coerces to +0'); - t.equal(ToNumber(false), 0, 'false coerces to +0'); - t.equal(1, ToNumber(true), 'true coerces to 1'); - - t.test('numbers', function (st) { - st.equal(NaN, ToNumber(NaN), 'NaN returns itself'); - forEach(v.zeroes.concat(v.infinities, 42), function (num) { - st.equal(num, ToNumber(num), num + ' returns itself'); - }); - forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) { - st.equal(+numString, ToNumber(numString), '"' + numString + '" coerces to ' + Number(numString)); - }); - st.end(); - }); - - t.test('objects', function (st) { - forEach(v.objects, function (object) { - st.equal(ToNumber(object), ToNumber(ES.ToPrimitive(object)), 'object ' + object + ' coerces to same as ToPrimitive of object does'); - }); - st['throws'](function () { return ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - st.end(); - }); - - // TODO: check if this applies to ES5 - t.test('binary literals', function (st) { - st.equal(ToNumber('0b10'), 2, '0b10 is 2'); - st.equal(ToNumber({ toString: function () { return '0b11'; } }), 3, 'Object that toStrings to 0b11 is 3'); - - st.equal(ToNumber('0b12'), NaN, '0b12 is NaN'); - st.equal(ToNumber({ toString: function () { return '0b112'; } }), NaN, 'Object that toStrings to 0b112 is NaN'); - st.end(); - }); - - // TODO: check if this applies to ES5 - t.test('octal literals', function (st) { - st.equal(ToNumber('0o10'), 8, '0o10 is 8'); - st.equal(ToNumber({ toString: function () { return '0o11'; } }), 9, 'Object that toStrings to 0o11 is 9'); - - st.equal(ToNumber('0o18'), NaN, '0o18 is NaN'); - st.equal(ToNumber({ toString: function () { return '0o118'; } }), NaN, 'Object that toStrings to 0o118 is NaN'); - st.end(); - }); - - // TODO: check if this applies to ES5 - t.test('signed hex numbers', function (st) { - st.equal(ToNumber('-0xF'), NaN, '-0xF is NaN'); - st.equal(ToNumber(' -0xF '), NaN, 'space-padded -0xF is NaN'); - st.equal(ToNumber('+0xF'), NaN, '+0xF is NaN'); - st.equal(ToNumber(' +0xF '), NaN, 'space-padded +0xF is NaN'); - - st.end(); - }); - - // TODO: check if this applies to ES5 - t.test('trimming of whitespace and non-whitespace characters', function (st) { - var whitespace = ' \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000'; - st.equal(0, ToNumber(whitespace + 0 + whitespace), 'whitespace is trimmed'); - - // Zero-width space (zws), next line character (nel), and non-character (bom) are not whitespace. - var nonWhitespaces = { - '\\u0085': '\u0085', - '\\u200b': '\u200b', - '\\ufffe': '\ufffe' - }; - - forEach(nonWhitespaces, function (desc, nonWS) { - st.equal(ToNumber(nonWS + 0 + nonWS), NaN, 'non-whitespace ' + desc + ' not trimmed'); - }); - - st.end(); - }); - - // TODO: skip for ES5 - forEach(v.symbols, function (symbol) { - t['throws']( - function () { ToNumber(symbol); }, - TypeError, - 'Symbols can’t be converted to a Number: ' + debug(symbol) - ); - - var boxed = Object(symbol); - t['throws']( - function () { ToNumber(boxed); }, - TypeError, - 'boxed Symbols can’t be converted to a Number: ' + debug(boxed) - ); - }); - - // TODO: check if this applies to ES5 - t.test('dates', function (st) { - var invalid = new Date(NaN); - st.equal(ToNumber(invalid), NaN, 'invalid Date coerces to NaN'); - var now = +new Date(); - st.equal(ToNumber(new Date(now)), now, 'Date coerces to timestamp'); - st.end(); - }); -}; - -var es5 = function ES5(ES, ops, expectedMissing, skips) { - var test = makeTest(skips); - - test('has expected operations', function (t) { - var diff = diffOps(ES, ops, expectedMissing); - - t.deepEqual(diff.extra, [], 'no extra ops'); - - t.deepEqual(diff.missing, [], 'no unexpected missing ops'); - - t.deepEqual(diff.extraMissing, [], 'no unexpected "expected missing" ops'); - - t.end(); - }); - - test('ToPrimitive', function (t) { - t.test('primitives', function (st) { - var testPrimitive = function (primitive) { - st.equal(ES.ToPrimitive(primitive), primitive, debug(primitive) + ' is returned correctly'); - }; - forEach(v.primitives, testPrimitive); - st.end(); - }); - - t.test('objects', function (st) { - st.equal(ES.ToPrimitive(v.coercibleObject), 3, 'coercibleObject with no hint coerces to valueOf'); - st.equal(ES.ToPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString'); - st.equal(ES.ToPrimitive(v.coercibleObject, Number), 3, 'coercibleObject with hint Number coerces to valueOf'); - st.equal(ES.ToPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to NaN'); - st.equal(ES.ToPrimitive(v.coercibleObject, String), 42, 'coercibleObject with hint String coerces to nonstringified toString'); - st.equal(ES.ToPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - st.equal(ES.ToPrimitive(v.coercibleFnObject), v.coercibleFnObject.toString(), 'coercibleFnObject coerces to toString'); - st.equal(ES.ToPrimitive(v.toStringOnlyObject), 7, 'toStringOnlyObject returns non-stringified toString'); - st.equal(ES.ToPrimitive(v.valueOfOnlyObject), 4, 'valueOfOnlyObject returns valueOf'); - st['throws'](function () { return ES.ToPrimitive(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError'); - st['throws'](function () { return ES.ToPrimitive(v.uncoercibleFnObject); }, TypeError, 'uncoercibleFnObject throws a TypeError'); - st.end(); - }); - - t.test('dates', function (st) { - var invalid = new Date(NaN); - st.equal(ES.ToPrimitive(invalid), Date.prototype.toString.call(invalid), 'invalid Date coerces to Date#toString'); - var now = new Date(); - st.equal(ES.ToPrimitive(now), Date.prototype.toString.call(now), 'Date coerces to Date#toString'); - st.end(); - }); - - t.end(); - }); - - test('ToBoolean', function (t) { - t.equal(false, ES.ToBoolean(undefined), 'undefined coerces to false'); - t.equal(false, ES.ToBoolean(null), 'null coerces to false'); - t.equal(false, ES.ToBoolean(false), 'false returns false'); - t.equal(true, ES.ToBoolean(true), 'true returns true'); - - t.test('numbers', function (st) { - forEach(v.zeroes.concat(NaN), function (falsyNumber) { - st.equal(false, ES.ToBoolean(falsyNumber), 'falsy number ' + falsyNumber + ' coerces to false'); - }); - forEach(v.infinities.concat([42, 1]), function (truthyNumber) { - st.equal(true, ES.ToBoolean(truthyNumber), 'truthy number ' + truthyNumber + ' coerces to true'); - }); - - st.end(); - }); - - t.equal(false, ES.ToBoolean(''), 'empty string coerces to false'); - t.equal(true, ES.ToBoolean('foo'), 'nonempty string coerces to true'); - - t.test('objects', function (st) { - forEach(v.objects, function (obj) { - st.equal(true, ES.ToBoolean(obj), 'object coerces to true'); - }); - st.equal(true, ES.ToBoolean(v.uncoercibleObject), 'uncoercibleObject coerces to true'); - - st.end(); - }); - - t.end(); - }); - - test('ToNumber', function (t) { - t.equal(NaN, ES.ToNumber(undefined), 'undefined coerces to NaN'); - t.equal(ES.ToNumber(null), 0, 'null coerces to +0'); - t.equal(ES.ToNumber(false), 0, 'false coerces to +0'); - t.equal(1, ES.ToNumber(true), 'true coerces to 1'); - - t.test('numbers', function (st) { - st.equal(NaN, ES.ToNumber(NaN), 'NaN returns itself'); - forEach(v.zeroes.concat(v.infinities, 42), function (num) { - st.equal(num, ES.ToNumber(num), num + ' returns itself'); - }); - forEach(['foo', '0', '4a', '2.0', 'Infinity', '-Infinity'], function (numString) { - st.equal(+numString, ES.ToNumber(numString), '"' + numString + '" coerces to ' + Number(numString)); - }); - st.end(); - }); - - t.test('objects', function (st) { - forEach(v.objects, function (object) { - st.equal(ES.ToNumber(object), ES.ToNumber(ES.ToPrimitive(object)), 'object ' + object + ' coerces to same as ToPrimitive of object does'); - }); - st['throws'](function () { return ES.ToNumber(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - st.end(); - }); - - t.test('binary literals', function (st) { - st.equal(ES.ToNumber('0b10'), NaN, '0b10 is NaN'); - st.equal(ES.ToNumber({ toString: function () { return '0b11'; } }), NaN, 'Object that toStrings to 0b11 is NaN'); - - st.equal(ES.ToNumber('0b12'), NaN, '0b12 is NaN'); - st.equal(ES.ToNumber({ toString: function () { return '0b112'; } }), NaN, 'Object that toStrings to 0b112 is NaN'); - st.end(); - }); - - t.test('octal literals', function (st) { - st.equal(ES.ToNumber('0o10'), NaN, '0o10 is NaN'); - st.equal(ES.ToNumber({ toString: function () { return '0o11'; } }), NaN, 'Object that toStrings to 0o11 is NaN'); - - st.equal(ES.ToNumber('0o18'), NaN, '0o18 is NaN'); - st.equal(ES.ToNumber({ toString: function () { return '0o118'; } }), NaN, 'Object that toStrings to 0o118 is NaN'); - st.end(); - }); - - t.test('signed hex numbers', function (st) { - st.equal(ES.ToNumber('-0xF'), NaN, '-0xF is NaN'); - st.equal(ES.ToNumber(' -0xF '), NaN, 'space-padded -0xF is NaN'); - st.equal(ES.ToNumber('+0xF'), NaN, '+0xF is NaN'); - st.equal(ES.ToNumber(' +0xF '), NaN, 'space-padded +0xF is NaN'); - - st.end(); - }); - - // TODO: check if this applies to ES5 - t.test('trimming of whitespace and non-whitespace characters', function (st) { - var whitespace = ' \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u0085'; - st.equal(ES.ToNumber(whitespace + 0 + whitespace), 0, 'whitespace is trimmed'); - - // Zero-width space (zws), next line character (nel), and non-character (bom) are not whitespace. - var nonWhitespaces = { - '\\u200b': '\u200b', - '\\ufffe': '\ufffe' - }; - - forEach(nonWhitespaces, function (desc, nonWS) { - st.equal(ES.ToNumber(nonWS + 0 + nonWS), NaN, 'non-whitespace ' + desc + ' not trimmed'); - }); - - st.end(); - }); - - t.test('dates', function (st) { - var invalid = new Date(NaN); - st.equal(ES.ToNumber(invalid), NaN, 'invalid Date coerces to NaN'); - var now = +new Date(); - st.equal(ES.ToNumber(new Date(now)), now, 'Date coerces to timestamp'); - st.end(); - }); - - t.end(); - }); - - test('ToInteger', function (t) { - forEach([NaN], function (num) { - t.equal(0, ES.ToInteger(num), debug(num) + ' returns +0'); - }); - forEach(v.zeroes.concat(v.infinities, 42), function (num) { - t.equal(num, ES.ToInteger(num), debug(num) + ' returns itself'); - t.equal(-num, ES.ToInteger(-num), '-' + debug(num) + ' returns itself'); - }); - t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3'); - t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); - }); - - test('ToInt32', function (t) { - t.equal(ES.ToInt32(NaN), 0, 'NaN coerces to +0'); - forEach(v.zeroes.concat(v.infinities), function (num) { - t.equal(ES.ToInt32(num), 0, num + ' returns +0'); - t.equal(ES.ToInt32(-num), 0, '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToInt32(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToInt32(0x100000000 - 1), -1, '2^32 - 1 returns -1'); - t.equal(ES.ToInt32(0x80000000), -0x80000000, '2^31 returns -2^31'); - t.equal(ES.ToInt32(0x80000000 - 1), 0x80000000 - 1, '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.equal(ES.ToInt32(num), ES.ToInt32(ES.ToUint32(num)), 'ToInt32(x) === ToInt32(ToUint32(x)) for 0x' + num.toString(16)); - t.equal(ES.ToInt32(-num), ES.ToInt32(ES.ToUint32(-num)), 'ToInt32(x) === ToInt32(ToUint32(x)) for -0x' + num.toString(16)); - }); - t.end(); - }); - - test('ToUint32', function (t) { - t.equal(0, ES.ToUint32(NaN), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.equal(0, ES.ToUint32(num), num + ' returns +0'); - t.equal(0, ES.ToUint32(-num), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint32(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToUint32(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToUint32(0x100000000 - 1), 0x100000000 - 1, '2^32 - 1 returns 2^32 - 1'); - t.equal(ES.ToUint32(0x80000000), 0x80000000, '2^31 returns 2^31'); - t.equal(ES.ToUint32(0x80000000 - 1), 0x80000000 - 1, '2^31 - 1 returns 2^31 - 1'); - forEach([0, Infinity, NaN, 0x100000000, 0x80000000, 0x10000, 0x42], function (num) { - t.equal(ES.ToUint32(num), ES.ToUint32(ES.ToInt32(num)), 'ToUint32(x) === ToUint32(ToInt32(x)) for 0x' + num.toString(16)); - t.equal(ES.ToUint32(-num), ES.ToUint32(ES.ToInt32(-num)), 'ToUint32(x) === ToUint32(ToInt32(x)) for -0x' + num.toString(16)); - }); - t.end(); - }); - - test('ToUint16', function (t) { - t.equal(0, ES.ToUint16(NaN), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.equal(0, ES.ToUint16(num), num + ' returns +0'); - t.equal(0, ES.ToUint16(-num), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToUint16(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToUint16(0x100000000 - 1), 0x10000 - 1, '2^32 - 1 returns 2^16 - 1'); - t.equal(ES.ToUint16(0x80000000), 0, '2^31 returns +0'); - t.equal(ES.ToUint16(0x80000000 - 1), 0x10000 - 1, '2^31 - 1 returns 2^16 - 1'); - t.equal(ES.ToUint16(0x10000), 0, '2^16 returns +0'); - t.equal(ES.ToUint16(0x10000 - 1), 0x10000 - 1, '2^16 - 1 returns 2^16 - 1'); - t.end(); - }); - - test('ToString', function (t) { - forEach(v.objects.concat(v.nonSymbolPrimitives), function (item) { - t.equal(ES.ToString(item), String(item), 'ES.ToString(' + debug(item) + ') ToStrings to String(' + debug(item) + ')'); - }); - - t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - - t.end(); - }); - - test('ToObject', function (t) { - t['throws'](function () { return ES.ToObject(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.ToObject(null); }, TypeError, 'null throws'); - forEach(v.numbers, function (number) { - var obj = ES.ToObject(number); - t.equal(typeof obj, 'object', 'number ' + number + ' coerces to object'); - t.equal(true, obj instanceof Number, 'object of ' + number + ' is Number object'); - t.equal(obj.valueOf(), number, 'object of ' + number + ' coerces to ' + number); - }); - t.end(); - }); - - test('CheckObjectCoercible', function (t) { - t['throws'](function () { return ES.CheckObjectCoercible(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.CheckObjectCoercible(null); }, TypeError, 'null throws'); - var checkCoercible = function (value) { - t.doesNotThrow(function () { return ES.CheckObjectCoercible(value); }, debug(value) + ' does not throw'); - }; - forEach(v.objects.concat(v.nonNullPrimitives), checkCoercible); - t.end(); - }); - - test('IsCallable', function (t) { - t.equal(true, ES.IsCallable(function () {}), 'function is callable'); - var nonCallables = [/a/g, {}, Object.prototype, NaN].concat(v.nonFunctions); - forEach(nonCallables, function (nonCallable) { - t.equal(false, ES.IsCallable(nonCallable), debug(nonCallable) + ' is not callable'); - }); - t.end(); - }); - - test('SameValue', function (t) { - t.equal(true, ES.SameValue(NaN, NaN), 'NaN is SameValue as NaN'); - t.equal(false, ES.SameValue(0, -0), '+0 is not SameValue as -0'); - forEach(v.objects.concat(v.primitives), function (val) { - t.equal(val === val, ES.SameValue(val, val), debug(val) + ' is SameValue to itself'); - }); - t.end(); - }); - - test('Type', function (t) { - t.equal(ES.Type(), 'Undefined', 'Type() is Undefined'); - t.equal(ES.Type(undefined), 'Undefined', 'Type(undefined) is Undefined'); - t.equal(ES.Type(null), 'Null', 'Type(null) is Null'); - t.equal(ES.Type(true), 'Boolean', 'Type(true) is Boolean'); - t.equal(ES.Type(false), 'Boolean', 'Type(false) is Boolean'); - t.equal(ES.Type(0), 'Number', 'Type(0) is Number'); - t.equal(ES.Type(NaN), 'Number', 'Type(NaN) is Number'); - t.equal(ES.Type('abc'), 'String', 'Type("abc") is String'); - t.equal(ES.Type(function () {}), 'Object', 'Type(function () {}) is Object'); - t.equal(ES.Type({}), 'Object', 'Type({}) is Object'); - - t.end(); - }); - - assertRecordTests(ES, test); - - test('IsAccessorDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsAccessorDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsAccessorDescriptor(), false, 'no value is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(undefined), false, 'undefined value is not an Accessor Descriptor'); - - t.equal(ES.IsAccessorDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.dataDescriptor()), false, 'data descriptor is not an Accessor Descriptor'); - t.equal(ES.IsAccessorDescriptor(v.genericDescriptor()), false, 'generic descriptor is not an Accessor Descriptor'); - - t.end(); - }); - - test('IsDataDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsDataDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsDataDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsDataDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.dataDescriptor()), true, 'data descriptor is a Data Descriptor'); - t.equal(ES.IsDataDescriptor(v.genericDescriptor()), false, 'generic descriptor is not a Data Descriptor'); - - t.end(); - }); - - test('IsGenericDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.IsGenericDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsGenericDescriptor(), false, 'no value is not a Data Descriptor'); - t.equal(ES.IsGenericDescriptor(undefined), false, 'undefined value is not a Data Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.accessorDescriptor()), false, 'accessor descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.mutatorDescriptor()), false, 'mutator descriptor is not a generic Descriptor'); - t.equal(ES.IsGenericDescriptor(v.dataDescriptor()), false, 'data descriptor is not a generic Descriptor'); - - t.equal(ES.IsGenericDescriptor(v.genericDescriptor()), true, 'generic descriptor is a generic Descriptor'); - - t.end(); - }); - - test('FromPropertyDescriptor', function (t) { - t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined'); - t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined'); - - forEach(v.nonNullPrimitives.concat(null), function (primitive) { - t['throws']( - function () { ES.FromPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(accessor), { - get: accessor['[[Get]]'], - set: accessor['[[Set]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(mutator), { - get: mutator['[[Get]]'], - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }); - var data = v.dataDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(data), { - value: data['[[Value]]'], - writable: data['[[Writable]]'], - enumerable: !!data['[[Enumerable]]'], - configurable: !!data['[[Configurable]]'] - }); - - t['throws']( - function () { ES.FromPropertyDescriptor(v.genericDescriptor()); }, - TypeError, - 'a complete Property Descriptor is required' - ); - - t.end(); - }); - - test('ToPropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.ToPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - get: accessor['[[Get]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }), accessor); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.ToPropertyDescriptor({ - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }), mutator); - - var data = v.descriptors.nonConfigurable(v.dataDescriptor()); - t.deepEqual(ES.ToPropertyDescriptor({ - value: data['[[Value]]'], - writable: data['[[Writable]]'], - configurable: !!data['[[Configurable]]'] - }), data); - - var both = v.bothDescriptor(); - t['throws']( - function () { - ES.ToPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] }); - }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t['throws']( - function () { ES.ToPropertyDescriptor({ get: 'not callable' }); }, - TypeError, - '"get" must be undefined or callable' - ); - - t['throws']( - function () { ES.ToPropertyDescriptor({ set: 'not callable' }); }, - TypeError, - '"set" must be undefined or callable' - ); - - forEach(v.nonFunctions, function (nonFunction) { - if (typeof nonFunction !== 'undefined') { - t['throws']( - function () { ES.ToPropertyDescriptor({ get: nonFunction }); }, - TypeError, - '`.get` has ' + debug(nonFunction) + ', which is not a Function' - ); - t['throws']( - function () { ES.ToPropertyDescriptor({ set: nonFunction }); }, - TypeError, - '`.set` has ' + debug(nonFunction) + ', which is not a Function' - ); - } - }); - - forEach(['get', 'set'], function (accessorName) { - forEach(['value', 'writable'], function (dataName) { - var o = {}; - o[accessorName] = undefined; - o[dataName] = undefined; - - t['throws']( - function () { ES.ToPropertyDescriptor(o); }, - TypeError, - accessorName + ' + ' + dataName + ' is invalid' - ); - }); - }); - - t.end(); - }); - - test('Abstract Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Abstract Equality Comparison'](value, value), value === value, debug(value) + ' is abstractly equal to itself'); - }); - st.end(); - }); - - t.test('different types coerce', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](a, b), a == b, debug(a) + ' == ' + debug(b)); - // eslint-disable-next-line eqeqeq - st.equal(ES['Abstract Equality Comparison'](b, a), b == a, debug(b) + ' == ' + debug(a)); - }); - st.end(); - }); - - t.end(); - }); - - test('Strict Equality Comparison', function (t) { - t.test('same types use ===', function (st) { - forEach(v.primitives.concat(v.objects), function (value) { - st.equal(ES['Strict Equality Comparison'](value, value), value === value, debug(value) + ' is strictly equal to itself'); - }); - st.end(); - }); - - t.test('different types are not ===', function (st) { - var pairs = [ - [null, undefined], - [3, '3'], - [true, '3'], - [true, 3], - [false, 0], - [false, '0'], - [3, [3]], - ['3', [3]], - [true, [1]], - [false, [0]], - [String(v.coercibleObject), v.coercibleObject], - [Number(String(v.coercibleObject)), v.coercibleObject], - [Number(v.coercibleObject), v.coercibleObject], - [String(Number(v.coercibleObject)), v.coercibleObject] - ]; - forEach(pairs, function (pair) { - var a = pair[0]; - var b = pair[1]; - st.equal(ES['Strict Equality Comparison'](a, b), a === b, debug(a) + ' === ' + debug(b)); - st.equal(ES['Strict Equality Comparison'](b, a), b === a, debug(b) + ' === ' + debug(a)); - }); - st.end(); - }); - - t.end(); - }); - - test('Abstract Relational Comparison', function (t) { - t.test('at least one operand is NaN', function (st) { - st.equal(ES['Abstract Relational Comparison'](NaN, {}, true), undefined, 'LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, true), undefined, 'LeftFirst: second is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison'](NaN, {}, false), undefined, '!LeftFirst: first is NaN, returns undefined'); - st.equal(ES['Abstract Relational Comparison']({}, NaN, false), undefined, '!LeftFirst: second is NaN, returns undefined'); - st.end(); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES['Abstract Relational Comparison'](3, 4, nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach(v.zeroes, function (zero) { - t.equal(ES['Abstract Relational Comparison'](zero, 1, true), true, 'LeftFirst: ' + debug(zero) + ' is less than 1'); - t.equal(ES['Abstract Relational Comparison'](zero, 1, false), true, '!LeftFirst: ' + debug(zero) + ' is less than 1'); - t.equal(ES['Abstract Relational Comparison'](1, zero, true), false, 'LeftFirst: 1 is not less than ' + debug(zero)); - t.equal(ES['Abstract Relational Comparison'](1, zero, false), false, '!LeftFirst: 1 is not less than ' + debug(zero)); - - t.equal(ES['Abstract Relational Comparison'](zero, zero, true), false, 'LeftFirst: ' + debug(zero) + ' is not less than ' + debug(zero)); - t.equal(ES['Abstract Relational Comparison'](zero, zero, false), false, '!LeftFirst: ' + debug(zero) + ' is not less than ' + debug(zero)); - }); - - t.equal(ES['Abstract Relational Comparison'](Infinity, -Infinity, true), false, 'LeftFirst: ∞ is not less than -∞'); - t.equal(ES['Abstract Relational Comparison'](Infinity, -Infinity, false), false, '!LeftFirst: ∞ is not less than -∞'); - t.equal(ES['Abstract Relational Comparison'](-Infinity, Infinity, true), true, 'LeftFirst: -∞ is less than ∞'); - t.equal(ES['Abstract Relational Comparison'](-Infinity, Infinity, false), true, '!LeftFirst: -∞ is less than ∞'); - t.equal(ES['Abstract Relational Comparison'](-Infinity, 0, true), true, 'LeftFirst: -∞ is less than +0'); - t.equal(ES['Abstract Relational Comparison'](-Infinity, 0, false), true, '!LeftFirst: -∞ is less than +0'); - t.equal(ES['Abstract Relational Comparison'](0, -Infinity, true), false, 'LeftFirst: +0 is not less than -∞'); - t.equal(ES['Abstract Relational Comparison'](0, -Infinity, false), false, '!LeftFirst: +0 is not less than -∞'); - - t.equal(ES['Abstract Relational Comparison'](3, 4, true), true, 'LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, true), false, 'LeftFirst: 3 is not less than 4'); - t.equal(ES['Abstract Relational Comparison'](3, 4, false), true, '!LeftFirst: 3 is less than 4'); - t.equal(ES['Abstract Relational Comparison'](4, 3, false), false, '!LeftFirst: 3 is not less than 4'); - - t.equal(ES['Abstract Relational Comparison']('3', '4', true), true, 'LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', true), false, 'LeftFirst: "3" is not less than "4"'); - t.equal(ES['Abstract Relational Comparison']('3', '4', false), true, '!LeftFirst: "3" is less than "4"'); - t.equal(ES['Abstract Relational Comparison']('4', '3', false), false, '!LeftFirst: "3" is not less than "4"'); - - t.equal(ES['Abstract Relational Comparison']('a', 'abc', true), true, 'LeftFirst: "a" is less than "abc"'); - t.equal(ES['Abstract Relational Comparison']('abc', 'a', true), false, 'LeftFirst: "abc" is not less than "a"'); - t.equal(ES['Abstract Relational Comparison']('a', 'abc', false), true, '!LeftFirst: "a" is less than "abc"'); - t.equal(ES['Abstract Relational Comparison']('abc', 'a', false), false, '!LeftFirst: "abc" is not less than "a"'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, true), true, 'LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, true), false, 'LeftFirst: 42 is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, 42, false), true, '!LeftFirst: coercible object is less than 42'); - t.equal(ES['Abstract Relational Comparison'](42, v.coercibleObject, false), false, '!LeftFirst: 42 is not less than coercible object'); - - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', true), false, 'LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, true), false, 'LeftFirst: "3" is not less than coercible object'); - t.equal(ES['Abstract Relational Comparison'](v.coercibleObject, '3', false), false, '!LeftFirst: coercible object is not less than "3"'); - t.equal(ES['Abstract Relational Comparison']('3', v.coercibleObject, false), false, '!LeftFirst: "3" is not less than coercible object'); - - t.end(); - }); - - test('SecFromTime', function (t) { - var now = new Date(); - t.equal(ES.SecFromTime(now.getTime()), now.getUTCSeconds(), 'second from Date timestamp matches getUTCSeconds'); - t.end(); - }); - - test('MinFromTime', function (t) { - var now = new Date(); - t.equal(ES.MinFromTime(now.getTime()), now.getUTCMinutes(), 'minute from Date timestamp matches getUTCMinutes'); - t.end(); - }); - - test('HourFromTime', function (t) { - var now = new Date(); - t.equal(ES.HourFromTime(now.getTime()), now.getUTCHours(), 'hour from Date timestamp matches getUTCHours'); - t.end(); - }); - - test('msFromTime', function (t) { - var now = new Date(); - t.equal(ES.msFromTime(now.getTime()), now.getUTCMilliseconds(), 'ms from Date timestamp matches getUTCMilliseconds'); - t.end(); - }); - - var msPerSecond = 1e3; - var msPerMinute = 60 * msPerSecond; - var msPerHour = 60 * msPerMinute; - var msPerDay = 24 * msPerHour; - - test('Day', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.Day(later.getTime()), ES.Day(time) + Math.floor(add), 'adding 2.5 days worth of ms, gives a Day delta of 2'); - t.end(); - }); - - test('DayFromYear', function (t) { - t.equal(ES.DayFromYear(2021) - ES.DayFromYear(2020), 366, '2021 is a leap year, has 366 days'); - t.equal(ES.DayFromYear(2020) - ES.DayFromYear(2019), 365, '2020 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2019) - ES.DayFromYear(2018), 365, '2019 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2018) - ES.DayFromYear(2017), 365, '2018 is not a leap year, has 365 days'); - t.equal(ES.DayFromYear(2017) - ES.DayFromYear(2016), 366, '2017 is a leap year, has 366 days'); - - t.end(); - }); - - test('TimeWithinDay', function (t) { - var time = Date.UTC(2019, 8, 10, 2, 3, 4, 5); - var add = 2.5; - var later = new Date(time + (add * msPerDay)); - - t.equal(ES.TimeWithinDay(later.getTime()), ES.TimeWithinDay(time) + (0.5 * msPerDay), 'adding 2.5 days worth of ms, gives a TimeWithinDay delta of +0.5'); - t.end(); - }); - - test('TimeFromYear', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.TimeFromYear(i), Date.UTC(i, 0, 1), 'TimeFromYear matches a Date object’s year: ' + i); - } - t.end(); - }); - - test('YearFromTime', function (t) { - for (var i = 1900; i < 2100; i += 1) { - t.equal(ES.YearFromTime(Date.UTC(i, 0, 1)), i, 'YearFromTime matches a Date object’s year on 1/1: ' + i); - t.equal(ES.YearFromTime(Date.UTC(i, 10, 1)), i, 'YearFromTime matches a Date object’s year on 10/1: ' + i); - } - t.end(); - }); - - test('WeekDay', function (t) { - var now = new Date(); - var today = now.getUTCDay(); - for (var i = 0; i < 7; i += 1) { - var weekDay = ES.WeekDay(now.getTime() + (i * msPerDay)); - t.equal(weekDay, (today + i) % 7, i + ' days after today (' + today + '), WeekDay is ' + weekDay); - } - t.end(); - }); - - test('DaysInYear', function (t) { - t.equal(ES.DaysInYear(2021), 365, '2021 is not a leap year'); - t.equal(ES.DaysInYear(2020), 366, '2020 is a leap year'); - t.equal(ES.DaysInYear(2019), 365, '2019 is not a leap year'); - t.equal(ES.DaysInYear(2018), 365, '2018 is not a leap year'); - t.equal(ES.DaysInYear(2017), 365, '2017 is not a leap year'); - t.equal(ES.DaysInYear(2016), 366, '2016 is a leap year'); - t.equal(ES.DaysInYear(2000), 366, '2000 is a leap year'); - t.equal(ES.DaysInYear(1900), 365, '1900 is not a leap year'); - - t.end(); - }); - - test('InLeapYear', function (t) { - t.equal(ES.InLeapYear(Date.UTC(2021, 0, 1)), 0, '2021 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2020, 0, 1)), 1, '2020 is a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2019, 0, 1)), 0, '2019 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2018, 0, 1)), 0, '2018 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2017, 0, 1)), 0, '2017 is not a leap year'); - t.equal(ES.InLeapYear(Date.UTC(2016, 0, 1)), 1, '2016 is a leap year'); - - t.end(); - }); - - test('DayWithinYear', function (t) { - t.equal(ES.DayWithinYear(Date.UTC(2019, 0, 1)), 0, '1/1 is the 1st day'); - t.equal(ES.DayWithinYear(Date.UTC(2019, 11, 31)), 364, '12/31 is the 365th day in a non leap year'); - t.equal(ES.DayWithinYear(Date.UTC(2016, 11, 31)), 365, '12/31 is the 366th day in a leap year'); - - t.end(); - }); - - test('MonthFromTime', function (t) { - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 1)), 0, 'non-leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 0, 31)), 0, 'non-leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 1)), 1, 'non-leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 28)), 1, 'non-leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 1, 29)), 2, 'non-leap: 2/29 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 1)), 2, 'non-leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 2, 31)), 2, 'non-leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 1)), 3, 'non-leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 3, 30)), 3, 'non-leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 1)), 4, 'non-leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 4, 31)), 4, 'non-leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 1)), 5, 'non-leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 5, 30)), 5, 'non-leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 1)), 6, 'non-leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 6, 31)), 6, 'non-leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 1)), 7, 'non-leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 7, 30)), 7, 'non-leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 1)), 8, 'non-leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 8, 30)), 8, 'non-leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 1)), 9, 'non-leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 9, 31)), 9, 'non-leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 1)), 10, 'non-leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 10, 30)), 10, 'non-leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 1)), 11, 'non-leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2019, 11, 31)), 11, 'non-leap: 12/31 gives December'); - - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 1)), 0, 'leap: 1/1 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 0, 31)), 0, 'leap: 1/31 gives January'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 1)), 1, 'leap: 2/1 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 28)), 1, 'leap: 2/28 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 1, 29)), 1, 'leap: 2/29 gives February'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 1)), 2, 'leap: 3/1 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 2, 31)), 2, 'leap: 3/31 gives March'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 1)), 3, 'leap: 4/1 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 3, 30)), 3, 'leap: 4/30 gives April'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 1)), 4, 'leap: 5/1 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 4, 31)), 4, 'leap: 5/31 gives May'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 1)), 5, 'leap: 6/1 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 5, 30)), 5, 'leap: 6/30 gives June'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 1)), 6, 'leap: 7/1 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 6, 31)), 6, 'leap: 7/31 gives July'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 1)), 7, 'leap: 8/1 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 7, 30)), 7, 'leap: 8/30 gives August'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 1)), 8, 'leap: 9/1 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 8, 30)), 8, 'leap: 9/30 gives September'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 1)), 9, 'leap: 10/1 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 9, 31)), 9, 'leap: 10/31 gives October'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 1)), 10, 'leap: 11/1 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 10, 30)), 10, 'leap: 11/30 gives November'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 1)), 11, 'leap: 12/1 gives December'); - t.equal(ES.MonthFromTime(Date.UTC(2016, 11, 31)), 11, 'leap: 12/31 gives December'); - t.end(); - }); - - test('DateFromTime', function (t) { - var i; - for (i = 1; i <= 28; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 1, i)), i, '2019.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 29; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2016, 1, i)), i, '2016.02.' + i + ' is date ' + i); - } - for (i = 1; i <= 30; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 2, i)), i, '2019.03.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 3, i)), i, '2019.04.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 5, i)), i, '2019.06.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 7, i)), i, '2019.08.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 8, i)), i, '2019.09.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 10, i)), i, '2019.11.' + i + ' is date ' + i); - } - for (i = 1; i <= 31; i += 1) { - t.equal(ES.DateFromTime(Date.UTC(2019, 0, i)), i, '2019.01.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 4, i)), i, '2019.05.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 6, i)), i, '2019.07.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 9, i)), i, '2019.10.' + i + ' is date ' + i); - t.equal(ES.DateFromTime(Date.UTC(2019, 11, i)), i, '2019.12.' + i + ' is date ' + i); - } - t.end(); - }); - - test('MakeDay', function (t) { - forEach([NaN, Infinity, -Infinity], function (nonFiniteNumber) { - t.equal(ES.MakeDay(nonFiniteNumber, 0, 0), NaN, 'year: ' + debug(nonFiniteNumber) + ' is not finite'); - t.equal(ES.MakeDay(0, nonFiniteNumber, 0), NaN, 'month: ' + debug(nonFiniteNumber) + ' is not finite'); - t.equal(ES.MakeDay(0, 0, nonFiniteNumber), NaN, 'date: ' + debug(nonFiniteNumber) + ' is not finite'); - }); - - var day2015 = 16687; - t.equal(ES.MakeDay(2015, 8, 9), day2015, '2015.09.09 is day 16687'); - var day2016 = day2015 + 366; // 2016 is a leap year - t.equal(ES.MakeDay(2016, 8, 9), day2016, '2015.09.09 is day 17053'); - var day2017 = day2016 + 365; - t.equal(ES.MakeDay(2017, 8, 9), day2017, '2017.09.09 is day 17418'); - var day2018 = day2017 + 365; - t.equal(ES.MakeDay(2018, 8, 9), day2018, '2018.09.09 is day 17783'); - var day2019 = day2018 + 365; - t.equal(ES.MakeDay(2019, 8, 9), day2019, '2019.09.09 is day 18148'); - - t.end(); - }); - - test('MakeDate', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.equal(ES.MakeDate(nonFiniteNumber, 0), NaN, debug(nonFiniteNumber) + ' is not a finite `day`'); - t.equal(ES.MakeDate(0, nonFiniteNumber), NaN, debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.equal(ES.MakeDate(0, 0), 0, 'zero day and zero time is zero date'); - t.equal(ES.MakeDate(0, 123), 123, 'zero day and nonzero time is a date of the "time"'); - t.equal(ES.MakeDate(1, 0), msPerDay, 'day of 1 and zero time is a date of "ms per day"'); - t.equal(ES.MakeDate(3, 0), 3 * msPerDay, 'day of 3 and zero time is a date of thrice "ms per day"'); - t.equal(ES.MakeDate(1, 123), msPerDay + 123, 'day of 1 and nonzero time is a date of "ms per day" plus the "time"'); - t.equal(ES.MakeDate(3, 123), (3 * msPerDay) + 123, 'day of 3 and nonzero time is a date of thrice "ms per day" plus the "time"'); - - t.end(); - }); - - test('MakeTime', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.equal(ES.MakeTime(nonFiniteNumber, 0, 0, 0), NaN, debug(nonFiniteNumber) + ' is not a finite `hour`'); - t.equal(ES.MakeTime(0, nonFiniteNumber, 0, 0), NaN, debug(nonFiniteNumber) + ' is not a finite `min`'); - t.equal(ES.MakeTime(0, 0, nonFiniteNumber, 0), NaN, debug(nonFiniteNumber) + ' is not a finite `sec`'); - t.equal(ES.MakeTime(0, 0, 0, nonFiniteNumber), NaN, debug(nonFiniteNumber) + ' is not a finite `ms`'); - }); - - t.equal( - ES.MakeTime(1.2, 2.3, 3.4, 4.5), - (1 * msPerHour) + (2 * msPerMinute) + (3 * msPerSecond) + 4, - 'all numbers are converted to integer, multiplied by the right number of ms, and summed' - ); - - t.end(); - }); - - test('TimeClip', function (t) { - forEach(v.infinities.concat(NaN), function (nonFiniteNumber) { - t.equal(ES.TimeClip(nonFiniteNumber), NaN, debug(nonFiniteNumber) + ' is not a finite `time`'); - }); - t.equal(ES.TimeClip(8.64e15 + 1), NaN, '8.64e15 is the largest magnitude considered "finite"'); - t.equal(ES.TimeClip(-8.64e15 - 1), NaN, '-8.64e15 is the largest magnitude considered "finite"'); - - forEach(v.zeroes.concat([-10, 10, +new Date()]), function (time) { - t.looseEqual(ES.TimeClip(time), time, debug(time) + ' is a time of ' + debug(time)); - }); - - t.end(); - }); - - test('modulo', function (t) { - t.equal(3 % 2, 1, '+3 % 2 is +1'); - t.equal(ES.modulo(3, 2), 1, '+3 mod 2 is +1'); - - t.equal(-3 % 2, -1, '-3 % 2 is -1'); - t.equal(ES.modulo(-3, 2), 1, '-3 mod 2 is +1'); - t.end(); - }); -}; - -var es2015 = function ES2015(ES, ops, expectedMissing, skips) { - es5(ES, ops, expectedMissing, assign(assign({}, skips), { - CheckObjectCoercible: true, - FromPropertyDescriptor: true, - ToNumber: true, - ToString: true, - Type: true - })); - var test = makeTest(skips); - - var getNamelessFunction = function () { - var f = Object(function () {}); - try { - delete f.name; - } catch (e) { /**/ } - return f; - }; - - test('AdvanceStringIndex', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.AdvanceStringIndex(nonString); }, - TypeError, - '"S" argument must be a String; ' + debug(nonString) + ' is not' - ); - }); - - var notInts = v.nonNumbers.concat( - v.nonIntegerNumbers, - v.infinities, - [NaN, [], new Date(), Math.pow(2, 53), -1] - ); - forEach(notInts, function (nonInt) { - t['throws']( - function () { ES.AdvanceStringIndex('abc', nonInt); }, - TypeError, - '"index" argument must be an integer, ' + debug(nonInt) + ' is not.' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.AdvanceStringIndex('abc', 0, nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - var str = 'a' + wholePoo + 'c'; - - t.test('non-unicode mode', function (st) { - for (var i = 0; i < str.length + 2; i += 1) { - st.equal(ES.AdvanceStringIndex(str, i, false), i + 1, i + ' advances to ' + (i + 1)); - } - - st.end(); - }); - - t.test('unicode mode', function (st) { - st.equal(ES.AdvanceStringIndex(str, 0, true), 1, '0 advances to 1'); - st.equal(ES.AdvanceStringIndex(str, 1, true), 3, '1 advances to 3'); - st.equal(ES.AdvanceStringIndex(str, 2, true), 3, '2 advances to 3'); - st.equal(ES.AdvanceStringIndex(str, 3, true), 4, '3 advances to 4'); - st.equal(ES.AdvanceStringIndex(str, 4, true), 5, '4 advances to 5'); - - st.end(); - }); - - t.test('lone surrogates', function (st) { - var halfPoo = 'a' + leadingPoo + 'c'; - - st.equal(ES.AdvanceStringIndex(halfPoo, 0, true), 1, '0 advances to 1'); - st.equal(ES.AdvanceStringIndex(halfPoo, 1, true), 2, '1 advances to 2'); - st.equal(ES.AdvanceStringIndex(halfPoo, 2, true), 3, '2 advances to 3'); - st.equal(ES.AdvanceStringIndex(halfPoo, 3, true), 4, '3 advances to 4'); - - st.end(); - }); - - t.test('surrogate pairs', function (st) { - var lowestPair = String.fromCharCode('0xD800') + String.fromCharCode('0xDC00'); - var highestPair = String.fromCharCode('0xDBFF') + String.fromCharCode('0xDFFF'); - - st.equal(ES.AdvanceStringIndex(lowestPair, 0, true), 2, 'lowest surrogate pair, 0 -> 2'); - st.equal(ES.AdvanceStringIndex(highestPair, 0, true), 2, 'highest surrogate pair, 0 -> 2'); - st.equal(ES.AdvanceStringIndex(wholePoo, 0, true), 2, 'poop, 0 -> 2'); - - st.end(); - }); - - t.end(); - }); - - test('ArrayCreate', function (t) { - forEach(v.nonIntegerNumbers.concat([-1]), function (nonIntegerNumber) { - t['throws']( - function () { ES.ArrayCreate(nonIntegerNumber); }, - TypeError, - 'length must be an integer number >= 0' - ); - }); - - t['throws']( - function () { ES.ArrayCreate(Math.pow(2, 32)); }, - RangeError, - 'length must be < 2**32' - ); - - t.deepEqual(ES.ArrayCreate(-0), [], 'length of -0 creates an empty array'); - t.deepEqual(ES.ArrayCreate(0), [], 'length of +0 creates an empty array'); - // eslint-disable-next-line no-sparse-arrays, comma-spacing - t.deepEqual(ES.ArrayCreate(1), [,], 'length of 1 creates a sparse array of length 1'); - // eslint-disable-next-line no-sparse-arrays, comma-spacing - t.deepEqual(ES.ArrayCreate(2), [,,], 'length of 2 creates a sparse array of length 2'); - - t.test('proto argument', { skip: !$setProto }, function (st) { - var fakeProto = { - push: { toString: function () { return 'not array push'; } } - }; - st.equal(ES.ArrayCreate(0, fakeProto).push, fakeProto.push, 'passing the proto argument works'); - st.end(); - }); - - t.end(); - }); - - test('ArraySetLength', function (t) { - forEach(v.primitives.concat(v.objects), function (nonArray) { - t['throws']( - function () { ES.ArraySetLength(nonArray, { '[[Value]]': 0 }); }, - TypeError, - 'A: ' + debug(nonArray) + ' is not an Array' - ); - }); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.ArraySetLength([], primitive); }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.test('making length nonwritable', { skip: !getOwnPropertyDescriptor }, function (st) { - var a = []; - ES.ArraySetLength(a, { '[[Writable]]': false }); - st.deepEqual( - getOwnPropertyDescriptor(a, 'length'), - { - configurable: false, - enumerable: false, - value: 0, - writable: false - }, - 'without a value, length becomes nonwritable' - ); - st.end(); - }); - - forEach([-1, Math.pow(2, 32)].concat(v.nonIntegerNumbers), function (nonLength) { - t['throws']( - function () { ES.ArraySetLength([], { '[[Value]]': nonLength }); }, - RangeError, - 'a non-integer, negative, or > (2**31 - 1) is not a valid length: ' + debug(nonLength) - ); - }); - - var arr = []; - ES.ArraySetLength(arr, { '[[Value]]': 7 }); - t.equal(arr.length, 7, 'array now has a length of 7'); - - t.end(); - }); - - test('ArraySpeciesCreate', function (t) { - t.test('errors', function (st) { - var testNonNumber = function (nonNumber) { - st['throws']( - function () { ES.ArraySpeciesCreate([], nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a number' - ); - }; - forEach(v.nonNumbers, testNonNumber); - - st['throws']( - function () { ES.ArraySpeciesCreate([], -1); }, - TypeError, - '-1 is not >= 0' - ); - st['throws']( - function () { ES.ArraySpeciesCreate([], -Infinity); }, - TypeError, - '-Infinity is not >= 0' - ); - - var testNonIntegers = function (nonInteger) { - st['throws']( - function () { ES.ArraySpeciesCreate([], nonInteger); }, - TypeError, - debug(nonInteger) + ' is not an integer' - ); - }; - forEach(v.nonIntegerNumbers, testNonIntegers); - - st.end(); - }); - - t.test('works with a non-array', function (st) { - forEach(v.objects.concat(v.primitives), function (nonArray) { - var arr = ES.ArraySpeciesCreate(nonArray, 0); - st.ok(ES.IsArray(arr), 'is an array'); - st.equal(arr.length, 0, 'length is correct'); - st.equal(arr.constructor, Array, 'constructor is correct'); - }); - - st.end(); - }); - - t.test('works with a normal array', function (st) { - var len = 2; - var orig = [1, 2, 3]; - var arr = ES.ArraySpeciesCreate(orig, len); - - st.ok(ES.IsArray(arr), 'is an array'); - st.equal(arr.length, len, 'length is correct'); - st.equal(arr.constructor, orig.constructor, 'constructor is correct'); - - st.end(); - }); - - t.test('-0 length produces +0 length', function (st) { - var len = -0; - st.equal(len, -0, '-0 is negative zero'); - st.notEqual(len, 0, '-0 is not positive zero'); - - var orig = [1, 2, 3]; - var arr = ES.ArraySpeciesCreate(orig, len); - - st.equal(ES.IsArray(arr), true); - st.equal(arr.length, 0); - st.equal(arr.constructor, orig.constructor); - - st.end(); - }); - - t.test('works with species construtor', { skip: !hasSpecies }, function (st) { - var sentinel = {}; - var Foo = function Foo(len) { - this.length = len; - this.sentinel = sentinel; - }; - var Bar = getArraySubclassWithSpeciesConstructor(Foo); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Foo, 'result used species constructor'); - st.equal(arr.length, 3, 'length property is correct'); - st.equal(arr.sentinel, sentinel, 'Foo constructor was exercised'); - - st.end(); - }); - - t.test('works with null species constructor', { skip: !hasSpecies }, function (st) { - var Bar = getArraySubclassWithSpeciesConstructor(null); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Array, 'result used default constructor'); - st.equal(arr.length, 3, 'length property is correct'); - - st.end(); - }); - - t.test('works with undefined species constructor', { skip: !hasSpecies }, function (st) { - var Bar = getArraySubclassWithSpeciesConstructor(); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - var arr = ES.ArraySpeciesCreate(bar, 3); - st.equal(arr.constructor, Array, 'result used default constructor'); - st.equal(arr.length, 3, 'length property is correct'); - - st.end(); - }); - - t.test('throws with object non-construtor species constructor', { skip: !hasSpecies }, function (st) { - forEach(v.objects, function (obj) { - var Bar = getArraySubclassWithSpeciesConstructor(obj); - var bar = new Bar(); - - st.equal(ES.IsArray(bar), true, 'Bar instance is an array'); - - st['throws']( - function () { ES.ArraySpeciesCreate(bar, 3); }, - TypeError, - debug(obj) + ' is not a constructor' - ); - }); - - st.end(); - }); - - t.end(); - }); - - test('Call', function (t) { - var receiver = {}; - var notFuncs = v.nonFunctions.concat([/a/g, new RegExp('a', 'g')]); - t.plan(notFuncs.length + v.nonArrays.length + 5); - - forEach(notFuncs, function (notFunc) { - t['throws']( - function () { return ES.Call(notFunc, receiver); }, - TypeError, - debug(notFunc) + ' (' + typeof notFunc + ') is not callable' - ); - }); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.Call(Function.prototype, null, nonArray); }, - TypeError, - debug(nonArray) + ' is not an array' - ); - }); - - ES.Call( - function (a, b) { - t.equal(this, receiver, 'context matches expected'); - t.deepEqual([a, b], [1, 2], 'named args are correct'); - t.equal(arguments.length, 3, 'extra argument was passed'); - t.equal(arguments[2], 3, 'extra argument was correct'); - }, - receiver, - [1, 2, 3] - ); - - t.test('Call doesn’t use func.apply', function (st) { - st.plan(4); - - var bad = function (a, b) { - st.equal(this, receiver, 'context matches expected'); - st.deepEqual([a, b], [1, 2], 'named args are correct'); - st.equal(arguments.length, 3, 'extra argument was passed'); - st.equal(arguments[2], 3, 'extra argument was correct'); - }; - - defineProperty(bad, 'apply', { - value: function () { - st.fail('bad.apply shouldn’t get called'); - } - }); - - ES.Call(bad, receiver, [1, 2, 3]); - st.end(); - }); - - t.end(); - }); - - test('CanonicalNumericIndexString', function (t) { - var throwsOnNonString = function (notString) { - t['throws']( - function () { return ES.CanonicalNumericIndexString(notString); }, - TypeError, - debug(notString) + ' is not a string' - ); - }; - forEach(v.objects.concat(v.numbers), throwsOnNonString); - t.equal(ES.CanonicalNumericIndexString('-0'), -0, '"-0" returns -0'); - for (var i = -50; i < 50; i += 10) { - t.equal(i, ES.CanonicalNumericIndexString(String(i)), '"' + i + '" returns ' + i); - t.equal(undefined, ES.CanonicalNumericIndexString(String(i) + 'a'), '"' + i + 'a" returns undefined'); - } - t.end(); - }); - - test('CompletePropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.CompletePropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var generic = v.genericDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(generic), - { - '[[Configurable]]': !!generic['[[Configurable]]'], - '[[Enumerable]]': !!generic['[[Enumerable]]'], - '[[Value]]': undefined, - '[[Writable]]': false - }, - 'completes a Generic Descriptor' - ); - - var data = v.dataDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(data), - { - '[[Configurable]]': !!data['[[Configurable]]'], - '[[Enumerable]]': false, - '[[Value]]': data['[[Value]]'], - '[[Writable]]': !!data['[[Writable]]'] - }, - 'completes a Data Descriptor' - ); - - var accessor = v.accessorDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(accessor), - { - '[[Get]]': accessor['[[Get]]'], - '[[Enumerable]]': !!accessor['[[Enumerable]]'], - '[[Configurable]]': !!accessor['[[Configurable]]'], - '[[Set]]': undefined - }, - 'completes an Accessor Descriptor' - ); - - var mutator = v.mutatorDescriptor(); - t.deepEqual( - ES.CompletePropertyDescriptor(mutator), - { - '[[Set]]': mutator['[[Set]]'], - '[[Enumerable]]': !!mutator['[[Enumerable]]'], - '[[Configurable]]': !!mutator['[[Configurable]]'], - '[[Get]]': undefined - }, - 'completes a mutator Descriptor' - ); - - t['throws']( - function () { ES.CompletePropertyDescriptor(v.bothDescriptor()); }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t.end(); - }); - - test('CreateDataProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateDataProperty(primitive); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateDataProperty({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a property key' - ); - }); - - var sentinel = { id: 'sentinel' }; - var secondSentinel = { id: 'second sentinel' }; - forEach(v.propertyKeys, function (propertyKey) { - var obj = {}; - var status = ES.CreateDataProperty(obj, propertyKey, sentinel); - t.equal(status, true, 'status is true'); - t.equal( - obj[propertyKey], - sentinel, - debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - var secondStatus = ES.CreateDataProperty(obj, propertyKey, secondSentinel); - t.equal(secondStatus, true, 'second status is true'); - t.equal( - obj[propertyKey], - secondSentinel, - debug(secondSentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - - t.test('with defineProperty', { skip: !defineProperty.oDP }, function (st) { - var nonWritable = defineProperty({}, propertyKey, { configurable: true, writable: false }); - - var nonWritableStatus = ES.CreateDataProperty(nonWritable, propertyKey, sentinel); - st.equal(nonWritableStatus, false, 'create data property failed'); - st.notEqual( - nonWritable[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonwritable' - ); - - var nonConfigurable = defineProperty({}, propertyKey, { configurable: false, writable: true }); - - var nonConfigurableStatus = ES.CreateDataProperty(nonConfigurable, propertyKey, sentinel); - st.equal(nonConfigurableStatus, false, 'create data property failed'); - st.notEqual( - nonConfigurable[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object when key is nonconfigurable' - ); - st.end(); - }); - }); - - t.end(); - }); - - test('CreateDataPropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateDataPropertyOrThrow(primitive); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateDataPropertyOrThrow({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a property key' - ); - }); - - var sentinel = {}; - forEach(v.propertyKeys, function (propertyKey) { - var obj = {}; - var status = ES.CreateDataPropertyOrThrow(obj, propertyKey, sentinel); - t.equal(status, true, 'status is true'); - t.equal( - obj[propertyKey], - sentinel, - debug(sentinel) + ' is installed on "' + debug(propertyKey) + '" on the object' - ); - - if (typeof Object.preventExtensions === 'function') { - var notExtensible = {}; - Object.preventExtensions(notExtensible); - - t['throws']( - function () { ES.CreateDataPropertyOrThrow(notExtensible, propertyKey, sentinel); }, - TypeError, - 'can not install ' + debug(propertyKey) + ' on non-extensible object' - ); - t.notEqual( - notExtensible[propertyKey], - sentinel, - debug(sentinel) + ' is not installed on "' + debug(propertyKey) + '" on the object' - ); - } - }); - - t.end(); - }); - - test('CreateListFromArrayLike', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.CreateListFromArrayLike(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - }); - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.CreateListFromArrayLike({}, nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - t.deepEqual( - ES.CreateListFromArrayLike({ length: 2, 0: 'a', 1: 'b', 2: 'c' }), - ['a', 'b'], - 'arraylike stops at the length' - ); - - t.end(); - }); - - test('CreateHTML', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.CreateHTML('', nonString, '', ''); }, - TypeError, - 'tag: ' + debug(nonString) + ' is not a String' - ); - t['throws']( - function () { ES.CreateHTML('', '', nonString, ''); }, - TypeError, - 'attribute: ' + debug(nonString) + ' is not a String' - ); - }); - - t.equal( - ES.CreateHTML( - { toString: function () { return 'the string'; } }, - 'some HTML tag!', - '' - ), - 'the string', - 'works with an empty string attribute value' - ); - - t.equal( - ES.CreateHTML( - { toString: function () { return 'the string'; } }, - 'some HTML tag!', - 'attr', - 'value "with quotes"' - ), - 'the string', - 'works with an attribute, and a value with quotes' - ); - - t.end(); - }); - - test('CreateMethodProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.CreateMethodProperty(primitive, 'key'); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.CreateMethodProperty({}, nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = {}; - var key = 'the key'; - var value = { foo: 'bar' }; - - st.equal(ES.CreateMethodProperty(obj, key, value), true, 'defines property successfully'); - st.test('property descriptor', { skip: !getOwnPropertyDescriptor }, function (s2t) { - s2t.deepEqual( - getOwnPropertyDescriptor(obj, key), - { - configurable: true, - enumerable: false, - value: value, - writable: true - }, - 'sets the correct property descriptor' - ); - - s2t.end(); - }); - st.equal(obj[key], value, 'sets the correct value'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { ES.CreateMethodProperty(obj, 'foo', { value: 'baz' }); }, - TypeError, - 'nonconfigurable key can not be defined' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { ES.CreateMethodProperty(function () {}, 'name', { value: 'baz' }); }, - TypeError, - 'nonconfigurable function name can not be defined' - ); - st.end(); - }); - - t.end(); - }); - - test('CreateIterResultObject', function (t) { - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.CreateIterResultObject({}, nonBoolean); }, - TypeError, - '"done" argument must be a boolean; ' + debug(nonBoolean) + ' is not' - ); - }); - - var value = {}; - t.deepEqual( - ES.CreateIterResultObject(value, true), - { value: value, done: true }, - 'creates a "done" iteration result' - ); - t.deepEqual( - ES.CreateIterResultObject(value, false), - { value: value, done: false }, - 'creates a "not done" iteration result' - ); - - t.end(); - }); - - test('DefinePropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.DefinePropertyOrThrow(primitive, 'key', {}); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.DefinePropertyOrThrow({}, nonPropertyKey, {}); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = {}; - var key = 'the key'; - var descriptor = { - configurable: true, - enumerable: false, - value: { foo: 'bar' }, - writable: true - }; - - st.equal(ES.DefinePropertyOrThrow(obj, key, descriptor), true, 'defines property successfully'); - st.test('property descriptor', { skip: !getOwnPropertyDescriptor }, function (s2t) { - s2t.deepEqual( - getOwnPropertyDescriptor(obj, key), - descriptor, - 'sets the correct property descriptor' - ); - - s2t.end(); - }); - st.deepEqual(obj[key], descriptor.value, 'sets the correct value'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { - ES.DefinePropertyOrThrow(obj, 'foo', { configurable: true, value: 'baz' }); - }, - TypeError, - 'nonconfigurable key can not be defined' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { - ES.DefinePropertyOrThrow(function () {}, 'name', { configurable: true, value: 'baz' }); - }, - TypeError, - 'nonconfigurable function name can not be defined' - ); - st.end(); - }); - - t.end(); - }); - - test('DeletePropertyOrThrow', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.DeletePropertyOrThrow(primitive, 'key', {}); }, - TypeError, - 'O must be an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.DeletePropertyOrThrow({}, nonPropertyKey, {}); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('defines correctly', function (st) { - var obj = { 'the key': 42 }; - var key = 'the key'; - - st.equal(ES.DeletePropertyOrThrow(obj, key), true, 'deletes property successfully'); - st.equal(key in obj, false, 'key is no longer in the object'); - - st.end(); - }); - - t.test('fails as expected on a frozen object', { skip: !Object.freeze }, function (st) { - var obj = Object.freeze({ foo: 'bar' }); - st['throws']( - function () { ES.DeletePropertyOrThrow(obj, 'foo'); }, - TypeError, - 'nonconfigurable key can not be deleted' - ); - - st.end(); - }); - - t.test('fails as expected on a function with a nonconfigurable name', { skip: !functionsHaveNames || functionsHaveConfigurableNames }, function (st) { - st['throws']( - function () { ES.DeletePropertyOrThrow(function () {}, 'name'); }, - TypeError, - 'nonconfigurable function name can not be deleted' - ); - st.end(); - }); - - t.end(); - }); - - test('EnumerableOwnNames', function (t) { - var obj = testEnumerableOwnNames(t, function (O) { return ES.EnumerableOwnNames(O); }); - - t.deepEqual( - ES.EnumerableOwnNames(obj), - ['own'], - 'returns enumerable own names' - ); - - t.end(); - }); - - test('FromPropertyDescriptor', function (t) { - t.equal(ES.FromPropertyDescriptor(), undefined, 'no value begets undefined'); - t.equal(ES.FromPropertyDescriptor(undefined), undefined, 'undefined value begets undefined'); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - t['throws']( - function () { ES.FromPropertyDescriptor(primitive); }, - TypeError, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var accessor = v.accessorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(accessor), { - get: accessor['[[Get]]'], - enumerable: !!accessor['[[Enumerable]]'], - configurable: !!accessor['[[Configurable]]'] - }); - - var mutator = v.mutatorDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(mutator), { - set: mutator['[[Set]]'], - enumerable: !!mutator['[[Enumerable]]'], - configurable: !!mutator['[[Configurable]]'] - }); - var data = v.dataDescriptor(); - t.deepEqual(ES.FromPropertyDescriptor(data), { - value: data['[[Value]]'], - writable: data['[[Writable]]'] - }); - - t.deepEqual(ES.FromPropertyDescriptor(v.genericDescriptor()), { - enumerable: false, - configurable: true - }); - - var both = v.bothDescriptor(); - t['throws']( - function () { - ES.FromPropertyDescriptor({ get: both['[[Get]]'], value: both['[[Value]]'] }); - }, - TypeError, - 'data and accessor descriptors are mutually exclusive' - ); - - t.end(); - }); - - test('Get', function (t) { - t['throws'](function () { return ES.Get('a', 'a'); }, TypeError, 'Throws a TypeError if `O` is not an Object'); - t['throws'](function () { return ES.Get({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - - var value = {}; - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - var sym = Symbol('sym'); - var obj = {}; - obj[sym] = value; - st.equal(ES.Get(obj, sym), value, 'returns property `P` if it exists on object `O`'); - st.end(); - }); - t.equal(ES.Get({ a: value }, 'a'), value, 'returns property `P` if it exists on object `O`'); - t.end(); - }); - - test('GetIterator', function (t) { - var arr = [1, 2]; - testIterator(t, ES.GetIterator(arr), arr); - - testIterator(t, ES.GetIterator('abc'), 'abc'.split('')); - - var sentinel = {}; - forEach(v.primitives, function (nonObject) { - var method = function () { - return nonObject; - }; - t['throws']( - function () { ES.GetIterator(sentinel, method); }, - TypeError, - debug(nonObject) + ' is not an Object; iterator method must return an Object' - ); - }); - - var i = 0; - var manualMethod = function () { - t.equal(this, sentinel, 'receiver is expected object'); - return { - next: function () { - var value = arr[i]; - i += 1; - return { - done: i > arr.length, - value: value - }; - } - }; - }; - testIterator(t, ES.GetIterator(sentinel, manualMethod), arr); - - t.test('Symbol.iterator', { skip: !v.hasSymbols }, function (st) { - var m = new Map(); - m.set(1, 'a'); - m.set(2, 'b'); - - testIterator(st, ES.GetIterator(m), [[1, 'a'], [2, 'b']]); - - forEach(v.primitives, function (nonObject) { - var badIterable = {}; - badIterable[Symbol.iterator] = function () { - return nonObject; - }; - st['throws']( - function () { return ES.GetIterator(badIterable); }, - TypeError, - debug(nonObject) + ' is not an Object; iterator method must return an Object' - ); - }); - - st.end(); - }); - - t.end(); - }); - - test('GetMethod', function (t) { - t['throws'](function () { return ES.GetMethod({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - t.equal(ES.GetMethod({}, 'a'), undefined, 'returns undefined in property is undefined'); - t.equal(ES.GetMethod({ a: null }, 'a'), undefined, 'returns undefined if property is null'); - t.equal(ES.GetMethod({ a: undefined }, 'a'), undefined, 'returns undefined if property is undefined'); - var obj = { a: function () {} }; - t['throws'](function () { ES.GetMethod({ a: 'b' }, 'a'); }, TypeError, 'throws TypeError if property exists and is not callable'); - t.equal(ES.GetMethod(obj, 'a'), obj.a, 'returns property if it is callable'); - t.end(); - }); - - test('GetOwnPropertyKeys', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.GetOwnPropertyKeys(primitive, 'String'); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.GetOwnPropertyKeys({}, 'not string or symbol'); }, - TypeError, - 'Type: must be "String" or "Symbol"' - ); - - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - var O = { a: 1 }; - O[Symbol.iterator] = true; - var s = Symbol('test'); - defineProperty(O, s, { enumerable: false, value: true }); - - st.deepEqual( - ES.GetOwnPropertyKeys(O, 'Symbol'), - [Symbol.iterator, s], - 'works with Symbols, enumerable or not' - ); - - st.end(); - }); - - t.test('non-enumerable names', { skip: !defineProperty.oDP }, function (st) { - var O = { a: 1 }; - defineProperty(O, 'b', { enumerable: false, value: 2 }); - if (v.hasSymbols) { - O[Symbol.iterator] = true; - } - - st.deepEqual( - ES.GetOwnPropertyKeys(O, 'String').sort(), - ['a', 'b'].sort(), - 'works with Strings, enumerable or not' - ); - - st.end(); - }); - - t.deepEqual( - ES.GetOwnPropertyKeys({ a: 1, b: 2 }, 'String').sort(), - ['a', 'b'].sort(), - 'works with enumerable keys' - ); - - t.end(); - }); - - test('GetPrototypeFromConstructor', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.GetPrototypeFromConstructor(nonFunction, '%Array%'); }, - TypeError, - debug(nonFunction) + ' is not a constructor' - ); - }); - - forEach(arrowFns, function (arrowFn) { - t['throws']( - function () { ES.GetPrototypeFromConstructor(arrowFn, '%Array%'); }, - TypeError, - debug(arrowFn) + ' is not a constructor' - ); - }); - - var f = function () {}; - t.equal( - ES.GetPrototypeFromConstructor(f, '%Array.prototype%'), - f.prototype, - 'function with normal `prototype` property returns it' - ); - forEach([true, 'foo', 42], function (truthyPrimitive) { - f.prototype = truthyPrimitive; - t.equal( - ES.GetPrototypeFromConstructor(f, '%Array.prototype%'), - Array.prototype, - 'function with non-object `prototype` property (' + debug(truthyPrimitive) + ') returns default intrinsic' - ); - }); - - t.end(); - }); - - test('GetSubstitution', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.GetSubstitution(nonString, '', 0, [], ''); }, - TypeError, - '`matched`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', nonString, 0, [], ''); }, - TypeError, - '`str`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [], nonString); }, - TypeError, - '`replacement`: ' + debug(nonString) + ' is not a String' - ); - - if (canDistinguishSparseFromUndefined || typeof nonString !== 'undefined') { - t['throws']( - function () { ES.GetSubstitution('', '', 0, [nonString], ''); }, - TypeError, - '`captures`: ' + debug([nonString]) + ' is not an Array of strings' - ); - } - }); - - forEach(v.notNonNegativeIntegers, function (nonNonNegativeInteger) { - t['throws']( - function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], ''); }, - TypeError, - '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer' - ); - }); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.GetSubstitution('', '', 0, nonArray, ''); }, - TypeError, - '`captures`: ' + debug(nonArray) + ' is not an Array' - ); - }); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], '123'), - '123', - 'returns the substitution' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '$$2$'), - '$2$', - 'supports $$, and trailing $' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$&<'), - '>abcdef<', - 'supports $&' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$`<'), - '><', - 'supports $` at position 0' - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], '>$`<'), - '>ab<', - 'supports $` at position > 0' - ); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 7, [], ">$'<"), - '><', - "supports $' at a position where there's less than `matched.length` chars left" - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], ">$'<"), - '>ghi<', - "supports $' at a position where there's more than `matched.length` chars left" - ); - - for (var i = 0; i < 100; i += 1) { - var captures = []; - captures[i] = 'test'; - if (i > 0) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i + '<'), - '>undefined<', - 'supports $' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$' + i), - '>undefined', - 'supports $' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i + '<'), - '><', - 'supports $' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$' + i), - '>', - 'supports $' + i + ' at the end of the replacement, with a capture at that index' - ); - } - if (i < 10) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i + '<'), - i === 0 ? '><' : '>undefined<', - 'supports $0' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], '>$0' + i), - i === 0 ? '>' : '>undefined', - 'supports $0' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i + '<'), - '><', - 'supports $0' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, '>$0' + i), - '>', - 'supports $0' + i + ' at the end of the replacement, with a capture at that index' - ); - } - } - - t.end(); - }); - - test('GetV', function (t) { - t['throws'](function () { return ES.GetV({ 7: 7 }, 7); }, TypeError, 'Throws a TypeError if `P` is not a property key'); - var obj = { a: function () {} }; - t.equal(ES.GetV(obj, 'a'), obj.a, 'returns property if it exists'); - t.equal(ES.GetV(obj, 'b'), undefined, 'returns undefiend if property does not exist'); - t.end(); - }); - - test('HasOwnProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.HasOwnProperty(primitive, 'key'); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.HasOwnProperty({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.HasOwnProperty({}, 'toString'), false, 'inherited properties are not own'); - t.equal( - ES.HasOwnProperty({ toString: 1 }, 'toString'), - true, - 'shadowed inherited own properties are own' - ); - t.equal(ES.HasOwnProperty({ a: 1 }, 'a'), true, 'own properties are own'); - - t.end(); - }); - - test('HasProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.HasProperty(primitive, 'key'); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.HasProperty({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.HasProperty({}, 'nope'), false, 'object does not have nonexistent properties'); - t.equal(ES.HasProperty({}, 'toString'), true, 'object has inherited properties'); - t.equal( - ES.HasProperty({ toString: 1 }, 'toString'), - true, - 'object has shadowed inherited own properties' - ); - t.equal(ES.HasProperty({ a: 1 }, 'a'), true, 'object has own properties'); - - t.end(); - }); - - test('InstanceofOperator', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.InstanceofOperator(primitive, function () {}); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.InstanceofOperator({}, nonFunction); }, - TypeError, - debug(nonFunction) + ' is not callable' - ); - }); - - var C = function C() {}; - var D = function D() {}; - - t.equal(ES.InstanceofOperator(new C(), C), true, 'constructor function has an instance of itself'); - t.equal(ES.InstanceofOperator(new D(), C), false, 'constructor/instance mismatch is false'); - t.equal(ES.InstanceofOperator(new C(), D), false, 'instance/constructor mismatch is false'); - t.equal(ES.InstanceofOperator({}, C), false, 'plain object is not an instance of a constructor'); - t.equal(ES.InstanceofOperator({}, Object), true, 'plain object is an instance of Object'); - - t.test('Symbol.hasInstance', { skip: !v.hasSymbols || !Symbol.hasInstance }, function (st) { - st.plan(5); - - var O = {}; - var C2 = function () {}; - st.equal(ES.InstanceofOperator(O, C2), false, 'O is not an instance of C2'); - - defineProperty(C2, Symbol.hasInstance, { - configurable: true, - value: function (obj) { - st.equal(this, C2, 'hasInstance receiver is C2'); - st.equal(obj, O, 'hasInstance argument is O'); - - return {}; // testing coercion to boolean - } - }); - - st.equal(ES.InstanceofOperator(O, C2), true, 'O is now an instance of C2'); - - defineProperty(C2, Symbol.hasInstance, { - configurable: true, - value: undefined - }); - - st.equal(ES.InstanceofOperator(O, C2), false, 'O is no longer an instance of C2'); - - st.end(); - }); - - t.end(); - }); - - test('Invoke', function (t) { - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.Invoke({}, nonKey); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - t['throws']( - function () { ES.Invoke({ o: false }, 'o'); }, - TypeError, - 'fails on a non-function' - ); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.Invoke({}, '', nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - t.test('invoked callback', function (st) { - var aValue = {}; - var bValue = {}; - var obj = { - f: function (a) { - st.equal(arguments.length, 2, '2 args passed'); - st.equal(a, aValue, 'first arg is correct'); - st.equal(arguments[1], bValue, 'second arg is correct'); - } - }; - st.plan(3); - ES.Invoke(obj, 'f', [aValue, bValue]); - }); - - t.end(); - }); - - test('IsArray', function (t) { - t.equal(true, ES.IsArray([]), '[] is array'); - t.equal(false, ES.IsArray({}), '{} is not array'); - t.equal(false, ES.IsArray({ length: 1, 0: true }), 'arraylike object is not array'); - forEach(v.objects.concat(v.primitives), function (value) { - t.equal(false, ES.IsArray(value), debug(value) + ' is not array'); - }); - t.end(); - }); - - test('IsConcatSpreadable', function (t) { - forEach(v.primitives, function (primitive) { - t.equal(ES.IsConcatSpreadable(primitive), false, debug(primitive) + ' is not an Object'); - }); - - var hasSymbolConcatSpreadable = v.hasSymbols && Symbol.isConcatSpreadable; - t.test('Symbol.isConcatSpreadable', { skip: !hasSymbolConcatSpreadable }, function (st) { - forEach(v.falsies, function (falsy) { - var obj = {}; - obj[Symbol.isConcatSpreadable] = falsy; - st.equal( - ES.IsConcatSpreadable(obj), - false, - 'an object with ' + debug(falsy) + ' as Symbol.isConcatSpreadable is not concat spreadable' - ); - }); - - forEach(v.truthies, function (truthy) { - var obj = {}; - obj[Symbol.isConcatSpreadable] = truthy; - st.equal( - ES.IsConcatSpreadable(obj), - true, - 'an object with ' + debug(truthy) + ' as Symbol.isConcatSpreadable is concat spreadable' - ); - }); - - st.end(); - }); - - forEach(v.objects, function (object) { - t.equal( - ES.IsConcatSpreadable(object), - false, - 'non-array without Symbol.isConcatSpreadable is not concat spreadable' - ); - }); - - t.equal(ES.IsConcatSpreadable([]), true, 'arrays are concat spreadable'); - - t.end(); - }); - - test('IsConstructor', function (t) { - t.equal(true, ES.IsConstructor(function () {}), 'function is constructor'); - t.equal(false, ES.IsConstructor(/a/g), 'regex is not constructor'); - forEach(v.objects, function (object) { - t.equal(false, ES.IsConstructor(object), object + ' object is not constructor'); - }); - - try { - var arrow = Function('return () => {}')(); // eslint-disable-line no-new-func - t.equal(ES.IsConstructor(arrow), false, 'arrow function is not constructor'); - } catch (e) { - t.comment('SKIP: arrow function syntax not supported.'); - } - - try { - var foo = Function('return class Foo {}')(); // eslint-disable-line no-new-func - t.equal(ES.IsConstructor(foo), true, 'class is constructor'); - } catch (e) { - t.comment('SKIP: class syntax not supported.'); - } - - if (typeof Reflect !== 'object' || typeof Proxy !== 'function' || has(Proxy, 'prototype')) { - t.comment('SKIP: Proxy is constructor'); - } else { - t.equal(ES.IsConstructor(Proxy), true, 'Proxy is constructor'); - } - - t.end(); - }); - - test('IsExtensible', function (t) { - forEach(v.objects, function (object) { - t.equal(true, ES.IsExtensible(object), debug(object) + ' object is extensible'); - }); - forEach(v.primitives, function (primitive) { - t.equal(false, ES.IsExtensible(primitive), debug(primitive) + ' is not extensible'); - }); - if (Object.preventExtensions) { - t.equal(false, ES.IsExtensible(Object.preventExtensions({})), 'object with extensions prevented is not extensible'); - } - t.end(); - }); - - test('IsPromise', { skip: typeof Promise !== 'function' }, function (t) { - forEach(v.objects.concat(v.primitives), function (nonPromise) { - t.equal(ES.IsPromise(nonPromise), false, debug(nonPromise) + ' is not a Promise'); - }); - - var thenable = { then: Promise.prototype.then }; - t.equal(ES.IsPromise(thenable), false, 'generic thenable is not a Promise'); - - t.equal(ES.IsPromise(Promise.resolve()), true, 'Promise is a Promise'); - - t.end(); - }); - - test('IsPropertyDescriptor', function (t) { - forEach(v.primitives, function (primitive) { - t.equal( - ES.IsPropertyDescriptor(primitive), - false, - debug(primitive) + ' is not a Property Descriptor' - ); - }); - - t.equal(ES.IsPropertyDescriptor({ invalid: true }), false, 'invalid keys not allowed on a Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor({}), true, 'empty object is an incomplete Property Descriptor'); - - t.equal(ES.IsPropertyDescriptor(v.accessorDescriptor()), true, 'accessor descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.mutatorDescriptor()), true, 'mutator descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.dataDescriptor()), true, 'data descriptor is a Property Descriptor'); - t.equal(ES.IsPropertyDescriptor(v.genericDescriptor()), true, 'generic descriptor is a Property Descriptor'); - - t['throws']( - function () { ES.IsPropertyDescriptor(v.bothDescriptor()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t['throws']( - function () { ES.IsPropertyDescriptor(v.bothDescriptorWritable()); }, - TypeError, - 'a Property Descriptor can not be both a Data and an Accessor Descriptor' - ); - - t.end(); - }); - - test('IsPropertyKey', function (t) { - forEach(v.numbers.concat(v.objects), function (notKey) { - t.equal(false, ES.IsPropertyKey(notKey), debug(notKey) + ' is not property key'); - }); - - t.equal(true, ES.IsPropertyKey('foo'), 'string is property key'); - - forEach(v.symbols, function (symbol) { - t.equal(true, ES.IsPropertyKey(symbol), debug(symbol) + ' is property key'); - }); - t.end(); - }); - - test('IsRegExp', function (t) { - forEach([/a/g, new RegExp('a', 'g')], function (regex) { - t.equal(true, ES.IsRegExp(regex), regex + ' is regex'); - }); - - forEach(v.objects.concat(v.primitives), function (nonRegex) { - t.equal(false, ES.IsRegExp(nonRegex), debug(nonRegex) + ' is not regex'); - }); - - t.test('Symbol.match', { skip: !v.hasSymbols || !Symbol.match }, function (st) { - var obj = {}; - obj[Symbol.match] = true; - st.equal(true, ES.IsRegExp(obj), 'object with truthy Symbol.match is regex'); - - var regex = /a/; - defineProperty(regex, Symbol.match, { value: false }); - st.equal(false, ES.IsRegExp(regex), 'regex with falsy Symbol.match is not regex'); - - st.end(); - }); - - t.end(); - }); - - test('IsInteger', function (t) { - for (var i = -100; i < 100; i += 10) { - t.equal(true, ES.IsInteger(i), i + ' is integer'); - t.equal(false, ES.IsInteger(i + 0.2), (i + 0.2) + ' is not integer'); - } - t.equal(true, ES.IsInteger(-0), '-0 is integer'); - var notInts = v.nonNumbers.concat(v.nonIntegerNumbers, v.infinities, [NaN, [], new Date()]); - forEach(notInts, function (notInt) { - t.equal(false, ES.IsInteger(notInt), debug(notInt) + ' is not integer'); - }); - t.equal(false, ES.IsInteger(v.uncoercibleObject), 'uncoercibleObject is not integer'); - t.end(); - }); - - test('IteratorNext', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.IteratorNext(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - - t['throws']( - function () { ES.IteratorNext({ next: function () { return nonObject; } }); }, - TypeError, - '`next()` returns ' + debug(nonObject) + ', which is not an Object' - ); - }); - - var iterator = { - next: function (value) { - return [arguments.length, value]; - } - }; - t.deepEqual( - ES.IteratorNext(iterator), - [0, undefined], - 'returns expected value from `.next()`; `next` receives expected 0 arguments' - ); - t.deepEqual( - ES.IteratorNext(iterator, iterator), - [1, iterator], - 'returns expected value from `.next()`; `next` receives expected 1 argument' - ); - - t.end(); - }); - - test('IteratorComplete', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.IteratorComplete(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - }); - - forEach(v.truthies, function (truthy) { - t.equal(ES.IteratorComplete({ done: truthy }), true, '{ done: ' + debug(truthy) + ' } is true'); - }); - - forEach(v.falsies, function (falsy) { - t.equal(ES.IteratorComplete({ done: falsy }), false, '{ done: ' + debug(falsy) + ' } is false'); - }); - - t.end(); - }); - - test('IteratorValue', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.IteratorValue(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - }); - - var sentinel = {}; - t.equal(ES.IteratorValue({ value: sentinel }), sentinel, 'Gets `.value` off the object'); - - t.end(); - }); - - test('IteratorStep', function (t) { - t.deepEqual( - ES.IteratorStep({ - next: function () { - return { - done: false, - value: [1, arguments.length] - }; - } - }), - { done: false, value: [1, 0] }, - 'not-done iterator result yields iterator result' - ); - t.deepEqual( - ES.IteratorStep({ - next: function () { - return { - done: true, - value: [2, arguments.length] - }; - } - }), - false, - 'done iterator result yields false' - ); - - t.end(); - }); - - test('IteratorClose', function (t) { - forEach(v.primitives, function (nonObject) { - t['throws']( - function () { ES.IteratorClose(nonObject); }, - TypeError, - debug(nonObject) + ' is not an Object' - ); - - t['throws']( - function () { ES.IteratorClose({ 'return': function () { return nonObject; } }, function () {}); }, - TypeError, - '`.return` returns ' + debug(nonObject) + ', which is not an Object' - ); - }); - - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.IteratorClose({}, nonFunction); }, - TypeError, - debug(nonFunction) + ' is not a thunk for a Completion Record' - ); - - if (nonFunction != null) { - t['throws']( - function () { ES.IteratorClose({ 'return': nonFunction }, function () {}); }, - TypeError, - '`.return` of ' + debug(nonFunction) + ' is not a Function' - ); - } - }); - - var sentinel = {}; - t.equal( - ES.IteratorClose({ 'return': undefined }, function () { return sentinel; }), - sentinel, - 'when `.return` is `undefined`, invokes and returns the completion thunk' - ); - - /* eslint no-throw-literal: 0 */ - t['throws']( - function () { ES.IteratorClose({ 'return': function () { throw sentinel; } }, function () {}); }, - sentinel, - '`.return` that throws, when completionThunk does not, throws exception from `.return`' - ); - t['throws']( - function () { ES.IteratorClose({ 'return': function () { throw sentinel; } }, function () { throw -1; }); }, - -1, - '`.return` that throws, when completionThunk does too, throws exception from completionThunk' - ); - t['throws']( - function () { ES.IteratorClose({ 'return': function () { } }, function () { throw -1; }); }, - -1, - '`.return` that does not throw, when completionThunk does, throws exception from completionThunk' - ); - - t.equal( - ES.IteratorClose({ 'return': function () { return sentinel; } }, function () { return 42; }), - 42, - 'when `.return` and completionThunk do not throw, and `.return` returns an Object, returns completionThunk' - ); - - t.end(); - }); - - test('ObjectCreate', function (t) { - forEach(v.nonNullPrimitives, function (value) { - t['throws']( - function () { ES.ObjectCreate(value); }, - TypeError, - debug(value) + ' is not null, or an object' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.ObjectCreate(Parent.prototype); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow(function () { ES.ObjectCreate({}, []); }, 'an empty slot list is valid'); - - st['throws']( - function () { ES.ObjectCreate({}, ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.test('null proto', { skip: !Object.create && !$setProto }, function (st) { - st.equal('toString' in {}, true, 'normal objects have toString'); - st.equal('toString' in ES.ObjectCreate(null), false, 'makes a null object'); - - st.end(); - }); - - t.test('null proto when no native Object.create', { skip: Object.create || $setProto }, function (st) { - st['throws']( - function () { ES.ObjectCreate(null); }, - SyntaxError, - 'without a native Object.create, can not create null objects' - ); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryCreateFromConstructor', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.OrdinaryCreateFromConstructor(nonFunction, '%Array.prototype%'); }, - TypeError, - debug(nonFunction) + ' is not a constructor' - ); - }); - - forEach(arrowFns, function (arrowFn) { - t['throws']( - function () { ES.OrdinaryCreateFromConstructor(arrowFn, '%Array.prototype%'); }, - TypeError, - debug(arrowFn) + ' is not a constructor' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.OrdinaryCreateFromConstructor(Parent, '%Array.prototype%'); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child instanceof Array, false, 'child is not instanceof Array'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow( - function () { ES.OrdinaryCreateFromConstructor(function () {}, '%Array.prototype%', []); }, - 'an empty slot list is valid' - ); - - st['throws']( - function () { ES.OrdinaryCreateFromConstructor(function () {}, '%Array.prototype%', ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryGetOwnProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryGetOwnProperty(primitive, ''); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryGetOwnProperty({}, nonPropertyKey); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.OrdinaryGetOwnProperty({}, 'not in the object'), undefined, 'missing property yields undefined'); - t.equal(ES.OrdinaryGetOwnProperty({}, 'toString'), undefined, 'inherited non-own property yields undefined'); - - t.deepEqual( - ES.OrdinaryGetOwnProperty({ a: 1 }, 'a'), - ES.ToPropertyDescriptor({ - configurable: true, - enumerable: true, - value: 1, - writable: true - }), - 'own assigned data property yields expected descriptor' - ); - - t.deepEqual( - ES.OrdinaryGetOwnProperty(/a/, 'lastIndex'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: 0, - writable: true - }), - 'regex lastIndex yields expected descriptor' - ); - - t.deepEqual( - ES.OrdinaryGetOwnProperty([], 'length'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: 0, - writable: true - }), - 'array length yields expected descriptor' - ); - - if (!Object.isFrozen || !Object.isFrozen(Object.prototype)) { - t.deepEqual( - ES.OrdinaryGetOwnProperty(Object.prototype, 'toString'), - ES.ToPropertyDescriptor({ - configurable: true, - enumerable: false, - value: Object.prototype.toString, - writable: true - }), - 'own non-enumerable data property yields expected descriptor' - ); - } - - t.test('ES5+', { skip: !defineProperty.oDP }, function (st) { - var O = {}; - defineProperty(O, 'foo', { - configurable: false, - enumerable: false, - value: O, - writable: true - }); - - st.deepEqual( - ES.OrdinaryGetOwnProperty(O, 'foo'), - ES.ToPropertyDescriptor({ - configurable: false, - enumerable: false, - value: O, - writable: true - }), - 'defined own property yields expected descriptor' - ); - - st.end(); - }); - - t.end(); - }); - - test('OrdinaryDefineOwnProperty', { skip: !getOwnPropertyDescriptor }, function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryDefineOwnProperty(primitive, {}, []); }, - TypeError, - 'O: ' + debug(primitive) + ' is not an Object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryDefineOwnProperty({}, nonPropertyKey, v.genericDescriptor()); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryDefineOwnProperty(primitive, '', v.genericDescriptor()); }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - var O = {}; - var P = 'property key'; - var Desc = v.accessorDescriptor(); - t.equal( - ES.OrdinaryDefineOwnProperty(O, P, Desc), - true, - 'operation is successful' - ); - t.deepEqual( - getOwnPropertyDescriptor(O, P), - ES.FromPropertyDescriptor(ES.CompletePropertyDescriptor(Desc)), - 'expected property descriptor is defined' - ); - - t.end(); - }); - - test('OrdinaryHasInstance', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t.equal(ES.OrdinaryHasInstance(nonFunction, {}), false, debug(nonFunction) + ' is not callable'); - }); - - forEach(v.primitives, function (primitive) { - t.equal(ES.OrdinaryHasInstance(function () {}, primitive), false, debug(primitive) + ' is not an object'); - }); - - var C = function C() {}; - var D = function D() {}; - t.equal(ES.OrdinaryHasInstance(C, new C()), true, 'constructor function has an instance of itself'); - t.equal(ES.OrdinaryHasInstance(C, new D()), false, 'constructor/instance mismatch is false'); - t.equal(ES.OrdinaryHasInstance(D, new C()), false, 'instance/constructor mismatch is false'); - t.equal(ES.OrdinaryHasInstance(C, {}), false, 'plain object is not an instance of a constructor'); - t.equal(ES.OrdinaryHasInstance(Object, {}), true, 'plain object is an instance of Object'); - - t.end(); - }); - - test('OrdinaryHasProperty', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryHasProperty(primitive, ''); }, - TypeError, - debug(primitive) + ' is not an object' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.OrdinaryHasProperty({}, nonPropertyKey); }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.OrdinaryHasProperty({ a: 1 }, 'a'), true, 'own property is true'); - t.equal(ES.OrdinaryHasProperty({}, 'toString'), true, 'inherited property is true'); - t.equal(ES.OrdinaryHasProperty({}, 'nope'), false, 'absent property is false'); - - t.end(); - }); - - test('QuoteJSONString', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.QuoteJSONString(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - t.equal(ES.QuoteJSONString(''), '""', '"" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('a'), '"a"', '"a" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('"'), '"\\""', '"\\"" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\b'), '"\\b"', '"\\b" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\t'), '"\\t"', '"\\t" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\n'), '"\\n"', '"\\n" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\f'), '"\\f"', '"\\f" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\r'), '"\\r"', '"\\r" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\\'), '"\\\\"', '"\\\\" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\\'), '"\\\\"', '"\\\\" gets properly JSON-quoted'); - t.equal(ES.QuoteJSONString('\u0019'), '"\\u0019"', '"\\u0019" gets properly JSON-quoted'); - - t.end(); - }); - - test('RegExpCreate', function (t) { - forEach(v.nonStrings, function (nonString) { - if (typeof nonString !== 'symbol') { - var p = typeof nonString === 'undefined' ? '' : nonString; - t.equal( - String(ES.RegExpCreate(p, 'g')), - '/' + (String(p) || '(?:)') + '/g', - debug(nonString) + ' becomes `/' + String(p) + '/g`' - ); - } - }); - - t.deepEqual(ES.RegExpCreate(), new RegExp(), 'undefined pattern and flags yields empty regex'); - - t.end(); - }); - - test('RegExpExec', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.RegExpExec(primitive); }, - TypeError, - '"R" argument must be an object; ' + debug(primitive) + ' is not' - ); - }); - - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.RegExpExec({}, nonString); }, - TypeError, - '"S" argument must be a String; ' + debug(nonString) + ' is not' - ); - }); - - t.test('gets and calls a callable "exec"', function (st) { - var str = '123'; - var o = { - exec: function (S) { - st.equal(this, o, '"exec" receiver is R'); - st.equal(S, str, '"exec" argument is S'); - - return null; - } - }; - st.plan(2); - ES.RegExpExec(o, str); - st.end(); - }); - - t.test('throws if a callable "exec" returns a non-null non-object', function (st) { - var str = '123'; - st.plan(v.nonNullPrimitives.length); - forEach(v.nonNullPrimitives, function (nonNullPrimitive) { - st['throws']( - function () { ES.RegExpExec({ exec: function () { return nonNullPrimitive; } }, str); }, - TypeError, - '"exec" method must return `null` or an Object; ' + debug(nonNullPrimitive) + ' is not' - ); - }); - st.end(); - }); - - t.test('actual regex that should match against a string', function (st) { - var S = 'aabc'; - var R = /a/g; - var match1 = ES.RegExpExec(R, S); - var expected1 = assign(['a'], kludgeMatch(R, { index: 0, input: S })); - var match2 = ES.RegExpExec(R, S); - var expected2 = assign(['a'], kludgeMatch(R, { index: 1, input: S })); - var match3 = ES.RegExpExec(R, S); - st.deepEqual(match1, expected1, 'match object 1 is as expected'); - st.deepEqual(match2, expected2, 'match object 2 is as expected'); - st.equal(match3, null, 'match 3 is null as expected'); - st.end(); - }); - - t.test('actual regex that should match against a string, with shadowed "exec"', function (st) { - var S = 'aabc'; - var R = /a/g; - defineProperty(R, 'exec', { value: undefined }); - var match1 = ES.RegExpExec(R, S); - var expected1 = assign(['a'], kludgeMatch(R, { index: 0, input: S })); - var match2 = ES.RegExpExec(R, S); - var expected2 = assign(['a'], kludgeMatch(R, { index: 1, input: S })); - var match3 = ES.RegExpExec(R, S); - st.deepEqual(match1, expected1, 'match object 1 is as expected'); - st.deepEqual(match2, expected2, 'match object 2 is as expected'); - st.equal(match3, null, 'match 3 is null as expected'); - st.end(); - }); - t.end(); - }); - - test('RequireObjectCoercible', function (t) { - t.equal(false, 'CheckObjectCoercible' in ES, 'CheckObjectCoercible -> RequireObjectCoercible in ES6'); - t['throws'](function () { return ES.RequireObjectCoercible(undefined); }, TypeError, 'undefined throws'); - t['throws'](function () { return ES.RequireObjectCoercible(null); }, TypeError, 'null throws'); - var isCoercible = function (value) { - t.doesNotThrow(function () { return ES.RequireObjectCoercible(value); }, debug(value) + ' does not throw'); - }; - forEach(v.objects.concat(v.nonNullPrimitives), isCoercible); - t.end(); - }); - - test('SameValueZero', function (t) { - t.equal(true, ES.SameValueZero(NaN, NaN), 'NaN is SameValueZero as NaN'); - t.equal(true, ES.SameValueZero(0, -0), '+0 is SameValueZero as -0'); - forEach(v.objects.concat(v.primitives), function (val) { - t.equal(val === val, ES.SameValueZero(val, val), debug(val) + ' is SameValueZero to itself'); - }); - t.end(); - }); - - test('Set', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.Set(primitive, '', null, false); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonKey) { - t['throws']( - function () { ES.Set({}, nonKey, null, false); }, - TypeError, - debug(nonKey) + ' is not a Property Key' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.Set({}, '', null, nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - var o = {}; - var value = {}; - ES.Set(o, 'key', value, true); - t.deepEqual(o, { key: value }, 'key is set'); - - t.test('nonwritable', { skip: !defineProperty.oDP }, function (st) { - var obj = { a: value }; - defineProperty(obj, 'a', { writable: false }); - - st['throws']( - function () { ES.Set(obj, 'a', {}, true); }, - TypeError, - 'can not Set nonwritable property' - ); - - st.doesNotThrow( - function () { - st.equal(ES.Set(obj, 'a', {}, false), false, 'unsuccessful Set returns false'); - }, - 'setting Throw to false prevents an exception' - ); - - st.end(); - }); - - t.test('nonconfigurable', { skip: !defineProperty.oDP }, function (st) { - var obj = { a: value }; - defineProperty(obj, 'a', { configurable: false }); - - st.equal(ES.Set(obj, 'a', value, true), true, 'successful Set returns true'); - st.deepEqual(obj, { a: value }, 'key is set'); - - st.end(); - }); - - t.test('doesn’t call [[Get]] in conforming strict mode environments', { skip: noThrowOnStrictViolation }, function (st) { - var getterCalled = false; - var setterCalls = 0; - var obj = {}; - defineProperty(obj, 'a', { - get: function () { - getterCalled = true; - }, - set: function () { - setterCalls += 1; - } - }); - - st.equal(ES.Set(obj, 'a', value, false), true, 'successful Set returns true'); - st.equal(setterCalls, 1, 'setter was called once'); - st.equal(getterCalled, false, 'getter was not called'); - - st.end(); - }); - - t.end(); - }); - - test('SetFunctionName', function (t) { - forEach(v.nonFunctions, function (nonFunction) { - t['throws']( - function () { ES.SetFunctionName(nonFunction, ''); }, - TypeError, - debug(nonFunction) + ' is not a Function' - ); - }); - - t.test('non-extensible function', { skip: !Object.preventExtensions }, function (st) { - var f = getNamelessFunction(); - Object.preventExtensions(f); - st['throws']( - function () { ES.SetFunctionName(f, ''); }, - TypeError, - 'throws on a non-extensible function' - ); - st.end(); - }); - - t.test('has an own name property', { skip: !functionsHaveNames }, function (st) { - st['throws']( - function () { ES.SetFunctionName(function g() {}, ''); }, - TypeError, - 'throws if function has an own `name` property' - ); - st.end(); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.SetFunctionName(getNamelessFunction(), nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Symbol or String' - ); - }); - - t.test('symbols', { skip: !v.hasSymbols || has(getNamelessFunction(), 'name') }, function (st) { - var pairs = [ - [Symbol(), ''], - [Symbol(undefined), ''], - [Symbol(null), '[null]'], - [Symbol(''), getInferredName ? '[]' : ''], - [Symbol.iterator, '[Symbol.iterator]'], - [Symbol('foo'), '[foo]'] - ]; - forEach(pairs, function (pair) { - var sym = pair[0]; - var desc = pair[1]; - var f = getNamelessFunction(); - ES.SetFunctionName(f, sym); - st.equal(f.name, desc, debug(sym) + ' yields a name of ' + debug(desc)); - }); - - st.end(); - }); - - var f = getNamelessFunction(); - t.test('when names are configurable', { skip: !functionsHaveConfigurableNames || has(f, 'name') }, function (st) { - // without prefix - st.notEqual(f.name, 'foo', 'precondition'); - ES.SetFunctionName(f, 'foo'); - st.equal(f.name, 'foo', 'function name is set without a prefix'); - - // with prefix - var g = getNamelessFunction(); - st.notEqual(g.name, 'pre- foo', 'precondition'); - ES.SetFunctionName(g, 'foo', 'pre-'); - st.equal(g.name, 'pre- foo', 'function name is set with a prefix'); - - st.end(); - }); - - t.end(); - }); - - test('SetIntegrityLevel', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.SetIntegrityLevel(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.SetIntegrityLevel({}); }, - /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/, - '`level` must be `"sealed"` or `"frozen"`' - ); - - var O = { a: 1 }; - t.test('sealed', { skip: !Object.preventExtensions || noThrowOnStrictViolation }, function (st) { - st.equal(ES.SetIntegrityLevel(O, 'sealed'), true); - st['throws']( - function () { O.b = 2; }, - /^TypeError: (Cannot|Can't) add property b, object is not extensible$/, - 'sealing prevent new properties from being added' - ); - O.a = 2; - st.equal(O.a, 2, 'pre-frozen, existing properties are mutable'); - st.end(); - }); - - t.test('frozen', { skip: !Object.freeze || noThrowOnStrictViolation }, function (st) { - st.equal(ES.SetIntegrityLevel(O, 'frozen'), true); - st['throws']( - function () { O.a = 3; }, - /^TypeError: Cannot assign to read only property 'a' of /, - 'freezing prevents existing properties from being mutated' - ); - st.end(); - }); - - t.end(); - }); - - test('SpeciesConstructor', function (t) { - t['throws'](function () { ES.SpeciesConstructor(null); }, TypeError); - t['throws'](function () { ES.SpeciesConstructor(undefined); }, TypeError); - - var defaultConstructor = function Foo() {}; - - t.equal( - ES.SpeciesConstructor({ constructor: undefined }, defaultConstructor), - defaultConstructor, - 'undefined constructor returns defaultConstructor' - ); - - t['throws']( - function () { return ES.SpeciesConstructor({ constructor: null }, defaultConstructor); }, - TypeError, - 'non-undefined non-object constructor throws' - ); - - t.test('with Symbol.species', { skip: !hasSpecies }, function (st) { - var Bar = function Bar() {}; - Bar[Symbol.species] = null; - - st.equal( - ES.SpeciesConstructor(new Bar(), defaultConstructor), - defaultConstructor, - 'undefined/null Symbol.species returns default constructor' - ); - - var Baz = function Baz() {}; - Baz[Symbol.species] = Bar; - st.equal( - ES.SpeciesConstructor(new Baz(), defaultConstructor), - Bar, - 'returns Symbol.species constructor value' - ); - - Baz[Symbol.species] = {}; - st['throws']( - function () { ES.SpeciesConstructor(new Baz(), defaultConstructor); }, - TypeError, - 'throws when non-constructor non-null non-undefined species value found' - ); - - st.end(); - }); - - t.end(); - }); - - test('SplitMatch', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.SplitMatch(nonString, 0, ''); }, - TypeError, - 'S: ' + debug(nonString) + ' is not a String' - ); - t['throws']( - function () { ES.SplitMatch('', 0, nonString); }, - TypeError, - 'R: ' + debug(nonString) + ' is not a String' - ); - }); - - forEach(v.nonNumbers.concat(v.nonIntegerNumbers), function (nonIntegerNumber) { - t['throws']( - function () { ES.SplitMatch('', nonIntegerNumber, ''); }, - TypeError, - 'q: ' + debug(nonIntegerNumber) + ' is not an integer' - ); - }); - - t.equal(ES.SplitMatch('abc', 0, 'a'), 1, '"a" is found at index 0, before index 1, in "abc"'); - t.equal(ES.SplitMatch('abc', 1, 'a'), false, '"a" is not found at index 1 in "abc"'); - t.equal(ES.SplitMatch('abc', 2, 'a'), false, '"a" is not found at index 2 in "abc"'); - - t.equal(ES.SplitMatch('abc', 0, 'b'), false, '"a" is not found at index 0 in "abc"'); - t.equal(ES.SplitMatch('abc', 1, 'b'), 2, '"b" is found at index 1, before index 2, in "abc"'); - t.equal(ES.SplitMatch('abc', 2, 'b'), false, '"a" is not found at index 2 in "abc"'); - - t.equal(ES.SplitMatch('abc', 0, 'c'), false, '"a" is not found at index 0 in "abc"'); - t.equal(ES.SplitMatch('abc', 1, 'c'), false, '"a" is not found at index 1 in "abc"'); - t.equal(ES.SplitMatch('abc', 2, 'c'), 3, '"c" is found at index 2, before index 3, in "abc"'); - - t.equal(ES.SplitMatch('a', 0, 'ab'), false, 'R longer than S yields false'); - - var s = 'a' + wholePoo + 'c'; - t.equal(ES.SplitMatch(s, 1, wholePoo), 3, debug(wholePoo) + ' is found at index 1, before index 3, in ' + debug(s)); - - t.end(); - }); - - test('StringCreate', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.StringCreate(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - t.deepEqual(ES.StringCreate('foo', String.prototype), Object('foo'), '"foo" with `String.prototype` makes `Object("foo")'); - - if ($setProto) { - var proto = {}; - t.equal($getProto(ES.StringCreate('', proto)), proto, '[[Prototype]] is set as expected'); - } else { - t['throws']( - function () { ES.StringCreate('', proto); }, - SyntaxError, - 'setting [[Prototype]] is not supported in this env' - ); - } - - t.equal(ES.StringCreate('a', String.prototype).length, 'a'.length, 'length is preserved'); - - t.end(); - }); - - test('StringGetIndexProperty', function (t) { - forEach(v.nonStrings.concat(v.strings), function (nonStringObjects) { - t['throws']( - function () { ES.StringGetIndexProperty(nonStringObjects); }, - TypeError, - debug(nonStringObjects) + ' is not a boxed String Object' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.StringGetIndexProperty('', nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - forEach(v.symbols, function (symbol) { - t.equal( - ES.StringGetIndexProperty(Object('a'), symbol), - undefined, - debug(symbol) + ' is a Property Key, but not a String' - ); - }); - - // a string where CanonicalNumericIndexString returns undefined, a non-integer, or -0 - forEach(['-1', '-0', 'undefined'].concat(v.nonIntegerNumbers), function (nonIndex) { - var S = Object('abc'); - t.equal( - ES.StringGetIndexProperty(S, String(nonIndex)), - undefined, - debug(nonIndex) + ' is not an index inside ' + debug(S) - ); - }); - - forEach(v.strings, function (str) { - var S = Object(str); - for (var i = 0; i < str.length; i += 1) { - var desc = { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': str.charAt(i), - '[[Writable]]': false - }; - t.deepEqual( - ES.StringGetIndexProperty(S, String(i)), - desc, - 'boxed String ' + debug(S) + ' at index ' + debug(i) + ' is ' + debug(desc) - ); - } - t.equal( - ES.StringGetIndexProperty(S, String(str.length)), - undefined, - 'boxed String ' + debug(S) + ' at OOB index ' + debug(str.length) + ' is `undefined' - ); - }); - - t.end(); - }); - - test('SymbolDescriptiveString', function (t) { - forEach(v.nonSymbolPrimitives.concat(v.objects), function (nonSymbol) { - t['throws']( - function () { ES.SymbolDescriptiveString(nonSymbol); }, - TypeError, - debug(nonSymbol) + ' is not a Symbol' - ); - }); - - t.test('Symbols', { skip: !v.hasSymbols }, function (st) { - st.equal(ES.SymbolDescriptiveString(Symbol()), 'Symbol()', 'undefined description'); - st.equal(ES.SymbolDescriptiveString(Symbol('')), 'Symbol()', 'empty string description'); - st.equal(ES.SymbolDescriptiveString(Symbol.iterator), 'Symbol(Symbol.iterator)', 'well-known symbol'); - st.equal(ES.SymbolDescriptiveString(Symbol('foo')), 'Symbol(foo)', 'string description'); - - st.end(); - }); - - t.end(); - }); - - test('TestIntegrityLevel', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.TestIntegrityLevel(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t['throws']( - function () { ES.TestIntegrityLevel({ a: 1 }); }, - /^TypeError: Assertion failed: `level` must be `"sealed"` or `"frozen"`$/, - '`level` must be `"sealed"` or `"frozen"`' - ); - - t.equal(ES.TestIntegrityLevel({ a: 1 }, 'sealed'), false, 'basic object is not sealed'); - t.equal(ES.TestIntegrityLevel({ a: 1 }, 'frozen'), false, 'basic object is not frozen'); - - t.test('preventExtensions', { skip: !Object.preventExtensions }, function (st) { - var o = Object.preventExtensions({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), false, 'nonextensible object is not sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'nonextensible object is not frozen'); - - var empty = Object.preventExtensions({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty nonextensible object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty nonextensible object is frozen'); - st.end(); - }); - - t.test('seal', { skip: !Object.seal }, function (st) { - var o = Object.seal({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'sealed object is sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), false, 'sealed object is not frozen'); - - var empty = Object.seal({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty sealed object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty sealed object is frozen'); - - st.end(); - }); - - t.test('freeze', { skip: !Object.freeze }, function (st) { - var o = Object.freeze({ a: 1 }); - st.equal(ES.TestIntegrityLevel(o, 'sealed'), true, 'frozen object is sealed'); - st.equal(ES.TestIntegrityLevel(o, 'frozen'), true, 'frozen object is frozen'); - - var empty = Object.freeze({}); - st.equal(ES.TestIntegrityLevel(empty, 'sealed'), true, 'empty frozen object is sealed'); - st.equal(ES.TestIntegrityLevel(empty, 'frozen'), true, 'empty frozen object is frozen'); - - st.end(); - }); - - t.end(); - }); - - test('thisNumberValue', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.thisNumberValue(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.numbers, function (number) { - t.equal(ES.thisNumberValue(number), number, debug(number) + ' is its own thisNumberValue'); - var obj = Object(number); - t.equal(ES.thisNumberValue(obj), number, debug(obj) + ' is the boxed thisNumberValue'); - }); - - t.end(); - }); - - test('thisBooleanValue', function (t) { - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { ES.thisBooleanValue(nonBoolean); }, - TypeError, - debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach(v.booleans, function (boolean) { - t.equal(ES.thisBooleanValue(boolean), boolean, debug(boolean) + ' is its own thisBooleanValue'); - var obj = Object(boolean); - t.equal(ES.thisBooleanValue(obj), boolean, debug(obj) + ' is the boxed thisBooleanValue'); - }); - - t.end(); - }); - - test('thisStringValue', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.thisStringValue(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - forEach(v.strings, function (string) { - t.equal(ES.thisStringValue(string), string, debug(string) + ' is its own thisStringValue'); - var obj = Object(string); - t.equal(ES.thisStringValue(obj), string, debug(obj) + ' is the boxed thisStringValue'); - }); - - t.end(); - }); - - test('thisTimeValue', function (t) { - forEach(v.primitives.concat(v.objects), function (nonDate) { - t['throws']( - function () { ES.thisTimeValue(nonDate); }, - TypeError, - debug(nonDate) + ' is not a Date' - ); - }); - - forEach(v.timestamps, function (timestamp) { - var date = new Date(timestamp); - - t.equal(ES.thisTimeValue(date), timestamp, debug(date) + ' is its own thisTimeValue'); - }); - - t.end(); - }); - - test('ToDateString', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.ToDateString(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.ToDateString(NaN), 'Invalid Date', 'NaN becomes "Invalid Date"'); - var now = +new Date(); - t.equal(ES.ToDateString(now), Date(now), 'any timestamp becomes `Date(timestamp)`'); - t.end(); - }); - - test('ToInt16', function (t) { - t.equal(0, ES.ToInt16(NaN), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.equal(0, ES.ToInt16(num), num + ' returns +0'); - t.equal(0, ES.ToInt16(-num), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt16(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToInt16(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToInt16(0x100000000 - 1), -1, '2^32 - 1 returns -1'); - t.equal(ES.ToInt16(0x80000000), 0, '2^31 returns +0'); - t.equal(ES.ToInt16(0x80000000 - 1), -1, '2^31 - 1 returns -1'); - t.equal(ES.ToInt16(0x10000), 0, '2^16 returns +0'); - t.equal(ES.ToInt16(0x10000 - 1), -1, '2^16 - 1 returns -1'); - t.end(); - }); - - test('ToInt8', function (t) { - t.equal(0, ES.ToInt8(NaN), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.equal(0, ES.ToInt8(num), num + ' returns +0'); - t.equal(0, ES.ToInt8(-num), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToInt8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToInt8(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToInt8(0x100000000 - 1), -1, '2^32 - 1 returns -1'); - t.equal(ES.ToInt8(0x80000000), 0, '2^31 returns +0'); - t.equal(ES.ToInt8(0x80000000 - 1), -1, '2^31 - 1 returns -1'); - t.equal(ES.ToInt8(0x10000), 0, '2^16 returns +0'); - t.equal(ES.ToInt8(0x10000 - 1), -1, '2^16 - 1 returns -1'); - t.equal(ES.ToInt8(0x100), 0, '2^8 returns +0'); - t.equal(ES.ToInt8(0x100 - 1), -1, '2^8 - 1 returns -1'); - t.equal(ES.ToInt8(0x10), 0x10, '2^4 returns 2^4'); - t.end(); - }); - - test('ToNumber', function (t) { - testToNumber(t, ES, ES.ToNumber); - - t.end(); - }); - - test('ToUint8', function (t) { - t.equal(0, ES.ToUint8(NaN), 'NaN coerces to +0'); - forEach([0, Infinity], function (num) { - t.equal(0, ES.ToUint8(num), num + ' returns +0'); - t.equal(0, ES.ToUint8(-num), '-' + num + ' returns +0'); - }); - t['throws'](function () { return ES.ToUint8(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.equal(ES.ToUint8(0x100000000), 0, '2^32 returns +0'); - t.equal(ES.ToUint8(0x100000000 - 1), 0x100 - 1, '2^32 - 1 returns 2^8 - 1'); - t.equal(ES.ToUint8(0x80000000), 0, '2^31 returns +0'); - t.equal(ES.ToUint8(0x80000000 - 1), 0x100 - 1, '2^31 - 1 returns 2^8 - 1'); - t.equal(ES.ToUint8(0x10000), 0, '2^16 returns +0'); - t.equal(ES.ToUint8(0x10000 - 1), 0x100 - 1, '2^16 - 1 returns 2^8 - 1'); - t.equal(ES.ToUint8(0x100), 0, '2^8 returns +0'); - t.equal(ES.ToUint8(0x100 - 1), 0x100 - 1, '2^8 - 1 returns 2^16 - 1'); - t.equal(ES.ToUint8(0x10), 0x10, '2^4 returns 2^4'); - t.equal(ES.ToUint8(0x10 - 1), 0x10 - 1, '2^4 - 1 returns 2^4 - 1'); - t.end(); - }); - - test('ToUint8Clamp', function (t) { - t.equal(0, ES.ToUint8Clamp(NaN), 'NaN coerces to +0'); - t.equal(0, ES.ToUint8Clamp(0), '+0 returns +0'); - t.equal(0, ES.ToUint8Clamp(-0), '-0 returns +0'); - t.equal(0, ES.ToUint8Clamp(-Infinity), '-Infinity returns +0'); - t['throws'](function () { return ES.ToUint8Clamp(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - forEach([255, 256, 0x100000, Infinity], function (number) { - t.equal(255, ES.ToUint8Clamp(number), number + ' coerces to 255'); - }); - t.equal(1, ES.ToUint8Clamp(1.49), '1.49 coerces to 1'); - t.equal(2, ES.ToUint8Clamp(1.5), '1.5 coerces to 2, because 2 is even'); - t.equal(2, ES.ToUint8Clamp(1.51), '1.51 coerces to 2'); - - t.equal(2, ES.ToUint8Clamp(2.49), '2.49 coerces to 2'); - t.equal(2, ES.ToUint8Clamp(2.5), '2.5 coerces to 2, because 2 is even'); - t.equal(3, ES.ToUint8Clamp(2.51), '2.51 coerces to 3'); - t.end(); - }); - - test('ToLength', function (t) { - t['throws'](function () { return ES.ToLength(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws a TypeError'); - t.equal(3, ES.ToLength(v.coercibleObject), 'coercibleObject coerces to 3'); - t.equal(42, ES.ToLength('42.5'), '"42.5" coerces to 42'); - t.equal(7, ES.ToLength(7.3), '7.3 coerces to 7'); - forEach([-0, -1, -42, -Infinity], function (negative) { - t.equal(0, ES.ToLength(negative), negative + ' coerces to +0'); - }); - t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 1), '2^53 coerces to 2^53 - 1'); - t.equal(MAX_SAFE_INTEGER, ES.ToLength(MAX_SAFE_INTEGER + 3), '2^53 + 2 coerces to 2^53 - 1'); - t.end(); - }); - - test('ToPropertyKey', function (t) { - forEach(v.objects.concat(v.nonSymbolPrimitives), function (value) { - t.equal(ES.ToPropertyKey(value), String(value), 'ToPropertyKey(value) === String(value) for non-Symbols'); - }); - - forEach(v.symbols, function (symbol) { - t.equal( - ES.ToPropertyKey(symbol), - symbol, - 'ToPropertyKey(' + debug(symbol) + ') === ' + debug(symbol) - ); - t.equal( - ES.ToPropertyKey(Object(symbol)), - symbol, - 'ToPropertyKey(' + debug(Object(symbol)) + ') === ' + debug(symbol) - ); - }); - - t.end(); - }); - - test('ToString', function (t) { - forEach(v.objects.concat(v.nonSymbolPrimitives), function (item) { - t.equal(ES.ToString(item), String(item), 'ES.ToString(' + debug(item) + ') ToStrings to String(' + debug(item) + ')'); - }); - - t['throws'](function () { return ES.ToString(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - - forEach(v.symbols, function (symbol) { - t['throws'](function () { return ES.ToString(symbol); }, TypeError, debug(symbol) + ' throws'); - }); - t.end(); - }); - - test('Type', function (t) { - t.equal(ES.Type(), 'Undefined', 'Type() is Undefined'); - t.equal(ES.Type(undefined), 'Undefined', 'Type(undefined) is Undefined'); - t.equal(ES.Type(null), 'Null', 'Type(null) is Null'); - t.equal(ES.Type(true), 'Boolean', 'Type(true) is Boolean'); - t.equal(ES.Type(false), 'Boolean', 'Type(false) is Boolean'); - t.equal(ES.Type(0), 'Number', 'Type(0) is Number'); - t.equal(ES.Type(NaN), 'Number', 'Type(NaN) is Number'); - t.equal(ES.Type('abc'), 'String', 'Type("abc") is String'); - t.equal(ES.Type(function () {}), 'Object', 'Type(function () {}) is Object'); - t.equal(ES.Type({}), 'Object', 'Type({}) is Object'); - - t.test('symbols', { skip: !v.hasSymbols }, function (st) { - st.equal(ES.Type(Symbol.iterator), 'Symbol', 'Type(Symbol.iterator) is Symbol'); - st.end(); - }); - - t.end(); - }); - - test('ValidateAndApplyPropertyDescriptor', function (t) { - forEach(v.nonUndefinedPrimitives, function (nonUndefinedPrimitive) { - t['throws']( - function () { ES.ValidateAndApplyPropertyDescriptor(nonUndefinedPrimitive, '', false, v.genericDescriptor(), v.genericDescriptor()); }, - TypeError, - 'O: ' + debug(nonUndefinedPrimitive) + ' is not undefined or an Object' - ); - }); - - forEach(v.nonBooleans, function (nonBoolean) { - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - nonBoolean, - v.genericDescriptor(), - v.genericDescriptor() - ); - }, - TypeError, - 'extensible: ' + debug(nonBoolean) + ' is not a Boolean' - ); - }); - - forEach(v.primitives, function (primitive) { - // Desc must be a Property Descriptor - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - false, - primitive, - v.genericDescriptor() - ); - }, - TypeError, - 'Desc: ' + debug(primitive) + ' is not a Property Descriptor' - ); - }); - - forEach(v.nonUndefinedPrimitives, function (primitive) { - // current must be undefined or a Property Descriptor - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - undefined, - null, - false, - v.genericDescriptor(), - primitive - ); - }, - TypeError, - 'current: ' + debug(primitive) + ' is not a Property Descriptor or undefined' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - // if O is an object, P must be a property key - t['throws']( - function () { - return ES.ValidateAndApplyPropertyDescriptor( - {}, - nonPropertyKey, - false, - v.genericDescriptor(), - v.genericDescriptor() - ); - }, - TypeError, - 'P: ' + debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.test('current is undefined', function (st) { - var propertyKey = 'howdy'; - - st.test('generic descriptor', function (s2t) { - var generic = v.genericDescriptor(); - generic['[[Enumerable]]'] = true; - var O = {}; - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, generic); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, generic), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, generic), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = undefined; - s2t.deepEqual(O, expected, 'generic descriptor has been defined as an own data property'); - s2t.end(); - }); - - st.test('data descriptor', function (s2t) { - var data = v.dataDescriptor(); - data['[[Enumerable]]'] = true; - - var O = {}; - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, data), - true, - 'noop when O is undefined' - ); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, data), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, data), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = data['[[Value]]']; - s2t.deepEqual(O, expected, 'data descriptor has been defined as an own data property'); - s2t.end(); - }); - - st.test('accessor descriptor', { skip: !defineProperty.oDP }, function (s2t) { - var count = 0; - var accessor = v.accessorDescriptor(); - accessor['[[Enumerable]]'] = true; - accessor['[[Get]]'] = function () { - count += 1; - return count; - }; - - var O = {}; - ES.ValidateAndApplyPropertyDescriptor(undefined, propertyKey, true, accessor); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, false, accessor), - false, - 'when extensible is false, nothing happens' - ); - s2t.deepEqual(O, {}, 'no changes applied when O is undefined or extensible is false'); - s2t.equal( - ES.ValidateAndApplyPropertyDescriptor(O, propertyKey, true, accessor), - true, - 'operation is successful' - ); - var expected = {}; - expected[propertyKey] = accessor['[[Get]]']() + 1; - s2t.deepEqual(O, expected, 'accessor descriptor has been defined as an own accessor property'); - s2t.end(); - }); - - st.end(); - }); - - t.test('every field in Desc is absent', { skip: 'it is unclear if having no fields qualifies Desc to be a Property Descriptor' }); - - forEach([v.dataDescriptor, v.accessorDescriptor, v.mutatorDescriptor], function (getDescriptor) { - t.equal( - ES.ValidateAndApplyPropertyDescriptor(undefined, 'property key', true, getDescriptor(), getDescriptor()), - true, - 'when Desc and current are the same, early return true' - ); - }); - - t.test('current is nonconfigurable', function (st) { - // note: these must not be generic descriptors, or else the algorithm returns an early true - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.dataDescriptor()), - v.descriptors.nonConfigurable(v.dataDescriptor()) - ), - false, - 'false if Desc is configurable' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.enumerable(v.dataDescriptor()), - v.descriptors.nonEnumerable(v.dataDescriptor()) - ), - false, - 'false if Desc is Enumerable and current is not' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.nonEnumerable(v.dataDescriptor()), - v.descriptors.enumerable(v.dataDescriptor()) - ), - false, - 'false if Desc is not Enumerable and current is' - ); - - var descLackingEnumerable = v.accessorDescriptor(); - delete descLackingEnumerable['[[Enumerable]]']; - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - descLackingEnumerable, - v.descriptors.enumerable(v.accessorDescriptor()) - ), - true, - 'not false if Desc lacks Enumerable' - ); - - st.end(); - }); - - t.test('Desc and current: one is a data descriptor, one is not', { skip: !defineProperty || !getOwnPropertyDescriptor }, function (st) { - // note: Desc must be configurable if current is nonconfigurable, to hit this branch - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.accessorDescriptor()), - v.descriptors.nonConfigurable(v.dataDescriptor()) - ), - false, - 'false if current (data) is nonconfigurable' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable(v.dataDescriptor()), - v.descriptors.nonConfigurable(v.accessorDescriptor()) - ), - false, - 'false if current (not data) is nonconfigurable' - ); - - // one is data and one is not, - // // if current is data, convert to accessor - // // else convert to data - - var startsWithData = { - 'property key': 42 - }; - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - startsWithData, - 'property key', - true, - v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor())), - v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor())) - ), - true, - 'operation is successful: current is data, Desc is accessor' - ); - var shouldBeAccessor = getOwnPropertyDescriptor(startsWithData, 'property key'); - st.equal(typeof shouldBeAccessor.get, 'function', 'has a getter'); - - var key = 'property key'; - var startsWithAccessor = {}; - defineProperty(startsWithAccessor, key, { - configurable: true, - enumerable: true, - get: function get() { return 42; } - }); - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - startsWithAccessor, - key, - true, - v.descriptors.enumerable(v.descriptors.configurable(v.dataDescriptor())), - v.descriptors.enumerable(v.descriptors.configurable(v.accessorDescriptor(42))) - ), - true, - 'operation is successful: current is accessor, Desc is data' - ); - var shouldBeData = getOwnPropertyDescriptor(startsWithAccessor, 'property key'); - st.deepEqual(shouldBeData, { configurable: true, enumerable: true, value: 42, writable: false }, 'is a data property'); - - st.end(); - }); - - t.test('Desc and current are both data descriptors', function (st) { - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.writable(v.dataDescriptor()), - v.descriptors.nonWritable(v.descriptors.nonConfigurable(v.dataDescriptor())) - ), - false, - 'false if frozen current and writable Desc' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.descriptors.configurable({ '[[Value]]': 42 }), - v.descriptors.nonWritable({ '[[Value]]': 7 }) - ), - false, - 'false if nonwritable current has a different value than Desc' - ); - - st.end(); - }); - - t.test('current is nonconfigurable; Desc and current are both accessor descriptors', function (st) { - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.mutatorDescriptor(), - v.descriptors.nonConfigurable(v.mutatorDescriptor()) - ), - false, - 'false if both Sets are not equal' - ); - - st.equal( - ES.ValidateAndApplyPropertyDescriptor( - undefined, - 'property key', - true, - v.accessorDescriptor(), - v.descriptors.nonConfigurable(v.accessorDescriptor()) - ), - false, - 'false if both Gets are not equal' - ); - - st.end(); - }); - - t.end(); - }); -}; - -var es2016 = function ES2016(ES, ops, expectedMissing, skips) { - es2015(ES, ops, expectedMissing, assign(assign({}, skips), { - StringGetIndexProperty: true - })); - var test = makeTest(skips); - - test('IterableToArrayLike', function (t) { - t.test('custom iterables', { skip: !v.hasSymbols }, function (st) { - var O = {}; - O[Symbol.iterator] = function () { - var i = -1; - return { - next: function () { - i += 1; - return { - done: i >= 5, - value: i - }; - } - }; - }; - st.deepEqual( - ES.IterableToArrayLike(O), - [0, 1, 2, 3, 4], - 'Symbol.iterator method is called and values collected' - ); - - st.end(); - }); - - t.deepEqual(ES.IterableToArrayLike('abc'), ['a', 'b', 'c'], 'a string of code units spreads'); - t.deepEqual(ES.IterableToArrayLike('💩'), ['💩'], 'a string of code points spreads'); - t.deepEqual(ES.IterableToArrayLike('a💩c'), ['a', '💩', 'c'], 'a string of code points and units spreads'); - - var arr = [1, 2, 3]; - t.deepEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a similar array'); - t.notEqual(ES.IterableToArrayLike(arr), arr, 'an array becomes a different, but similar, array'); - - var O = {}; - t.equal(ES.IterableToArrayLike(O), O, 'a non-iterable non-array non-string object is returned directly'); - - t.end(); - }); - - test('OrdinaryGetPrototypeOf', function (t) { - t.test('values', { skip: !$getProto }, function (st) { - st.equal(ES.OrdinaryGetPrototypeOf([]), Array.prototype, 'array [[Prototype]] is Array.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf({}), Object.prototype, 'object [[Prototype]] is Object.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(/a/g), RegExp.prototype, 'regex [[Prototype]] is RegExp.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object('')), String.prototype, 'boxed string [[Prototype]] is String.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object(42)), Number.prototype, 'boxed number [[Prototype]] is Number.prototype'); - st.equal(ES.OrdinaryGetPrototypeOf(Object(true)), Boolean.prototype, 'boxed boolean [[Prototype]] is Boolean.prototype'); - if (v.hasSymbols) { - st.equal(ES.OrdinaryGetPrototypeOf(Object(Symbol.iterator)), Symbol.prototype, 'boxed symbol [[Prototype]] is Symbol.prototype'); - } - st.end(); - }); - - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.OrdinaryGetPrototypeOf(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - t.end(); - }); - - test('OrdinarySetPrototypeOf', { skip: !$getProto || !$setProto }, function (t) { - var a = []; - var proto = {}; - - t.equal(ES.OrdinaryGetPrototypeOf(a), Array.prototype, 'precondition'); - t.equal(ES.OrdinarySetPrototypeOf(a, proto), true, 'setting prototype is successful'); - t.equal(ES.OrdinaryGetPrototypeOf(a), proto, 'postcondition'); - - t.end(); - }); - - test('SameValueNonNumber', function (t) { - var willThrow = [ - [3, 4], - [NaN, 4], - [4, ''], - ['abc', true], - [{}, false] - ]; - forEach(willThrow, function (nums) { - t['throws'](function () { return ES.SameValueNonNumber.apply(ES, nums); }, TypeError, 'value must be same type and non-number'); - }); - - forEach(v.objects.concat(v.nonNumberPrimitives), function (val) { - t.equal(val === val, ES.SameValueNonNumber(val, val), debug(val) + ' is SameValueNonNumber to itself'); - }); - - t.end(); - }); - - test('UTF16Encoding', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.UTF16Encoding(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - t['throws']( - function () { ES.UTF16Encoding(-1); }, - TypeError, - '-1 is < 0' - ); - - t['throws']( - function () { ES.UTF16Encoding(0x10FFFF + 1); }, - TypeError, - '0x10FFFF + 1 is > 0x10FFFF' - ); - - t.equal(ES.UTF16Encoding(0xD83D), leadingPoo, '0xD83D is the first half of ' + wholePoo); - t.equal(ES.UTF16Encoding(0xDCA9), trailingPoo, '0xDCA9 is the last half of ' + wholePoo); - t.equal(ES.UTF16Encoding(0x1F4A9), wholePoo, '0xDCA9 is the last half of ' + wholePoo); - - t.end(); - }); - - test('UTF16Decode', function (t) { - t['throws']( - function () { ES.UTF16Decode('a'.charCodeAt(0), trailingPoo.charCodeAt(0)); }, - TypeError, - '"a" is not a leading surrogate' - ); - t['throws']( - function () { ES.UTF16Decode(leadingPoo.charCodeAt(0), 'b'.charCodeAt(0)); }, - TypeError, - '"b" is not a trailing surrogate' - ); - - t.equal(ES.UTF16Decode(leadingPoo.charCodeAt(0), trailingPoo.charCodeAt(0)), wholePoo); - - t.end(); - }); -}; - -var es2017 = function ES2017(ES, ops, expectedMissing, skips) { - es2016(ES, ops, expectedMissing, assign({}, skips, { - EnumerableOwnNames: true, - IterableToArrayLike: true - })); - var test = makeTest(skips); - - test('EnumerableOwnProperties', function (t) { - var obj = testEnumerableOwnNames(t, function (O) { - return ES.EnumerableOwnProperties(O, 'key'); - }); - - t.deepEqual( - ES.EnumerableOwnProperties(obj, 'value'), - [obj.own], - 'returns enumerable own values' - ); - - t.deepEqual( - ES.EnumerableOwnProperties(obj, 'key+value'), - [['own', obj.own]], - 'returns enumerable own entries' - ); - - t.end(); - }); - - test('IterableToList', function (t) { - var customIterator = function () { - var i = -1; - return { - next: function () { - i += 1; - return { - done: i >= 5, - value: i - }; - } - }; - }; - - t.deepEqual( - ES.IterableToList({}, customIterator), - [0, 1, 2, 3, 4], - 'iterator method is called and values collected' - ); - - t.test('Symbol support', { skip: !v.hasSymbols }, function (st) { - st.deepEqual(ES.IterableToList('abc', String.prototype[Symbol.iterator]), ['a', 'b', 'c'], 'a string of code units spreads'); - st.deepEqual(ES.IterableToList('☃', String.prototype[Symbol.iterator]), ['☃'], 'a string of code points spreads'); - - var arr = [1, 2, 3]; - st.deepEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a similar array'); - st.notEqual(ES.IterableToList(arr, arr[Symbol.iterator]), arr, 'an array becomes a different, but similar, array'); - - st.end(); - }); - - t['throws']( - function () { ES.IterableToList({}, void 0); }, - TypeError, - 'non-function iterator method' - ); - - t.end(); - }); - - test('StringGetOwnProperty', function (t) { - forEach(v.nonStrings.concat(v.strings), function (nonBoxedString) { - t['throws']( - function () { ES.StringGetOwnProperty(nonBoxedString, '0'); }, - TypeError, - debug(nonBoxedString) + ' is not a boxed String' - ); - }); - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - t['throws']( - function () { ES.StringGetOwnProperty(Object(''), nonPropertyKey); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - t.equal(ES.StringGetOwnProperty(Object(''), '0'), undefined, 'empty boxed string yields undefined'); - - forEach(v.strings, function (string) { - if (string) { - var S = Object(string); - for (var i = 0; i < string.length; i += 1) { - var descriptor = ES.StringGetOwnProperty(S, String(i)); - t.deepEqual( - descriptor, - { - '[[Configurable]]': false, - '[[Enumerable]]': true, - '[[Value]]': string.charAt(i), - '[[Writable]]': false - }, - debug(string) + ': property ' + debug(String(i)) + ': returns expected descriptor' - ); - } - } - }); - - t.end(); - }); - - test('ToIndex', function (t) { - t.equal(ES.ToIndex(), 0, 'no value gives +0'); - t.equal(ES.ToIndex(undefined), 0, 'undefined value gives +0'); - t.equal(ES.ToIndex(-0), 0, '-0 gives +0'); - - t['throws'](function () { ES.ToIndex(-1); }, RangeError, 'negative numbers throw'); - - t['throws'](function () { ES.ToIndex(MAX_SAFE_INTEGER + 1); }, RangeError, 'too large numbers throw'); - - t.equal(ES.ToIndex(3), 3, 'numbers work'); - t.equal(ES.ToIndex(v.valueOfOnlyObject), 4, 'coercible objects are coerced'); - - t.end(); - }); -}; - -var es2018 = function ES2018(ES, ops, expectedMissing, skips) { - es2017(ES, ops, expectedMissing, assign({}, skips, { - EnumerableOwnProperties: true, - GetSubstitution: true, - IsPropertyDescriptor: true - })); - var test = makeTest(skips); - - test('CopyDataProperties', function (t) { - t.test('first argument: target', function (st) { - forEach(v.primitives, function (primitive) { - st['throws']( - function () { ES.CopyDataProperties(primitive, {}, []); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - st.end(); - }); - - t.test('second argument: source', function (st) { - var frozenTarget = Object.freeze ? Object.freeze({}) : {}; - forEach(v.nullPrimitives, function (nullish) { - st.equal( - ES.CopyDataProperties(frozenTarget, nullish, []), - frozenTarget, - debug(nullish) + ' "source" yields identical, unmodified target' - ); - }); - - forEach(v.nonNullPrimitives, function (objectCoercible) { - var target = {}; - var result = ES.CopyDataProperties(target, objectCoercible, []); - st.equal(result, target, 'result === target'); - st.deepEqual(keys(result), keys(Object(objectCoercible)), 'target ends up with keys of ' + debug(objectCoercible)); - }); - - st.test('enumerable accessor property', { skip: !defineProperty.oDP }, function (s2t) { - var target = {}; - var source = {}; - defineProperty(source, 'a', { - enumerable: true, - get: function () { return 42; } - }); - var result = ES.CopyDataProperties(target, source, []); - s2t.equal(result, target, 'result === target'); - s2t.deepEqual(result, { a: 42 }, 'target ends up with enumerable accessor of source'); - s2t.end(); - }); - - st.end(); - }); - - t.test('third argument: excludedItems', function (st) { - forEach(v.objects.concat(v.primitives), function (nonArray) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, [nonPropertyKey]); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - var result = ES.CopyDataProperties({}, { a: 1, b: 2, c: 3 }, ['b']); - st.deepEqual(keys(result).sort(), ['a', 'c'].sort(), 'excluded string keys are excluded'); - - st.test('excluding symbols', { skip: !v.hasSymbols }, function (s2t) { - var source = {}; - forEach(v.symbols, function (symbol) { - source[symbol] = true; - }); - - var includedSymbols = v.symbols.slice(1); - var excludedSymbols = v.symbols.slice(0, 1); - var target = ES.CopyDataProperties({}, source, excludedSymbols); - - forEach(includedSymbols, function (symbol) { - s2t.equal(has(target, symbol), true, debug(symbol) + ' is included'); - }); - - forEach(excludedSymbols, function (symbol) { - s2t.equal(has(target, symbol), false, debug(symbol) + ' is excluded'); - }); - - s2t.end(); - }); - - st.end(); - }); - - // TODO: CopyDataProperties does not throw when copying fails - - t.end(); - }); - - test('DateString', function (t) { - forEach(v.nonNumbers.concat(NaN), function (nonNumberOrNaN) { - t['throws']( - function () { ES.DateString(nonNumberOrNaN); }, - TypeError, - debug(nonNumberOrNaN) + ' is not a non-NaN Number' - ); - }); - - t.equal(ES.DateString(Date.UTC(2019, 8, 10, 7, 8, 9)), 'Tue Sep 10 2019'); - t.equal(ES.DateString(Date.UTC(2016, 1, 29, 7, 8, 9)), 'Mon Feb 29 2016'); // leap day - t.end(); - }); - - test('EnumerableOwnPropertyNames', function (t) { - var obj = testEnumerableOwnNames(t, function (O) { - return ES.EnumerableOwnPropertyNames(O, 'key'); - }); - - t.deepEqual( - ES.EnumerableOwnPropertyNames(obj, 'value'), - [obj.own], - 'returns enumerable own values' - ); - - t.deepEqual( - ES.EnumerableOwnPropertyNames(obj, 'key+value'), - [['own', obj.own]], - 'returns enumerable own entries' - ); - - t.end(); - }); - - test('GetSubstitution', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.GetSubstitution(nonString, '', 0, [], undefined, ''); }, - TypeError, - '`matched`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', nonString, 0, [], undefined, ''); }, - TypeError, - '`str`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [], undefined, nonString); }, - TypeError, - '`replacement`: ' + debug(nonString) + ' is not a String' - ); - - t['throws']( - function () { ES.GetSubstitution('', '', 0, [nonString], undefined, ''); }, - TypeError, - '`captures`: ' + debug([nonString]) + ' is not an Array of strings' - ); - }); - - forEach(v.notNonNegativeIntegers, function (nonNonNegativeInteger) { - t['throws']( - function () { ES.GetSubstitution('', '', nonNonNegativeInteger, [], undefined, ''); }, - TypeError, - '`position`: ' + debug(nonNonNegativeInteger) + ' is not a non-negative integer' - ); - }); - - forEach(v.nonArrays, function (nonArray) { - t['throws']( - function () { ES.GetSubstitution('', '', 0, nonArray, undefined, ''); }, - TypeError, - '`captures`: ' + debug(nonArray) + ' is not an Array' - ); - }); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '123'), - '123', - 'returns the substitution' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '$$2$'), - '$2$', - 'supports $$, and trailing $' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$&<'), - '>abcdef<', - 'supports $&' - ); - - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$`<'), - '><', - 'supports $` at position 0' - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, '>$`<'), - '>ab<', - 'supports $` at position > 0' - ); - - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 7, [], undefined, ">$'<"), - '><', - "supports $' at a position where there's less than `matched.length` chars left" - ); - t.equal( - ES.GetSubstitution('def', 'abcdefghi', 3, [], undefined, ">$'<"), - '>ghi<', - "supports $' at a position where there's more than `matched.length` chars left" - ); - - for (var i = 0; i < 100; i += 1) { - var captures = []; - captures[i] = 'test'; - if (i > 0) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i + '<'), - '>undefined<', - 'supports $' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$' + i), - '>undefined', - 'supports $' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i + '<'), - '><', - 'supports $' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$' + i), - '>', - 'supports $' + i + ' at the end of the replacement, with a capture at that index' - ); - } - if (i < 10) { - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i + '<'), - i === 0 ? '><' : '>undefined<', - 'supports $0' + i + ' with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, [], undefined, '>$0' + i), - i === 0 ? '>' : '>undefined', - 'supports $0' + i + ' at the end of the replacement, with no captures' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i + '<'), - '><', - 'supports $0' + i + ' with a capture at that index' - ); - t.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, undefined, '>$0' + i), - '>', - 'supports $0' + i + ' at the end of the replacement, with a capture at that index' - ); - } - } - - t.test('named captures', function (st) { - var namedCaptures = { - foo: 'foo!' - }; - - st.equal( - ES.GetSubstitution('abcdef', 'abcdefghi', 0, captures, namedCaptures, 'a>$foo!> bitsN, - debug(bigInt32) + ' >> ' + debug(bitsN) + ' is ' + debug(bigInt32 >> bitsN) - ); - }); - }); - - t.end(); - }); - - test('BigInt::subtract', { skip: !hasBigInts }, function (t) { - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.BigInt.subtract(nonBigInt, $BigInt(0)); }, - TypeError, - 'x: ' + debug(nonBigInt) + ' is not a BigInt' - ); - t['throws']( - function () { ES.BigInt.subtract($BigInt(0), nonBigInt); }, - TypeError, - 'y: ' + debug(nonBigInt) + ' is not a BigInt' - ); - }); - - t.equal(ES.BigInt.subtract($BigInt(0), $BigInt(0)), $BigInt(0), '0n - 0n is 0n'); - - forEach(v.bigints, function (bigint) { - t.equal(ES.BigInt.subtract(bigint, $BigInt(0)), bigint, debug(bigint) + ' - 0n produces ' + bigint); - t.equal(ES.BigInt.subtract(bigint, $BigInt(1)), bigint - $BigInt(1), debug(bigint) + ' - 1n produces ' + (bigint + $BigInt(1))); - t.equal(ES.BigInt.subtract(bigint, $BigInt(42)), bigint - $BigInt(42), debug(bigint) + ' - 42n produces ' + (bigint - $BigInt(42))); - }); - - t.end(); - }); - - test('BigInt::toString', function (t) { - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.BigInt.toString(nonBigInt); }, - TypeError, - debug(nonBigInt) + ' is not a BigInt' - ); - }); - - forEach(v.bigints, function (bigint) { - t.equal(ES.BigInt.toString(bigint), String(bigint), debug(bigint) + ' stringifies to ' + bigint); - }); - - t.end(); - }); - - test('BigInt::unaryMinus', function (t) { - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.BigInt.unaryMinus(nonBigInt); }, - TypeError, - debug(nonBigInt) + ' is not a BigInt' - ); - }); - - t.test('actual BigInts', { skip: !hasBigInts }, function (st) { - forEach(v.bigints, function (bigint) { - st.equal(ES.BigInt.unaryMinus(bigint), -bigint, debug(bigint) + ' produces -' + debug(bigint)); - }); - st.end(); - }); - - t.end(); - }); - - test('BigInt::unsignedRightShift', { skip: !hasBigInts }, function (t) { - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.BigInt.unsignedRightShift(nonBigInt, $BigInt(0)); }, - TypeError, - 'x: ' + debug(nonBigInt) + ' is not a BigInt' - ); - t['throws']( - function () { ES.BigInt.unsignedRightShift($BigInt(0), nonBigInt); }, - TypeError, - 'y: ' + debug(nonBigInt) + ' is not a BigInt' - ); - }); - - forEach([0].concat(v.int32s), function (int32) { - var bigInt32 = $BigInt(int32); - forEach([1, 3, 5, 31, 32, 33], function (bits) { - var bitsN = $BigInt(bits); - t['throws']( - function () { ES.BigInt.unsignedRightShift(bigInt32, bitsN); }, - TypeError, - debug(bigInt32) + ' >>> ' + debug(bitsN) + ' throws' - ); - }); - }); - - t.end(); - }); - - test('BigIntBitwiseOp', { skip: !hasBigInts }, function (t) { - t['throws']( - function () { ES.BigIntBitwiseOp('invalid', BigInt(0), BigInt(0)); }, - TypeError, - 'throws with an invalid op' - ); - - t.equal(ES.BigIntBitwiseOp('&', BigInt(1), BigInt(2)), BigInt(1) & BigInt(2)); - t.equal(ES.BigIntBitwiseOp('|', BigInt(1), BigInt(2)), BigInt(1) | BigInt(2)); - t.equal(ES.BigIntBitwiseOp('^', BigInt(1), BigInt(2)), BigInt(1) ^ BigInt(2)); - - t.end(); - }); - - test('BinaryAnd', function (t) { - t.equal(ES.BinaryAnd(0, 0), 0); - t.equal(ES.BinaryAnd(0, 1), 0); - t.equal(ES.BinaryAnd(1, 0), 0); - t.equal(ES.BinaryAnd(1, 1), 1); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryAnd(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryAnd(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('BinaryOr', function (t) { - t.equal(ES.BinaryOr(0, 0), 0); - t.equal(ES.BinaryOr(0, 1), 1); - t.equal(ES.BinaryOr(1, 0), 1); - t.equal(ES.BinaryOr(1, 1), 1); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryOr(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryOr(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('BinaryXor', function (t) { - t.equal(ES.BinaryXor(0, 0), 0); - t.equal(ES.BinaryXor(0, 1), 1); - t.equal(ES.BinaryXor(1, 0), 1); - t.equal(ES.BinaryXor(1, 1), 0); - - forEach(v.nonIntegerNumbers.concat(v.nonNumberPrimitives, v.objects), function (nonBit) { - t['throws']( - function () { ES.BinaryXor(0, nonBit); }, - TypeError - ); - t['throws']( - function () { ES.BinaryXor(nonBit, 1); }, - TypeError - ); - }); - t.end(); - }); - - test('CodePointAt', function (t) { - t['throws']( - function () { ES.CodePointAt('abc', -1); }, - TypeError, - 'requires an index >= 0' - ); - t['throws']( - function () { ES.CodePointAt('abc', 3); }, - TypeError, - 'requires an index < string length' - ); - - t.deepEqual(ES.CodePointAt('abc', 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt('abc', 1), { - '[[CodePoint]]': 'b', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt('abc', 2), { - '[[CodePoint]]': 'c', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - var strWithHalfPoo = 'a' + leadingPoo + 'c'; - var strWithWholePoo = 'a' + wholePoo + 'd'; - - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 1), { - '[[CodePoint]]': leadingPoo, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }); - t.deepEqual(ES.CodePointAt(strWithHalfPoo, 2), { - '[[CodePoint]]': 'c', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - t.deepEqual(ES.CodePointAt(strWithWholePoo, 0), { - '[[CodePoint]]': 'a', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 1), { - '[[CodePoint]]': wholePoo, - '[[CodeUnitCount]]': 2, - '[[IsUnpairedSurrogate]]': false - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 2), { - '[[CodePoint]]': trailingPoo, - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': true - }); - t.deepEqual(ES.CodePointAt(strWithWholePoo, 3), { - '[[CodePoint]]': 'd', - '[[CodeUnitCount]]': 1, - '[[IsUnpairedSurrogate]]': false - }); - - t.end(); - }); - - test('CopyDataProperties', function (t) { - t.test('first argument: target', function (st) { - forEach(v.primitives, function (primitive) { - st['throws']( - function () { ES.CopyDataProperties(primitive, {}, []); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - st.end(); - }); - - t.test('second argument: source', function (st) { - var frozenTarget = Object.freeze ? Object.freeze({}) : {}; - forEach(v.nullPrimitives, function (nullish) { - st.equal( - ES.CopyDataProperties(frozenTarget, nullish, []), - frozenTarget, - debug(nullish) + ' "source" yields identical, unmodified target' - ); - }); - - forEach(v.nonNullPrimitives, function (objectCoercible) { - var target = {}; - var result = ES.CopyDataProperties(target, objectCoercible, []); - st.equal(result, target, 'result === target'); - st.deepEqual(keys(result), keys(Object(objectCoercible)), 'target ends up with keys of ' + debug(objectCoercible)); - }); - - st.test('enumerable accessor property', { skip: !defineProperty.oDP }, function (s2t) { - var target = {}; - var source = {}; - defineProperty(source, 'a', { - enumerable: true, - get: function () { return 42; } - }); - var result = ES.CopyDataProperties(target, source, []); - s2t.equal(result, target, 'result === target'); - s2t.deepEqual(result, { a: 42 }, 'target ends up with enumerable accessor of source'); - s2t.end(); - }); - - st.end(); - }); - - t.test('third argument: excludedItems', function (st) { - forEach(v.objects.concat(v.primitives), function (nonArray) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, nonArray); }, - TypeError, - debug(nonArray) + ' is not an Array' - ); - }); - - forEach(v.nonPropertyKeys, function (nonPropertyKey) { - st['throws']( - function () { ES.CopyDataProperties({}, {}, [nonPropertyKey]); }, - TypeError, - debug(nonPropertyKey) + ' is not a Property Key' - ); - }); - - var result = ES.CopyDataProperties({}, { a: 1, b: 2, c: 3 }, ['b']); - st.deepEqual(keys(result).sort(), ['a', 'c'].sort(), 'excluded string keys are excluded'); - - st.test('excluding symbols', { skip: !v.hasSymbols }, function (s2t) { - var source = {}; - forEach(v.symbols, function (symbol) { - source[symbol] = true; - }); - - var includedSymbols = v.symbols.slice(1); - var excludedSymbols = v.symbols.slice(0, 1); - var target = ES.CopyDataProperties({}, source, excludedSymbols); - - forEach(includedSymbols, function (symbol) { - s2t.equal(has(target, symbol), true, debug(symbol) + ' is included'); - }); - - forEach(excludedSymbols, function (symbol) { - s2t.equal(has(target, symbol), false, debug(symbol) + ' is excluded'); - }); - - s2t.end(); - }); - - st.end(); - }); - - // TODO: CopyDataProperties throws when copying fails - - t.end(); - }); - - test('GetIterator', function (t) { - try { - ES.GetIterator({}, null); - } catch (e) { - t.ok(e.message.indexOf('Assertion failed: `hint` must be one of \'sync\' or \'async\'' >= 0)); - } - - var arr = [1, 2]; - testIterator(t, ES.GetIterator(arr), arr); - - testIterator(t, ES.GetIterator('abc'), 'abc'.split('')); - - t.test('Symbol.iterator', { skip: !v.hasSymbols }, function (st) { - var m = new Map(); - m.set(1, 'a'); - m.set(2, 'b'); - - testIterator(st, ES.GetIterator(m), [[1, 'a'], [2, 'b']]); - - st.end(); - }); - - t.test('Symbol.asyncIterator', { skip: !v.hasSymbols || !Symbol.asyncIterator }, function (st) { - try { - ES.GetIterator(arr, 'async'); - } catch (e) { - st.ok(e.message.indexOf("async from sync iterators aren't currently supported") >= 0); - } - - var it = { - next: function () { - return Promise.resolve({ - done: true - }); - } - }; - var obj = {}; - obj[Symbol.asyncIterator] = function () { - return it; - }; - - st.equal(ES.GetIterator(obj, 'async'), it); - - st.end(); - }); - - t.end(); - }); - - var unclampedUnsignedIntegerTypes = [ - 'Int8', - 'Int16', - 'Int32' - ]; - var clampedTypes = [ - 'Uint8C' - ]; - var unclampedSignedIntegerTypes = [ - 'Uint8', - 'Uint16', - 'Uint32' - ]; - var unclampedIntegerTypes = unclampedUnsignedIntegerTypes.concat(unclampedSignedIntegerTypes); - var floatTypes = [ - 'Float32', - 'Float64' - ]; - var integerTypes = unclampedIntegerTypes.concat(clampedTypes, floatTypes); - var bigIntTypes = [ - 'BigInt64', - 'BigUint64' - ]; - var numberTypes = floatTypes.concat(integerTypes); - var nonIntegerTypes = floatTypes.concat(bigIntTypes); - var unsignedElementTypes = unclampedSignedIntegerTypes.concat([ - 'BigUint64' - ]); - var signedElementTypes = unclampedUnsignedIntegerTypes; - - test('IsBigIntElementType', function (t) { - forEach(bigIntTypes, function (type) { - t.equal( - ES.IsBigIntElementType(type), - true, - debug(type) + ' is a BigInt element type' - ); - }); - - forEach(numberTypes, function (type) { - t.equal( - ES.IsBigIntElementType(type), - false, - debug(type) + ' is not a BigInt element type' - ); - }); - - t.end(); - }); - - test('IsUnsignedElementType', function (t) { - forEach(unsignedElementTypes, function (type) { - t.equal( - ES.IsUnsignedElementType(type), - true, - debug(type) + ' is an unsigned element type' - ); - }); - - forEach(signedElementTypes, function (type) { - t.equal( - ES.IsUnsignedElementType(type), - false, - debug(type) + ' is not an unsigned element type' - ); - }); - - t.end(); - }); - - test('IsUnclampedIntegerElementType', function (t) { - forEach(unclampedIntegerTypes, function (type) { - t.equal( - ES.IsUnclampedIntegerElementType(type), - true, - debug(type) + ' is an unclamped integer element type' - ); - }); - - forEach(clampedTypes.concat(nonIntegerTypes), function (type) { - t.equal( - ES.IsUnclampedIntegerElementType(type), - false, - debug(type) + ' is not an unclamped integer element type' - ); - }); - - t.end(); - }); - - test('IsNonNegativeInteger', function (t) { - forEach(v.notNonNegativeIntegers, function (nonIntegerNumber) { - t.equal( - ES.IsNonNegativeInteger(nonIntegerNumber), - false, - debug(nonIntegerNumber) + ' is not a non-negative integer' - ); - }); - - forEach(v.zeroes.concat(v.integerNumbers), function (nonNegativeInteger) { - t.equal( - ES.IsNonNegativeInteger(nonNegativeInteger), - true, - debug(nonNegativeInteger) + ' is a non-negative integer' - ); - }); - - t.end(); - }); - - test('IsNoTearConfiguration', function (t) { - forEach(unclampedIntegerTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type), - true, - debug(type) + ' with any order is a no-tear configuration' - ); - }); - - forEach(bigIntTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type, 'Init'), - false, - debug(type) + ' with ' + debug('Init') + ' is not a no-tear configuration' - ); - - t.equal( - ES.IsNoTearConfiguration(type, 'Unordered'), - false, - debug(type) + ' with ' + debug('Unordered') + ' is not a no-tear configuration' - ); - - t.equal( - ES.IsNoTearConfiguration(type), - true, - debug(type) + ' with any other order is a no-tear configuration' - ); - }); - - forEach(clampedTypes, function (type) { - t.equal( - ES.IsNoTearConfiguration(type), - false, - debug(type) + ' with any order is not a no-tear configuration' - ); - }); - - t.end(); - }); - - test('LengthOfArrayLike', function (t) { - forEach(v.primitives, function (primitive) { - t['throws']( - function () { ES.LengthOfArrayLike(primitive); }, - TypeError, - debug(primitive) + ' is not an Object' - ); - }); - - t.equal(ES.LengthOfArrayLike([]), 0); - t.equal(ES.LengthOfArrayLike([1]), 1); - t.equal(ES.LengthOfArrayLike({ length: 42 }), 42); - - t.end(); - }); - - test('Number::add', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.add(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.add(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.add(+Infinity, +Infinity), +Infinity, '+∞ + +∞ is +∞'); - t.equal(ES.Number.add(-Infinity, -Infinity), -Infinity, '-∞ + -∞ is -∞'); - t.equal(ES.Number.add(+Infinity, -Infinity), NaN, '+∞ + -∞ is NaN'); - t.equal(ES.Number.add(-Infinity, +Infinity), NaN, '-∞ + +∞ is NaN'); - - t.equal(ES.Number.add(+0, +0), +0, '0 + 0 is +0'); - t.equal(ES.Number.add(+0, -0), +0, '0 + -0 is +0'); - t.equal(ES.Number.add(-0, +0), +0, '-0 + 0 is +0'); - t.equal(ES.Number.add(-0, -0), -0, '-0 + -0 is -0'); - - forEach(v.numbers, function (number) { - if (number !== 0) { - t.equal(ES.Number.add(number, 0), number, debug(number) + ' + 0 adds to ' + number); - } - t.equal(ES.Number.add(number, 1), number + 1, debug(number) + ' + 1 adds to ' + (number + 1)); - t.equal(ES.Number.add(1, number), number + 1, '1 + ' + debug(number) + ' adds to ' + (number + 1)); - t.equal(ES.Number.add(number, -42), number - 42, debug(number) + ' + -42 adds to ' + (number - 42)); - t.equal(ES.Number.add(-42, number), number - 42, '-42 + ' + debug(number) + ' adds to ' + (number - 42)); - }); - - t.end(); - }); - - test('Number::bitwiseAND', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.bitwiseAND(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.bitwiseAND(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.bitwiseAND(1, 2), 1 & 2); - - t.end(); - }); - - test('Number::bitwiseNOT', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.bitwiseNOT(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.int32s, function (int32) { - t.equal(ES.Number.bitwiseNOT(int32), ~int32, debug(int32) + ' becomes ~' + debug(int32)); - }); - - t.end(); - }); - - test('Number::bitwiseOR', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.bitwiseOR(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.bitwiseOR(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.bitwiseOR(1, 2), 1 | 2); - - t.end(); - }); - - test('Number::bitwiseXOR', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.bitwiseXOR(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.bitwiseXOR(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.bitwiseXOR(1, 2), 1 ^ 2); - - t.end(); - }); - - test('Number::divide', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.divide(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.divide(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.divide(Infinity, Infinity), NaN, '∞ / ∞ is NaN'); - t.equal(ES.Number.divide(-Infinity, Infinity), NaN, '-∞ / ∞ is NaN'); - t.equal(ES.Number.divide(Infinity, -Infinity), NaN, '∞ / -∞ is NaN'); - t.equal(ES.Number.divide(-Infinity, -Infinity), NaN, '-∞ / -∞ is NaN'); - - t.equal(ES.Number.divide(NaN, NaN), NaN, 'NaN / NaN is NaN'); - - t.equal(ES.Number.divide(+Infinity, +0), +Infinity, '+∞ / +0 is +∞'); - t.equal(ES.Number.divide(-Infinity, -0), +Infinity, '-∞ / -0 is +∞'); - t.equal(ES.Number.divide(+Infinity, -0), -Infinity, '+∞ / -0 is -∞'); - t.equal(ES.Number.divide(-Infinity, +0), -Infinity, '-∞ / +0 is -∞'); - - t.equal(ES.Number.divide(+0, +Infinity), +0, '+0 / +∞ is +0'); - t.equal(ES.Number.divide(-0, -Infinity), +0, '-0 / -∞ is +0'); - t.equal(ES.Number.divide(-0, +Infinity), -0, '-0 / +∞ is -0'); - t.equal(ES.Number.divide(+0, -Infinity), -0, '+0 / -∞ is -0'); - - forEach(v.numbers, function (number) { - if (number !== 0 && isFinite(number)) { - t.equal(ES.Number.divide(number, number), 1, debug(number) + ' divided by itself is 1'); - t.equal(ES.Number.divide(number, 2), number / 2, debug(number) + ' divided by 2 is half itself'); - } - }); - - t.end(); - }); - - test('Number::equal', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.equal(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.equal(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.equal(Infinity, Infinity), true, '∞ === ∞'); - t.equal(ES.Number.equal(-Infinity, Infinity), false, '-∞ !== ∞'); - t.equal(ES.Number.equal(Infinity, -Infinity), false, '∞ !== -∞'); - t.equal(ES.Number.equal(-Infinity, -Infinity), true, '-∞ === -∞'); - - t.equal(ES.Number.equal(NaN, NaN), false, 'NaN !== NaN'); - - t.equal(ES.Number.equal(Infinity, 0), false, '∞ !== 0'); - t.equal(ES.Number.equal(-Infinity, -0), false, '-∞ !== -0'); - t.equal(ES.Number.equal(Infinity, -0), false, '∞ !== -0'); - t.equal(ES.Number.equal(-Infinity, 0), false, '-∞ !== 0'); - - t.equal(ES.Number.equal(+0, +0), true, '+0 === +0'); - t.equal(ES.Number.equal(+0, -0), true, '+0 === -0'); - t.equal(ES.Number.equal(-0, +0), true, '-0 === +0'); - t.equal(ES.Number.equal(-0, -0), true, '-0 === -0'); - - forEach(v.numbers, function (number) { - if (isFinite(number)) { - t.equal(ES.Number.equal(number, number), true, debug(number) + ' is equal to itself'); - t.equal(ES.Number.equal(number, number + 1), false, debug(number) + ' is not equal to itself plus 1'); - } - }); - - t.end(); - }); - - test('Number::exponentiate', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.exponentiate(nonNumber, 0); }, - TypeError, - 'base: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.exponentiate(0, nonNumber); }, - TypeError, - 'exponent: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.exponentiate(0, 42), 0, '+0 ** 42 is +0'); - t.equal(ES.Number.exponentiate(0, -42), Infinity, '+0 ** 42 is +∞'); - t.equal(ES.Number.exponentiate(-0, 42), 0, '-0 ** 42 is +0'); - t.equal(ES.Number.exponentiate(-0, 41), -0, '-0 ** 41 is -0'); - t.equal(ES.Number.exponentiate(-0, -42), Infinity, '-0 ** 42 is +∞'); - t.equal(ES.Number.exponentiate(-0, -41), -Infinity, '-0 ** 41 is -∞'); - - t.equal(ES.Number.exponentiate(Infinity, 0), 1, '+∞ ** 0 is 1'); - t.equal(ES.Number.exponentiate(Infinity, -0), 1, '+∞ ** -0 is 1'); - t.equal(ES.Number.exponentiate(-Infinity, 0), 1, '-∞ ** 0 is 1'); - t.equal(ES.Number.exponentiate(-Infinity, -0), 1, '-∞ ** -0 is 1'); - - t.equal(ES.Number.exponentiate(Infinity, 1), Infinity, '+∞ ** 1 is +∞'); - t.equal(ES.Number.exponentiate(Infinity, 2), Infinity, '+∞ ** 2 is +∞'); - t.equal(ES.Number.exponentiate(Infinity, -1), +0, '+∞ ** -1 is +0'); - t.equal(ES.Number.exponentiate(Infinity, -2), +0, '+∞ ** -2 is +0'); - - t.equal(ES.Number.exponentiate(-Infinity, 1), -Infinity, '-∞ ** 1 is -∞'); - t.equal(ES.Number.exponentiate(-Infinity, 2), Infinity, '-∞ ** 2 is +∞'); - t.equal(ES.Number.exponentiate(-Infinity, -1), -0, '-∞ ** --1 is -0'); - t.equal(ES.Number.exponentiate(-Infinity, -2), +0, '-∞ ** --2 is +0'); - - t.equal(ES.Number.exponentiate(1.1, Infinity), Infinity, '1.1 ** +∞ is +∞'); - t.equal(ES.Number.exponentiate(1.1, -Infinity), 0, '1.1 ** -∞ is +0'); - t.equal(ES.Number.exponentiate(-1.1, Infinity), Infinity, '-1.1 ** +∞ is +∞'); - t.equal(ES.Number.exponentiate(-1.1, -Infinity), 0, '-1.1 ** -∞ is +0'); - - t.equal(ES.Number.exponentiate(1, Infinity), NaN, '1 ** +∞ is NaN'); - t.equal(ES.Number.exponentiate(1, -Infinity), NaN, '1 ** -∞ is NaN'); - t.equal(ES.Number.exponentiate(-1, Infinity), NaN, '-1 ** +∞ is NaN'); - t.equal(ES.Number.exponentiate(-1, -Infinity), NaN, '-1 ** -∞ is NaN'); - - t.equal(ES.Number.exponentiate(0.9, Infinity), 0, '0.9 ** +∞ is +0'); - t.equal(ES.Number.exponentiate(0.9, -Infinity), Infinity, '0.9 ** -∞ is ∞'); - t.equal(ES.Number.exponentiate(-0.9, Infinity), 0, '-0.9 ** +∞ is +0'); - t.equal(ES.Number.exponentiate(-0.9, -Infinity), Infinity, '-0.9 ** -∞ is +∞'); - - forEach(v.numbers.concat(NaN), function (number) { - t.equal(ES.Number.exponentiate(number, NaN), NaN, debug(number) + ' ** NaN is NaN'); - - if (number !== 0) { - t.equal(ES.Number.exponentiate(number, 0), 1, debug(number) + ' ** +0 is 1'); - t.equal(ES.Number.exponentiate(number, -0), 1, debug(number) + ' ** -0 is 1'); - t.equal(ES.Number.exponentiate(NaN, number), NaN, 'NaN ** ' + debug(number) + ' is NaN'); - } - - if (number !== 0 && isFinite(number)) { - t.equal(ES.Number.equal(number, number), true, debug(number) + ' is equal to itself'); - t.equal(ES.Number.equal(number, number + 1), false, debug(number) + ' is not equal to itself plus 1'); - } - }); - - t.end(); - }); - - test('Number::leftShift', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.leftShift(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.leftShift(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - forEach([0].concat(v.int32s), function (int32) { - forEach([1, 3, 5, 31, 32, 33], function (bits) { - t.equal(ES.Number.leftShift(int32, bits), int32 << bits, debug(int32) + ' << ' + bits + ' is ' + debug(int32 << bits)); - }); - }); - - t.end(); - }); - - test('Number::lessThan', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.lessThan(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.lessThan(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.lessThan(+0, -0), false, '+0 < -0 is false'); - t.equal(ES.Number.lessThan(+0, +0), false, '+0 < +0 is false'); - t.equal(ES.Number.lessThan(-0, +0), false, '-0 < +0 is false'); - t.equal(ES.Number.lessThan(-0, -0), false, '-0 < -0 is false'); - - t.equal(ES.Number.lessThan(NaN, NaN), undefined, 'NaN < NaN is undefined'); - - t.equal(ES.Number.lessThan(+Infinity, +Infinity), false, '+∞ < +∞ is false'); - t.equal(ES.Number.lessThan(+Infinity, -Infinity), false, '+∞ < -∞ is false'); - t.equal(ES.Number.lessThan(-Infinity, +Infinity), true, '-∞ < +∞ is true'); - t.equal(ES.Number.lessThan(-Infinity, -Infinity), false, '-∞ < -∞ is false'); - - forEach(v.numbers.concat(v.infinities), function (number) { - t.equal(ES.Number.lessThan(NaN, number), undefined, 'NaN < ' + debug(number) + ' is undefined'); - t.equal(ES.Number.lessThan(number, NaN), undefined, debug(number) + ' < NaN is undefined'); - - t.equal(ES.Number.lessThan(number, number), false, debug(number) + ' is not less than itself'); - - if (isFinite(number)) { - t.equal(ES.Number.lessThan(number, number + 1), true, debug(number) + ' < ' + debug(number + 1) + ' is true'); - t.equal(ES.Number.lessThan(number + 1, number), false, debug(number + 1) + ' < ' + debug(number) + ' is false'); - - t.equal(ES.Number.lessThan(Infinity, number), false, '+∞ < ' + debug(number) + ' is false'); - t.equal(ES.Number.lessThan(number, Infinity), true, debug(number) + ' < +∞ is true'); - t.equal(ES.Number.lessThan(-Infinity, number), true, '-∞ < ' + debug(number) + ' is true'); - t.equal(ES.Number.lessThan(number, -Infinity), false, debug(number) + ' < -∞ is false'); - } - }); - - t.end(); - }); - - test('Number::multiply', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.multiply(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.multiply(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - forEach([+0, -0, 1, -1], function (x) { - var expected = x === 0 ? NaN : Infinity; - t.equal(ES.Number.multiply(Infinity, x), expected, '+∞ * ' + debug(x) + ' is ' + debug(expected)); - t.equal(ES.Number.multiply(x, Infinity), expected, debug(x) + ' * +∞ is ' + debug(expected)); - t.equal(ES.Number.multiply(-Infinity, x), -expected, '-∞ * ' + debug(x) + ' is ' + debug(expected)); - t.equal(ES.Number.multiply(x, -Infinity), -expected, debug(x) + ' * -∞ is ' + debug(expected)); - }); - - t.equal(ES.Number.multiply(Infinity, Infinity), Infinity, '+∞ * +∞ is +∞'); - t.equal(ES.Number.multiply(Infinity, -Infinity), -Infinity, '+∞ * -∞ is -∞'); - t.equal(ES.Number.multiply(-Infinity, Infinity), -Infinity, '-∞ * +∞ is -∞'); - t.equal(ES.Number.multiply(-Infinity, -Infinity), Infinity, '-∞ * -∞ is +∞'); - - t.equal(ES.Number.multiply(+0, +0), +0, '0 * 0 is +0'); - t.equal(ES.Number.multiply(+0, -0), -0, '0 * -0 is -0'); - t.equal(ES.Number.multiply(-0, +0), -0, '-0 * 0 is -0'); - t.equal(ES.Number.multiply(-0, -0), +0, '-0 * -0 is +0'); - - forEach(v.numbers.concat(NaN), function (number) { - t.equal(ES.Number.multiply(NaN, number), NaN, 'NaN * ' + debug(number) + ' is NaN'); - t.equal(ES.Number.multiply(number, NaN), NaN, debug(number) + ' * NaN is NaN'); - - if (number !== 0 && isFinite(number)) { - t.equal(ES.Number.multiply(number, 0), number > 0 ? 0 : -0, debug(number) + ' * +0 produces ' + (number > 0 ? '+0' : '-0')); - t.equal(ES.Number.multiply(0, number), number > 0 ? 0 : -0, '+0 * ' + debug(number) + ' produces ' + (number > 0 ? '+0' : '-0')); - t.equal(ES.Number.multiply(number, -0), number > 0 ? -0 : 0, debug(number) + ' * -0 produces ' + (number > 0 ? '-0' : '+0')); - t.equal(ES.Number.multiply(-0, number), number > 0 ? -0 : 0, '-0 * ' + debug(number) + ' produces ' + (number > 0 ? '-0' : '+0')); - t.equal(ES.Number.multiply(number, 1), number, debug(number) + ' * 1 produces itself'); - t.equal(ES.Number.multiply(number, -42), number * -42, debug(number) + ' * -42 produces ' + (number - 42)); - } - }); - - t.end(); - }); - - test('Number::remainder', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.remainder(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.remainder(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.remainder(NaN, NaN), NaN, 'NaN % NaN is NaN'); - - t.equal(ES.Number.remainder(+0, +0), NaN, '+0 % +0 is NaN'); - t.equal(ES.Number.remainder(+0, -0), NaN, '+0 % -0 is NaN'); - t.equal(ES.Number.remainder(-0, +0), NaN, '-0 % +0 is NaN'); - t.equal(ES.Number.remainder(-0, -0), NaN, '-0 % -0 is NaN'); - - forEach(v.numbers, function (number) { - t.equal(ES.Number.remainder(number, NaN), NaN, debug(number) + ' % NaN is NaN'); - t.equal(ES.Number.remainder(NaN, number), NaN, 'NaN % ' + debug(number) + ' is NaN'); - - t.equal(ES.Number.remainder(Infinity, number), NaN, '+∞ % ' + debug(number) + ' is NaN'); - t.equal(ES.Number.remainder(-Infinity, number), NaN, '-∞ % ' + debug(number) + ' is NaN'); - t.equal(ES.Number.remainder(number, 0), NaN, debug(number) + ' % +0 is NaN'); - t.equal(ES.Number.remainder(number, -0), NaN, debug(number) + ' % -0 is NaN'); - - if (isFinite(number)) { - t.equal(ES.Number.remainder(number, Infinity), number, debug(number) + ' % +∞ is ' + debug(number)); - t.equal(ES.Number.remainder(number, -Infinity), number, debug(number) + ' % -∞ is ' + debug(number)); - if (number !== 0) { - t.equal(ES.Number.remainder(0, number), 0, '+0 % ' + debug(number) + ' is ' + debug(number)); - t.equal(ES.Number.remainder(-0, number), -0, '-0 % ' + debug(number) + ' is ' + debug(number)); - t.looseEqual(ES.Number.remainder(number * 2, number), 0, debug(number) + ' % ' + debug(number * 2) + ' is 0'); - } - } - }); - - t.end(); - }); - - test('Number::sameValue', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.sameValue(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.sameValue(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.ok(ES.Number.sameValue(NaN, NaN), true, 'NaN is the sameValue as NaN'); - - t.equal(ES.Number.sameValue(+0, +0), true, '+0 is sameValue as +0'); - t.equal(ES.Number.sameValue(+0, -0), false, '+0 is not sameValue as -0'); - t.equal(ES.Number.sameValue(-0, +0), false, '-0 is not sameValue as +0'); - t.equal(ES.Number.sameValue(-0, -0), true, '-0 is sameValue as -0'); - - forEach(v.numbers, function (number) { - t.ok(ES.Number.sameValue(number, number), debug(number) + ' is the sameValue as itself'); - }); - - t.end(); - }); - - test('Number::sameValueZero', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.sameValueZero(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.sameValueZero(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.ok(ES.Number.sameValueZero(NaN, NaN), true, 'NaN is the sameValueZero as NaN'); - - t.equal(ES.Number.sameValueZero(+0, +0), true, '+0 is sameValueZero as +0'); - t.equal(ES.Number.sameValueZero(+0, -0), true, '+0 is sameValueZero as -0'); - t.equal(ES.Number.sameValueZero(-0, +0), true, '-0 is sameValueZero as +0'); - t.equal(ES.Number.sameValueZero(-0, -0), true, '-0 is sameValueZero as -0'); - - forEach(v.numbers, function (number) { - t.ok(ES.Number.sameValueZero(number, number), debug(number) + ' is the sameValueZero as itself'); - }); - - t.end(); - }); - - test('Number::signedRightShift', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.signedRightShift(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.signedRightShift(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - forEach([0].concat(v.int32s), function (int32) { - forEach([1, 3, 5, 31, 32, 33], function (bits) { - t.equal(ES.Number.signedRightShift(int32, bits), int32 >> bits, debug(int32) + ' >> ' + bits + ' is ' + debug(int32 >> bits)); - }); - }); - - t.end(); - }); - - test('Number::subtract', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.subtract(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.subtract(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.subtract(+0, +0), +0, '0 - 0 is +0'); - t.equal(ES.Number.subtract(+0, -0), +0, '0 - -0 is +0'); - t.equal(ES.Number.subtract(-0, +0), -0, '-0 - 0 is -0'); - t.equal(ES.Number.subtract(-0, -0), +0, '-0 - -0 is +0'); - - forEach(v.numbers, function (number) { - if (number !== 0) { - t.equal(ES.Number.subtract(number, 0), number, debug(number) + ' - 0 produces ' + number); - } - t.equal(ES.Number.subtract(number, 1), number - 1, debug(number) + ' - 1 produces ' + (number + 1)); - t.equal(ES.Number.subtract(number, 42), number - 42, debug(number) + ' - 42 produces ' + (number - 42)); - }); - - t.end(); - }); - - test('Number::toString', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.toString(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.numbers, function (number) { - t.equal(ES.Number.toString(number), String(number), debug(number) + ' stringifies to ' + number); - }); - - t.end(); - }); - - test('Number::unaryMinus', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.unaryMinus(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.Number.unaryMinus(NaN), NaN, 'NaN produces NaN'); - - forEach(v.numbers, function (number) { - t.equal(ES.Number.unaryMinus(number), -number, debug(number) + ' produces -' + debug(number)); - }); - - t.end(); - }); - - test('Number::unsignedRightShift', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.Number.unsignedRightShift(nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.Number.unsignedRightShift(0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - forEach([0].concat(v.int32s), function (int32) { - forEach([1, 3, 5, 31, 32, 33], function (bits) { - t.equal(ES.Number.unsignedRightShift(int32, bits), int32 >>> bits, debug(int32) + ' >>> ' + bits + ' is ' + debug(int32 >>> bits)); - }); - }); - - t.end(); - }); - - test('NumberToBigInt', function (t) { - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.NumberToBigInt(nonNumber); }, - TypeError, - debug(nonNumber) + ' is not a Number' - ); - }); - - forEach(v.nonIntegerNumbers, function (nonIntegerNumber) { - t['throws']( - function () { ES.NumberToBigInt(nonIntegerNumber); }, - RangeError, - debug(nonIntegerNumber) + ' is not an integer' - ); - }); - - t.test('actual BigInts', { skip: !hasBigInts }, function (st) { - forEach(v.integerNumbers, function (int) { - if (int >= 1e17) { - // BigInt(1e17) throws on node v10.4 - v10.8 - try { - st.equal(ES.NumberToBigInt(int), $BigInt(int), debug(int) + ' becomes ' + debug($BigInt(int))); - } catch (e) { - st['throws']( - function () { $BigInt(int); }, - RangeError, - debug(int) + ' is too large on this engine to convert into a BigInt' - ); - } - } else { - st.equal(ES.NumberToBigInt(int), $BigInt(int), debug(int) + ' becomes ' + debug($BigInt(int))); - } - }); - st.end(); - }); - - t.end(); - }); - - test('OrdinaryObjectCreate', function (t) { - forEach(v.nonNullPrimitives, function (value) { - t['throws']( - function () { ES.OrdinaryObjectCreate(value); }, - TypeError, - debug(value) + ' is not null, or an object' - ); - }); - - t.test('proto arg', function (st) { - var Parent = function Parent() {}; - Parent.prototype.foo = {}; - var child = ES.OrdinaryObjectCreate(Parent.prototype); - st.equal(child instanceof Parent, true, 'child is instanceof Parent'); - st.equal(child.foo, Parent.prototype.foo, 'child inherits properties from Parent.prototype'); - - st.end(); - }); - - t.test('internal slots arg', function (st) { - st.doesNotThrow(function () { ES.OrdinaryObjectCreate({}, []); }, 'an empty slot list is valid'); - - st['throws']( - function () { ES.OrdinaryObjectCreate({}, ['a']); }, - SyntaxError, - 'internal slots are not supported' - ); - - st.end(); - }); - - t.test('null proto', { skip: !$setProto }, function (st) { - st.equal('toString' in {}, true, 'normal objects have toString'); - st.equal('toString' in ES.OrdinaryObjectCreate(null), false, 'makes a null object'); - - st.end(); - }); - - t.test('null proto when no native Object.create', { skip: $setProto }, function (st) { - st['throws']( - function () { ES.OrdinaryObjectCreate(null); }, - SyntaxError, - 'without a native Object.create, can not create null objects' - ); - - st.end(); - }); - - t.end(); - }); - - test('SameValueNonNumeric', function (t) { - var willThrow = [ - [3, 4], - [NaN, 4], - [4, ''], - ['abc', true], - [{}, false] - ]; - forEach(willThrow, function (nums) { - t['throws'](function () { return ES.SameValueNonNumeric.apply(ES, nums); }, TypeError, 'value must be same type and non-number'); - }); - - forEach(v.objects.concat(v.nonNumberPrimitives), function (val) { - t.equal(val === val, ES.SameValueNonNumeric(val, val), debug(val) + ' is SameValueNonNumeric to itself'); - }); - - t.end(); - }); - - test('StringPad', function (t) { - t.equal(ES.StringPad('a', 3, undefined, 'start'), ' a'); - t.equal(ES.StringPad('a', 3, undefined, 'end'), 'a '); - t.equal(ES.StringPad('a', 3, '0', 'start'), '00a'); - t.equal(ES.StringPad('a', 3, '0', 'end'), 'a00'); - t.equal(ES.StringPad('a', 3, '012', 'start'), '01a'); - t.equal(ES.StringPad('a', 3, '012', 'end'), 'a01'); - t.equal(ES.StringPad('a', 7, '012', 'start'), '012012a'); - t.equal(ES.StringPad('a', 7, '012', 'end'), 'a012012'); - - t.end(); - }); - - test('thisBigIntValue', { skip: !hasBigInts }, function (t) { - t.equal(ES.thisBigIntValue(BigInt(42)), BigInt(42)); - t.equal(ES.thisBigIntValue(Object(BigInt(42))), BigInt(42)); - - forEach(v.nonBigInts, function (nonBigInt) { - t['throws']( - function () { ES.thisBigIntValue(nonBigInt); }, - TypeError, - debug(nonBigInt) + ' is not a BigInt' - ); - }); - - t.end(); - }); - - test('ToInteger', function (t) { - forEach([0, -0, NaN], function (num) { - t.equal(0, ES.ToInteger(num), debug(num) + ' returns +0'); - }); - forEach([Infinity, 42], function (num) { - t.equal(num, ES.ToInteger(num), debug(num) + ' returns itself'); - t.equal(-num, ES.ToInteger(-num), '-' + debug(num) + ' returns itself'); - }); - t.equal(3, ES.ToInteger(Math.PI), 'pi returns 3'); - t['throws'](function () { return ES.ToInteger(v.uncoercibleObject); }, TypeError, 'uncoercibleObject throws'); - t.end(); - }); - - test('ToNumber', function (t) { - testToNumber(t, ES, ES.ToNumber); - - forEach(v.bigints, function (bigInt) { - t['throws']( - function () { ES.ToNumber(bigInt); }, - TypeError, - 'ToNumber of ' + debug(bigInt) + ' throws' - ); - - var boxed = Object(bigInt); - t['throws']( - function () { ES.ToNumber(boxed); }, - TypeError, - 'ToNumber of ' + debug(boxed) + ' throws' - ); - }); - - t.end(); - }); - - test('UTF16DecodeSurrogatePair', function (t) { - t['throws']( - function () { ES.UTF16DecodeSurrogatePair('a'.charCodeAt(0), trailingPoo.charCodeAt(0)); }, - TypeError, - '"a" is not a leading surrogate' - ); - t['throws']( - function () { ES.UTF16DecodeSurrogatePair(leadingPoo.charCodeAt(0), 'b'.charCodeAt(0)); }, - TypeError, - '"b" is not a trailing surrogate' - ); - - t.equal(ES.UTF16DecodeSurrogatePair(leadingPoo.charCodeAt(0), trailingPoo.charCodeAt(0)), wholePoo); - - t.end(); - }); - - test('NumberBitwiseOp', function (t) { - t['throws']( - function () { ES.NumberBitwiseOp('invalid', 0, 0); }, - TypeError, - 'throws with an invalid op' - ); - - forEach(v.nonNumbers, function (nonNumber) { - t['throws']( - function () { ES.NumberBitwiseOp('&', nonNumber, 0); }, - TypeError, - 'x: ' + debug(nonNumber) + ' is not a Number' - ); - t['throws']( - function () { ES.NumberBitwiseOp('&', 0, nonNumber); }, - TypeError, - 'y: ' + debug(nonNumber) + ' is not a Number' - ); - }); - - t.equal(ES.NumberBitwiseOp('&', 1, 2), 1 & 2); - t.equal(ES.NumberBitwiseOp('|', 1, 2), 1 | 2); - t.equal(ES.NumberBitwiseOp('^', 1, 2), 1 ^ 2); - - t.end(); - }); - - test('ToNumeric', function (t) { - testToNumber(t, ES, ES.ToNumeric); - - t.test('BigInts', { skip: !hasBigInts }, function (st) { - st.equal(ES.ToNumeric(BigInt(42)), BigInt(42), debug(BigInt(42)) + ' is ' + debug(BigInt(42))); - st.equal(ES.ToNumeric(Object(BigInt(42))), BigInt(42), debug(Object(BigInt(42))) + ' is ' + debug(BigInt(42))); - - var valueOf = { valueOf: function () { return BigInt(7); } }; - st.equal(ES.ToNumeric(valueOf), valueOf.valueOf(), debug(valueOf) + ' is ' + debug(valueOf.valueOf())); - - var toPrimitive = {}; - var value = BigInt(-2); - toPrimitive[Symbol.toPrimitive] = function () { return value; }; - st.equal(ES.ToNumeric(toPrimitive), value, debug(toPrimitive) + ' is ' + debug(value)); - - st.end(); - }); - - t.end(); - }); - - test('UTF16DecodeString', function (t) { - forEach(v.nonStrings, function (nonString) { - t['throws']( - function () { ES.UTF16DecodeString(nonString); }, - TypeError, - debug(nonString) + ' is not a String' - ); - }); - - t.deepEqual(ES.UTF16DecodeString('abc'), ['a', 'b', 'c'], 'code units get split'); - t.deepEqual(ES.UTF16DecodeString('a' + wholePoo + 'c'), ['a', wholePoo, 'c'], 'code points get split too'); - - t.end(); - }); -}; - -module.exports = { - es5: es5, - es2015: es2015, - es2016: es2016, - es2017: es2017, - es2018: es2018, - es2019: es2019, - es2020: es2020 -}; diff --git a/node_modules/es-to-primitive/.eslintrc b/node_modules/es-to-primitive/.eslintrc deleted file mode 100644 index b6639b9..0000000 --- a/node_modules/es-to-primitive/.eslintrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 14], - "func-name-matching": 0, - "id-length": [2, { "min": 1, "max": 24, "properties": "never" }], - "max-statements": [2, 20], - "new-cap": [2, { "capIsNewExceptions": ["GetMethod"] }] - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "max-lines-per-function": [2, { "max": 68 }], - }, - } - ], -} diff --git a/node_modules/es-to-primitive/.github/FUNDING.yml b/node_modules/es-to-primitive/.github/FUNDING.yml deleted file mode 100644 index 9f928ae..0000000 --- a/node_modules/es-to-primitive/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/es-to-primitive -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/es-to-primitive/.travis.yml b/node_modules/es-to-primitive/.travis.yml deleted file mode 100644 index d4c5a84..0000000 --- a/node_modules/es-to-primitive/.travis.yml +++ /dev/null @@ -1,15 +0,0 @@ -version: ~> 1.0 -language: node_js -cache: - directories: - - "$(nvm cache dir)" -os: - - linux -import: - - ljharb/travis-ci:node/all.yml - - ljharb/travis-ci:node/pretest.yml - - ljharb/travis-ci:node/posttest.yml - - ljharb/travis-ci:node/coverage.yml -matrix: - allow_failures: - - env: COVERAGE=true diff --git a/node_modules/es-to-primitive/CHANGELOG.md b/node_modules/es-to-primitive/CHANGELOG.md deleted file mode 100644 index 0a5dda7..0000000 --- a/node_modules/es-to-primitive/CHANGELOG.md +++ /dev/null @@ -1,49 +0,0 @@ -1.2.1 / 2019-11-08 -================= - * [readme] remove testling URLs - * [meta] add `funding` field - * [meta] create FUNDING.yml - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `replace`, `semver`, `tape`, `function.prototype.name` - * [Tests] use shared travis-ci configs - * [Tests] Add es5 tests for `symbol` types (#45) - * [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops - * [Tests] remove `jscs` - -1.2.0 / 2018-09-27 -================= - * [New] create ES2015 entry point/property, to replace ES6 - * [Fix] Ensure optional arguments are not part of the length (#29) - * [Deps] update `is-callable` - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver`, `object-inspect`, `replace` - * [Tests] avoid util.inspect bug with `new Date(NaN)` on node v6.0 and v6.1. - * [Tests] up to `node` `v10.11`, `v9.11`, `v8.12`, `v6.14`, `v4.9` - -1.1.1 / 2016-01-03 -================= - * [Fix: ES5] fix coercion logic: ES5’s ToPrimitive does not coerce any primitive value, regardless of hint (#2) - -1.1.0 / 2015-12-27 -================= - * [New] add `Symbol.toPrimitive` support - * [Deps] update `is-callable`, `is-date-object` - * [Dev Deps] update `eslint`, `tape`, `semver`, `jscs`, `covert`, `nsp`, `@ljharb/eslint-config` - * [Dev Deps] remove unused deps - * [Tests] up to `node` `v5.3` - * [Tests] fix npm upgrades on older node versions - * [Tests] fix testling - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - -1.0.1 / 2016-01-03 -================= - * [Fix: ES5] fix coercion logic: ES5’s ToPrimitive does not coerce any primitive value, regardless of hint (#2) - * [Deps] update `is-callable`, `is-date-object` - * [Dev Deps] update `eslint`, `tape`, `semver`, `jscs`, `covert`, `nsp`, `@ljharb/eslint-config` - * [Dev Deps] remove unused deps - * [Tests] up to `node` `v5.3` - * [Tests] fix npm upgrades on older node versions - * [Tests] fix testling - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - -1.0.0 / 2015-03-19 -================= - * Initial release. diff --git a/node_modules/es-to-primitive/LICENSE b/node_modules/es-to-primitive/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/es-to-primitive/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/es-to-primitive/Makefile b/node_modules/es-to-primitive/Makefile deleted file mode 100644 index b9e4fe1..0000000 --- a/node_modules/es-to-primitive/Makefile +++ /dev/null @@ -1,61 +0,0 @@ -# Since we rely on paths relative to the makefile location, abort if make isn't being run from there. -$(if $(findstring /,$(MAKEFILE_LIST)),$(error Please only invoke this makefile from the directory it resides in)) - - # The files that need updating when incrementing the version number. -VERSIONED_FILES := *.js *.json README* - - -# Add the local npm packages' bin folder to the PATH, so that `make` can find them, when invoked directly. -# Note that rather than using `$(npm bin)` the 'node_modules/.bin' path component is hard-coded, so that invocation works even from an environment -# where npm is (temporarily) unavailable due to having deactivated an nvm instance loaded into the calling shell in order to avoid interference with tests. -export PATH := $(shell printf '%s' "$$PWD/node_modules/.bin:$$PATH") -UTILS := semver -# Make sure that all required utilities can be located. -UTIL_CHECK := $(or $(shell PATH="$(PATH)" which $(UTILS) >/dev/null && echo 'ok'),$(error Did you forget to run `npm install` after cloning the repo? At least one of the required supporting utilities not found: $(UTILS))) - -# Default target (by virtue of being the first non '.'-prefixed in the file). -.PHONY: _no-target-specified -_no-target-specified: - $(error Please specify the target to make - `make list` shows targets. Alternatively, use `npm test` to run the default tests; `npm run` shows all tests) - -# Lists all targets defined in this makefile. -.PHONY: list -list: - @$(MAKE) -pRrn : -f $(MAKEFILE_LIST) 2>/dev/null | awk -v RS= -F: '/^# File/,/^# Finished Make data base/ {if ($$1 !~ "^[#.]") {print $$1}}' | command grep -v -e '^[^[:alnum:]]' -e '^$@$$command ' | sort - -# All-tests target: invokes the specified test suites for ALL shells defined in $(SHELLS). -.PHONY: test -test: - @npm test - -.PHONY: _ensure-tag -_ensure-tag: -ifndef TAG - $(error Please invoke with `make TAG= release`, where is either an increment specifier (patch, minor, major, prepatch, preminor, premajor, prerelease), or an explicit major.minor.patch version number) -endif - -CHANGELOG_ERROR = $(error No CHANGELOG specified) -.PHONY: _ensure-changelog -_ensure-changelog: - @ (git status -sb --porcelain | command grep -E '^( M|[MA] ) CHANGELOG.md' > /dev/null) || (echo no CHANGELOG.md specified && exit 2) - -# Ensures that the git workspace is clean. -.PHONY: _ensure-clean -_ensure-clean: - @[ -z "$$((git status --porcelain --untracked-files=no || echo err) | command grep -v 'CHANGELOG.md')" ] || { echo "Workspace is not clean; please commit changes first." >&2; exit 2; } - -# Makes a release; invoke with `make TAG= release`. -.PHONY: release -release: _ensure-tag _ensure-changelog _ensure-clean - @old_ver=`git describe --abbrev=0 --tags --match 'v[0-9]*.[0-9]*.[0-9]*'` || { echo "Failed to determine current version." >&2; exit 1; }; old_ver=$${old_ver#v}; \ - new_ver=`echo "$(TAG)" | sed 's/^v//'`; new_ver=$${new_ver:-patch}; \ - if printf "$$new_ver" | command grep -q '^[0-9]'; then \ - semver "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be major.minor.patch' >&2; exit 2; }; \ - semver -r "> $$old_ver" "$$new_ver" >/dev/null || { echo 'Invalid version number specified: $(TAG) - must be HIGHER than current one.' >&2; exit 2; } \ - else \ - new_ver=`semver -i "$$new_ver" "$$old_ver"` || { echo 'Invalid version-increment specifier: $(TAG)' >&2; exit 2; } \ - fi; \ - printf "=== Bumping version **$$old_ver** to **$$new_ver** before committing and tagging:\n=== TYPE 'proceed' TO PROCEED, anything else to abort: " && read response && [ "$$response" = 'proceed' ] || { echo 'Aborted.' >&2; exit 2; }; \ - replace "$$old_ver" "$$new_ver" -- $(VERSIONED_FILES) && \ - git commit -m "v$$new_ver" $(VERSIONED_FILES) CHANGELOG.md && \ - git tag -a -m "v$$new_ver" "v$$new_ver" diff --git a/node_modules/es-to-primitive/README.md b/node_modules/es-to-primitive/README.md deleted file mode 100644 index 5ce322b..0000000 --- a/node_modules/es-to-primitive/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# es-to-primitive [![Version Badge][npm-version-svg]][package-url] - -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -ECMAScript “ToPrimitive” algorithm. Provides ES5 and ES2015 versions. -When different versions of the spec conflict, the default export will be the latest version of the abstract operation. -Alternative versions will also be available under an `es5`/`es2015` exported property if you require a specific version. - -## Example - -```js -var toPrimitive = require('es-to-primitive'); -var assert = require('assert'); - -assert(toPrimitive(function () {}) === String(function () {})); - -var date = new Date(); -assert(toPrimitive(date) === String(date)); - -assert(toPrimitive({ valueOf: function () { return 3; } }) === 3); - -assert(toPrimitive(['a', 'b', 3]) === String(['a', 'b', 3])); - -var sym = Symbol(); -assert(toPrimitive(Object(sym)) === sym); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/es-to-primitive -[npm-version-svg]: http://versionbadg.es/ljharb/es-to-primitive.svg -[travis-svg]: https://travis-ci.org/ljharb/es-to-primitive.svg -[travis-url]: https://travis-ci.org/ljharb/es-to-primitive -[deps-svg]: https://david-dm.org/ljharb/es-to-primitive.svg -[deps-url]: https://david-dm.org/ljharb/es-to-primitive -[dev-deps-svg]: https://david-dm.org/ljharb/es-to-primitive/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/es-to-primitive#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/es-to-primitive.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/es-to-primitive.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/es-to-primitive.svg -[downloads-url]: http://npm-stat.com/charts.html?package=es-to-primitive diff --git a/node_modules/es-to-primitive/es2015.js b/node_modules/es-to-primitive/es2015.js deleted file mode 100644 index 4a11a34..0000000 --- a/node_modules/es-to-primitive/es2015.js +++ /dev/null @@ -1,75 +0,0 @@ -'use strict'; - -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; - -var isPrimitive = require('./helpers/isPrimitive'); -var isCallable = require('is-callable'); -var isDate = require('is-date-object'); -var isSymbol = require('is-symbol'); - -var ordinaryToPrimitive = function OrdinaryToPrimitive(O, hint) { - if (typeof O === 'undefined' || O === null) { - throw new TypeError('Cannot call method on ' + O); - } - if (typeof hint !== 'string' || (hint !== 'number' && hint !== 'string')) { - throw new TypeError('hint must be "string" or "number"'); - } - var methodNames = hint === 'string' ? ['toString', 'valueOf'] : ['valueOf', 'toString']; - var method, result, i; - for (i = 0; i < methodNames.length; ++i) { - method = O[methodNames[i]]; - if (isCallable(method)) { - result = method.call(O); - if (isPrimitive(result)) { - return result; - } - } - } - throw new TypeError('No default value'); -}; - -var GetMethod = function GetMethod(O, P) { - var func = O[P]; - if (func !== null && typeof func !== 'undefined') { - if (!isCallable(func)) { - throw new TypeError(func + ' returned for property ' + P + ' of object ' + O + ' is not a function'); - } - return func; - } - return void 0; -}; - -// http://www.ecma-international.org/ecma-262/6.0/#sec-toprimitive -module.exports = function ToPrimitive(input) { - if (isPrimitive(input)) { - return input; - } - var hint = 'default'; - if (arguments.length > 1) { - if (arguments[1] === String) { - hint = 'string'; - } else if (arguments[1] === Number) { - hint = 'number'; - } - } - - var exoticToPrim; - if (hasSymbols) { - if (Symbol.toPrimitive) { - exoticToPrim = GetMethod(input, Symbol.toPrimitive); - } else if (isSymbol(input)) { - exoticToPrim = Symbol.prototype.valueOf; - } - } - if (typeof exoticToPrim !== 'undefined') { - var result = exoticToPrim.call(input, hint); - if (isPrimitive(result)) { - return result; - } - throw new TypeError('unable to convert exotic object to primitive'); - } - if (hint === 'default' && (isDate(input) || isSymbol(input))) { - hint = 'string'; - } - return ordinaryToPrimitive(input, hint === 'default' ? 'number' : hint); -}; diff --git a/node_modules/es-to-primitive/es5.js b/node_modules/es-to-primitive/es5.js deleted file mode 100644 index 602aa36..0000000 --- a/node_modules/es-to-primitive/es5.js +++ /dev/null @@ -1,45 +0,0 @@ -'use strict'; - -var toStr = Object.prototype.toString; - -var isPrimitive = require('./helpers/isPrimitive'); - -var isCallable = require('is-callable'); - -// http://ecma-international.org/ecma-262/5.1/#sec-8.12.8 -var ES5internalSlots = { - '[[DefaultValue]]': function (O) { - var actualHint; - if (arguments.length > 1) { - actualHint = arguments[1]; - } else { - actualHint = toStr.call(O) === '[object Date]' ? String : Number; - } - - if (actualHint === String || actualHint === Number) { - var methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString']; - var value, i; - for (i = 0; i < methods.length; ++i) { - if (isCallable(O[methods[i]])) { - value = O[methods[i]](); - if (isPrimitive(value)) { - return value; - } - } - } - throw new TypeError('No default value'); - } - throw new TypeError('invalid [[DefaultValue]] hint supplied'); - } -}; - -// http://ecma-international.org/ecma-262/5.1/#sec-9.1 -module.exports = function ToPrimitive(input) { - if (isPrimitive(input)) { - return input; - } - if (arguments.length > 1) { - return ES5internalSlots['[[DefaultValue]]'](input, arguments[1]); - } - return ES5internalSlots['[[DefaultValue]]'](input); -}; diff --git a/node_modules/es-to-primitive/es6.js b/node_modules/es-to-primitive/es6.js deleted file mode 100644 index 2d1f4dc..0000000 --- a/node_modules/es-to-primitive/es6.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -module.exports = require('./es2015'); diff --git a/node_modules/es-to-primitive/helpers/isPrimitive.js b/node_modules/es-to-primitive/helpers/isPrimitive.js deleted file mode 100644 index 06f0bf0..0000000 --- a/node_modules/es-to-primitive/helpers/isPrimitive.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -module.exports = function isPrimitive(value) { - return value === null || (typeof value !== 'function' && typeof value !== 'object'); -}; diff --git a/node_modules/es-to-primitive/index.js b/node_modules/es-to-primitive/index.js deleted file mode 100644 index e60d912..0000000 --- a/node_modules/es-to-primitive/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var ES5 = require('./es5'); -var ES6 = require('./es6'); -var ES2015 = require('./es2015'); - -if (Object.defineProperty) { - Object.defineProperty(ES2015, 'ES5', { enumerable: false, value: ES5 }); - Object.defineProperty(ES2015, 'ES6', { enumerable: false, value: ES6 }); - Object.defineProperty(ES2015, 'ES2015', { enumerable: false, value: ES2015 }); -} else { - ES6.ES5 = ES5; - ES6.ES6 = ES6; - ES6.ES2015 = ES2015; -} - -module.exports = ES2015; diff --git a/node_modules/es-to-primitive/package.json b/node_modules/es-to-primitive/package.json deleted file mode 100644 index 136f877..0000000 --- a/node_modules/es-to-primitive/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/es-to-primitive/test/es2015.js b/node_modules/es-to-primitive/test/es2015.js deleted file mode 100644 index 80f4083..0000000 --- a/node_modules/es-to-primitive/test/es2015.js +++ /dev/null @@ -1,151 +0,0 @@ -'use strict'; - -var test = require('tape'); -var toPrimitive = require('../es2015'); -var is = require('object-is'); -var forEach = require('foreach'); -var functionName = require('function.prototype.name'); -var debug = require('object-inspect'); - -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol'; -var hasSymbolToPrimitive = hasSymbols && typeof Symbol.toPrimitive === 'symbol'; - -test('function properties', function (t) { - t.equal(toPrimitive.length, 1, 'length is 1'); - t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive'); - - t.end(); -}); - -var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc']; - -test('primitives', function (t) { - forEach(primitives, function (i) { - t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value'); - t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value'); - t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value'); - }); - t.end(); -}); - -test('Symbols', { skip: !hasSymbols }, function (t) { - var symbols = [ - Symbol('foo'), - Symbol.iterator, - Symbol['for']('foo') // eslint-disable-line no-restricted-properties - ]; - forEach(symbols, function (sym) { - t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value'); - t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value'); - t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value'); - }); - - var primitiveSym = Symbol('primitiveSym'); - var objectSym = Object(primitiveSym); - t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym)); - t.equal(toPrimitive(objectSym, String), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(primitiveSym)); - t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym)); - t.end(); -}); - -test('Arrays', function (t) { - var arrays = [[], ['a', 'b'], [1, 2]]; - forEach(arrays, function (arr) { - t.equal(toPrimitive(arr), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - t.equal(toPrimitive(arr, String), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - t.equal(toPrimitive(arr, Number), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - }); - t.end(); -}); - -test('Dates', function (t) { - var dates = [new Date(), new Date(0), new Date(NaN)]; - forEach(dates, function (date) { - t.equal(toPrimitive(date), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date'); - t.equal(toPrimitive(date, String), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date'); - t.ok(is(toPrimitive(date, Number), Number(date)), 'toPrimitive(' + debug(date) + ') returns the number version of the date'); - }); - t.end(); -}); - -var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } }; -var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } }; -var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } }; -var coercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return 42; } -}; -var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } }; -var uncoercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return function toStrFn() {}; } -}; - -test('Objects', function (t) { - t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf'); - t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf'); - t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to non-stringified toString'); - - t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to non-stringified toString'); - t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to non-stringified toString'); - t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to non-stringified toString'); - - t.equal(toPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString'); - t.equal(toPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString'); - t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - - t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns non-stringified toString'); - t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns non-stringified toString'); - t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns non-stringified toString'); - - t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns non-stringified valueOf'); - - t.test('Symbol.toPrimitive', { skip: !hasSymbolToPrimitive }, function (st) { - var overriddenObject = { toString: st.fail, valueOf: st.fail }; - overriddenObject[Symbol.toPrimitive] = function (hint) { return String(hint); }; - - st.equal(toPrimitive(overriddenObject), 'default', 'object with Symbol.toPrimitive + no hint invokes that'); - st.equal(toPrimitive(overriddenObject, Number), 'number', 'object with Symbol.toPrimitive + hint Number invokes that'); - st.equal(toPrimitive(overriddenObject, String), 'string', 'object with Symbol.toPrimitive + hint String invokes that'); - - var nullToPrimitive = { toString: coercibleObject.toString, valueOf: coercibleObject.valueOf }; - nullToPrimitive[Symbol.toPrimitive] = null; - st.equal(toPrimitive(nullToPrimitive), toPrimitive(coercibleObject), 'object with no hint + null Symbol.toPrimitive ignores it'); - st.equal(toPrimitive(nullToPrimitive, Number), toPrimitive(coercibleObject, Number), 'object with hint Number + null Symbol.toPrimitive ignores it'); - st.equal(toPrimitive(nullToPrimitive, String), toPrimitive(coercibleObject, String), 'object with hint String + null Symbol.toPrimitive ignores it'); - - st.test('exceptions', function (sst) { - var nonFunctionToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - nonFunctionToPrimitive[Symbol.toPrimitive] = {}; - sst['throws'](toPrimitive.bind(null, nonFunctionToPrimitive), TypeError, 'Symbol.toPrimitive returning a non-function throws'); - - var uncoercibleToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - uncoercibleToPrimitive[Symbol.toPrimitive] = function (hint) { - return { toString: function () { return hint; } }; - }; - sst['throws'](toPrimitive.bind(null, uncoercibleToPrimitive), TypeError, 'Symbol.toPrimitive returning an object throws'); - - var throwingToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - throwingToPrimitive[Symbol.toPrimitive] = function (hint) { throw new RangeError(hint); }; - sst['throws'](toPrimitive.bind(null, throwingToPrimitive), RangeError, 'Symbol.toPrimitive throwing throws'); - - sst.end(); - }); - - st.end(); - }); - - t.test('exceptions', function (st) { - st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError'); - - st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError'); - st.end(); - }); - t.end(); -}); diff --git a/node_modules/es-to-primitive/test/es5.js b/node_modules/es-to-primitive/test/es5.js deleted file mode 100644 index 79444b0..0000000 --- a/node_modules/es-to-primitive/test/es5.js +++ /dev/null @@ -1,118 +0,0 @@ -'use strict'; - -var test = require('tape'); -var toPrimitive = require('../es5'); -var is = require('object-is'); -var forEach = require('foreach'); -var functionName = require('function.prototype.name'); -var debug = require('object-inspect'); -var hasSymbols = require('has-symbols')(); - -test('function properties', function (t) { - t.equal(toPrimitive.length, 1, 'length is 1'); - t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive'); - - t.end(); -}); - -var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc']; - -test('primitives', function (t) { - forEach(primitives, function (i) { - t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value'); - t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value'); - t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value'); - }); - t.end(); -}); - -test('Symbols', { skip: !hasSymbols }, function (t) { - var symbols = [ - Symbol('foo'), - Symbol.iterator, - Symbol['for']('foo') // eslint-disable-line no-restricted-properties - ]; - forEach(symbols, function (sym) { - t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value'); - t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value'); - t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value'); - }); - - var primitiveSym = Symbol('primitiveSym'); - var stringSym = Symbol.prototype.toString.call(primitiveSym); - var objectSym = Object(primitiveSym); - t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym)); - - // This is different from ES2015, as the ES5 algorithm doesn't account for the existence of Symbols: - t.equal(toPrimitive(objectSym, String), stringSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(stringSym)); - t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym)); - t.end(); -}); - -test('Arrays', function (t) { - var arrays = [[], ['a', 'b'], [1, 2]]; - forEach(arrays, function (arr) { - t.ok(is(toPrimitive(arr), arr.toString()), 'toPrimitive(' + debug(arr) + ') returns toString of the array'); - t.equal(toPrimitive(arr, String), arr.toString(), 'toPrimitive(' + debug(arr) + ') returns toString of the array'); - t.ok(is(toPrimitive(arr, Number), arr.toString()), 'toPrimitive(' + debug(arr) + ') returns toString of the array'); - }); - t.end(); -}); - -test('Dates', function (t) { - var dates = [new Date(), new Date(0), new Date(NaN)]; - forEach(dates, function (date) { - t.equal(toPrimitive(date), date.toString(), 'toPrimitive(' + debug(date) + ') returns toString of the date'); - t.equal(toPrimitive(date, String), date.toString(), 'toPrimitive(' + debug(date) + ') returns toString of the date'); - t.ok(is(toPrimitive(date, Number), date.valueOf()), 'toPrimitive(' + debug(date) + ') returns valueOf of the date'); - }); - t.end(); -}); - -var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } }; -var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } }; -var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } }; -var coercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return 42; } -}; -var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } }; -var uncoercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return function toStrFn() {}; } -}; - -test('Objects', function (t) { - t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf'); - t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to toString'); - t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf'); - - t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to toString'); - t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to toString'); - t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to toString'); - - t.ok(is(toPrimitive({}), '[object Object]'), '{} with no hint coerces to Object#toString'); - t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - t.ok(is(toPrimitive({}, Number), '[object Object]'), '{} with hint Number coerces to Object#toString'); - - t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns toString'); - t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns toString'); - t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns toString'); - - t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf'); - - t.test('exceptions', function (st) { - st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError'); - - st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError'); - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/es-to-primitive/test/es6.js b/node_modules/es-to-primitive/test/es6.js deleted file mode 100644 index 16ea0e8..0000000 --- a/node_modules/es-to-primitive/test/es6.js +++ /dev/null @@ -1,151 +0,0 @@ -'use strict'; - -var test = require('tape'); -var toPrimitive = require('../es6'); -var is = require('object-is'); -var forEach = require('foreach'); -var functionName = require('function.prototype.name'); -var debug = require('object-inspect'); - -var hasSymbols = require('has-symbols')(); -var hasSymbolToPrimitive = hasSymbols && typeof Symbol.toPrimitive === 'symbol'; - -test('function properties', function (t) { - t.equal(toPrimitive.length, 1, 'length is 1'); - t.equal(functionName(toPrimitive), 'ToPrimitive', 'name is ToPrimitive'); - - t.end(); -}); - -var primitives = [null, undefined, true, false, 0, -0, 42, NaN, Infinity, -Infinity, '', 'abc']; - -test('primitives', function (t) { - forEach(primitives, function (i) { - t.ok(is(toPrimitive(i), i), 'toPrimitive(' + debug(i) + ') returns the same value'); - t.ok(is(toPrimitive(i, String), i), 'toPrimitive(' + debug(i) + ', String) returns the same value'); - t.ok(is(toPrimitive(i, Number), i), 'toPrimitive(' + debug(i) + ', Number) returns the same value'); - }); - t.end(); -}); - -test('Symbols', { skip: !hasSymbols }, function (t) { - var symbols = [ - Symbol('foo'), - Symbol.iterator, - Symbol['for']('foo') // eslint-disable-line no-restricted-properties - ]; - forEach(symbols, function (sym) { - t.equal(toPrimitive(sym), sym, 'toPrimitive(' + debug(sym) + ') returns the same value'); - t.equal(toPrimitive(sym, String), sym, 'toPrimitive(' + debug(sym) + ', String) returns the same value'); - t.equal(toPrimitive(sym, Number), sym, 'toPrimitive(' + debug(sym) + ', Number) returns the same value'); - }); - - var primitiveSym = Symbol('primitiveSym'); - var objectSym = Object(primitiveSym); - t.equal(toPrimitive(objectSym), primitiveSym, 'toPrimitive(' + debug(objectSym) + ') returns ' + debug(primitiveSym)); - t.equal(toPrimitive(objectSym, String), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', String) returns ' + debug(primitiveSym)); - t.equal(toPrimitive(objectSym, Number), primitiveSym, 'toPrimitive(' + debug(objectSym) + ', Number) returns ' + debug(primitiveSym)); - t.end(); -}); - -test('Arrays', function (t) { - var arrays = [[], ['a', 'b'], [1, 2]]; - forEach(arrays, function (arr) { - t.equal(toPrimitive(arr), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - t.equal(toPrimitive(arr, String), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - t.equal(toPrimitive(arr, Number), String(arr), 'toPrimitive(' + debug(arr) + ') returns the string version of the array'); - }); - t.end(); -}); - -test('Dates', function (t) { - var dates = [new Date(), new Date(0), new Date(NaN)]; - forEach(dates, function (date) { - t.equal(toPrimitive(date), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date'); - t.equal(toPrimitive(date, String), String(date), 'toPrimitive(' + debug(date) + ') returns the string version of the date'); - t.ok(is(toPrimitive(date, Number), Number(date)), 'toPrimitive(' + debug(date) + ') returns the number version of the date'); - }); - t.end(); -}); - -var coercibleObject = { valueOf: function () { return 3; }, toString: function () { return 42; } }; -var valueOfOnlyObject = { valueOf: function () { return 4; }, toString: function () { return {}; } }; -var toStringOnlyObject = { valueOf: function () { return {}; }, toString: function () { return 7; } }; -var coercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return 42; } -}; -var uncoercibleObject = { valueOf: function () { return {}; }, toString: function () { return {}; } }; -var uncoercibleFnObject = { - valueOf: function () { return function valueOfFn() {}; }, - toString: function () { return function toStrFn() {}; } -}; - -test('Objects', function (t) { - t.equal(toPrimitive(coercibleObject), coercibleObject.valueOf(), 'coercibleObject with no hint coerces to valueOf'); - t.equal(toPrimitive(coercibleObject, Number), coercibleObject.valueOf(), 'coercibleObject with hint Number coerces to valueOf'); - t.equal(toPrimitive(coercibleObject, String), coercibleObject.toString(), 'coercibleObject with hint String coerces to non-stringified toString'); - - t.equal(toPrimitive(coercibleFnObject), coercibleFnObject.toString(), 'coercibleFnObject coerces to non-stringified toString'); - t.equal(toPrimitive(coercibleFnObject, Number), coercibleFnObject.toString(), 'coercibleFnObject with hint Number coerces to non-stringified toString'); - t.equal(toPrimitive(coercibleFnObject, String), coercibleFnObject.toString(), 'coercibleFnObject with hint String coerces to non-stringified toString'); - - t.equal(toPrimitive({}), '[object Object]', '{} with no hint coerces to Object#toString'); - t.equal(toPrimitive({}, Number), '[object Object]', '{} with hint Number coerces to Object#toString'); - t.equal(toPrimitive({}, String), '[object Object]', '{} with hint String coerces to Object#toString'); - - t.equal(toPrimitive(toStringOnlyObject), toStringOnlyObject.toString(), 'toStringOnlyObject returns non-stringified toString'); - t.equal(toPrimitive(toStringOnlyObject, Number), toStringOnlyObject.toString(), 'toStringOnlyObject with hint Number returns non-stringified toString'); - t.equal(toPrimitive(toStringOnlyObject, String), toStringOnlyObject.toString(), 'toStringOnlyObject with hint String returns non-stringified toString'); - - t.equal(toPrimitive(valueOfOnlyObject), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, Number), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint Number returns valueOf'); - t.equal(toPrimitive(valueOfOnlyObject, String), valueOfOnlyObject.valueOf(), 'valueOfOnlyObject with hint String returns non-stringified valueOf'); - - t.test('Symbol.toPrimitive', { skip: !hasSymbolToPrimitive }, function (st) { - var overriddenObject = { toString: st.fail, valueOf: st.fail }; - overriddenObject[Symbol.toPrimitive] = function (hint) { return String(hint); }; - - st.equal(toPrimitive(overriddenObject), 'default', 'object with Symbol.toPrimitive + no hint invokes that'); - st.equal(toPrimitive(overriddenObject, Number), 'number', 'object with Symbol.toPrimitive + hint Number invokes that'); - st.equal(toPrimitive(overriddenObject, String), 'string', 'object with Symbol.toPrimitive + hint String invokes that'); - - var nullToPrimitive = { toString: coercibleObject.toString, valueOf: coercibleObject.valueOf }; - nullToPrimitive[Symbol.toPrimitive] = null; - st.equal(toPrimitive(nullToPrimitive), toPrimitive(coercibleObject), 'object with no hint + null Symbol.toPrimitive ignores it'); - st.equal(toPrimitive(nullToPrimitive, Number), toPrimitive(coercibleObject, Number), 'object with hint Number + null Symbol.toPrimitive ignores it'); - st.equal(toPrimitive(nullToPrimitive, String), toPrimitive(coercibleObject, String), 'object with hint String + null Symbol.toPrimitive ignores it'); - - st.test('exceptions', function (sst) { - var nonFunctionToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - nonFunctionToPrimitive[Symbol.toPrimitive] = {}; - sst['throws'](toPrimitive.bind(null, nonFunctionToPrimitive), TypeError, 'Symbol.toPrimitive returning a non-function throws'); - - var uncoercibleToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - uncoercibleToPrimitive[Symbol.toPrimitive] = function (hint) { - return { toString: function () { return hint; } }; - }; - sst['throws'](toPrimitive.bind(null, uncoercibleToPrimitive), TypeError, 'Symbol.toPrimitive returning an object throws'); - - var throwingToPrimitive = { toString: sst.fail, valueOf: sst.fail }; - throwingToPrimitive[Symbol.toPrimitive] = function (hint) { throw new RangeError(hint); }; - sst['throws'](toPrimitive.bind(null, throwingToPrimitive), RangeError, 'Symbol.toPrimitive throwing throws'); - - sst.end(); - }); - - st.end(); - }); - - t.test('exceptions', function (st) { - st['throws'](toPrimitive.bind(null, uncoercibleObject), TypeError, 'uncoercibleObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, Number), TypeError, 'uncoercibleObject with hint Number throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleObject, String), TypeError, 'uncoercibleObject with hint String throws a TypeError'); - - st['throws'](toPrimitive.bind(null, uncoercibleFnObject), TypeError, 'uncoercibleFnObject throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, Number), TypeError, 'uncoercibleFnObject with hint Number throws a TypeError'); - st['throws'](toPrimitive.bind(null, uncoercibleFnObject, String), TypeError, 'uncoercibleFnObject with hint String throws a TypeError'); - st.end(); - }); - t.end(); -}); diff --git a/node_modules/es-to-primitive/test/index.js b/node_modules/es-to-primitive/test/index.js deleted file mode 100644 index ad71f39..0000000 --- a/node_modules/es-to-primitive/test/index.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var toPrimitive = require('../'); -var ES5 = require('../es5'); -var ES6 = require('../es6'); -var ES2015 = require('../es2015'); - -var test = require('tape'); - -test('default export', function (t) { - t.equal(toPrimitive, ES2015, 'default export is ES2015'); - t.equal(toPrimitive.ES5, ES5, 'ES5 property has ES5 method'); - t.equal(toPrimitive.ES6, ES6, 'ES6 property has ES6 method'); - t.equal(toPrimitive.ES2015, ES2015, 'ES2015 property has ES2015 method'); - t.end(); -}); - -require('./es5'); -require('./es6'); -require('./es2015'); diff --git a/node_modules/escodegen/package.json b/node_modules/escodegen/package.json index 4c769b8..51ee0d8 100644 --- a/node_modules/escodegen/package.json +++ b/node_modules/escodegen/package.json @@ -1,90 +1,61 @@ { - "_from": "escodegen@^1.14.1", - "_id": "escodegen@1.14.3", - "_inBundle": false, - "_integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "_location": "/escodegen", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "escodegen@^1.14.1", "name": "escodegen", - "escapedName": "escodegen", - "rawSpec": "^1.14.1", - "saveSpec": null, - "fetchSpec": "^1.14.1" - }, - "_requiredBy": [ - "/jsdom" - ], - "_resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", - "_shasum": "4e7b81fba61581dc97582ed78cab7f0e8d63f503", - "_spec": "escodegen@^1.14.1", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/jsdom", - "bin": { - "esgenerate": "bin/esgenerate.js", - "escodegen": "bin/escodegen.js" - }, - "bugs": { - "url": "https://github.com/estools/escodegen/issues" - }, - "bundleDependencies": false, - "dependencies": { - "esprima": "^4.0.1", - "estraverse": "^4.2.0", - "esutils": "^2.0.2", - "optionator": "^0.8.1", - "source-map": "~0.6.1" - }, - "deprecated": false, - "description": "ECMAScript code generator", - "devDependencies": { - "acorn": "^7.1.0", - "bluebird": "^3.4.7", - "bower-registry-client": "^1.0.0", - "chai": "^3.5.0", - "commonjs-everywhere": "^0.9.7", - "gulp": "^3.8.10", - "gulp-eslint": "^3.0.1", - "gulp-mocha": "^3.0.1", - "semver": "^5.1.0" - }, - "engines": { - "node": ">=4.0" - }, - "files": [ - "LICENSE.BSD", - "README.md", - "bin", - "escodegen.js", - "package.json" - ], - "homepage": "http://github.com/estools/escodegen", - "license": "BSD-2-Clause", - "main": "escodegen.js", - "maintainers": [ - { - "name": "Yusuke Suzuki", - "email": "utatane.tea@gmail.com", - "url": "http://github.com/Constellation" + "description": "ECMAScript code generator", + "homepage": "http://github.com/estools/escodegen", + "main": "escodegen.js", + "bin": { + "esgenerate": "./bin/esgenerate.js", + "escodegen": "./bin/escodegen.js" + }, + "files": [ + "LICENSE.BSD", + "README.md", + "bin", + "escodegen.js", + "package.json" + ], + "version": "1.14.3", + "engines": { + "node": ">=4.0" + }, + "maintainers": [ + { + "name": "Yusuke Suzuki", + "email": "utatane.tea@gmail.com", + "web": "http://github.com/Constellation" + } + ], + "repository": { + "type": "git", + "url": "http://github.com/estools/escodegen.git" + }, + "dependencies": { + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "esprima": "^4.0.1", + "optionator": "^0.8.1" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + }, + "devDependencies": { + "acorn": "^7.1.0", + "bluebird": "^3.4.7", + "bower-registry-client": "^1.0.0", + "chai": "^3.5.0", + "commonjs-everywhere": "^0.9.7", + "gulp": "^3.8.10", + "gulp-eslint": "^3.0.1", + "gulp-mocha": "^3.0.1", + "semver": "^5.1.0" + }, + "license": "BSD-2-Clause", + "scripts": { + "test": "gulp travis", + "unit-test": "gulp test", + "lint": "gulp lint", + "release": "node tools/release.js", + "build-min": "./node_modules/.bin/cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js", + "build": "./node_modules/.bin/cjsify -a path: tools/entry-point.js > escodegen.browser.js" } - ], - "name": "escodegen", - "optionalDependencies": { - "source-map": "~0.6.1" - }, - "repository": { - "type": "git", - "url": "git+ssh://git@github.com/estools/escodegen.git" - }, - "scripts": { - "build": "cjsify -a path: tools/entry-point.js > escodegen.browser.js", - "build-min": "cjsify -ma path: tools/entry-point.js > escodegen.browser.min.js", - "lint": "gulp lint", - "release": "node tools/release.js", - "test": "gulp travis", - "unit-test": "gulp test" - }, - "version": "1.14.3" } diff --git a/node_modules/esprima/package.json b/node_modules/esprima/package.json index be12870..4148b8c 100644 --- a/node_modules/esprima/package.json +++ b/node_modules/esprima/package.json @@ -1,41 +1,39 @@ { - "_from": "esprima@^4.0.1", - "_id": "esprima@4.0.1", - "_inBundle": false, - "_integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "_location": "/esprima", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "esprima@^4.0.1", - "name": "esprima", - "escapedName": "esprima", - "rawSpec": "^4.0.1", - "saveSpec": null, - "fetchSpec": "^4.0.1" + "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" }, - "_requiredBy": [ - "/escodegen" + "version": "4.0.1", + "files": [ + "bin", + "dist/esprima.js" ], - "_resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "_shasum": "13b04cdb3e6c5d19df91ab6987a8695619b0aa71", - "_spec": "esprima@^4.0.1", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/escodegen", + "engines": { + "node": ">=4" + }, "author": { "name": "Ariya Hidayat", "email": "ariya.hidayat@gmail.com" }, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "maintainers": [ + { + "name": "Ariya Hidayat", + "email": "ariya.hidayat@gmail.com", + "web": "http://ariya.ofilabs.com" + } + ], + "repository": { + "type": "git", + "url": "https://github.com/jquery/esprima.git" }, "bugs": { "url": "https://github.com/jquery/esprima/issues" }, - "bundleDependencies": false, - "deprecated": false, - "description": "ECMAScript parsing infrastructure for multipurpose analysis", + "license": "BSD-2-Clause", "devDependencies": { "codecov.io": "~0.1.6", "escomplex-js": "1.2.0", @@ -64,14 +62,6 @@ "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", @@ -80,58 +70,43 @@ "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", - "circleci": "npm test && npm run codecov && npm run downstream", + "tslint": "tslint src/*.ts", "code-style": "tsfmt --verify src/*.ts && tsfmt --verify 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", - "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", + "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", - "prepublish": "npm run compile", - "profile": "node --prof test/profile.js && mv isolate*.log v8.log && node-tick-processor", + "unit-tests": "node test/unit-tests.js", + "api-tests": "mocha -R dot test/api-tests.js", + "grammar-tests": "node test/grammar-tests.js", "regression-tests": "node test/regression-tests.js", - "saucelabs": "npm run saucelabs-evergreen && npm run saucelabs-ie && npm run saucelabs-safari", + "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-evergreen": "cd test && karma start saucelabs-evergreen.conf.js", - "saucelabs-ie": "cd test && karma start saucelabs-ie.conf.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", + "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", "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", - "tslint": "tslint src/*.ts", - "unit-tests": "node test/unit-tests.js", - "verify-line-ending": "node test/verify-line-ending.js" - }, - "version": "4.0.1" + "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" + } } diff --git a/node_modules/fast-safe-stringify/index.d.ts b/node_modules/fast-safe-stringify/index.d.ts index 56f6865..9a9b1f0 100644 --- a/node_modules/fast-safe-stringify/index.d.ts +++ b/node_modules/fast-safe-stringify/index.d.ts @@ -1,8 +1,23 @@ -declare function stringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string; +declare function stringify( + value: any, + replacer?: (key: string, value: any) => any, + space?: string | number, + options?: { depthLimit: number | undefined; edgesLimit: number | undefined } +): string; declare namespace stringify { - export function stable(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string; - export function stableStringify(value: any, replacer?: (key: string, value: any) => any, space?: string | number): string; + export function stable( + value: any, + replacer?: (key: string, value: any) => any, + space?: string | number, + options?: { depthLimit: number | undefined; edgesLimit: number | undefined } + ): string; + export function stableStringify( + value: any, + replacer?: (key: string, value: any) => any, + space?: string | number, + options?: { depthLimit: number | undefined; edgesLimit: number | undefined } + ): string; } export default stringify; diff --git a/node_modules/fast-safe-stringify/index.js b/node_modules/fast-safe-stringify/index.js index e29ffa5..ecf7e51 100644 --- a/node_modules/fast-safe-stringify/index.js +++ b/node_modules/fast-safe-stringify/index.js @@ -3,12 +3,26 @@ stringify.default = stringify stringify.stable = deterministicStringify stringify.stableStringify = deterministicStringify +var LIMIT_REPLACE_NODE = '[...]' +var CIRCULAR_REPLACE_NODE = '[Circular]' + var arr = [] var replacerStack = [] +function defaultOptions () { + return { + depthLimit: Number.MAX_SAFE_INTEGER, + edgesLimit: Number.MAX_SAFE_INTEGER + } +} + // Regular stringify -function stringify (obj, replacer, spacer) { - decirc(obj, '', [], undefined) +function stringify (obj, replacer, spacer, options) { + if (typeof options === 'undefined') { + options = defaultOptions() + } + + decirc(obj, '', 0, [], undefined, 0, options) var res try { if (replacerStack.length === 0) { @@ -30,37 +44,60 @@ function stringify (obj, replacer, spacer) { } return res } -function decirc (val, k, stack, parent) { + +function setReplace (replace, val, k, parent) { + var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k) + if (propertyDescriptor.get !== undefined) { + if (propertyDescriptor.configurable) { + Object.defineProperty(parent, k, { value: replace }) + arr.push([parent, k, val, propertyDescriptor]) + } else { + replacerStack.push([val, k, replace]) + } + } else { + parent[k] = replace + arr.push([parent, k, val]) + } +} + +function decirc (val, k, edgeIndex, stack, parent, depth, options) { + depth += 1 var i if (typeof val === 'object' && val !== null) { for (i = 0; i < stack.length; i++) { if (stack[i] === val) { - var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k) - if (propertyDescriptor.get !== undefined) { - if (propertyDescriptor.configurable) { - Object.defineProperty(parent, k, { value: '[Circular]' }) - arr.push([parent, k, val, propertyDescriptor]) - } else { - replacerStack.push([val, k]) - } - } else { - parent[k] = '[Circular]' - arr.push([parent, k, val]) - } + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent) return } } + + if ( + typeof options.depthLimit !== 'undefined' && + depth > options.depthLimit + ) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent) + return + } + + if ( + typeof options.edgesLimit !== 'undefined' && + edgeIndex + 1 > options.edgesLimit + ) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent) + return + } + stack.push(val) // Optimize for Arrays. Big arrays could kill the performance otherwise! if (Array.isArray(val)) { for (i = 0; i < val.length; i++) { - decirc(val[i], i, stack, val) + decirc(val[i], i, i, stack, val, depth, options) } } else { var keys = Object.keys(val) for (i = 0; i < keys.length; i++) { var key = keys[i] - decirc(val[key], key, stack, val) + decirc(val[key], key, i, stack, val, depth, options) } } stack.pop() @@ -78,8 +115,12 @@ function compareFunction (a, b) { return 0 } -function deterministicStringify (obj, replacer, spacer) { - var tmp = deterministicDecirc(obj, '', [], undefined) || obj +function deterministicStringify (obj, replacer, spacer, options) { + if (typeof options === 'undefined') { + options = defaultOptions() + } + + var tmp = deterministicDecirc(obj, '', 0, [], undefined, 0, options) || obj var res try { if (replacerStack.length === 0) { @@ -103,23 +144,13 @@ function deterministicStringify (obj, replacer, spacer) { return res } -function deterministicDecirc (val, k, stack, parent) { +function deterministicDecirc (val, k, edgeIndex, stack, parent, depth, options) { + depth += 1 var i if (typeof val === 'object' && val !== null) { for (i = 0; i < stack.length; i++) { if (stack[i] === val) { - var propertyDescriptor = Object.getOwnPropertyDescriptor(parent, k) - if (propertyDescriptor.get !== undefined) { - if (propertyDescriptor.configurable) { - Object.defineProperty(parent, k, { value: '[Circular]' }) - arr.push([parent, k, val, propertyDescriptor]) - } else { - replacerStack.push([val, k]) - } - } else { - parent[k] = '[Circular]' - arr.push([parent, k, val]) - } + setReplace(CIRCULAR_REPLACE_NODE, val, k, parent) return } } @@ -130,11 +161,28 @@ function deterministicDecirc (val, k, stack, parent) { } catch (_) { return } + + if ( + typeof options.depthLimit !== 'undefined' && + depth > options.depthLimit + ) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent) + return + } + + if ( + typeof options.edgesLimit !== 'undefined' && + edgeIndex + 1 > options.edgesLimit + ) { + setReplace(LIMIT_REPLACE_NODE, val, k, parent) + return + } + stack.push(val) // Optimize for Arrays. Big arrays could kill the performance otherwise! if (Array.isArray(val)) { for (i = 0; i < val.length; i++) { - deterministicDecirc(val[i], i, stack, val) + deterministicDecirc(val[i], i, i, stack, val, depth, options) } } else { // Create a temporary object in the required way @@ -142,10 +190,10 @@ function deterministicDecirc (val, k, stack, parent) { var keys = Object.keys(val).sort(compareFunction) for (i = 0; i < keys.length; i++) { var key = keys[i] - deterministicDecirc(val[key], key, stack, val) + deterministicDecirc(val[key], key, i, stack, val, depth, options) tmp[key] = val[key] } - if (parent !== undefined) { + if (typeof parent !== 'undefined') { arr.push([parent, k, val]) parent[k] = tmp } else { @@ -157,15 +205,20 @@ function deterministicDecirc (val, k, stack, parent) { } // wraps replacer function to handle values we couldn't replace -// and mark them as [Circular] +// and mark them as replaced value function replaceGetterValues (replacer) { - replacer = replacer !== undefined ? replacer : function (k, v) { return v } + replacer = + typeof replacer !== 'undefined' + ? replacer + : function (k, v) { + return v + } return function (key, val) { if (replacerStack.length > 0) { for (var i = 0; i < replacerStack.length; i++) { var part = replacerStack[i] if (part[1] === key && part[0] === val) { - val = '[Circular]' + val = part[2] replacerStack.splice(i, 1) break } diff --git a/node_modules/fast-safe-stringify/package.json b/node_modules/fast-safe-stringify/package.json index 6694c05..206a591 100644 --- a/node_modules/fast-safe-stringify/package.json +++ b/node_modules/fast-safe-stringify/package.json @@ -1,6 +1,6 @@ { "name": "fast-safe-stringify", - "version": "2.0.8", + "version": "2.1.1", "description": "Safely and quickly serialize JavaScript objects", "keywords": [ "stable", diff --git a/node_modules/fast-safe-stringify/readme.md b/node_modules/fast-safe-stringify/readme.md index cb4446d..47179c9 100644 --- a/node_modules/fast-safe-stringify/readme.md +++ b/node_modules/fast-safe-stringify/readme.md @@ -13,7 +13,7 @@ handle circular structures. See the example below for further information. The same as [JSON.stringify][]. -`stringify(value[, replacer[, space]])` +`stringify(value[, replacer[, space[, options]]])` ```js const safeStringify = require('fast-safe-stringify') @@ -33,7 +33,15 @@ function replacer(key, value) { } return value } -const serialized = safeStringify(o, replacer, 2) + +// those are also defaults limits when no options object is passed into safeStringify +// configure it to lower the limit. +const options = { + depthLimit: Number.MAX_SAFE_INTEGER, + edgesLimit: Number.MAX_SAFE_INTEGER +}; + +const serialized = safeStringify(o, replacer, 2, options) // Key: "" Value: {"a":1,"o":"[Circular]"} // Key: "a" Value: 1 // Key: "o" Value: "[Circular]" @@ -43,6 +51,7 @@ console.log(serialized) // } ``` + Using the deterministic version also works the same: ```js @@ -62,6 +71,11 @@ A faster and side-effect free implementation is available in the [safe-stable-stringify][] module. However it is still considered experimental due to a new and more complex implementation. +### Replace strings constants + +- `[Circular]` - when same reference is found +- `[...]` - when some limit from options object is reached + ## Differences to JSON.stringify In general the behavior is identical to [JSON.stringify][]. The [`replacer`][] diff --git a/node_modules/fast-safe-stringify/test-stable.js b/node_modules/fast-safe-stringify/test-stable.js index 3d26f77..c55b95c 100644 --- a/node_modules/fast-safe-stringify/test-stable.js +++ b/node_modules/fast-safe-stringify/test-stable.js @@ -7,11 +7,9 @@ const stream = require('stream') test('circular reference to root', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.circle = fixture - const expected = s( - { circle: '[Circular]', name: 'Tywin Lannister' } - ) + const expected = s({ circle: '[Circular]', name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -23,50 +21,54 @@ test('circular getter reference to root', function (assert) { } } - const expected = s( - { circle: '[Circular]', name: 'Tywin Lannister' } - ) + const expected = s({ circle: '[Circular]', name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('nested circular reference to root', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.id = { circle: fixture } - const expected = s( - { id: { circle: '[Circular]' }, name: 'Tywin Lannister' } - ) + const expected = s({ id: { circle: '[Circular]' }, name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('child circular reference', function (assert) { - const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } } + const fixture = { + name: 'Tywin Lannister', + child: { name: 'Tyrion Lannister' } + } fixture.child.dinklage = fixture.child const expected = s({ child: { - dinklage: '[Circular]', name: 'Tyrion Lannister' + dinklage: '[Circular]', + name: 'Tyrion Lannister' }, name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('nested child circular reference', function (assert) { - const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } } + const fixture = { + name: 'Tywin Lannister', + child: { name: 'Tyrion Lannister' } + } fixture.child.actor = { dinklage: fixture.child } const expected = s({ child: { - actor: { dinklage: '[Circular]' }, name: 'Tyrion Lannister' + actor: { dinklage: '[Circular]' }, + name: 'Tyrion Lannister' }, name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -74,10 +76,11 @@ test('circular objects in an array', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.hand = [fixture, fixture] const expected = s({ - hand: ['[Circular]', '[Circular]'], name: 'Tywin Lannister' + hand: ['[Circular]', '[Circular]'], + name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -97,7 +100,7 @@ test('nested circular references in an array', function (assert) { ] }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -106,7 +109,7 @@ test('circular arrays', function (assert) { fixture.push(fixture, fixture) const expected = s(['[Circular]', '[Circular]']) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -121,7 +124,7 @@ test('nested circular arrays', function (assert) { { bastards: '[Circular]', name: 'Ramsay Bolton' } ]) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -133,7 +136,7 @@ test('repeated non-circular references in objects', function (assert) { } const expected = s(fixture) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -142,7 +145,7 @@ test('repeated non-circular references in arrays', function (assert) { const fixture = [daenerys, daenerys] const expected = s(fixture) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -156,24 +159,28 @@ test('double child circular reference', function (assert) { const cloned = clone(fixture) const expected = s({ childA: { - dinklage: '[Circular]', name: 'Tyrion Lannister' + dinklage: '[Circular]', + name: 'Tyrion Lannister' }, childB: { - dinklage: '[Circular]', name: 'Tyrion Lannister' + dinklage: '[Circular]', + name: 'Tyrion Lannister' }, name: 'Tywin Lannister' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) // check if the fixture has not been modified - assert.deepEqual(fixture, cloned) + assert.same(fixture, cloned) assert.end() }) test('child circular reference with toJSON', function (assert) { - // Create a test object that has an overriden `toJSON` property - TestObject.prototype.toJSON = function () { return { special: 'case' } } + // Create a test object that has an overridden `toJSON` property + TestObject.prototype.toJSON = function () { + return { special: 'case' } + } function TestObject (content) {} // Creating a simple circular object structure @@ -187,16 +194,22 @@ test('child circular reference with toJSON', function (assert) { otherParentObject.otherChildObject.otherParentObject = otherParentObject // Making sure our original tests work - assert.deepEqual(parentObject.childObject.parentObject, parentObject) - assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject) + assert.same(parentObject.childObject.parentObject, parentObject) + assert.same( + otherParentObject.otherChildObject.otherParentObject, + otherParentObject + ) // Should both be idempotent assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}') assert.equal(fss(otherParentObject), '{"special":"case"}') // Therefore the following assertion should be `true` - assert.deepEqual(parentObject.childObject.parentObject, parentObject) - assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject) + assert.same(parentObject.childObject.parentObject, parentObject) + assert.same( + otherParentObject.otherChildObject.otherParentObject, + otherParentObject + ) assert.end() }) @@ -204,14 +217,14 @@ test('child circular reference with toJSON', function (assert) { test('null object', function (assert) { const expected = s(null) const actual = fss(null) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('null property', function (assert) { const expected = s({ f: null }) const actual = fss({ f: null }) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -258,7 +271,7 @@ test('nested child circular reference in toJSON', function (assert) { } }) const actual = fss(o) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -271,7 +284,7 @@ test('circular getters are restored when stringified', function (assert) { } fss(fixture) - assert.is(fixture.circle, fixture) + assert.equal(fixture.circle, fixture) assert.end() }) @@ -279,13 +292,15 @@ test('non-configurable circular getters use a replacer instead of markers', func const fixture = { name: 'Tywin Lannister' } Object.defineProperty(fixture, 'circle', { configurable: false, - get: function () { return fixture }, + get: function () { + return fixture + }, enumerable: true }) fss(fixture) - assert.is(fixture.circle, fixture) + assert.equal(fixture.circle, fixture) assert.end() }) @@ -294,20 +309,25 @@ test('getter child circular reference', function (assert) { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister', - get dinklage () { return fixture.child } + get dinklage () { + return fixture.child + } }, - get self () { return fixture } + get self () { + return fixture + } } const expected = s({ child: { - dinklage: '[Circular]', name: 'Tyrion Lannister' + dinklage: '[Circular]', + name: 'Tyrion Lannister' }, name: 'Tywin Lannister', self: '[Circular]' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -318,6 +338,67 @@ test('Proxy throwing', function (assert) { s.write('', () => { assert.end() }) - const actual = fss({ s, p: new Proxy({}, { get() { throw new Error('kaboom') } }) }) - assert.is(actual, '"[unable to serialize, circular reference is too complex to analyze]"') + const actual = fss({ s, p: new Proxy({}, { get () { throw new Error('kaboom') } }) }) + assert.equal(actual, '"[unable to serialize, circular reference is too complex to analyze]"') +}) + +test('depthLimit option - will replace deep objects', function (assert) { + const fixture = { + name: 'Tywin Lannister', + child: { + name: 'Tyrion Lannister' + }, + get self () { + return fixture + } + } + + const expected = s({ + child: '[...]', + name: 'Tywin Lannister', + self: '[Circular]' + }) + const actual = fss(fixture, undefined, undefined, { + depthLimit: 1, + edgesLimit: 1 + }) + assert.equal(actual, expected) + assert.end() +}) + +test('edgesLimit option - will replace deep objects', function (assert) { + const fixture = { + object: { + 1: { test: 'test' }, + 2: { test: 'test' }, + 3: { test: 'test' }, + 4: { test: 'test' } + }, + array: [ + { test: 'test' }, + { test: 'test' }, + { test: 'test' }, + { test: 'test' } + ], + get self () { + return fixture + } + } + + const expected = s({ + array: [{ test: 'test' }, { test: 'test' }, { test: 'test' }, '[...]'], + object: { + 1: { test: 'test' }, + 2: { test: 'test' }, + 3: { test: 'test' }, + 4: '[...]' + }, + self: '[Circular]' + }) + const actual = fss(fixture, undefined, undefined, { + depthLimit: 3, + edgesLimit: 3 + }) + assert.equal(actual, expected) + assert.end() }) diff --git a/node_modules/fast-safe-stringify/test.js b/node_modules/fast-safe-stringify/test.js index ffef1d3..a4170e9 100644 --- a/node_modules/fast-safe-stringify/test.js +++ b/node_modules/fast-safe-stringify/test.js @@ -7,11 +7,9 @@ const stream = require('stream') test('circular reference to root', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.circle = fixture - const expected = s( - { name: 'Tywin Lannister', circle: '[Circular]' } - ) + const expected = s({ name: 'Tywin Lannister', circle: '[Circular]' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -22,50 +20,54 @@ test('circular getter reference to root', function (assert) { return fixture } } - const expected = s( - { name: 'Tywin Lannister', circle: '[Circular]' } - ) + const expected = s({ name: 'Tywin Lannister', circle: '[Circular]' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('nested circular reference to root', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.id = { circle: fixture } - const expected = s( - { name: 'Tywin Lannister', id: { circle: '[Circular]' } } - ) + const expected = s({ name: 'Tywin Lannister', id: { circle: '[Circular]' } }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('child circular reference', function (assert) { - const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } } + const fixture = { + name: 'Tywin Lannister', + child: { name: 'Tyrion Lannister' } + } fixture.child.dinklage = fixture.child const expected = s({ name: 'Tywin Lannister', child: { - name: 'Tyrion Lannister', dinklage: '[Circular]' + name: 'Tyrion Lannister', + dinklage: '[Circular]' } }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('nested child circular reference', function (assert) { - const fixture = { name: 'Tywin Lannister', child: { name: 'Tyrion Lannister' } } + const fixture = { + name: 'Tywin Lannister', + child: { name: 'Tyrion Lannister' } + } fixture.child.actor = { dinklage: fixture.child } const expected = s({ name: 'Tywin Lannister', child: { - name: 'Tyrion Lannister', actor: { dinklage: '[Circular]' } + name: 'Tyrion Lannister', + actor: { dinklage: '[Circular]' } } }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -73,10 +75,11 @@ test('circular objects in an array', function (assert) { const fixture = { name: 'Tywin Lannister' } fixture.hand = [fixture, fixture] const expected = s({ - name: 'Tywin Lannister', hand: ['[Circular]', '[Circular]'] + name: 'Tywin Lannister', + hand: ['[Circular]', '[Circular]'] }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -96,7 +99,7 @@ test('nested circular references in an array', function (assert) { ] }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -105,7 +108,7 @@ test('circular arrays', function (assert) { fixture.push(fixture, fixture) const expected = s(['[Circular]', '[Circular]']) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -120,7 +123,7 @@ test('nested circular arrays', function (assert) { { name: 'Ramsay Bolton', bastards: '[Circular]' } ]) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -132,7 +135,7 @@ test('repeated non-circular references in objects', function (assert) { } const expected = s(fixture) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -141,7 +144,7 @@ test('repeated non-circular references in arrays', function (assert) { const fixture = [daenerys, daenerys] const expected = s(fixture) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -156,23 +159,27 @@ test('double child circular reference', function (assert) { const expected = s({ name: 'Tywin Lannister', childA: { - name: 'Tyrion Lannister', dinklage: '[Circular]' + name: 'Tyrion Lannister', + dinklage: '[Circular]' }, childB: { - name: 'Tyrion Lannister', dinklage: '[Circular]' + name: 'Tyrion Lannister', + dinklage: '[Circular]' } }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) // check if the fixture has not been modified - assert.deepEqual(fixture, cloned) + assert.same(fixture, cloned) assert.end() }) test('child circular reference with toJSON', function (assert) { - // Create a test object that has an overriden `toJSON` property - TestObject.prototype.toJSON = function () { return { special: 'case' } } + // Create a test object that has an overridden `toJSON` property + TestObject.prototype.toJSON = function () { + return { special: 'case' } + } function TestObject (content) {} // Creating a simple circular object structure @@ -186,16 +193,22 @@ test('child circular reference with toJSON', function (assert) { otherParentObject.otherChildObject.otherParentObject = otherParentObject // Making sure our original tests work - assert.deepEqual(parentObject.childObject.parentObject, parentObject) - assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject) + assert.same(parentObject.childObject.parentObject, parentObject) + assert.same( + otherParentObject.otherChildObject.otherParentObject, + otherParentObject + ) // Should both be idempotent assert.equal(fss(parentObject), '{"childObject":{"special":"case"}}') assert.equal(fss(otherParentObject), '{"special":"case"}') // Therefore the following assertion should be `true` - assert.deepEqual(parentObject.childObject.parentObject, parentObject) - assert.deepEqual(otherParentObject.otherChildObject.otherParentObject, otherParentObject) + assert.same(parentObject.childObject.parentObject, parentObject) + assert.same( + otherParentObject.otherChildObject.otherParentObject, + otherParentObject + ) assert.end() }) @@ -203,14 +216,14 @@ test('child circular reference with toJSON', function (assert) { test('null object', function (assert) { const expected = s(null) const actual = fss(null) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) test('null property', function (assert) { const expected = s({ f: null }) const actual = fss({ f: null }) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -251,7 +264,7 @@ test('nested child circular reference in toJSON', function (assert) { } }) const actual = fss(o) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -264,7 +277,7 @@ test('circular getters are restored when stringified', function (assert) { } fss(fixture) - assert.is(fixture.circle, fixture) + assert.equal(fixture.circle, fixture) assert.end() }) @@ -272,13 +285,15 @@ test('non-configurable circular getters use a replacer instead of markers', func const fixture = { name: 'Tywin Lannister' } Object.defineProperty(fixture, 'circle', { configurable: false, - get: function () { return fixture }, + get: function () { + return fixture + }, enumerable: true }) fss(fixture) - assert.is(fixture.circle, fixture) + assert.equal(fixture.circle, fixture) assert.end() }) @@ -287,20 +302,25 @@ test('getter child circular reference are replaced instead of marked', function name: 'Tywin Lannister', child: { name: 'Tyrion Lannister', - get dinklage () { return fixture.child } + get dinklage () { + return fixture.child + } }, - get self () { return fixture } + get self () { + return fixture + } } const expected = s({ name: 'Tywin Lannister', child: { - name: 'Tyrion Lannister', dinklage: '[Circular]' + name: 'Tyrion Lannister', + dinklage: '[Circular]' }, self: '[Circular]' }) const actual = fss(fixture) - assert.is(actual, expected) + assert.equal(actual, expected) assert.end() }) @@ -311,6 +331,67 @@ test('Proxy throwing', function (assert) { s.write('', () => { assert.end() }) - const actual = fss({ s, p: new Proxy({}, { get() { throw new Error('kaboom') } }) }) - assert.is(actual, '"[unable to serialize, circular reference is too complex to analyze]"') + const actual = fss({ s, p: new Proxy({}, { get () { throw new Error('kaboom') } }) }) + assert.equal(actual, '"[unable to serialize, circular reference is too complex to analyze]"') +}) + +test('depthLimit option - will replace deep objects', function (assert) { + const fixture = { + name: 'Tywin Lannister', + child: { + name: 'Tyrion Lannister' + }, + get self () { + return fixture + } + } + + const expected = s({ + name: 'Tywin Lannister', + child: '[...]', + self: '[Circular]' + }) + const actual = fss(fixture, undefined, undefined, { + depthLimit: 1, + edgesLimit: 1 + }) + assert.equal(actual, expected) + assert.end() +}) + +test('edgesLimit option - will replace deep objects', function (assert) { + const fixture = { + object: { + 1: { test: 'test' }, + 2: { test: 'test' }, + 3: { test: 'test' }, + 4: { test: 'test' } + }, + array: [ + { test: 'test' }, + { test: 'test' }, + { test: 'test' }, + { test: 'test' } + ], + get self () { + return fixture + } + } + + const expected = s({ + object: { + 1: { test: 'test' }, + 2: { test: 'test' }, + 3: { test: 'test' }, + 4: '[...]' + }, + array: [{ test: 'test' }, { test: 'test' }, { test: 'test' }, '[...]'], + self: '[Circular]' + }) + const actual = fss(fixture, undefined, undefined, { + depthLimit: 3, + edgesLimit: 3 + }) + assert.equal(actual, expected) + assert.end() }) diff --git a/node_modules/for-each/.editorconfig b/node_modules/for-each/.editorconfig new file mode 100644 index 0000000..ac29ade --- /dev/null +++ b/node_modules/for-each/.editorconfig @@ -0,0 +1,20 @@ +root = true + +[*] +indent_style = tab +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 120 + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off diff --git a/node_modules/for-each/.eslintrc b/node_modules/for-each/.eslintrc new file mode 100644 index 0000000..2b8ea2a --- /dev/null +++ b/node_modules/for-each/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "eqeqeq": [2, "allow-null"], + "func-name-matching": 0, + "indent": [2, 4], + "max-nested-callbacks": [2, 3], + "max-params": [2, 3], + "max-statements": [2, 14], + "no-invalid-this": [1], + "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"], + } +} diff --git a/node_modules/for-each/.travis.yml b/node_modules/for-each/.travis.yml new file mode 100644 index 0000000..e9e54bd --- /dev/null +++ b/node_modules/for-each/.travis.yml @@ -0,0 +1,45 @@ +language: node_js +os: + - linux +node_js: + - "8" + - "7" + - "6" + - "5" + - "4" + - "iojs" + - "0.12" + - "0.10" + - "0.8" +before_install: + - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then npm install -g npm@1.3 ; elif [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then case "$(npm --version)" in 1.*) npm install -g npm@1.4.28 ;; 2.*) npm install -g npm@2 ;; esac ; fi' + - 'if [ "${TRAVIS_NODE_VERSION}" != "0.6" ] && [ "${TRAVIS_NODE_VERSION}" != "0.9" ]; then if [ "${TRAVIS_NODE_VERSION%${TRAVIS_NODE_VERSION#[0-9]}}" = "0" ] || [ "${TRAVIS_NODE_VERSION:0:4}" = "iojs" ]; then npm install -g npm@4.5 ; else npm install -g npm; fi; fi' +install: + - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ]; then nvm install 0.8 && npm install -g npm@1.3 && npm install -g npm@1.4.28 && npm install -g npm@2 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' +script: + - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' + - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' + - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' + - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' +sudo: false +env: + - TEST=true +matrix: + fast_finish: true + include: + - node_js: "node" + env: PRETEST=true + - node_js: "node" + env: POSTTEST=true + - node_js: "0.11" + env: TEST=true ALLOW_FAILURE=true + - node_js: "0.9" + env: TEST=true ALLOW_FAILURE=true + - node_js: "0.6" + env: TEST=true ALLOW_FAILURE=true + - node_js: "0.4" + env: TEST=true ALLOW_FAILURE=true + allow_failures: + - os: osx + - env: TEST=true ALLOW_FAILURE=true + - env: COVERAGE=true diff --git a/node_modules/for-each/LICENSE b/node_modules/for-each/LICENSE new file mode 100644 index 0000000..53f19aa --- /dev/null +++ b/node_modules/for-each/LICENSE @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2012 Raynos. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + diff --git a/node_modules/for-each/README.md b/node_modules/for-each/README.md new file mode 100644 index 0000000..16dfbb6 --- /dev/null +++ b/node_modules/for-each/README.md @@ -0,0 +1,43 @@ +# for-each [![build status][1]][2] + +[![browser support][3]][4] + +A better forEach. + +## Example + +Like `Array.prototype.forEach` but works on objects. + +```js +var forEach = require("for-each") + +forEach({ key: "value" }, function (value, key, object) { + /* code */ +}) +``` + +As a bonus, it's also a perfectly function shim/polyfill for arrays too! + +```js +var forEach = require("for-each") + +forEach([1, 2, 3], function (value, index, array) { + /* code */ +}) +``` + +## Installation + +`npm install for-each` + +## Contributors + + - Raynos + +## MIT Licenced + + [1]: https://secure.travis-ci.org/Raynos/for-each.png + [2]: http://travis-ci.org/Raynos/for-each + [3]: https://ci.testling.com/Raynos/for-each.png + [4]: https://ci.testling.com/Raynos/for-each + diff --git a/node_modules/for-each/index.js b/node_modules/for-each/index.js new file mode 100644 index 0000000..609ef9f --- /dev/null +++ b/node_modules/for-each/index.js @@ -0,0 +1,62 @@ +'use strict'; + +var isCallable = require('is-callable'); + +var toStr = Object.prototype.toString; +var hasOwnProperty = Object.prototype.hasOwnProperty; + +var forEachArray = function forEachArray(array, iterator, receiver) { + for (var i = 0, len = array.length; i < len; i++) { + if (hasOwnProperty.call(array, i)) { + if (receiver == null) { + iterator(array[i], i, array); + } else { + iterator.call(receiver, array[i], i, array); + } + } + } +}; + +var forEachString = function forEachString(string, iterator, receiver) { + for (var i = 0, len = string.length; i < len; i++) { + // no such thing as a sparse string. + if (receiver == null) { + iterator(string.charAt(i), i, string); + } else { + iterator.call(receiver, string.charAt(i), i, string); + } + } +}; + +var forEachObject = function forEachObject(object, iterator, receiver) { + for (var k in object) { + if (hasOwnProperty.call(object, k)) { + if (receiver == null) { + iterator(object[k], k, object); + } else { + iterator.call(receiver, object[k], k, object); + } + } + } +}; + +var forEach = function forEach(list, iterator, thisArg) { + if (!isCallable(iterator)) { + throw new TypeError('iterator must be a function'); + } + + var receiver; + if (arguments.length >= 3) { + receiver = thisArg; + } + + if (toStr.call(list) === '[object Array]') { + forEachArray(list, iterator, receiver); + } else if (typeof list === 'string') { + forEachString(list, iterator, receiver); + } else { + forEachObject(list, iterator, receiver); + } +}; + +module.exports = forEach; diff --git a/node_modules/for-each/package.json b/node_modules/for-each/package.json new file mode 100644 index 0000000..f21d15e --- /dev/null +++ b/node_modules/for-each/package.json @@ -0,0 +1,65 @@ +{ + "name": "for-each", + "version": "0.3.3", + "description": "A better forEach", + "keywords": [], + "author": "Raynos ", + "repository": "git://github.com/Raynos/for-each.git", + "main": "index", + "homepage": "https://github.com/Raynos/for-each", + "contributors": [ + { + "name": "Jake Verbaten" + }, + { + "name": "Jordan Harband", + "url": "https://github.com/ljharb" + } + ], + "bugs": { + "url": "https://github.com/Raynos/for-each/issues", + "email": "raynos2@gmail.com" + }, + "dependencies": { + "is-callable": "^1.1.3" + }, + "devDependencies": { + "@ljharb/eslint-config": "^12.2.1", + "eslint": "^4.19.1", + "nsp": "^3.2.1", + "tape": "^4.9.0" + }, + "license": "MIT", + "licenses": [ + { + "type": "MIT", + "url": "http://github.com/Raynos/for-each/raw/master/LICENSE" + } + ], + "scripts": { + "pretest": "npm run lint", + "test": "npm run tests-only", + "tests-only": "node test/test", + "posttest": "npm run security", + "lint": "eslint *.js test/*.js", + "security": "nsp check" + }, + "testling": { + "files": "test/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" + ] + } +} diff --git a/node_modules/for-each/test/.eslintrc b/node_modules/for-each/test/.eslintrc new file mode 100644 index 0000000..a6c04b9 --- /dev/null +++ b/node_modules/for-each/test/.eslintrc @@ -0,0 +1,8 @@ +{ + "rules": { + "array-bracket-newline": 0, + "array-element-newline": 0, + "max-statements-per-line": 0, + "no-magic-numbers": 0, + } +} diff --git a/node_modules/for-each/test/test.js b/node_modules/for-each/test/test.js new file mode 100644 index 0000000..8c93787 --- /dev/null +++ b/node_modules/for-each/test/test.js @@ -0,0 +1,182 @@ +'use strict'; + +/* globals window */ + +var test = require('tape'); +var forEach = require('../'); + +test('forEach calls each iterator', function (t) { + var count = 0; + t.plan(4); + forEach({ a: 1, b: 2 }, function (value, key) { + if (count === 0) { + t.equal(value, 1); + t.equal(key, 'a'); + } else { + t.equal(value, 2); + t.equal(key, 'b'); + } + count += 1; + }); +}); + +test('forEach calls iterator with correct this value', function (t) { + var thisValue = {}; + + t.plan(1); + + forEach([0], function () { + t.equal(this, thisValue); + }, thisValue); +}); + +test('second argument: iterator', function (t) { + var arr = []; + t['throws'](function () { forEach(arr); }, TypeError, 'undefined is not a function'); + t['throws'](function () { forEach(arr, null); }, TypeError, 'null is not a function'); + t['throws'](function () { forEach(arr, ''); }, TypeError, 'string is not a function'); + t['throws'](function () { forEach(arr, /a/); }, TypeError, 'regex is not a function'); + t['throws'](function () { forEach(arr, true); }, TypeError, 'true is not a function'); + t['throws'](function () { forEach(arr, false); }, TypeError, 'false is not a function'); + t['throws'](function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function'); + t['throws'](function () { forEach(arr, 42); }, TypeError, '42 is not a function'); + t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function'); + t.doesNotThrow(function () { forEach(arr, setTimeout); }, 'setTimeout is a function'); + if (typeof window !== 'undefined') { + t.doesNotThrow(function () { forEach(arr, window.alert); }, 'alert is a function'); + } + t.end(); +}); + +test('array', function (t) { + var arr = [1, 2, 3]; + + t.test('iterates over every item', function (st) { + var index = 0; + forEach(arr, function () { index += 1; }); + st.equal(index, arr.length, 'iterates ' + arr.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(arr.length); + forEach(arr, function (item) { + st.equal(arr[index], item, 'item ' + index + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(arr.length); + forEach(arr, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(arr.length); + forEach(arr, function (item, index, array) { + st.deepEqual(arr, array, 'array is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + forEach([], function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + +test('object', function (t) { + var obj = { + a: 1, + b: 2, + c: 3 + }; + var keys = ['a', 'b', 'c']; + + var F = function F() { + this.a = 1; + this.b = 2; + }; + F.prototype.c = 3; + var fKeys = ['a', 'b']; + + t.test('iterates over every object literal key', function (st) { + var counter = 0; + forEach(obj, function () { counter += 1; }); + st.equal(counter, keys.length, 'iterated ' + counter + ' times'); + st.end(); + }); + + t.test('iterates only over own keys', function (st) { + var counter = 0; + forEach(new F(), function () { counter += 1; }); + st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times'); + st.end(); + }); + + t.test('first iterator argument', function (st) { + var index = 0; + st.plan(keys.length); + forEach(obj, function (item) { + st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument'); + index += 1; + }); + st.end(); + }); + + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan(keys.length); + forEach(obj, function (item, key) { + st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument'); + counter += 1; + }); + st.end(); + }); + + t.test('third iterator argument', function (st) { + st.plan(keys.length); + forEach(obj, function (item, key, object) { + st.deepEqual(obj, object, 'object is passed as third argument'); + }); + st.end(); + }); + + t.test('context argument', function (st) { + var context = {}; + forEach({}, function () { + st.equal(this, context, '"this" is the passed context'); + }, context); + st.end(); + }); + + t.end(); +}); + +test('string', function (t) { + var str = 'str'; + t.test('second iterator argument', function (st) { + var counter = 0; + st.plan((str.length * 2) + 1); + forEach(str, function (item, index) { + st.equal(counter, index, 'index ' + index + ' is passed as second argument'); + st.equal(str.charAt(index), item); + counter += 1; + }); + st.equal(counter, str.length, 'iterates ' + str.length + ' times'); + st.end(); + }); + t.end(); +}); diff --git a/node_modules/foreach/.npmignore b/node_modules/foreach/.npmignore deleted file mode 100644 index d135df6..0000000 --- a/node_modules/foreach/.npmignore +++ /dev/null @@ -1,3 +0,0 @@ -node_modules -components -build \ No newline at end of file diff --git a/node_modules/foreach/LICENSE b/node_modules/foreach/LICENSE deleted file mode 100644 index 3032d6e..0000000 --- a/node_modules/foreach/LICENSE +++ /dev/null @@ -1,24 +0,0 @@ -The MIT License - -Copyright (c) 2013 Manuel Stofer - -Permission is hereby granted, free of charge, to any person -obtaining a copy of this software and associated documentation -files (the "Software"), to deal in the Software without -restriction, including without limitation the rights to use, -copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the -Software is furnished to do so, subject to the following -conditions: - -The above copyright notice and this permission notice shall be -included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES -OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT -HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, -WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/foreach/Makefile b/node_modules/foreach/Makefile deleted file mode 100644 index eae4117..0000000 --- a/node_modules/foreach/Makefile +++ /dev/null @@ -1,11 +0,0 @@ - -build: components - @component build - -components: component.json - @component install --dev - -clean: - rm -fr build components template.js - -.PHONY: clean diff --git a/node_modules/foreach/Readme.md b/node_modules/foreach/Readme.md deleted file mode 100644 index 2752b57..0000000 --- a/node_modules/foreach/Readme.md +++ /dev/null @@ -1,30 +0,0 @@ - -# foreach - -Iterate over the key value pairs of either an array-like object or a dictionary like object. - -[![browser support][1]][2] - -## API - -### foreach(object, function, [context]) - -```js -var each = require('foreach'); - -each([1,2,3], function (value, key, array) { - // value === 1, 2, 3 - // key === 0, 1, 2 - // array === [1, 2, 3] -}); - -each({0:1,1:2,2:3}, function (value, key, object) { - // value === 1, 2, 3 - // key === 0, 1, 2 - // object === {0:1,1:2,2:3} -}); -``` - -[1]: https://ci.testling.com/manuelstofer/foreach.png -[2]: https://ci.testling.com/manuelstofer/foreach - diff --git a/node_modules/foreach/component.json b/node_modules/foreach/component.json deleted file mode 100644 index 0eeecb5..0000000 --- a/node_modules/foreach/component.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "name": "foreach", - "description": "foreach component + npm package", - "version": "2.0.5", - "keywords": [], - "dependencies": {}, - "scripts": [ - "index.js" - ], - "repo": "manuelstofer/foreach" -} diff --git a/node_modules/foreach/index.js b/node_modules/foreach/index.js deleted file mode 100644 index a961e4e..0000000 --- a/node_modules/foreach/index.js +++ /dev/null @@ -1,22 +0,0 @@ - -var hasOwn = Object.prototype.hasOwnProperty; -var toString = Object.prototype.toString; - -module.exports = function forEach (obj, fn, ctx) { - if (toString.call(fn) !== '[object Function]') { - throw new TypeError('iterator must be a function'); - } - var l = obj.length; - if (l === +l) { - for (var i = 0; i < l; i++) { - fn.call(ctx, obj[i], i, obj); - } - } else { - for (var k in obj) { - if (hasOwn.call(obj, k)) { - fn.call(ctx, obj[k], k, obj); - } - } - } -}; - diff --git a/node_modules/foreach/package.json b/node_modules/foreach/package.json deleted file mode 100644 index b3e74f4..0000000 --- a/node_modules/foreach/package.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "foreach", - "description": "foreach component + npm package", - "version": "2.0.5", - "author": "Manuel Stofer ", - "contributors": [ - { - "name": "Manuel Stofer" - }, - { - "name": "Jordan Harband", - "url": "https://github.com/ljharb" - } - ], - "license": "MIT", - "main": "index.js", - "scripts": { - "test": "node test.js", - "coverage": "covert test.js", - "coverage-quiet": "covert --quiet test.js" - }, - "repository": { - "type": "git", - "url": "git://github.com/manuelstofer/foreach" - }, - "keywords": [ - "shim", - "Array.prototype.forEach", - "forEach", - "Array#forEach", - "each" - ], - "dependencies": {}, - "devDependencies": { - "tape": "*", - "covert": "*" - }, - "testling": { - "files": "test.js", - "browsers": [ - "iexplore/6.0..latest", - "firefox/3.0", - "firefox/15.0..latest", - "firefox/nightly", - "chrome/4.0", - "chrome/22.0..latest", - "chrome/canary", - "opera/10.0..latest", - "opera/next", - "safari/5.0.5..latest", - "ipad/6.0..latest", - "iphone/6.0..latest", - "android-browser/4.2" - ] - } -} - diff --git a/node_modules/foreach/test.js b/node_modules/foreach/test.js deleted file mode 100644 index c6283c3..0000000 --- a/node_modules/foreach/test.js +++ /dev/null @@ -1,153 +0,0 @@ -var test = require('tape'); -var forEach = require('./index.js'); - - -test('second argument: iterator', function (t) { - var arr = []; - t.throws(function () { forEach(arr); }, TypeError, 'undefined is not a function'); - t.throws(function () { forEach(arr, null); }, TypeError, 'null is not a function'); - t.throws(function () { forEach(arr, ''); }, TypeError, 'string is not a function'); - t.throws(function () { forEach(arr, /a/); }, TypeError, 'regex is not a function'); - t.throws(function () { forEach(arr, true); }, TypeError, 'true is not a function'); - t.throws(function () { forEach(arr, false); }, TypeError, 'false is not a function'); - t.throws(function () { forEach(arr, NaN); }, TypeError, 'NaN is not a function'); - t.throws(function () { forEach(arr, 42); }, TypeError, '42 is not a function'); - t.doesNotThrow(function () { forEach(arr, function () {}); }, 'function is a function'); - t.end(); -}); - -test('array', function (t) { - var arr = [1, 2, 3]; - - t.test('iterates over every item', function (st) { - var index = 0; - forEach(arr, function () { index += 1; }); - st.equal(index, arr.length, 'iterates ' + arr.length + ' times'); - st.end(); - }); - - t.test('first iterator argument', function (st) { - var index = 0; - st.plan(arr.length); - forEach(arr, function (item) { - st.equal(arr[index], item, 'item ' + index + ' is passed as first argument'); - index += 1; - }); - st.end(); - }); - - t.test('second iterator argument', function (st) { - var counter = 0; - st.plan(arr.length); - forEach(arr, function (item, index) { - st.equal(counter, index, 'index ' + index + ' is passed as second argument'); - counter += 1; - }); - st.end(); - }); - - t.test('third iterator argument', function (st) { - st.plan(arr.length); - forEach(arr, function (item, index, array) { - st.deepEqual(arr, array, 'array is passed as third argument'); - }); - st.end(); - }); - - t.test('context argument', function (st) { - var context = {}; - st.plan(1); - forEach([1], function () { - st.equal(this, context, '"this" is the passed context'); - }, context); - st.end(); - }); - - t.end(); -}); - -test('object', function (t) { - var obj = { - a: 1, - b: 2, - c: 3 - }; - var keys = ['a', 'b', 'c']; - - var F = function () { - this.a = 1; - this.b = 2; - }; - F.prototype.c = 3; - var fKeys = ['a', 'b']; - - t.test('iterates over every object literal key', function (st) { - var counter = 0; - forEach(obj, function () { counter += 1; }); - st.equal(counter, keys.length, 'iterated ' + counter + ' times'); - st.end(); - }); - - t.test('iterates only over own keys', function (st) { - var counter = 0; - forEach(new F(), function () { counter += 1; }); - st.equal(counter, fKeys.length, 'iterated ' + fKeys.length + ' times'); - st.end(); - }); - - t.test('first iterator argument', function (st) { - var index = 0; - st.plan(keys.length); - forEach(obj, function (item) { - st.equal(obj[keys[index]], item, 'item at key ' + keys[index] + ' is passed as first argument'); - index += 1; - }); - st.end(); - }); - - t.test('second iterator argument', function (st) { - var counter = 0; - st.plan(keys.length); - forEach(obj, function (item, key) { - st.equal(keys[counter], key, 'key ' + key + ' is passed as second argument'); - counter += 1; - }); - st.end(); - }); - - t.test('third iterator argument', function (st) { - st.plan(keys.length); - forEach(obj, function (item, key, object) { - st.deepEqual(obj, object, 'object is passed as third argument'); - }); - st.end(); - }); - - t.test('context argument', function (st) { - var context = {}; - st.plan(1); - forEach({ a: 1 }, function () { - st.equal(this, context, '"this" is the passed context'); - }, context); - st.end(); - }); - - t.end(); -}); - - -test('string', function (t) { - var str = 'str'; - t.test('second iterator argument', function (st) { - var counter = 0; - st.plan(str.length * 2 + 1); - forEach(str, function (item, index) { - st.equal(counter, index, 'index ' + index + ' is passed as second argument'); - st.equal(str.charAt(index), item); - counter += 1; - }); - st.equal(counter, str.length, 'iterates ' + str.length + ' times'); - }); - t.end(); -}); - diff --git a/node_modules/get-intrinsic/.eslintrc b/node_modules/get-intrinsic/.eslintrc index d04e483..8376636 100644 --- a/node_modules/get-intrinsic/.eslintrc +++ b/node_modules/get-intrinsic/.eslintrc @@ -8,26 +8,22 @@ "es2017": true, "es2020": true, "es2021": true, - }, - - "globals": { - "AggregateError": false, + "es2022": true, }, "rules": { "array-bracket-newline": 0, - "array-element-newline": 0, "complexity": 0, "eqeqeq": [2, "allow-null"], "func-name-matching": 0, "id-length": 0, - "max-lines-per-function": [2, 80], + "max-lines": 0, + "max-lines-per-function": [2, 90], "max-params": [2, 4], "max-statements": 0, "max-statements-per-line": [2, { "max": 2 }], "multiline-comment-style": 0, "no-magic-numbers": 0, - "operator-linebreak": [2, "before"], "sort-keys": 0, }, @@ -35,7 +31,6 @@ { "files": "test/**", "rules": { - "max-lines-per-function": 0, "new-cap": 0, }, }, diff --git a/node_modules/get-intrinsic/.nycrc b/node_modules/get-intrinsic/.nycrc index 1826526..bdd626c 100644 --- a/node_modules/get-intrinsic/.nycrc +++ b/node_modules/get-intrinsic/.nycrc @@ -2,10 +2,6 @@ "all": true, "check-coverage": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, "exclude": [ "coverage", "test" diff --git a/node_modules/get-intrinsic/CHANGELOG.md b/node_modules/get-intrinsic/CHANGELOG.md index 32502ec..37370b9 100644 --- a/node_modules/get-intrinsic/CHANGELOG.md +++ b/node_modules/get-intrinsic/CHANGELOG.md @@ -5,6 +5,59 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.2.1](https://github.com/ljharb/get-intrinsic/compare/v1.2.0...v1.2.1) - 2023-05-13 + +### Commits + +- [Fix] avoid a crash in envs without `__proto__` [`7bad8d0`](https://github.com/ljharb/get-intrinsic/commit/7bad8d061bf8721733b58b73a2565af2b6756b64) +- [Dev Deps] update `es-abstract` [`c60e6b7`](https://github.com/ljharb/get-intrinsic/commit/c60e6b7b4cf9660c7f27ed970970fd55fac48dc5) + +## [v1.2.0](https://github.com/ljharb/get-intrinsic/compare/v1.1.3...v1.2.0) - 2023-01-19 + +### Commits + +- [actions] update checkout action [`ca6b12f`](https://github.com/ljharb/get-intrinsic/commit/ca6b12f31eaacea4ea3b055e744cd61623385ffb) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `tape` [`41a3727`](https://github.com/ljharb/get-intrinsic/commit/41a3727d0026fa04273ae216a5f8e12eefd72da8) +- [Fix] ensure `Error.prototype` is undeniable [`c511e97`](https://github.com/ljharb/get-intrinsic/commit/c511e97ae99c764c4524b540dee7a70757af8da3) +- [Dev Deps] update `aud`, `es-abstract`, `tape` [`1bef8a8`](https://github.com/ljharb/get-intrinsic/commit/1bef8a8fd439ebb80863199b6189199e0851ac67) +- [Dev Deps] update `aud`, `es-abstract` [`0d41f16`](https://github.com/ljharb/get-intrinsic/commit/0d41f16bcd500bc28b7bfc98043ebf61ea081c26) +- [New] add `BigInt64Array` and `BigUint64Array` [`a6cca25`](https://github.com/ljharb/get-intrinsic/commit/a6cca25f29635889b7e9bd669baf9e04be90e48c) +- [Tests] use `gopd` [`ecf7722`](https://github.com/ljharb/get-intrinsic/commit/ecf7722240d15cfd16edda06acf63359c10fb9bd) + +## [v1.1.3](https://github.com/ljharb/get-intrinsic/compare/v1.1.2...v1.1.3) - 2022-09-12 + +### Commits + +- [Dev Deps] update `es-abstract`, `es-value-fixtures`, `tape` [`07ff291`](https://github.com/ljharb/get-intrinsic/commit/07ff291816406ebe5a12d7f16965bde0942dd688) +- [Fix] properly check for % signs [`50ac176`](https://github.com/ljharb/get-intrinsic/commit/50ac1760fe99c227e64eabde76e9c0e44cd881b5) + +## [v1.1.2](https://github.com/ljharb/get-intrinsic/compare/v1.1.1...v1.1.2) - 2022-06-08 + +### Fixed + +- [Fix] properly validate against extra % signs [`#16`](https://github.com/ljharb/get-intrinsic/issues/16) + +### Commits + +- [actions] reuse common workflows [`0972547`](https://github.com/ljharb/get-intrinsic/commit/0972547efd0abc863fe4c445a6ca7eb4f8c6901d) +- [meta] use `npmignore` to autogenerate an npmignore file [`5ba0b51`](https://github.com/ljharb/get-intrinsic/commit/5ba0b51d8d8d4f1c31d426d74abc0770fd106bad) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c364492`](https://github.com/ljharb/get-intrinsic/commit/c364492af4af51333e6f81c0bf21fd3d602c3661) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `es-abstract`, `object-inspect`, `tape` [`dc04dad`](https://github.com/ljharb/get-intrinsic/commit/dc04dad86f6e5608775a2640cb0db5927ae29ed9) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es-abstract`, `object-inspect`, `safe-publish-latest`, `tape` [`1c14059`](https://github.com/ljharb/get-intrinsic/commit/1c1405984e86dd2dc9366c15d8a0294a96a146a5) +- [Tests] use `mock-property` [`b396ef0`](https://github.com/ljharb/get-intrinsic/commit/b396ef05bb73b1d699811abd64b0d9b97997fdda) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c2c758d`](https://github.com/ljharb/get-intrinsic/commit/c2c758d3b90af4fef0a76910d8d3c292ec8d1d3e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`29e3c09`](https://github.com/ljharb/get-intrinsic/commit/29e3c091c2bf3e17099969847e8729d0e46896de) +- [actions] update codecov uploader [`8cbc141`](https://github.com/ljharb/get-intrinsic/commit/8cbc1418940d7a8941f3a7985cbc4ac095c5e13d) +- [Dev Deps] update `@ljharb/eslint-config`, `es-abstract`, `es-value-fixtures`, `object-inspect`, `tape` [`10b6f5c`](https://github.com/ljharb/get-intrinsic/commit/10b6f5c02593fb3680c581d696ac124e30652932) +- [readme] add github actions/codecov badges [`4e25400`](https://github.com/ljharb/get-intrinsic/commit/4e25400d9f51ae9eb059cbe22d9144e70ea214e8) +- [Tests] use `for-each` instead of `foreach` [`c05b957`](https://github.com/ljharb/get-intrinsic/commit/c05b957ad9a7bc7721af7cc9e9be1edbfe057496) +- [Dev Deps] update `es-abstract` [`29b05ae`](https://github.com/ljharb/get-intrinsic/commit/29b05aec3e7330e9ad0b8e0f685a9112c20cdd97) +- [meta] use `prepublishOnly` script for npm 7+ [`95c285d`](https://github.com/ljharb/get-intrinsic/commit/95c285da810516057d3bbfa871176031af38f05d) +- [Deps] update `has-symbols` [`593cb4f`](https://github.com/ljharb/get-intrinsic/commit/593cb4fb38e7922e40e42c183f45274b636424cd) +- [readme] fix repo URLs [`1c8305b`](https://github.com/ljharb/get-intrinsic/commit/1c8305b5365827c9b6fc785434aac0e1328ff2f5) +- [Deps] update `has-symbols` [`c7138b6`](https://github.com/ljharb/get-intrinsic/commit/c7138b6c6d73132d859471fb8c13304e1e7c8b20) +- [Dev Deps] remove unused `has-bigints` [`bd63aff`](https://github.com/ljharb/get-intrinsic/commit/bd63aff6ad8f3a986c557fcda2914187bdaab359) + ## [v1.1.1](https://github.com/ljharb/get-intrinsic/compare/v1.1.0...v1.1.1) - 2021-02-03 ### Fixed diff --git a/node_modules/get-intrinsic/README.md b/node_modules/get-intrinsic/README.md index 335a3b4..3aa0bba 100644 --- a/node_modules/get-intrinsic/README.md +++ b/node_modules/get-intrinsic/README.md @@ -1,5 +1,7 @@ # get-intrinsic [![Version Badge][npm-version-svg]][package-url] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][deps-svg]][deps-url] [![dev dependency status][dev-deps-svg]][dev-deps-url] [![License][license-image]][license-url] @@ -53,7 +55,7 @@ Simply clone the repo, `npm install`, and run `npm test` Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. [package-url]: https://npmjs.org/package/get-intrinsic -[npm-version-svg]: http://versionbadg.es/ljharb/get-intrinsic.svg +[npm-version-svg]: https://versionbadg.es/ljharb/get-intrinsic.svg [deps-svg]: https://david-dm.org/ljharb/get-intrinsic.svg [deps-url]: https://david-dm.org/ljharb/get-intrinsic [dev-deps-svg]: https://david-dm.org/ljharb/get-intrinsic/dev-status.svg @@ -63,3 +65,7 @@ Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/se [license-url]: LICENSE [downloads-image]: https://img.shields.io/npm/dm/get-intrinsic.svg [downloads-url]: https://npm-stat.com/charts.html?package=get-intrinsic +[codecov-image]: https://codecov.io/gh/ljharb/get-intrinsic/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/get-intrinsic/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/get-intrinsic +[actions-url]: https://github.com/ljharb/get-intrinsic/actions diff --git a/node_modules/get-intrinsic/index.js b/node_modules/get-intrinsic/index.js index d6c06c2..c1957c9 100644 --- a/node_modules/get-intrinsic/index.js +++ b/node_modules/get-intrinsic/index.js @@ -43,18 +43,23 @@ var ThrowTypeError = $gOPD : throwTypeError; var hasSymbols = require('has-symbols')(); +var hasProto = require('has-proto')(); -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto +var getProto = Object.getPrototypeOf || ( + hasProto + ? function (x) { return x.__proto__; } // eslint-disable-line no-proto + : null +); var needsEval = {}; -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); var INTRINSICS = { '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, '%Array%': Array, '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, '%AsyncFromSyncIteratorPrototype%': undefined, '%AsyncFunction%': needsEval, '%AsyncGenerator%': needsEval, @@ -62,6 +67,8 @@ var INTRINSICS = { '%AsyncIteratorPrototype%': needsEval, '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, '%Boolean%': Boolean, '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, '%Date%': Date, @@ -82,10 +89,10 @@ var INTRINSICS = { '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, '%isFinite%': isFinite, '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, '%JSON%': typeof JSON === 'object' ? JSON : undefined, '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), '%Math%': Math, '%Number%': Number, '%Object%': Object, @@ -98,10 +105,10 @@ var INTRINSICS = { '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, '%RegExp%': RegExp, '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, '%String%': String, - '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, '%Symbol%': hasSymbols ? Symbol : undefined, '%SyntaxError%': $SyntaxError, '%ThrowTypeError%': ThrowTypeError, @@ -117,6 +124,16 @@ var INTRINSICS = { '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet }; +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + var doEval = function doEval(name) { var value; if (name === '%AsyncFunction%') { @@ -132,7 +149,7 @@ var doEval = function doEval(name) { } } else if (name === '%AsyncIteratorPrototype%') { var gen = doEval('%AsyncGenerator%'); - if (gen) { + if (gen && getProto) { value = getProto(gen.prototype); } } @@ -202,6 +219,7 @@ var $concat = bind.call(Function.call, Array.prototype.concat); var $spliceApply = bind.call(Function.apply, Array.prototype.splice); var $replace = bind.call(Function.call, String.prototype.replace); var $strSlice = bind.call(Function.call, String.prototype.slice); +var $exec = bind.call(Function.call, RegExp.prototype.exec); /* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; @@ -257,6 +275,9 @@ module.exports = function GetIntrinsic(name, allowMissing) { throw new $TypeError('"allowMissing" argument must be a boolean'); } + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } var parts = stringToPath(name); var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; diff --git a/node_modules/get-intrinsic/package.json b/node_modules/get-intrinsic/package.json index d34894a..9c7058f 100644 --- a/node_modules/get-intrinsic/package.json +++ b/node_modules/get-intrinsic/package.json @@ -1,6 +1,6 @@ { "name": "get-intrinsic", - "version": "1.1.1", + "version": "1.2.1", "description": "Get and robustly cache all JS language-level intrinsics at first require time", "main": "index.js", "exports": { @@ -13,6 +13,9 @@ "./package.json": "./package.json" }, "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", "prelint": "evalmd README.md", "lint": "eslint --ext=.js,.mjs .", "pretest": "npm run lint", @@ -45,22 +48,25 @@ }, "homepage": "https://github.com/ljharb/get-intrinsic#readme", "devDependencies": { - "@ljharb/eslint-config": "^17.5.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", + "@ljharb/eslint-config": "^21.0.1", + "aud": "^2.0.2", + "auto-changelog": "^2.4.0", "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "es-value-fixtures": "^1.0.0", - "eslint": "^7.19.0", + "es-abstract": "^1.21.2", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", "evalmd": "^0.0.19", - "foreach": "^2.0.5", - "has-bigints": "^1.0.1", + "for-each": "^0.3.3", + "gopd": "^1.0.1", "make-async-function": "^1.0.0", "make-async-generator-function": "^1.0.0", "make-generator-function": "^2.0.0", + "mock-property": "^1.0.0", + "npmignore": "^0.3.0", "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "tape": "^5.1.1" + "object-inspect": "^1.12.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.3" }, "auto-changelog": { "output": "CHANGELOG.md", @@ -73,6 +79,15 @@ "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", - "has-symbols": "^1.0.1" + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "testling": { + "files": "test/GetIntrinsic.js" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] } } diff --git a/node_modules/get-intrinsic/test/GetIntrinsic.js b/node_modules/get-intrinsic/test/GetIntrinsic.js index 695e3ad..1cc08e0 100644 --- a/node_modules/get-intrinsic/test/GetIntrinsic.js +++ b/node_modules/get-intrinsic/test/GetIntrinsic.js @@ -3,16 +3,17 @@ var GetIntrinsic = require('../'); var test = require('tape'); -var forEach = require('foreach'); +var forEach = require('for-each'); var debug = require('object-inspect'); var generatorFns = require('make-generator-function')(); var asyncFns = require('make-async-function').list(); var asyncGenFns = require('make-async-generator-function')(); +var mockProperty = require('mock-property'); var callBound = require('call-bind/callBound'); var v = require('es-value-fixtures'); -var $gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor'); -var defineProperty = require('es-abstract/test/helpers/defineProperty'); +var $gOPD = require('gopd'); +var DefinePropertyOrThrow = require('es-abstract/2021/DefinePropertyOrThrow'); var $isProto = callBound('%Object.prototype.isPrototypeOf%'); @@ -66,6 +67,18 @@ test('throws', function (t) { "Throws when middle part doesn't exist (%Proxy.prototype.undefined%)" ); + t['throws']( + function () { GetIntrinsic('%Array.prototype%garbage%'); }, + SyntaxError, + 'Throws with extra percent signs' + ); + + t['throws']( + function () { GetIntrinsic('%Array.prototype%push%'); }, + SyntaxError, + 'Throws with extra percent signs, even on an existing intrinsic' + ); + forEach(v.nonStrings, function (nonString) { t['throws']( function () { GetIntrinsic(nonString); }, @@ -123,15 +136,15 @@ test('dotted paths', function (t) { '%ObjProto_toString%', 'ObjProto_toString' ], function (name) { - defineProperty(Object.prototype, 'toString', { - value: function toString() { + DefinePropertyOrThrow(Object.prototype, 'toString', { + '[[Value]]': function toString() { return original.apply(this, arguments); } }); st.equal(GetIntrinsic(name), original, name + ' yields original Object.prototype.toString'); }); - defineProperty(Object.prototype, 'toString', { value: original }); + DefinePropertyOrThrow(Object.prototype, 'toString', { '[[Value]]': original }); st.end(); }); @@ -144,15 +157,16 @@ test('dotted paths', function (t) { '%ObjectPrototype.propertyIsEnumerable%', 'ObjectPrototype.propertyIsEnumerable' ], function (name) { - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = function propertyIsEnumerable() { - return original.apply(this, arguments); - }; + var restore = mockProperty(Object.prototype, 'propertyIsEnumerable', { + value: function propertyIsEnumerable() { + return original.apply(this, arguments); + } + }); st.equal(GetIntrinsic(name), original, name + ' yields cached Object.prototype.propertyIsEnumerable'); + + restore(); }); - // eslint-disable-next-line no-extend-native - Object.prototype.propertyIsEnumerable = original; st.end(); }); diff --git a/node_modules/glob/README.md b/node_modules/glob/README.md index 2dde30a..83f0c83 100644 --- a/node_modules/glob/README.md +++ b/node_modules/glob/README.md @@ -276,6 +276,9 @@ the filesystem. * `absolute` Set to true to always receive absolute paths for matched files. Unlike `realpath`, this also affects the values returned in the `match` event. +* `fs` File-system object with Node's `fs` API. By default, the built-in + `fs` module will be used. Set to a volume provided by a library like + `memfs` to avoid using the "real" file-system. ## Comparisons to other fnmatch/glob implementations diff --git a/node_modules/glob/changelog.md b/node_modules/glob/changelog.md deleted file mode 100644 index 4163677..0000000 --- a/node_modules/glob/changelog.md +++ /dev/null @@ -1,67 +0,0 @@ -## 7.0 - -- Raise error if `options.cwd` is specified, and not a directory - -## 6.0 - -- Remove comment and negation pattern support -- Ignore patterns are always in `dot:true` mode - -## 5.0 - -- Deprecate comment and negation patterns -- Fix regression in `mark` and `nodir` options from making all cache - keys absolute path. -- Abort if `fs.readdir` returns an error that's unexpected -- Don't emit `match` events for ignored items -- Treat ENOTSUP like ENOTDIR in readdir - -## 4.5 - -- Add `options.follow` to always follow directory symlinks in globstar -- Add `options.realpath` to call `fs.realpath` on all results -- Always cache based on absolute path - -## 4.4 - -- Add `options.ignore` -- Fix handling of broken symlinks - -## 4.3 - -- Bump minimatch to 2.x -- Pass all tests on Windows - -## 4.2 - -- Add `glob.hasMagic` function -- Add `options.nodir` flag - -## 4.1 - -- Refactor sync and async implementations for performance -- Throw if callback provided to sync glob function -- Treat symbolic links in globstar results the same as Bash 4.3 - -## 4.0 - -- Use `^` for dependency versions (bumped major because this breaks - older npm versions) -- Ensure callbacks are only ever called once -- switch to ISC license - -## 3.x - -- Rewrite in JavaScript -- Add support for setting root, cwd, and windows support -- Cache many fs calls -- Add globstar support -- emit match events - -## 2.x - -- Use `glob.h` and `fnmatch.h` from NetBSD - -## 1.x - -- `glob.h` static binding. diff --git a/node_modules/glob/common.js b/node_modules/glob/common.js index d14157a..424c46e 100644 --- a/node_modules/glob/common.js +++ b/node_modules/glob/common.js @@ -10,6 +10,7 @@ function ownProp (obj, field) { return Object.prototype.hasOwnProperty.call(obj, field) } +var fs = require("fs") var path = require("path") var minimatch = require("minimatch") var isAbsolute = require("path-is-absolute") @@ -75,6 +76,7 @@ function setopts (self, pattern, options) { self.stat = !!options.stat self.noprocess = !!options.noprocess self.absolute = !!options.absolute + self.fs = options.fs || fs self.maxLength = options.maxLength || Infinity self.cache = options.cache || Object.create(null) @@ -108,6 +110,8 @@ function setopts (self, pattern, options) { // Note that they are not supported in Glob itself anyway. options.nonegate = true options.nocomment = true + // always treat \ in patterns as escapes, not path separators + options.allowWindowsEscape = false self.minimatch = new Minimatch(pattern, options) self.options = self.minimatch.options diff --git a/node_modules/glob/glob.js b/node_modules/glob/glob.js index dc27aef..37a4d7e 100644 --- a/node_modules/glob/glob.js +++ b/node_modules/glob/glob.js @@ -40,7 +40,6 @@ module.exports = glob -var fs = require('fs') var rp = require('fs.realpath') var minimatch = require('minimatch') var Minimatch = minimatch.Minimatch @@ -343,7 +342,10 @@ Glob.prototype._process = function (pattern, index, inGlobStar, cb) { var read if (prefix === null) read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix read = prefix @@ -501,7 +503,7 @@ Glob.prototype._readdirInGlobStar = function (abs, cb) { var lstatcb = inflight(lstatkey, lstatcb_) if (lstatcb) - fs.lstat(abs, lstatcb) + self.fs.lstat(abs, lstatcb) function lstatcb_ (er, lstat) { if (er && er.code === 'ENOENT') @@ -542,7 +544,7 @@ Glob.prototype._readdir = function (abs, inGlobStar, cb) { } var self = this - fs.readdir(abs, readdirCb(this, abs, cb)) + self.fs.readdir(abs, readdirCb(this, abs, cb)) } function readdirCb (self, abs, cb) { @@ -746,13 +748,13 @@ Glob.prototype._stat = function (f, cb) { var self = this var statcb = inflight('stat\0' + abs, lstatcb_) if (statcb) - fs.lstat(abs, statcb) + self.fs.lstat(abs, statcb) function lstatcb_ (er, lstat) { if (lstat && lstat.isSymbolicLink()) { // If it's a symlink, then treat it as the target, unless // the target does not exist, then treat it as a file. - return fs.stat(abs, function (er, stat) { + return self.fs.stat(abs, function (er, stat) { if (er) self._stat2(f, abs, null, lstat, cb) else diff --git a/node_modules/glob/package.json b/node_modules/glob/package.json index b345ae1..5940b64 100644 --- a/node_modules/glob/package.json +++ b/node_modules/glob/package.json @@ -2,7 +2,10 @@ "author": "Isaac Z. Schlueter (http://blog.izs.me/)", "name": "glob", "description": "a little globber", - "version": "7.1.7", + "version": "7.2.3", + "publishConfig": { + "tag": "v7-legacy" + }, "repository": { "type": "git", "url": "git://github.com/isaacs/node-glob.git" @@ -20,11 +23,12 @@ "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", - "minimatch": "^3.0.4", + "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "devDependencies": { + "memfs": "^3.2.0", "mkdirp": "0", "rimraf": "^2.2.8", "tap": "^15.0.6", diff --git a/node_modules/glob/sync.js b/node_modules/glob/sync.js index 10b0ed2..2c4f480 100644 --- a/node_modules/glob/sync.js +++ b/node_modules/glob/sync.js @@ -1,7 +1,6 @@ module.exports = globSync globSync.GlobSync = GlobSync -var fs = require('fs') var rp = require('fs.realpath') var minimatch = require('minimatch') var Minimatch = minimatch.Minimatch @@ -49,7 +48,7 @@ function GlobSync (pattern, options) { } GlobSync.prototype._finish = function () { - assert(this instanceof GlobSync) + assert.ok(this instanceof GlobSync) if (this.realpath) { var self = this this.matches.forEach(function (matchset, index) { @@ -73,7 +72,7 @@ GlobSync.prototype._finish = function () { GlobSync.prototype._process = function (pattern, index, inGlobStar) { - assert(this instanceof GlobSync) + assert.ok(this instanceof GlobSync) // Get the first [n] parts of pattern that are all strings. var n = 0 @@ -110,7 +109,10 @@ GlobSync.prototype._process = function (pattern, index, inGlobStar) { var read if (prefix === null) read = '.' - else if (isAbsolute(prefix) || isAbsolute(pattern.join('/'))) { + else if (isAbsolute(prefix) || + isAbsolute(pattern.map(function (p) { + return typeof p === 'string' ? p : '[*]' + }).join('/'))) { if (!prefix || !isAbsolute(prefix)) prefix = '/' + prefix read = prefix @@ -246,7 +248,7 @@ GlobSync.prototype._readdirInGlobStar = function (abs) { var lstat var stat try { - lstat = fs.lstatSync(abs) + lstat = this.fs.lstatSync(abs) } catch (er) { if (er.code === 'ENOENT') { // lstat failed, doesn't exist @@ -283,7 +285,7 @@ GlobSync.prototype._readdir = function (abs, inGlobStar) { } try { - return this._readdirEntries(abs, fs.readdirSync(abs)) + return this._readdirEntries(abs, this.fs.readdirSync(abs)) } catch (er) { this._readdirError(abs, er) return null @@ -442,7 +444,7 @@ GlobSync.prototype._stat = function (f) { if (!stat) { var lstat try { - lstat = fs.lstatSync(abs) + lstat = this.fs.lstatSync(abs) } catch (er) { if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) { this.statCache[abs] = false @@ -452,7 +454,7 @@ GlobSync.prototype._stat = function (f) { if (lstat && lstat.isSymbolicLink()) { try { - stat = fs.statSync(abs) + stat = this.fs.statSync(abs) } catch (er) { stat = lstat } diff --git a/node_modules/gopd/.eslintrc b/node_modules/gopd/.eslintrc new file mode 100644 index 0000000..e2550c0 --- /dev/null +++ b/node_modules/gopd/.eslintrc @@ -0,0 +1,16 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "func-style": [2, "declaration"], + "id-length": 0, + "multiline-comment-style": 0, + "new-cap": [2, { + "capIsNewExceptions": [ + "GetIntrinsic", + ], + }], + }, +} diff --git a/node_modules/gopd/.github/FUNDING.yml b/node_modules/gopd/.github/FUNDING.yml new file mode 100644 index 0000000..94a44a8 --- /dev/null +++ b/node_modules/gopd/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/gopd +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/gopd/CHANGELOG.md b/node_modules/gopd/CHANGELOG.md new file mode 100644 index 0000000..f111eb1 --- /dev/null +++ b/node_modules/gopd/CHANGELOG.md @@ -0,0 +1,25 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/ljharb/gopd/compare/v1.0.0...v1.0.1) - 2022-11-01 + +### Commits + +- [Fix] actually export gOPD instead of dP [`4b624bf`](https://github.com/ljharb/gopd/commit/4b624bfbeff788c5e3ff16d9443a83627847234f) + +## v1.0.0 - 2022-11-01 + +### Commits + +- Initial implementation, tests, readme [`0911e01`](https://github.com/ljharb/gopd/commit/0911e012cd642092bd88b732c161c58bf4f20bea) +- Initial commit [`b84e33f`](https://github.com/ljharb/gopd/commit/b84e33f5808a805ac57ff88d4247ad935569acbe) +- [actions] add reusable workflows [`12ae28a`](https://github.com/ljharb/gopd/commit/12ae28ae5f50f86e750215b6e2188901646d0119) +- npm init [`280118b`](https://github.com/ljharb/gopd/commit/280118badb45c80b4483836b5cb5315bddf6e582) +- [meta] add `auto-changelog` [`bb78de5`](https://github.com/ljharb/gopd/commit/bb78de5639a180747fb290c28912beaaf1615709) +- [meta] create FUNDING.yml; add `funding` in package.json [`11c22e6`](https://github.com/ljharb/gopd/commit/11c22e6355bb01f24e7fac4c9bb3055eb5b25002) +- [meta] use `npmignore` to autogenerate an npmignore file [`4f4537a`](https://github.com/ljharb/gopd/commit/4f4537a843b39f698c52f072845092e6fca345bb) +- Only apps should have lockfiles [`c567022`](https://github.com/ljharb/gopd/commit/c567022a18573aa7951cf5399445d9840e23e98b) diff --git a/node_modules/gopd/LICENSE b/node_modules/gopd/LICENSE new file mode 100644 index 0000000..6abfe14 --- /dev/null +++ b/node_modules/gopd/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/gopd/README.md b/node_modules/gopd/README.md new file mode 100644 index 0000000..784e56a --- /dev/null +++ b/node_modules/gopd/README.md @@ -0,0 +1,40 @@ +# gopd [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation. + +## Usage + +```javascript +var gOPD = require('gopd'); +var assert = require('assert'); + +if (gOPD) { + assert.equal(typeof gOPD, 'function', 'descriptors supported'); + // use gOPD like Object.getOwnPropertyDescriptor here +} else { + assert.ok(!gOPD, 'descriptors not supported'); +} +``` + +[package-url]: https://npmjs.org/package/gopd +[npm-version-svg]: https://versionbadg.es/ljharb/gopd.svg +[deps-svg]: https://david-dm.org/ljharb/gopd.svg +[deps-url]: https://david-dm.org/ljharb/gopd +[dev-deps-svg]: https://david-dm.org/ljharb/gopd/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/gopd#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/gopd.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/gopd.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/gopd.svg +[downloads-url]: https://npm-stat.com/charts.html?package=gopd +[codecov-image]: https://codecov.io/gh/ljharb/gopd/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/gopd/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/gopd +[actions-url]: https://github.com/ljharb/gopd/actions diff --git a/node_modules/gopd/index.js b/node_modules/gopd/index.js new file mode 100644 index 0000000..fb6d3bb --- /dev/null +++ b/node_modules/gopd/index.js @@ -0,0 +1,16 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); + +if ($gOPD) { + try { + $gOPD([], 'length'); + } catch (e) { + // IE 8 has a broken gOPD + $gOPD = null; + } +} + +module.exports = $gOPD; diff --git a/node_modules/gopd/package.json b/node_modules/gopd/package.json new file mode 100644 index 0000000..d5e1fa4 --- /dev/null +++ b/node_modules/gopd/package.json @@ -0,0 +1,71 @@ +{ + "name": "gopd", + "version": "1.0.1", + "description": "`Object.getOwnPropertyDescriptor`, but accounts for IE's broken implementation.", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "lint": "eslint --ext=js,mjs .", + "postlint": "evalmd README.md", + "pretest": "npm run lint", + "tests-only": "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/gopd.git" + }, + "keywords": [ + "ecmascript", + "javascript", + "getownpropertydescriptor", + "property", + "descriptor" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/gopd/issues" + }, + "homepage": "https://github.com/ljharb/gopd#readme", + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.1", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.1" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/gopd/test/index.js b/node_modules/gopd/test/index.js new file mode 100644 index 0000000..0376bfb --- /dev/null +++ b/node_modules/gopd/test/index.js @@ -0,0 +1,35 @@ +'use strict'; + +var test = require('tape'); +var gOPD = require('../'); + +test('gOPD', function (t) { + t.test('supported', { skip: !gOPD }, function (st) { + st.equal(typeof gOPD, 'function', 'is a function'); + + var obj = { x: 1 }; + st.ok('x' in obj, 'property exists'); + + var desc = gOPD(obj, 'x'); + st.deepEqual( + desc, + { + configurable: true, + enumerable: true, + value: 1, + writable: true + }, + 'descriptor is as expected' + ); + + st.end(); + }); + + t.test('not supported', { skip: gOPD }, function (st) { + st.notOk(gOPD, 'is falsy'); + + st.end(); + }); + + t.end(); +}); diff --git a/node_modules/has-bigints/.eslintignore b/node_modules/has-bigints/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/has-bigints/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/has-bigints/.eslintrc b/node_modules/has-bigints/.eslintrc deleted file mode 100644 index 699b23b..0000000 --- a/node_modules/has-bigints/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "operator-linebreak": [2, "before"], - }, -} diff --git a/node_modules/has-bigints/.github/FUNDING.yml b/node_modules/has-bigints/.github/FUNDING.yml deleted file mode 100644 index 5b597c8..0000000 --- a/node_modules/has-bigints/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/has-bigints -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-bigints/CHANGELOG.md b/node_modules/has-bigints/CHANGELOG.md deleted file mode 100644 index 48f9dc2..0000000 --- a/node_modules/has-bigints/CHANGELOG.md +++ /dev/null @@ -1,43 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.1](https://github.com/inspect-js/has-bigints/compare/v1.0.0...v1.0.1) - 2020-12-13 - -### Commits - -- [Tests] use shared travis-ci configs [`46a0d6b`](https://github.com/inspect-js/has-bigints/commit/46a0d6be7ed83bd7f5ead11e4eab7fc91570a448) -- [Tests] migrate tests to Github Actions [`91a38fa`](https://github.com/inspect-js/has-bigints/commit/91a38fa4b85a420b8cf4926b3799e6ceb60d8690) -- [meta] do not publish github action workflow files [`69aacba`](https://github.com/inspect-js/has-bigints/commit/69aacba320c1221e7fee1c71bde600bce063f24b) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`64e2c08`](https://github.com/inspect-js/has-bigints/commit/64e2c0895b21ac91a137452fd2455932f62a2fc1) -- [Tests] run `nyc` on all tests; use `tape` runner [`8009375`](https://github.com/inspect-js/has-bigints/commit/8009375e5ec9faca6bbc09441002af5c5e59ff20) -- [actions] add automatic rebasing / merge commit blocking [`e599917`](https://github.com/inspect-js/has-bigints/commit/e599917fd1f751c9a6c0daac70acb243f8c3a01d) -- [actions] add "Allow Edits" workflow [`bd0126e`](https://github.com/inspect-js/has-bigints/commit/bd0126eba2d67e9b9d588bced34413f507698154) -- [readme] remove travis badge [`8e02a73`](https://github.com/inspect-js/has-bigints/commit/8e02a73db34827d24d2945f2db822973a0b49925) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `safe-publish-latest` [`95859f2`](https://github.com/inspect-js/has-bigints/commit/95859f28f23f5733481c52a501063802cf64f75b) -- [Dev Deps] update `auto-changelog`, `in-publish`, `tape` [`0588f41`](https://github.com/inspect-js/has-bigints/commit/0588f415c6cc01d6b34668680044e03b2998e03f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`5b024a6`](https://github.com/inspect-js/has-bigints/commit/5b024a664a8b7d2d2f750a4c11ce20c395b6f12a) -- [meta] add `version` scripts [`4788d61`](https://github.com/inspect-js/has-bigints/commit/4788d61101c009e4e2c1b4d944c263de06192c6a) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`be0e0de`](https://github.com/inspect-js/has-bigints/commit/be0e0de08298dfe483c5d7a2675e5133abeabc53) -- [Dev Deps] update `auto-changelog`; add `aud` [`13a8d1b`](https://github.com/inspect-js/has-bigints/commit/13a8d1bf1f661871d890bfa174de9514f016cdd9) -- [actions] fix action name [`f873d9a`](https://github.com/inspect-js/has-bigints/commit/f873d9a2f10718662528a755b12c61202f4e4afa) -- [meta] add `funding` field [`1b51f49`](https://github.com/inspect-js/has-bigints/commit/1b51f4921df1faf85d2679a0e4ba97ef015a73b7) -- [Dev Deps] update `auto-changelog` [`2322461`](https://github.com/inspect-js/has-bigints/commit/2322461789810434c447439f155eb3ca23eb29fb) -- [Tests] only audit prod deps [`aabdade`](https://github.com/inspect-js/has-bigints/commit/aabdadeaa1e126b91a2fbd82263cc49651ff5e7b) - -## v1.0.0 - 2019-08-10 - -### Commits - -- [Tests] add `.travis.yml` [`9730412`](https://github.com/inspect-js/has-bigints/commit/973041241dc172474bb9457aad41790fe54fec88) -- Initial commit [`65f7c38`](https://github.com/inspect-js/has-bigints/commit/65f7c3889d9a98e214e26d650723cbfc49338463) -- [Tests] add tests [`e374a78`](https://github.com/inspect-js/has-bigints/commit/e374a78033d457badcd47e06752fdec7f62e6c39) -- readme [`5d39092`](https://github.com/inspect-js/has-bigints/commit/5d3909249da442867180fb747eef27543627d250) -- npm init [`1be2e3d`](https://github.com/inspect-js/has-bigints/commit/1be2e3d69db6718901e6845cfc38a07cc46dfd96) -- implementation [`b7bc812`](https://github.com/inspect-js/has-bigints/commit/b7bc8121db1fb1a827625c4cb0608935e3dcbe31) -- [Tests] add linting [`04533be`](https://github.com/inspect-js/has-bigints/commit/04533bef57f60e322238f71f32ee3ae0c988bac4) -- [meta] create FUNDING.yml [`cf824a7`](https://github.com/inspect-js/has-bigints/commit/cf824a7d02e867957d8db17ee0a4c70c8ee5ff23) -- Only apps should have lockfiles [`64e8242`](https://github.com/inspect-js/has-bigints/commit/64e82429f1dca99f624dc971ff13516dee28d353) diff --git a/node_modules/has-bigints/README.md b/node_modules/has-bigints/README.md deleted file mode 100644 index 3847079..0000000 --- a/node_modules/has-bigints/README.md +++ /dev/null @@ -1,35 +0,0 @@ -# has-bigints [![Version Badge][2]][1] - -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Determine if the JS environment has BigInt support. - -## Example - -```js -var hasBigInts = require('has-bigints'); - -hasBigInts() === true; // if the environment has native BigInt support. Not polyfillable, not forgeable. -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/has-bigints -[2]: https://versionbadg.es/ljharb/has-bigints.svg -[5]: https://david-dm.org/ljharb/has-bigints.svg -[6]: https://david-dm.org/ljharb/has-bigints -[7]: https://david-dm.org/ljharb/has-bigints/dev-status.svg -[8]: https://david-dm.org/ljharb/has-bigints#info=devDependencies -[9]: https://ci.testling.com/ljharb/has-bigints.png -[10]: https://ci.testling.com/ljharb/has-bigints -[11]: https://nodei.co/npm/has-bigints.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/has-bigints.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/has-bigints.svg -[downloads-url]: https://npm-stat.com/charts.html?package=has-bigints diff --git a/node_modules/has-bigints/index.js b/node_modules/has-bigints/index.js deleted file mode 100644 index dd9af1d..0000000 --- a/node_modules/has-bigints/index.js +++ /dev/null @@ -1,10 +0,0 @@ -'use strict'; - -var $BigInt = global.BigInt; - -module.exports = function hasNativeBigInts() { - return typeof $BigInt === 'function' - && typeof BigInt === 'function' - && typeof $BigInt(42) === 'bigint' // eslint-disable-line no-magic-numbers - && typeof BigInt(42) === 'bigint'; // eslint-disable-line no-magic-numbers -}; diff --git a/node_modules/has-bigints/package.json b/node_modules/has-bigints/package.json deleted file mode 100644 index 82144f0..0000000 --- a/node_modules/has-bigints/package.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/has-bigints/test/index.js b/node_modules/has-bigints/test/index.js deleted file mode 100644 index efbc98b..0000000 --- a/node_modules/has-bigints/test/index.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; - -var test = require('tape'); -var hasBigInts = require('..'); - -test('interface', function (t) { - t.equal(typeof hasBigInts, 'function', 'is a function'); - t.equal(typeof hasBigInts(), 'boolean', 'returns a boolean'); - t.end(); -}); - -test('BigInts are supported', { skip: !hasBigInts() }, function (t) { - t.equal(typeof BigInt, 'function', 'global BigInt is a function'); - if (typeof BigInt !== 'function') { - return; - } - - t.equal(BigInt(42), BigInt(42), '42n === 42n'); - t['throws']( - function () { BigInt(NaN); }, - RangeError, - 'NaN is not an integer; BigInt(NaN) throws' - ); - - t['throws']( - function () { BigInt(Infinity); }, - RangeError, - 'Infinity is not an integer; BigInt(Infinity) throws' - ); - - t['throws']( - function () { BigInt(1.1); }, - RangeError, - '1.1 is not an integer; BigInt(1.1) throws' - ); - - t.end(); -}); - -test('BigInts are not supported', { skip: hasBigInts() }, function (t) { - t.equal(typeof BigInt, 'undefined', 'global BigInt is undefined'); - - t.end(); -}); diff --git a/node_modules/unbox-primitive/.eslintrc b/node_modules/has-proto/.eslintrc similarity index 100% rename from node_modules/unbox-primitive/.eslintrc rename to node_modules/has-proto/.eslintrc diff --git a/node_modules/has-proto/.github/FUNDING.yml b/node_modules/has-proto/.github/FUNDING.yml new file mode 100644 index 0000000..613705c --- /dev/null +++ b/node_modules/has-proto/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-proto +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-proto/CHANGELOG.md b/node_modules/has-proto/CHANGELOG.md new file mode 100644 index 0000000..c350e80 --- /dev/null +++ b/node_modules/has-proto/CHANGELOG.md @@ -0,0 +1,23 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.1](https://github.com/inspect-js/has-proto/compare/v1.0.0...v1.0.1) - 2022-12-21 + +### Commits + +- [meta] correct URLs and description [`ef34483`](https://github.com/inspect-js/has-proto/commit/ef34483ca0d35680f271b6b96e35526151b25dfc) +- [patch] add an additional criteria [`e81959e`](https://github.com/inspect-js/has-proto/commit/e81959ed7c7a77fbf459f00cb4ef824f1099497f) +- [Dev Deps] update `aud` [`2bec2c4`](https://github.com/inspect-js/has-proto/commit/2bec2c47b072b122ff5443fba0263f6dc649531f) + +## v1.0.0 - 2022-12-12 + +### Commits + +- Initial implementation, tests, readme [`6886fea`](https://github.com/inspect-js/has-proto/commit/6886fea578f67daf69a7920b2eb7637ea6ebb0bc) +- Initial commit [`99129c8`](https://github.com/inspect-js/has-proto/commit/99129c8f42471ac89cb681ba9cb9d52a583eb94f) +- npm init [`2844ad8`](https://github.com/inspect-js/has-proto/commit/2844ad8e75b84d66a46765b3bab9d2e8ea692e10) +- Only apps should have lockfiles [`c65bc5e`](https://github.com/inspect-js/has-proto/commit/c65bc5e40b9004463f7336d47c67245fb139a36a) diff --git a/node_modules/has-proto/LICENSE b/node_modules/has-proto/LICENSE new file mode 100644 index 0000000..2e7b9a3 --- /dev/null +++ b/node_modules/has-proto/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/has-proto/README.md b/node_modules/has-proto/README.md new file mode 100644 index 0000000..1456765 --- /dev/null +++ b/node_modules/has-proto/README.md @@ -0,0 +1,38 @@ +# has-proto [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Does this environment have the ability to set the [[Prototype]] of an object on creation with `__proto__`? + +## Example + +```js +var hasProto = require('has-proto'); +var assert = require('assert'); + +assert.equal(typeof hasProto(), 'boolean'); +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/has-proto +[npm-version-svg]: https://versionbadg.es/inspect-js/has-proto.svg +[deps-svg]: https://david-dm.org/inspect-js/has-proto.svg +[deps-url]: https://david-dm.org/inspect-js/has-proto +[dev-deps-svg]: https://david-dm.org/inspect-js/has-proto/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/has-proto#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/has-proto.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-proto.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-proto.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-proto +[codecov-image]: https://codecov.io/gh/inspect-js/has-proto/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-proto/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-proto +[actions-url]: https://github.com/inspect-js/has-proto/actions diff --git a/node_modules/has-proto/index.js b/node_modules/has-proto/index.js new file mode 100644 index 0000000..d3e4be4 --- /dev/null +++ b/node_modules/has-proto/index.js @@ -0,0 +1,11 @@ +'use strict'; + +var test = { + foo: {} +}; + +var $Object = Object; + +module.exports = function hasProto() { + return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object); +}; diff --git a/node_modules/has-proto/package.json b/node_modules/has-proto/package.json new file mode 100644 index 0000000..706f951 --- /dev/null +++ b/node_modules/has-proto/package.json @@ -0,0 +1,74 @@ +{ + "name": "has-proto", + "version": "1.0.1", + "description": "Does this environment have the ability to get the [[Prototype]] of an object on creation with `__proto__`?", + "main": "index.js", + "exports": { + ".": "./index.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "lint": "eslint --ext=js,mjs .", + "pretest": "npm run lint", + "tests-only": "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/has-proto.git" + }, + "keywords": [ + "prototype", + "proto", + "set", + "get", + "__proto__", + "getPrototypeOf", + "setPrototypeOf", + "has" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/has-proto/issues" + }, + "homepage": "https://github.com/inspect-js/has-proto#readme", + "testling": { + "files": "test/index.js" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.2", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.1" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } +} diff --git a/node_modules/has-proto/test/index.js b/node_modules/has-proto/test/index.js new file mode 100644 index 0000000..5da1a3a --- /dev/null +++ b/node_modules/has-proto/test/index.js @@ -0,0 +1,19 @@ +'use strict'; + +var test = require('tape'); +var hasProto = require('../'); + +test('hasProto', function (t) { + var result = hasProto(); + t.equal(typeof result, 'boolean', 'returns a boolean (' + result + ')'); + + var obj = { __proto__: null }; + if (result) { + t.notOk('toString' in obj, 'null object lacks toString'); + } else { + t.ok('toString' in obj, 'without proto, null object has toString'); + t.equal(obj.__proto__, null); // eslint-disable-line no-proto + } + + t.end(); +}); diff --git a/node_modules/has-symbols/.eslintignore b/node_modules/has-symbols/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/has-symbols/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/has-symbols/.nycrc b/node_modules/has-symbols/.nycrc index 1826526..bdd626c 100644 --- a/node_modules/has-symbols/.nycrc +++ b/node_modules/has-symbols/.nycrc @@ -2,10 +2,6 @@ "all": true, "check-coverage": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, "exclude": [ "coverage", "test" diff --git a/node_modules/has-symbols/CHANGELOG.md b/node_modules/has-symbols/CHANGELOG.md index 852ca04..cd532a2 100644 --- a/node_modules/has-symbols/CHANGELOG.md +++ b/node_modules/has-symbols/CHANGELOG.md @@ -5,6 +5,23 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.0.3](https://github.com/inspect-js/has-symbols/compare/v1.0.2...v1.0.3) - 2022-03-01 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`518b28f`](https://github.com/inspect-js/has-symbols/commit/518b28f6c5a516cbccae30794e40aa9f738b1693) +- [meta] add `bugs` and `homepage` fields; reorder package.json [`c480b13`](https://github.com/inspect-js/has-symbols/commit/c480b13fd6802b557e1cef9749872cb5fdeef744) +- [actions] reuse common workflows [`01d0ee0`](https://github.com/inspect-js/has-symbols/commit/01d0ee0a8d97c0947f5edb73eb722027a77b2b07) +- [actions] update codecov uploader [`6424ebe`](https://github.com/inspect-js/has-symbols/commit/6424ebe86b2c9c7c3d2e9bd4413a4e4f168cb275) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`dfa7e7f`](https://github.com/inspect-js/has-symbols/commit/dfa7e7ff38b594645d8c8222aab895157fa7e282) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0c8d436`](https://github.com/inspect-js/has-symbols/commit/0c8d43685c45189cea9018191d4fd7eca91c9d02) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`9026554`](https://github.com/inspect-js/has-symbols/commit/902655442a1bf88e72b42345494ef0c60f5d36ab) +- [readme] add actions and codecov badges [`eaa9682`](https://github.com/inspect-js/has-symbols/commit/eaa9682f990f481d3acf7a1c7600bec36f7b3adc) +- [Dev Deps] update `eslint`, `tape` [`bc7a3ba`](https://github.com/inspect-js/has-symbols/commit/bc7a3ba46f27b7743f8a2579732d59d1b9ac791e) +- [Dev Deps] update `eslint`, `auto-changelog` [`0ace00a`](https://github.com/inspect-js/has-symbols/commit/0ace00af08a88cdd1e6ce0d60357d941c60c2d9f) +- [meta] use `prepublishOnly` script for npm 7+ [`093f72b`](https://github.com/inspect-js/has-symbols/commit/093f72bc2b0ed00c781f444922a5034257bf561d) +- [Tests] test on all 16 minors [`9b80d3d`](https://github.com/inspect-js/has-symbols/commit/9b80d3d9102529f04c20ec5b1fcc6e38426c6b03) + ## [v1.0.2](https://github.com/inspect-js/has-symbols/compare/v1.0.1...v1.0.2) - 2021-02-27 ### Fixed diff --git a/node_modules/has-symbols/README.md b/node_modules/has-symbols/README.md index 3875d7e..33905f0 100644 --- a/node_modules/has-symbols/README.md +++ b/node_modules/has-symbols/README.md @@ -1,5 +1,7 @@ # has-symbols [![Version Badge][2]][1] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -38,3 +40,7 @@ Simply clone the repo, `npm install`, and run `npm test` [license-url]: LICENSE [downloads-image]: https://img.shields.io/npm/dm/has-symbols.svg [downloads-url]: https://npm-stat.com/charts.html?package=has-symbols +[codecov-image]: https://codecov.io/gh/inspect-js/has-symbols/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-symbols/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-symbols +[actions-url]: https://github.com/inspect-js/has-symbols/actions diff --git a/node_modules/has-symbols/package.json b/node_modules/has-symbols/package.json index 2c2f572..fe7004a 100644 --- a/node_modules/has-symbols/package.json +++ b/node_modules/has-symbols/package.json @@ -1,26 +1,11 @@ { "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" - } - ], + "version": "1.0.3", "description": "Determine if the JS environment has Symbol support. Supports spec, or shams.", - "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run --silent lint", "test": "npm run tests-only", "posttest": "aud --production", @@ -48,16 +33,36 @@ "core-js", "ES6" ], + "author": { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + }, + "contributors": [ + { + "name": "Jordan Harband", + "email": "ljharb@gmail.com", + "url": "http://ljharb.codes" + } + ], + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/has-symbols/issues" + }, + "homepage": "https://github.com/ljharb/has-symbols#readme", "devDependencies": { - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "auto-changelog": "^2.2.1", + "@ljharb/eslint-config": "^20.2.3", + "aud": "^2.0.0", + "auto-changelog": "^2.4.0", "core-js": "^2.6.12", - "eslint": "^7.20.0", + "eslint": "=8.8.0", "get-own-property-symbols": "^0.9.5", "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.2.0" + "safe-publish-latest": "^2.0.0", + "tape": "^5.5.2" }, "testling": { "files": "test/index.js", diff --git a/node_modules/has-tostringtag/.eslintrc b/node_modules/has-tostringtag/.eslintrc new file mode 100644 index 0000000..2d9a66a --- /dev/null +++ b/node_modules/has-tostringtag/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-statements-per-line": [2, { "max": 2 }], + "no-magic-numbers": 0, + "multiline-comment-style": 0, + } +} diff --git a/node_modules/has-tostringtag/.github/FUNDING.yml b/node_modules/has-tostringtag/.github/FUNDING.yml new file mode 100644 index 0000000..7a450e7 --- /dev/null +++ b/node_modules/has-tostringtag/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/has-tostringtag +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-tostringtag/CHANGELOG.md b/node_modules/has-tostringtag/CHANGELOG.md new file mode 100644 index 0000000..39fb77c --- /dev/null +++ b/node_modules/has-tostringtag/CHANGELOG.md @@ -0,0 +1,20 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v1.0.0 - 2021-08-05 + +### Commits + +- Tests [`6b6f573`](https://github.com/inspect-js/has-tostringtag/commit/6b6f5734dc2058badb300ff0783efdad95fe1a65) +- Initial commit [`2f8190e`](https://github.com/inspect-js/has-tostringtag/commit/2f8190e799fac32ba9b95a076c0255e01d7ce475) +- [meta] do not publish github action workflow files [`6e08cc4`](https://github.com/inspect-js/has-tostringtag/commit/6e08cc4e0fea7ec71ef66e70734b2af2c4a8b71b) +- readme [`94bed6c`](https://github.com/inspect-js/has-tostringtag/commit/94bed6c9560cbbfda034f8d6c260bb7b0db33c1a) +- npm init [`be67840`](https://github.com/inspect-js/has-tostringtag/commit/be67840ab92ee7adb98bcc65261975543f815fa5) +- Implementation [`c4914ec`](https://github.com/inspect-js/has-tostringtag/commit/c4914ecc51ddee692c85b471ae0a5d8123030fbf) +- [meta] use `auto-changelog` [`4aaf768`](https://github.com/inspect-js/has-tostringtag/commit/4aaf76895ae01d7b739f2b19f967ef2372506cd7) +- Only apps should have lockfiles [`bc4d99e`](https://github.com/inspect-js/has-tostringtag/commit/bc4d99e4bf494afbaa235c5f098df6e642edf724) +- [meta] add `safe-publish-latest` [`6523c05`](https://github.com/inspect-js/has-tostringtag/commit/6523c05c9b87140f3ae74c9daf91633dd9ff4e1f) diff --git a/node_modules/has-tostringtag/LICENSE b/node_modules/has-tostringtag/LICENSE new file mode 100644 index 0000000..7948bc0 --- /dev/null +++ b/node_modules/has-tostringtag/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2021 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/has-tostringtag/README.md b/node_modules/has-tostringtag/README.md new file mode 100644 index 0000000..67a5e92 --- /dev/null +++ b/node_modules/has-tostringtag/README.md @@ -0,0 +1,46 @@ +# has-tostringtag [![Version Badge][2]][1] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] + +Determine if the JS environment has `Symbol.toStringTag` support. Supports spec, or shams. + +## Example + +```js +var hasSymbolToStringTag = require('has-tostringtag'); + +hasSymbolToStringTag() === true; // if the environment has native Symbol.toStringTag support. Not polyfillable, not forgeable. + +var hasSymbolToStringTagKinda = require('has-tostringtag/shams'); +hasSymbolToStringTagKinda() === true; // if the environment has a Symbol.toStringTag sham that mostly follows the spec. +``` + +## Supported Symbol shams + - get-own-property-symbols [npm](https://www.npmjs.com/package/get-own-property-symbols) | [github](https://github.com/WebReflection/get-own-property-symbols) + - core-js [npm](https://www.npmjs.com/package/core-js) | [github](https://github.com/zloirock/core-js) + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[1]: https://npmjs.org/package/has-tostringtag +[2]: https://versionbadg.es/inspect-js/has-tostringtag.svg +[5]: https://david-dm.org/inspect-js/has-tostringtag.svg +[6]: https://david-dm.org/inspect-js/has-tostringtag +[7]: https://david-dm.org/inspect-js/has-tostringtag/dev-status.svg +[8]: https://david-dm.org/inspect-js/has-tostringtag#info=devDependencies +[11]: https://nodei.co/npm/has-tostringtag.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/has-tostringtag.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/has-tostringtag.svg +[downloads-url]: https://npm-stat.com/charts.html?package=has-tostringtag +[codecov-image]: https://codecov.io/gh/inspect-js/has-tostringtag/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/has-tostringtag/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/has-tostringtag +[actions-url]: https://github.com/inspect-js/has-tostringtag/actions diff --git a/node_modules/has-tostringtag/index.js b/node_modules/has-tostringtag/index.js new file mode 100644 index 0000000..d626b7a --- /dev/null +++ b/node_modules/has-tostringtag/index.js @@ -0,0 +1,7 @@ +'use strict'; + +var hasSymbols = require('has-symbols'); + +module.exports = function hasToStringTag() { + return hasSymbols() && typeof Symbol.toStringTag === 'symbol'; +}; diff --git a/node_modules/has-tostringtag/package.json b/node_modules/has-tostringtag/package.json new file mode 100644 index 0000000..9c74d64 --- /dev/null +++ b/node_modules/has-tostringtag/package.json @@ -0,0 +1,84 @@ +{ + "name": "has-tostringtag", + "version": "1.0.0", + "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.toStringTag` support. Supports spec, or shams.", + "license": "MIT", + "main": "index.js", + "exports": { + ".": "./index.js", + "./shams": "./shams.js", + "./package.json": "./package.json" + }, + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "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+https://github.com/inspect-js/has-tostringtag.git" + }, + "bugs": { + "url": "https://github.com/inspect-js/has-tostringtag/issues" + }, + "homepage": "https://github.com/inspect-js/has-tostringtag#readme", + "keywords": [ + "javascript", + "ecmascript", + "symbol", + "symbols", + "tostringtag", + "Symbol.toStringTag" + ], + "dependencies": { + "has-symbols": "^1.0.2" + }, + "devDependencies": { + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "core-js": "^2.6.12", + "eslint": "^7.32.0", + "get-own-property-symbols": "^0.9.5", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.3.0" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} diff --git a/node_modules/has-tostringtag/shams.js b/node_modules/has-tostringtag/shams.js new file mode 100644 index 0000000..8b7e401 --- /dev/null +++ b/node_modules/has-tostringtag/shams.js @@ -0,0 +1,7 @@ +'use strict'; + +var hasSymbols = require('has-symbols/shams'); + +module.exports = function hasToStringTagShams() { + return hasSymbols() && !!Symbol.toStringTag; +}; diff --git a/node_modules/has-tostringtag/test/index.js b/node_modules/has-tostringtag/test/index.js new file mode 100644 index 0000000..0679afd --- /dev/null +++ b/node_modules/has-tostringtag/test/index.js @@ -0,0 +1,21 @@ +'use strict'; + +var test = require('tape'); +var hasSymbolToStringTag = require('../'); +var runSymbolTests = require('./tests'); + +test('interface', function (t) { + t.equal(typeof hasSymbolToStringTag, 'function', 'is a function'); + t.equal(typeof hasSymbolToStringTag(), 'boolean', 'returns a boolean'); + t.end(); +}); + +test('Symbol.toStringTag exists', { skip: !hasSymbolToStringTag() }, function (t) { + runSymbolTests(t); + t.end(); +}); + +test('Symbol.toStringTag does not exist', { skip: hasSymbolToStringTag() }, function (t) { + t.equal(typeof Symbol === 'undefined' ? 'undefined' : typeof Symbol.toStringTag, 'undefined', 'global Symbol.toStringTag is undefined'); + t.end(); +}); diff --git a/node_modules/has-tostringtag/test/shams/core-js.js b/node_modules/has-tostringtag/test/shams/core-js.js new file mode 100644 index 0000000..692b86e --- /dev/null +++ b/node_modules/has-tostringtag/test/shams/core-js.js @@ -0,0 +1,28 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol') { + test('has native Symbol.toStringTag support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol.toStringTag, 'symbol'); + t.end(); + }); + return; +} + +var hasSymbolToStringTag = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbolToStringTag(), false, 'hasSymbolToStringTag is false before polyfilling'); + require('core-js/fn/symbol'); + require('core-js/fn/symbol/to-string-tag'); + + require('../tests')(t); + + var hasToStringTagAfter = hasSymbolToStringTag(); + t.equal(hasToStringTagAfter, true, 'hasSymbolToStringTag is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js b/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js new file mode 100644 index 0000000..489fe83 --- /dev/null +++ b/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js @@ -0,0 +1,28 @@ +'use strict'; + +var test = require('tape'); + +if (typeof Symbol === 'function' && typeof Symbol() === 'symbol') { + test('has native Symbol support', function (t) { + t.equal(typeof Symbol, 'function'); + t.equal(typeof Symbol(), 'symbol'); + t.end(); + }); + return; +} + +var hasSymbolToStringTag = require('../../shams'); + +test('polyfilled Symbols', function (t) { + /* eslint-disable global-require */ + t.equal(hasSymbolToStringTag(), false, 'hasSymbolToStringTag is false before polyfilling'); + + require('get-own-property-symbols'); + + require('../tests')(t); + + var hasToStringTagAfter = hasSymbolToStringTag(); + t.equal(hasToStringTagAfter, true, 'hasSymbolToStringTag is true after polyfilling'); + /* eslint-enable global-require */ + t.end(); +}); diff --git a/node_modules/has-tostringtag/test/tests.js b/node_modules/has-tostringtag/test/tests.js new file mode 100644 index 0000000..0dae885 --- /dev/null +++ b/node_modules/has-tostringtag/test/tests.js @@ -0,0 +1,14 @@ +'use strict'; + +// eslint-disable-next-line consistent-return +module.exports = function runSymbolTests(t) { + t.equal(typeof Symbol, 'function', 'global Symbol is a function'); + t.ok(Symbol.toStringTag, 'Symbol.toStringTag exists'); + + if (typeof Symbol !== 'function' || !Symbol.toStringTag) { return false; } + + var obj = {}; + obj[Symbol.toStringTag] = 'test'; + + t.equal(Object.prototype.toString.call(obj), '[object test]'); +}; diff --git a/node_modules/hash-base/node_modules/readable-stream/README.md b/node_modules/hash-base/node_modules/readable-stream/README.md index 6f035ab..19117c1 100644 --- a/node_modules/hash-base/node_modules/readable-stream/README.md +++ b/node_modules/hash-base/node_modules/readable-stream/README.md @@ -15,7 +15,7 @@ npm install --save readable-stream This package is a mirror of the streams implementations in Node.js. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.19.0/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.18.1/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js index 6752519..19abfa6 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js @@ -18,60 +18,48 @@ // 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. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. + 'use strict'; -/**/ +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; - - for (var key in obj) { - keys.push(key); - } - + for (var key in obj) keys.push(key); return keys; }; /**/ - module.exports = Duplex; - var Readable = require('./_stream_readable'); - var Writable = require('./_stream_writable'); - require('inherits')(Duplex, Readable); - { // Allow the keys array to be GC'ed. var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } - function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); this.allowHalfOpen = true; - if (options) { if (options.readable === false) this.readable = false; if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { this.allowHalfOpen = false; this.once('end', onend); } } } - Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -98,20 +86,20 @@ Object.defineProperty(Duplex.prototype, 'writableLength', { get: function get() { return this._writableState.length; } -}); // the no-half-open enforcer +}); +// the no-half-open enforcer function onend() { // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. + if (this._writableState.ended) return; + // no more data can be written. + // But allow more writes to happen in this tick. process.nextTick(onEndNT, this); } - function onEndNT(self) { self.end(); } - Object.defineProperty(Duplex.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -121,7 +109,6 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { if (this._readableState === undefined || this._writableState === undefined) { return false; } - return this._readableState.destroyed && this._writableState.destroyed; }, set: function set(value) { @@ -129,10 +116,10 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js index 32e7414..24a6bdd 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js @@ -18,22 +18,20 @@ // 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. + // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. + 'use strict'; module.exports = PassThrough; - var Transform = require('./_stream_transform'); - require('inherits')(PassThrough, Transform); - function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js index 192d451..df1f608 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js @@ -18,49 +18,40 @@ // 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. + 'use strict'; module.exports = Readable; -/**/ +/**/ var Duplex; /**/ Readable.ReadableState = ReadableState; -/**/ +/**/ var EE = require('events').EventEmitter; - var EElistenerCount = function EElistenerCount(emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ - - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } -/**/ - +/**/ var debugUtil = require('util'); - var debug; - if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { @@ -68,60 +59,57 @@ if (debugUtil && debugUtil.debuglog) { } /**/ - var BufferList = require('./internal/streams/buffer_list'); - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; +// Lazy loaded to improve the startup performance. var StringDecoder; var createReadableStreamAsyncIterator; var from; - require('inherits')(Readable, Stream); - var errorOrDestroy = destroyImpl.errorOrDestroy; var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } - function ReadableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() - this.buffer = new BufferList(); this.length = 0; this.pipes = null; @@ -129,61 +117,66 @@ function ReadableState(options, stream, isDuplex) { this.flowing = null; this.ended = false; this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. + this.sync = true; - this.sync = true; // whenever we return null, then we set a flag to say + // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. - this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. + this.paused = true; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.autoDestroy = !!options.autoDestroy; // has it been destroyed + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; - if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } - function Readable(options) { Duplex = Duplex || require('./_stream_duplex'); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 + if (!(this instanceof Readable)) return new Readable(options); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy + this._readableState = new ReadableState(options, this, isDuplex); + // legacy this.readable = true; - if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } - Stream.call(this); } - Object.defineProperty(Readable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -193,7 +186,6 @@ Object.defineProperty(Readable.prototype, 'destroyed', { if (this._readableState === undefined) { return false; } - return this._readableState.destroyed; }, set: function set(value) { @@ -201,69 +193,60 @@ Object.defineProperty(Readable.prototype, 'destroyed', { // has not been initialized yet if (!this._readableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; - Readable.prototype._destroy = function (err, cb) { cb(err); -}; // Manually shove something into the read() buffer. +}; + +// Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. - - Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; - if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } - skipChunkCheck = true; } } else { skipChunkCheck = true; } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - +}; +// Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { debug('readableAddChunk', chunk); var state = stream._readableState; - if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { errorOrDestroy(stream, er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } - if (addToFront) { if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); } else if (state.ended) { @@ -272,7 +255,6 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { return false; } else { state.reading = false; - if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); @@ -284,14 +266,13 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { state.reading = false; maybeReadMore(stream, state); } - } // We can push more data if we are below the highWaterMark. + } + + // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. - - return !state.ended && (state.length < state.highWaterMark || state.length === 0); } - function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { state.awaitDrain = 0; @@ -302,50 +283,42 @@ function addChunk(stream, state, chunk, addToFront) { if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } - maybeReadMore(stream, state); } - function chunkInvalid(state, chunk) { var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } - return er; } - Readable.prototype.isPaused = function () { return this._readableState.flowing === false; -}; // backwards compatibility. - +}; +// backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + // Iterate over current buffer to convert already stored Buffers: var p = this._readableState.buffer.head; var content = ''; - while (p !== null) { content += decoder.write(p.data); p = p.next; } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); this._readableState.length = content.length; return this; -}; // Don't raise the hwm > 1GB - +}; +// Don't raise the hwm > 1GB var MAX_HWM = 0x40000000; - function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. @@ -361,55 +334,54 @@ function computeNewHighWaterMark(n) { n |= n >>> 16; n++; } - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. - +} +// This function is designed to be inlinable, so please take care when making +// changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; - if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. - - + } + // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough - + if (n <= state.length) return n; + // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } - return state.length; -} // you can override either this method, or the async _read(n) below. - +} +// you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } + n = howMuchToRead(n, state); - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - + // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; - } // All the actual chunk generation logic needs to be + } + + // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change @@ -430,40 +402,37 @@ Readable.prototype.read = function (n) { // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. - + // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + debug('need readable', doRead); + // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - + } + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - - if (state.length === 0) state.needReadable = true; // call internal read method - + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method this._read(state.highWaterMark); - - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); } - var ret; if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { state.needReadable = state.length <= state.highWaterMark; n = 0; @@ -471,34 +440,28 @@ Readable.prototype.read = function (n) { state.length -= n; state.awaitDrain = 0; } - if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + if (!state.ended) state.needReadable = true; + // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } - if (ret !== null) this.emit('data', ret); return ret; }; - function onEofChunk(stream, state) { debug('onEofChunk'); if (state.ended) return; - if (state.decoder) { var chunk = state.decoder.end(); - if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } - state.ended = true; - if (state.sync) { // if we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() @@ -507,61 +470,56 @@ function onEofChunk(stream, state) { } else { // emit 'readable' now to make sure it gets picked up. state.needReadable = false; - if (!state.emittedReadable) { state.emittedReadable = true; emitReadable_(stream); } } -} // Don't emit readable right away in sync mode, because this can trigger +} + +// Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. - - function emitReadable(stream) { var state = stream._readableState; debug('emitReadable', state.needReadable, state.emittedReadable); state.needReadable = false; - if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; process.nextTick(emitReadable_, stream); } } - function emitReadable_(stream) { var state = stream._readableState; debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { stream.emit('readable'); state.emittedReadable = false; - } // The stream needs another readable event if + } + + // The stream needs another readable event if // 1. It is not flowing, as the flow mechanism will take // care of it. // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. - - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; flow(stream); -} // at this point, the user has presumably seen the 'readable' event, +} + +// at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. - - function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; process.nextTick(maybeReadMore_, stream, state); } } - function maybeReadMore_(stream, state) { // Attempt to read more data if we should. // @@ -590,49 +548,42 @@ function maybeReadMore_(stream, state) { var len = state.length; debug('maybeReadMore read 0'); stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. + if (len === state.length) + // didn't get any data, stop spinning. break; } - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. +} + +// abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. - - Readable.prototype._read = function (n) { errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; - Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; - switch (state.pipesCount) { case 0: state.pipes = dest; break; - case 1: state.pipes = [state.pipes, dest]; break; - default: state.pipes.push(dest); break; } - state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { debug('onunpipe'); - if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -640,23 +591,21 @@ Readable.prototype.pipe = function (dest, pipeOpts) { } } } - function onend() { debug('onend'); dest.end(); - } // when the dest drains, it reduces the awaitDrain counter + } + + // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. - - var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken - + debug('cleanup'); + // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); @@ -665,22 +614,20 @@ Readable.prototype.pipe = function (dest, pipeOpts) { src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this + cleanedUp = true; + + // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } - src.on('data', ondata); - function ondata(chunk) { debug('ondata'); var ret = dest.write(chunk); debug('dest.write', ret); - if (ret === false) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write @@ -690,87 +637,84 @@ Readable.prototype.pipe = function (dest, pipeOpts) { debug('false write response, pause', state.awaitDrain); state.awaitDrain++; } - src.pause(); } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - + } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. - + } - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } - dest.once('close', onclose); - function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } - dest.once('finish', onfinish); - function unpipe() { debug('unpipe'); src.unpipe(dest); - } // tell the dest that it's being piped to - + } - dest.emit('pipe', src); // start the flow if it hasn't been started already. + // tell the dest that it's being piped to + dest.emit('pipe', src); + // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } - return dest; }; - function pipeOnDrain(src) { return function pipeOnDrainFunctionResult() { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } - Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + }; - if (state.pipesCount === 0) return this; // just one destination. most common case. + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. + if (!dest) dest = state.pipes; + // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; - } // slow case. multiple pipe destinations. + } + // slow case. multiple pipe destinations. if (!dest) { // remove all. @@ -779,17 +723,13 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } - + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); return this; - } // try to find the right one. - + } + // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); @@ -797,19 +737,19 @@ Readable.prototype.unpipe = function (dest) { if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something - +}; +// set up data events if they are asked for +// Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); var state = this._readableState; - if (ev === 'data') { // update readableListening so that resume() may be a no-op // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + state.readableListening = this.listenerCount('readable') > 0; + // Try start flowing on next tick if stream isn't explicitly paused if (state.flowing !== false) this.resume(); } else if (ev === 'readable') { if (!state.endEmitted && !state.readableListening) { @@ -817,7 +757,6 @@ Readable.prototype.on = function (ev, fn) { state.flowing = false; state.emittedReadable = false; debug('on readable', state.length, state.reading); - if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -825,15 +764,11 @@ Readable.prototype.on = function (ev, fn) { } } } - return res; }; - Readable.prototype.addListener = Readable.prototype.on; - Readable.prototype.removeListener = function (ev, fn) { var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -843,13 +778,10 @@ Readable.prototype.removeListener = function (ev, fn) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - Readable.prototype.removeAllListeners = function (ev) { var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -859,121 +791,103 @@ Readable.prototype.removeAllListeners = function (ev) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - function updateReadableListening(self) { var state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { // flowing needs to be set to true now, otherwise // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume + state.flowing = true; + + // crude way to check if we should resume } else if (self.listenerCount('data') > 0) { self.resume(); } } - function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. - +} +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening + debug('resume'); + // we flow only if there is no one listening // for readable, but we still have to call // resume() - state.flowing = !state.readableListening; resume(this, state); } - state.paused = false; return this; }; - function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; process.nextTick(resume_, stream, state); } } - function resume_(stream, state) { debug('resume', state.reading); - if (!state.reading) { stream.read(0); } - state.resumeScheduled = false; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } - Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } - this._readableState.paused = true; return this; }; - function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. +// wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. - - Readable.prototype.wrap = function (stream) { var _this = this; - var state = this._readableState; var paused = false; stream.on('end', function () { debug('wrapped end'); - if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) _this.push(chunk); } - _this.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + if (state.decoder) chunk = state.decoder.write(chunk); + // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { paused = true; stream.pause(); } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + }); + // proxy all the other methods. + // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function methodWrap(method) { @@ -982,37 +896,32 @@ Readable.prototype.wrap = function (stream) { }; }(i); } - } // proxy certain important events. - + } + // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. - + } + // when we try to consume some more bytes, simply unpause the + // underlying stream. this._read = function (n) { debug('wrapped _read', n); - if (paused) { paused = false; stream.resume(); } }; - return this; }; - if (typeof Symbol === 'function') { Readable.prototype[Symbol.asyncIterator] = function () { if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('./internal/streams/async_iterator'); } - return createReadableStreamAsyncIterator(this); }; } - Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -1044,8 +953,9 @@ Object.defineProperty(Readable.prototype, 'readableFlowing', { this._readableState.flowing = state; } } -}); // exposed for testing purposes only. +}); +// exposed for testing purposes only. Readable._fromList = fromList; Object.defineProperty(Readable.prototype, 'readableLength', { // making it explicit this property is not enumerable @@ -1055,11 +965,12 @@ Object.defineProperty(Readable.prototype, 'readableLength', { get: function get() { return this._readableState.length; } -}); // Pluck off n bytes from an array of buffers. +}); + +// Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. - function fromList(n, state) { // nothing buffered if (state.length === 0) return null; @@ -1074,51 +985,43 @@ function fromList(n, state) { } return ret; } - function endReadable(stream) { var state = stream._readableState; debug('endReadable', state.endEmitted); - if (!state.endEmitted) { state.ended = true; process.nextTick(endReadableNT, state, stream); } } - function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. + debug('endReadableNT', state.endEmitted, state.length); + // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the writable side is ready for autoDestroy as well var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { stream.destroy(); } } } } - if (typeof Symbol === 'function') { Readable.from = function (iterable, opts) { if (from === undefined) { from = require('./internal/streams/from'); } - return from(Readable, iterable, opts); }; } - function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } - return -1; } \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js index 41a738c..1ccb715 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js @@ -18,6 +18,7 @@ // 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. + // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where @@ -59,42 +60,36 @@ // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. + 'use strict'; module.exports = Transform; - var _require$codes = require('../errors').codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; - + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; var Duplex = require('./_stream_duplex'); - require('inherits')(Transform, Duplex); - function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; - if (cb === null) { return this.emit('error', new ERR_MULTIPLE_CALLBACK()); } - ts.writechunk = null; ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` + if (data != null) + // single equals check for both `null` and `undefined` this.push(data); cb(er); var rs = this._readableState; rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { this._read(rs.highWaterMark); } } - function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); @@ -105,26 +100,25 @@ function Transform(options) { writecb: null, writechunk: null, writeencoding: null - }; // start out asking for a readable event once data is transformed. + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. - this._readableState.sync = false; - if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. - + } + // When the writable side finishes, then flush out anything remaining. this.on('prefinish', prefinish); } - function prefinish() { var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { this._flush(function (er, data) { done(_this, er, data); @@ -133,11 +127,12 @@ function prefinish() { done(this, null, null); } } - Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! +}; + +// This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // @@ -147,33 +142,27 @@ Transform.prototype.push = function (chunk, encoding) { // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. - - Transform.prototype._transform = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); }; - Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; - if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } -}; // Doesn't matter what the args are here. +}; + +// Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. - - Transform.prototype._read = function (n) { var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in @@ -181,20 +170,20 @@ Transform.prototype._read = function (n) { ts.needTransform = true; } }; - Transform.prototype._destroy = function (err, cb) { Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); }); }; - function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); return stream.push(null); diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js index a2634d7..292415e 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js @@ -18,29 +18,29 @@ // 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. + // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. + 'use strict'; module.exports = Writable; -/* */ +/* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream - +} +// It seems a linked list but it is not +// there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; - this.next = null; this.entry = null; - this.finish = function () { onCorkedFinish(_this, state); }; @@ -48,155 +48,159 @@ function CorkedRequest(state) { /* */ /**/ - - var Duplex; /**/ Writable.WritableState = WritableState; -/**/ +/**/ var internalUtil = { deprecate: require('util-deprecate') }; /**/ /**/ - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; var errorOrDestroy = destroyImpl.errorOrDestroy; - require('inherits')(Writable, Stream); - function nop() {} - function WritableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream, // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // object stream flag to indicate whether or not this stream // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called + // if _final has been called + this.finalCalled = false; - this.finalCalled = false; // drain event flag. + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - this.needDrain = false; // at the start of calling end() + // has it been destroyed + this.destroyed = false; - this.ending = false; // when end() has been called, and returned - - this.ended = false; // when 'finish' is emitted - - this.finished = false; // has it been destroyed - - this.destroyed = false; // should we decode strings into buffers before passing to _write? + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. + this.length = 0; - this.length = 0; // a flag to see when we're in the middle of a write. + // a flag to see when we're in the middle of a write. + this.writing = false; - this.writing = false; // when true all writes will be buffered until .uncork() call + // when true all writes will be buffered until .uncork() call + this.corked = 0; - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. + this.sync = true; - this.sync = true; // a flag to know if we're processing previously buffered items, which + // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) - + // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) - + }; - this.writecb = null; // the amount that is being written when _write is called. + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams + this.prefinished = false; - this.prefinished = false; // True if the error was already emitted and should not be thrown again + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - this.autoDestroy = !!options.autoDestroy; // count buffered requests + // count buffered requests + this.bufferedRequestCount = 0; - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); } - WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; - while (current) { out.push(current); current = current.next; } - return out; }; - (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { @@ -205,12 +209,11 @@ WritableState.prototype.getBuffer = function getBuffer() { }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. - +})(); +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { @@ -225,81 +228,73 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot return object instanceof this; }; } - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. + this._writableState = new WritableState(options, this, isDuplex); + // legacy. this.writable = true; - if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. - +} +// Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; - function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb - + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb errorOrDestroy(stream, er); process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular +} + +// Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. - - function validChunk(stream, state, chunk, cb) { var er; - if (chunk === null) { er = new ERR_STREAM_NULL_VALUES(); } else if (typeof chunk !== 'string' && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - if (er) { errorOrDestroy(stream, er); process.nextTick(cb, er); return false; } - return true; } - Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } - if (typeof encoding === 'function') { cb = encoding; encoding = null; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { @@ -308,20 +303,16 @@ Writable.prototype.write = function (chunk, encoding, cb) { } return ret; }; - Writable.prototype.cork = function () { this._writableState.corked++; }; - Writable.prototype.uncork = function () { var state = this._writableState; - if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); @@ -329,7 +320,6 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { this._writableState.defaultEncoding = encoding; return this; }; - Object.defineProperty(Writable.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -339,15 +329,12 @@ Object.defineProperty(Writable.prototype, 'writableBuffer', { return this._writableState && this._writableState.getBuffer(); } }); - function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } - return chunk; } - Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -356,27 +343,25 @@ Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { get: function get() { return this._writableState.highWaterMark; } -}); // if we're already writing something, then just put this +}); + +// if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } - var len = state.objectMode ? 1 : chunk.length; state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. - + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; - if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { @@ -386,21 +371,17 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { callback: cb, next: null }; - if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } - state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } - return ret; } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; @@ -409,16 +390,14 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } - function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen + process.nextTick(cb, er); + // this can emit finish, and it will always happen // after error - process.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; errorOrDestroy(stream, er); @@ -427,20 +406,18 @@ function onwriteError(stream, state, sync, er, cb) { // it is async cb(er); stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must + errorOrDestroy(stream, er); + // this can emit finish, but finish must // always follow error - finishMaybe(stream, state); } } - function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } - function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; @@ -450,11 +427,9 @@ function onwrite(stream, er) { if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } - if (sync) { process.nextTick(afterWrite, stream, state, finished, cb); } else { @@ -462,29 +437,27 @@ function onwrite(stream, er) { } } } - function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't +} + +// Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. - - function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } -} // if there's something in the buffer waiting, then process it - +} +// if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; @@ -493,28 +466,25 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; var allBuffers = true; - while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; - if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } - state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one @@ -525,32 +495,26 @@ function clearBuffer(stream, state) { var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. - if (state.writing) { break; } } - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; state.bufferProcessing = false; } - Writable.prototype._write = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); }; - Writable.prototype._writev = null; - Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; - if (typeof chunk === 'function') { cb = chunk; chunk = null; @@ -559,19 +523,18 @@ Writable.prototype.end = function (chunk, encoding, cb) { cb = encoding; encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks - + // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); - } // ignore unnecessary end() calls. - + } + // ignore unnecessary end() calls. if (!state.ending) endWritable(this, state, cb); return this; }; - Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -581,25 +544,20 @@ Object.defineProperty(Writable.prototype, 'writableLength', { return this._writableState.length; } }); - function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; - if (err) { errorOrDestroy(stream, err); } - state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } - function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function' && !state.destroyed) { @@ -612,59 +570,47 @@ function prefinish(stream, state) { } } } - function finishMaybe(stream, state) { var need = needFinish(state); - if (need) { prefinish(stream, state); - if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the readable side is ready for autoDestroy as well var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { stream.destroy(); } } } } - return need; } - function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); - if (cb) { if (state.finished) process.nextTick(cb);else stream.once('finish', cb); } - state.ended = true; stream.writable = false; } - function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; - while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; - } // reuse the free corkReq. - + } + // reuse the free corkReq. state.corkedRequestsFree.next = corkReq; } - Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -674,7 +620,6 @@ Object.defineProperty(Writable.prototype, 'destroyed', { if (this._writableState === undefined) { return false; } - return this._writableState.destroyed; }, set: function set(value) { @@ -682,16 +627,15 @@ Object.defineProperty(Writable.prototype, 'destroyed', { // has not been initialized yet if (!this._writableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; - Writable.prototype._destroy = function (err, cb) { cb(err); }; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js index 9fb615a..742c5a4 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js @@ -1,11 +1,10 @@ 'use strict'; var _Object$setPrototypeO; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var finished = require('./end-of-stream'); - var kLastResolve = Symbol('lastResolve'); var kLastReject = Symbol('lastReject'); var kError = Symbol('error'); @@ -13,22 +12,19 @@ var kEnded = Symbol('ended'); var kLastPromise = Symbol('lastPromise'); var kHandlePromise = Symbol('handlePromise'); var kStream = Symbol('stream'); - function createIterResult(value, done) { return { value: value, done: done }; } - function readAndResolve(iter) { var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null + var data = iter[kStream].read(); + // we defer if data is null // we can be expecting either 'end' or // 'error' - if (data !== null) { iter[kLastPromise] = null; iter[kLastResolve] = null; @@ -37,13 +33,11 @@ function readAndResolve(iter) { } } } - function onReadable(iter) { // we wait for the next tick, because it might // emit an error with process.nextTick process.nextTick(readAndResolve, iter); } - function wrapForNext(lastPromise, iter) { return function (resolve, reject) { lastPromise.then(function () { @@ -51,33 +45,26 @@ function wrapForNext(lastPromise, iter) { resolve(createIterResult(undefined, true)); return; } - iter[kHandlePromise](resolve, reject); }, reject); }; } - var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { get stream() { return this[kStream]; }, - next: function next() { var _this = this; - // if we have detected an error in the meanwhile // reject straight away var error = this[kError]; - if (error !== null) { return Promise.reject(error); } - if (this[kEnded]) { return Promise.resolve(createIterResult(undefined, true)); } - if (this[kStream].destroyed) { // We need to defer via nextTick because if .destroy(err) is // called, the error will be emitted via nextTick, and @@ -92,29 +79,25 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro } }); }); - } // if we have multiple next() calls + } + + // if we have multiple next() calls // we will wait for the previous Promise to finish // this logic is optimized to support for await loops, // where next() is only called once at a time - - var lastPromise = this[kLastPromise]; var promise; - if (lastPromise) { promise = new Promise(wrapForNext(lastPromise, this)); } else { // fast path needed to support multiple this.push() // without triggering the next() queue var data = this[kStream].read(); - if (data !== null) { return Promise.resolve(createIterResult(data, false)); } - promise = new Promise(this[kHandlePromise]); } - this[kLastPromise] = promise; return promise; } @@ -122,7 +105,6 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro return this; }), _defineProperty(_Object$setPrototypeO, "return", function _return() { var _this2 = this; - // destroy(err, cb) is a private API // we can guarantee we have that here, because we control the // Readable class this is attached to @@ -132,15 +114,12 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro reject(err); return; } - resolve(createIterResult(undefined, true)); }); }); }), _Object$setPrototypeO), AsyncIteratorPrototype); - var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { value: stream, writable: true @@ -159,7 +138,6 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat }), _defineProperty(_Object$create, kHandlePromise, { value: function value(resolve, reject) { var data = iterator[kStream].read(); - if (data) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; @@ -175,33 +153,28 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat iterator[kLastPromise] = null; finished(stream, function (err) { if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise // returned by next() and store the error - if (reject !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; reject(err); } - iterator[kError] = err; return; } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(undefined, true)); } - iterator[kEnded] = true; }); stream.on('readable', onReadable.bind(null, iterator)); return iterator; }; - module.exports = createReadableStreamAsyncIterator; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js index cdea425..69bda49 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js @@ -1,40 +1,28 @@ 'use strict'; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var _require = require('buffer'), - Buffer = _require.Buffer; - + Buffer = _require.Buffer; var _require2 = require('util'), - inspect = _require2.inspect; - + inspect = _require2.inspect; var custom = inspect && inspect.custom || 'inspect'; - function copyBuffer(src, target, offset) { Buffer.prototype.copy.call(src, target, offset); } - -module.exports = -/*#__PURE__*/ -function () { +module.exports = /*#__PURE__*/function () { function BufferList() { _classCallCheck(this, BufferList); - this.head = null; this.tail = null; this.length = 0; } - _createClass(BufferList, [{ key: "push", value: function push(v) { @@ -78,11 +66,7 @@ function () { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; - - while (p = p.next) { - ret += s + p.data; - } - + while (p = p.next) ret += s + p.data; return ret; } }, { @@ -92,21 +76,19 @@ function () { var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; - while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. + } + // Consumes a specified amount of bytes or characters from the buffered data. }, { key: "consume", value: function consume(n, hasStrings) { var ret; - if (n < this.head.data.length) { // `slice` is the same for buffers and strings. ret = this.head.data.slice(0, n); @@ -118,15 +100,15 @@ function () { // Result spans more than one buffer. ret = hasStrings ? this._getString(n) : this._getBuffer(n); } - return ret; } }, { key: "first", value: function first() { return this.head.data; - } // Consumes a specified amount of characters from the buffered data. + } + // Consumes a specified amount of characters from the buffered data. }, { key: "_getString", value: function _getString(n) { @@ -134,13 +116,11 @@ function () { var c = 1; var ret = p.data; n -= ret.length; - while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; - if (n === 0) { if (nb === str.length) { ++c; @@ -149,17 +129,15 @@ function () { this.head = p; p.data = str.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Consumes a specified amount of bytes from the buffered data. + } + // Consumes a specified amount of bytes from the buffered data. }, { key: "_getBuffer", value: function _getBuffer(n) { @@ -168,13 +146,11 @@ function () { var c = 1; p.data.copy(ret); n -= p.data.length; - while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; - if (n === 0) { if (nb === buf.length) { ++c; @@ -183,21 +159,19 @@ function () { this.head = p; p.data = buf.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Make sure the linked list only shows the minimal necessary information. + } + // Make sure the linked list only shows the minimal necessary information. }, { key: custom, value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { // Only inspect one level. depth: 0, // It should not recurse. @@ -205,6 +179,5 @@ function () { })); } }]); - return BufferList; }(); \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js index 3268a16..31a17c4 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -1,11 +1,10 @@ -'use strict'; // undocumented cb() API, needed for core, not for public API +'use strict'; +// undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); @@ -17,21 +16,20 @@ function destroy(err, cb) { process.nextTick(emitErrorNT, this, err); } } - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks + } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well - + } + // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } - this._destroy(err || null, function (err) { if (!cb && err) { if (!_this._writableState) { @@ -49,21 +47,17 @@ function destroy(err, cb) { process.nextTick(emitCloseNT, _this); } }); - return this; } - function emitErrorAndCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } - function emitCloseNT(self) { if (self._writableState && !self._writableState.emitClose) return; if (self._readableState && !self._readableState.emitClose) return; self.emit('close'); } - function undestroy() { if (this._readableState) { this._readableState.destroyed = false; @@ -71,7 +65,6 @@ function undestroy() { this._readableState.ended = false; this._readableState.endEmitted = false; } - if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; @@ -82,22 +75,20 @@ function undestroy() { this._writableState.errorEmitted = false; } } - function emitErrorNT(self, err) { self.emit('error', err); } - function errorOrDestroy(stream, err) { // We have tests that rely on errors being emitted // in the same tick, so changing this is semver major. // For now when you opt-in to autoDestroy we allow // the error to be emitted nextTick. In a future // semver major update we should change the default to this. + var rState = stream._readableState; var wState = stream._writableState; if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); } - module.exports = { destroy: destroy, undestroy: undestroy, diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js index 831f286..59c671b 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js @@ -1,78 +1,62 @@ // Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE; - function once(callback) { var called = false; return function () { if (called) return; called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - callback.apply(this, args); }; } - function noop() {} - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function eos(stream, opts, callback) { if (typeof opts === 'function') return eos(stream, null, opts); if (!opts) opts = {}; callback = once(callback || noop); var readable = opts.readable || opts.readable !== false && stream.readable; var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { if (!stream.writable) onfinish(); }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { writable = false; writableEnded = true; if (!readable) callback.call(stream); }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { readable = false; readableEnded = true; if (!writable) callback.call(stream); }; - var onerror = function onerror(err) { callback.call(stream, err); }; - var onclose = function onclose() { var err; - if (readable && !readableEnded) { if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } - if (writable && !writableEnded) { if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } }; - var onrequest = function onrequest() { stream.req.on('finish', onfinish); }; - if (isRequest(stream)) { stream.on('complete', onfinish); stream.on('abort', onclose); @@ -82,7 +66,6 @@ function eos(stream, opts, callback) { stream.on('end', onlegacyfinish); stream.on('close', onlegacyfinish); } - stream.on('end', onend); stream.on('finish', onfinish); if (opts.error !== false) stream.on('error', onerror); @@ -100,5 +83,4 @@ function eos(stream, opts, callback) { stream.removeListener('close', onclose); }; } - module.exports = eos; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from.js index 6c41284..0a34ee9 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from.js @@ -1,52 +1,42 @@ 'use strict'; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE; - function from(Readable, iterable, opts) { var iterator; - if (iterable && typeof iterable.next === 'function') { iterator = iterable; } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ objectMode: true - }, opts)); // Reading boolean to protect against _read + }, opts)); + // Reading boolean to protect against _read // being called before last iteration completion. - var reading = false; - readable._read = function () { if (!reading) { reading = true; next(); } }; - function next() { return _next2.apply(this, arguments); } - function _next2() { _next2 = _asyncToGenerator(function* () { try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; - + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; if (done) { readable.push(null); - } else if (readable.push((yield value))) { + } else if (readable.push(yield value)) { next(); } else { reading = false; @@ -57,8 +47,6 @@ function from(Readable, iterable, opts) { }); return _next2.apply(this, arguments); } - return readable; } - -module.exports = from; \ No newline at end of file +module.exports = from; diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js index 6589909..e6f3924 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js @@ -1,9 +1,9 @@ // Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var eos; - function once(callback) { var called = false; return function () { @@ -12,20 +12,16 @@ function once(callback) { callback.apply(void 0, arguments); }; } - var _require$codes = require('../../../errors').codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; - + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { // Rethrow the error if it exists to avoid swallowing it if (err) throw err; } - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function destroyer(stream, reading, writing, callback) { callback = once(callback); var closed = false; @@ -45,40 +41,34 @@ function destroyer(stream, reading, writing, callback) { return function (err) { if (closed) return; if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want + destroyed = true; + // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); if (typeof stream.destroy === 'function') return stream.destroy(); callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } - function call(fn) { fn(); } - function pipe(from, to) { return from.pipe(to); } - function popCallback(streams) { if (!streams.length) return noop; if (typeof streams[streams.length - 1] !== 'function') return noop; return streams.pop(); } - function pipeline() { for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { streams[_key] = arguments[_key]; } - var callback = popCallback(streams); if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { throw new ERR_MISSING_ARGS('streams'); } - var error; var destroys = streams.map(function (stream, i) { var reading = i < streams.length - 1; @@ -93,5 +83,4 @@ function pipeline() { }); return streams.reduce(pipe); } - module.exports = pipeline; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js index 19887eb..3fbf892 100644 --- a/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js +++ b/node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js @@ -1,27 +1,22 @@ 'use strict'; var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE; - function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } - function getHighWaterMark(state, options, duplexKey, isDuplex) { var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { var name = isDuplex ? duplexKey : 'highWaterMark'; throw new ERR_INVALID_OPT_VALUE(name, hwm); } - return Math.floor(hwm); - } // Default value - + } + // Default value return state.objectMode ? 16 : 16 * 1024; } - module.exports = { getHighWaterMark: getHighWaterMark }; \ No newline at end of file diff --git a/node_modules/hash-base/node_modules/readable-stream/package.json b/node_modules/hash-base/node_modules/readable-stream/package.json index 0b0c4bd..ade59e7 100644 --- a/node_modules/hash-base/node_modules/readable-stream/package.json +++ b/node_modules/hash-base/node_modules/readable-stream/package.json @@ -1,6 +1,6 @@ { "name": "readable-stream", - "version": "3.6.0", + "version": "3.6.2", "description": "Streams3, a user-land copy of the stream library from Node.js", "main": "readable.js", "engines": { diff --git a/node_modules/is-arguments/.github/workflows/node-4+.yml b/node_modules/is-arguments/.github/workflows/node-4+.yml deleted file mode 100644 index ba174e1..0000000 --- a/node_modules/is-arguments/.github/workflows/node-4+.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: 'Tests: node.js' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - latest: ${{ steps.set-matrix.outputs.requireds }} - minors: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: '>=4' - - latest: - needs: [matrix] - name: 'latest minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.latest) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - minors: - needs: [matrix, latest] - name: 'non-latest minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.minors) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - - node: - name: 'node 4+' - needs: [latest, minors] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-arguments/.github/workflows/node-iojs.yml b/node_modules/is-arguments/.github/workflows/node-iojs.yml deleted file mode 100644 index f707c3c..0000000 --- a/node_modules/is-arguments/.github/workflows/node-iojs.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: 'Tests: node.js (io.js)' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - latest: ${{ steps.set-matrix.outputs.requireds }} - minors: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: 'iojs' - - latest: - needs: [matrix] - name: 'latest minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.latest) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - skip-ls-check: true - - minors: - needs: [matrix, latest] - name: 'non-latest minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.minors) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - skip-ls-check: true - - node: - name: 'io.js' - needs: [latest, minors] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-arguments/.github/workflows/node-pretest.yml b/node_modules/is-arguments/.github/workflows/node-pretest.yml deleted file mode 100644 index 3921e0a..0000000 --- a/node_modules/is-arguments/.github/workflows/node-pretest.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 'Tests: pretest/posttest' - -on: [pull_request, push] - -jobs: - pretest: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run pretest' - with: - node-version: 'lts/*' - command: 'pretest' - - posttest: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run posttest' - with: - node-version: 'lts/*' - command: 'posttest' diff --git a/node_modules/is-arguments/.github/workflows/node-zero.yml b/node_modules/is-arguments/.github/workflows/node-zero.yml deleted file mode 100644 index 2435bf2..0000000 --- a/node_modules/is-arguments/.github/workflows/node-zero.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: 'Tests: node.js (0.x)' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - stable: ${{ steps.set-matrix.outputs.requireds }} - unstable: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: '0.x' - - stable: - needs: [matrix] - name: 'stable minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.stable) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} - skip-ls-check: true - - unstable: - needs: [matrix, stable] - name: 'unstable minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.unstable) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} - skip-ls-check: true - - node: - name: 'node 0.x' - needs: [stable, unstable] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-arguments/.github/workflows/rebase.yml b/node_modules/is-arguments/.github/workflows/rebase.yml deleted file mode 100644 index 027aed0..0000000 --- a/node_modules/is-arguments/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request_target] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-arguments/.github/workflows/require-allow-edits.yml b/node_modules/is-arguments/.github/workflows/require-allow-edits.yml deleted file mode 100644 index 549d7b4..0000000 --- a/node_modules/is-arguments/.github/workflows/require-allow-edits.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Require “Allow Edits” - -on: [pull_request_target] - -jobs: - _: - name: "Require “Allow Edits”" - - runs-on: ubuntu-latest - - steps: - - uses: ljharb/require-allow-edits@main diff --git a/node_modules/is-arguments/.nycrc b/node_modules/is-arguments/.nycrc index 1826526..bdd626c 100644 --- a/node_modules/is-arguments/.nycrc +++ b/node_modules/is-arguments/.nycrc @@ -2,10 +2,6 @@ "all": true, "check-coverage": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, "exclude": [ "coverage", "test" diff --git a/node_modules/is-arguments/CHANGELOG.md b/node_modules/is-arguments/CHANGELOG.md index 943fe35..a1ddafe 100644 --- a/node_modules/is-arguments/CHANGELOG.md +++ b/node_modules/is-arguments/CHANGELOG.md @@ -5,6 +5,22 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.1.1](https://github.com/inspect-js/is-arguments/compare/v1.1.0...v1.1.1) - 2021-08-05 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`dd28b30`](https://github.com/inspect-js/is-arguments/commit/dd28b30f4237fac722f2ce05b0c1d7e63c4a81e4) +- [meta] do not publish github action workflow files [`87e489c`](https://github.com/inspect-js/is-arguments/commit/87e489cc77b709b96e73aaf9f9b2cd6da48f4960) +- [readme] fix repo URLs [`e2c2c6e`](https://github.com/inspect-js/is-arguments/commit/e2c2c6ee34ca21be4b19d282d96dd7ab75b63ae3) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`b9ae62b`](https://github.com/inspect-js/is-arguments/commit/b9ae62b3a08a5fe84519865192e6287d5b6966f7) +- [readme] add github actions/codecov badges [`504c0a5`](https://github.com/inspect-js/is-arguments/commit/504c0a508dc313eae5942b1e35b2d031948de143) +- [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams [`dc29e52`](https://github.com/inspect-js/is-arguments/commit/dc29e521d71da420414110919a1e0fde8ec6eba3) +- [Dev Deps] update `auto-changelog`, `eslint`, `tape` [`a966d25`](https://github.com/inspect-js/is-arguments/commit/a966d25535c5f050ca5ce43a1559f93698a7130b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`1218944`](https://github.com/inspect-js/is-arguments/commit/12189445a195558fdccebe099c699272d2082aa8) +- [meta] use `prepublishOnly` script for npm 7+ [`757dbee`](https://github.com/inspect-js/is-arguments/commit/757dbee3ec6f6225d4c7c91582e045cc1183dbd8) +- [Deps] update `call-bind` [`b206f05`](https://github.com/inspect-js/is-arguments/commit/b206f059571c430375c632e40dd29249fa76a8fd) +- [actions] update workflows [`b89b2f1`](https://github.com/inspect-js/is-arguments/commit/b89b2f1ab98bedebdf97d2397246030a1132c84e) + ## [v1.1.0](https://github.com/inspect-js/is-arguments/compare/v1.0.4...v1.1.0) - 2020-12-04 ### Commits diff --git a/node_modules/is-arguments/README.md b/node_modules/is-arguments/README.md index 3872cbf..b312512 100644 --- a/node_modules/is-arguments/README.md +++ b/node_modules/is-arguments/README.md @@ -1,5 +1,7 @@ -#is-arguments [![Version Badge][2]][1] +# is-arguments [![Version Badge][2]][1] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -29,14 +31,17 @@ If you have modified an actual `arguments` object by giving it a `Symbol.toStrin Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-arguments -[2]: http://versionbadg.es/inspect-js/is-arguments.svg +[2]: https://versionbadg.es/inspect-js/is-arguments.svg [5]: https://david-dm.org/inspect-js/is-arguments.svg [6]: https://david-dm.org/inspect-js/is-arguments [7]: https://david-dm.org/inspect-js/is-arguments/dev-status.svg [8]: https://david-dm.org/inspect-js/is-arguments#info=devDependencies [11]: https://nodei.co/npm/is-arguments.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-arguments.svg +[license-image]: https://img.shields.io/npm/l/is-arguments.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-arguments.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-arguments - +[downloads-image]: https://img.shields.io/npm/dm/is-arguments.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-arguments +[codecov-image]: https://codecov.io/gh/inspect-js/is-arguments/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-arguments/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-arguments +[actions-url]: https://github.com/inspect-js/is-arguments/actions diff --git a/node_modules/is-arguments/index.js b/node_modules/is-arguments/index.js index 805f977..e17e906 100644 --- a/node_modules/is-arguments/index.js +++ b/node_modules/is-arguments/index.js @@ -1,6 +1,6 @@ 'use strict'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); var callBound = require('call-bind/callBound'); var $toString = callBound('Object.prototype.toString'); diff --git a/node_modules/is-arguments/package.json b/node_modules/is-arguments/package.json index 2cfb2d2..b4ba9ae 100644 --- a/node_modules/is-arguments/package.json +++ b/node_modules/is-arguments/package.json @@ -1,6 +1,6 @@ { "name": "is-arguments", - "version": "1.1.0", + "version": "1.1.1", "description": "Is this an arguments object? It's a harder question than you think.", "author": { "name": "Jordan Harband", @@ -20,7 +20,8 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run --silent lint", "test": "npm run tests-only", "tests-only": "nyc tape 'test/**/*.js'", @@ -46,16 +47,17 @@ "object" ], "dependencies": { - "call-bind": "^1.0.0" + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" }, "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.14.0", + "@ljharb/eslint-config": "^17.6.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^7.32.0", "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" + "tape": "^5.3.0" }, "testling": { "files": "test.js", diff --git a/node_modules/is-arguments/test/index.js b/node_modules/is-arguments/test/index.js index 818b7b0..6d7cd5a 100644 --- a/node_modules/is-arguments/test/index.js +++ b/node_modules/is-arguments/test/index.js @@ -2,7 +2,7 @@ var test = require('tape'); var isArguments = require('../'); -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); test('primitives', function (t) { t.notOk(isArguments([]), 'array is not arguments'); diff --git a/node_modules/is-bigint/.eslintignore b/node_modules/is-bigint/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-bigint/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-bigint/.eslintrc b/node_modules/is-bigint/.eslintrc deleted file mode 100644 index c887238..0000000 --- a/node_modules/is-bigint/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "globals": { - "BigInt": true, - }, - - "rules": { - "new-cap": [2, { "capIsNewExceptions": ["BigInt"] }], - "operator-linebreak": [2, "before"], - }, -} diff --git a/node_modules/is-bigint/.github/FUNDING.yml b/node_modules/is-bigint/.github/FUNDING.yml deleted file mode 100644 index 59d03ba..0000000 --- a/node_modules/is-bigint/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-bigint -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-bigint/CHANGELOG.md b/node_modules/is-bigint/CHANGELOG.md deleted file mode 100644 index b62ddcf..0000000 --- a/node_modules/is-bigint/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.2](https://github.com/inspect-js/is-bigint/compare/v1.0.1...v1.0.2) - 2021-05-04 - -### Commits - -- [meta] do not publish github action workflow files [`276d677`](https://github.com/inspect-js/is-bigint/commit/276d677d1eac61e990a2f2b523c7cdef70784865) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`cea7fb6`](https://github.com/inspect-js/is-bigint/commit/cea7fb6e882ad7e2f550de2bd9317a4409bcd735) -- [readme] fix repo URLs; remove travis badge [`c8e7c36`](https://github.com/inspect-js/is-bigint/commit/c8e7c3651f3303fddafa61cf29cfbb79ea2d5d4b) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `object-inspect`, `tape` [`32f3d90`](https://github.com/inspect-js/is-bigint/commit/32f3d909363045fe5d40dde9e4db354344ab4d50) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `tape` [`c2f20f5`](https://github.com/inspect-js/is-bigint/commit/c2f20f577d84e68b4e3224abb51024fbc4b9b2ba) -- [meta] remove unneeded token; update checkout action [`94e46e9`](https://github.com/inspect-js/is-bigint/commit/94e46e92a1a85ec022c8febf8d5d3c2369b46e97) -- [meta] use `prepublishOnly` script for npm 7+ [`3e663ec`](https://github.com/inspect-js/is-bigint/commit/3e663ecb09bfdc5dbaaa37aaef4adf28b5e49035) - -## [v1.0.1](https://github.com/inspect-js/is-bigint/compare/v1.0.0...v1.0.1) - 2020-11-30 - -### Commits - -- [Tests] use shared travis-ci configs [`28f1211`](https://github.com/inspect-js/is-bigint/commit/28f1211132ad2a6495d816140680fa16c12eb6f3) -- [Tests] migrate tests to Github Actions [`0998c64`](https://github.com/inspect-js/is-bigint/commit/0998c6443d603028f8b988bcdd52d23dbf513031) -- [meta] add `auto-changelog` [`2352de6`](https://github.com/inspect-js/is-bigint/commit/2352de6df8385b256d75ce50c360947243a599f6) -- [Tests] run `nyc` on all tests [`9c16a9a`](https://github.com/inspect-js/is-bigint/commit/9c16a9a5ddaf7c2c578542ab8f00dd4e72eff541) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `object-inspect`, `tape` [`4cd0edd`](https://github.com/inspect-js/is-bigint/commit/4cd0edd1917f789501291315c9eac5f895fd719e) -- [actions] add automatic rebasing / merge commit blocking [`f0f4b91`](https://github.com/inspect-js/is-bigint/commit/f0f4b91dba029dbca5b3cd27ef91c4fb8e3ec51a) -- [actions] add "Allow Edits" workflow [`7f4f46e`](https://github.com/inspect-js/is-bigint/commit/7f4f46ec07679c00e22287ec55b39ff1e4f809cf) -- [meta] create FUNDING.yml [`2d0cb9a`](https://github.com/inspect-js/is-bigint/commit/2d0cb9ae8ddf635f2c472ce49f95f717f2c432bf) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud` [`0ee110e`](https://github.com/inspect-js/is-bigint/commit/0ee110effdcaa96d90f21a0ec6e625941f77c45a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`, `object-inspect`, `tape` [`5bb7f3a`](https://github.com/inspect-js/is-bigint/commit/5bb7f3a8de6ec5ee2aa573c22e41884f3d2d1cc3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`d3d67d0`](https://github.com/inspect-js/is-bigint/commit/d3d67d05f8a3f4cb07085811629f56ef872949c3) -- [Dev Deps] update `auto-changelog`, `tape` [`54e270f`](https://github.com/inspect-js/is-bigint/commit/54e270fa29856dba90f86785fa61bffc79a2825d) -- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`d82bfe7`](https://github.com/inspect-js/is-bigint/commit/d82bfe75c63aeda40f7e473c57f26cea8790ba3a) -- [Dev Deps] update `auto-changelog`; add `aud` [`9c34bd1`](https://github.com/inspect-js/is-bigint/commit/9c34bd1873f08d77c82d8e54ad90c5a1a035e7ea) -- [Tests] add missing `posttest` script [`0690bd9`](https://github.com/inspect-js/is-bigint/commit/0690bd9868d4d8b43424b4224cdbb8659a1c6423) -- [meta] add `funding` field [`7ca36d0`](https://github.com/inspect-js/is-bigint/commit/7ca36d06ebcf6b01a592ecd6758bd2b39c0fb0db) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`5ffa8da`](https://github.com/inspect-js/is-bigint/commit/5ffa8dad9f634891cf739ee118f1b43142b0f01d) -- [Dev Deps] update `eslint` [`8512c2f`](https://github.com/inspect-js/is-bigint/commit/8512c2f29a9267fe8fe19209bcf77df94f127172) -- [Tests] only audit prod deps [`f2147dc`](https://github.com/inspect-js/is-bigint/commit/f2147dc54e72594985e8f6db3932a4f0819dc4db) -- [readme] fix header [`d6eff75`](https://github.com/inspect-js/is-bigint/commit/d6eff75d00471f465768deb92867e878c27733b3) - -## v1.0.0 - 2018-09-20 - -### Commits - -- [Tests] add tests [`847f12a`](https://github.com/inspect-js/is-bigint/commit/847f12af125fcefb75ed3517550feedf7dd73e88) -- Initial commit [`b53f3c6`](https://github.com/inspect-js/is-bigint/commit/b53f3c6754e7fd7a9982ff5b1466c4dc9799dad9) -- readme [`66c15fe`](https://github.com/inspect-js/is-bigint/commit/66c15fe1a0d965b8c78bf3a3bfc289dcfec53ee1) -- Implementation [`c2c0974`](https://github.com/inspect-js/is-bigint/commit/c2c0974397825a2a56e1ea8af0546171309d4805) -- package.json [`98b174c`](https://github.com/inspect-js/is-bigint/commit/98b174c24b070053f0548e58f9b87bc9dbdf922a) -- Only apps should have lockfiles [`a77c74b`](https://github.com/inspect-js/is-bigint/commit/a77c74bd8ca5f058f1e6165ae7b33bb84adef98c) diff --git a/node_modules/is-bigint/LICENSE b/node_modules/is-bigint/LICENSE deleted file mode 100644 index 9dd868f..0000000 --- a/node_modules/is-bigint/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2018 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/is-bigint/README.md b/node_modules/is-bigint/README.md deleted file mode 100644 index 1bf8c5f..0000000 --- a/node_modules/is-bigint/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# is-bigint [![Version Badge][2]][1] - -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this an ES BigInt value? - -## Example - -```js -var isBigInt = require('is-bigint'); -assert(!isBigInt(function () {})); -assert(!isBigInt(null)); -assert(!isBigInt(function* () { yield 42; return Infinity; }); -assert(!isBigInt(Symbol('foo'))); - -assert(isBigInt(1n)); -assert(isBigInt(Object(1n))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-bigint -[2]: https://versionbadg.es/inspect-js/is-bigint.svg -[5]: https://david-dm.org/inspect-js/is-bigint.svg -[6]: https://david-dm.org/inspect-js/is-bigint -[7]: https://david-dm.org/inspect-js/is-bigint/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-bigint#info=devDependencies -[11]: https://nodei.co/npm/is-bigint.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-bigint.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-bigint.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-bigint diff --git a/node_modules/is-bigint/index.js b/node_modules/is-bigint/index.js deleted file mode 100644 index 6ce59c8..0000000 --- a/node_modules/is-bigint/index.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -if (typeof BigInt === 'function') { - var bigIntValueOf = BigInt.prototype.valueOf; - var tryBigInt = function tryBigIntObject(value) { - try { - bigIntValueOf.call(value); - return true; - } catch (e) { - } - return false; - }; - - module.exports = function isBigInt(value) { - if ( - value === null - || typeof value === 'undefined' - || typeof value === 'boolean' - || typeof value === 'string' - || typeof value === 'number' - || typeof value === 'symbol' - || typeof value === 'function' - ) { - return false; - } - if (typeof value === 'bigint') { - return true; - } - - return tryBigInt(value); - }; -} else { - module.exports = function isBigInt(value) { - return false && value; - }; -} diff --git a/node_modules/is-bigint/package.json b/node_modules/is-bigint/package.json deleted file mode 100644 index b2786b6..0000000 --- a/node_modules/is-bigint/package.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-bigint/test/.eslintrc b/node_modules/is-bigint/test/.eslintrc deleted file mode 100644 index 1ac0d47..0000000 --- a/node_modules/is-bigint/test/.eslintrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "rules": { - "max-statements-per-line": [2, { "max": 2 }], - "no-restricted-properties": 0, - "symbol-description": 0, - } -} diff --git a/node_modules/is-bigint/test/index.js b/node_modules/is-bigint/test/index.js deleted file mode 100644 index 069f73d..0000000 --- a/node_modules/is-bigint/test/index.js +++ /dev/null @@ -1,80 +0,0 @@ -'use strict'; - -var test = require('tape'); -var inspect = require('object-inspect'); -var isBigInt = require('..'); - -var debug = function (v, m) { return inspect(v) + ' ' + m; }; - -var forEach = function (arr, func) { - var i; - for (i = 0; i < arr.length; ++i) { - func(arr[i], i, arr); - } -}; - -var hasSymbols = require('has-symbols')(); -var hasBigInts = typeof BigInt === 'function'; - -test('non-BigInt values', function (t) { - var nonBigInts = [ - true, - false, - Object(true), - Object(false), - null, - undefined, - {}, - [], - /a/g, - 'string', - 42, - new Date(), - function () {}, - NaN - ]; - if (hasSymbols) { - nonBigInts.push(Symbol.iterator, Symbol('foo')); - } - t.plan(nonBigInts.length); - forEach(nonBigInts, function (nonBigInt) { - t.equal(false, isBigInt(nonBigInt), debug(nonBigInt, 'is not a BigInt')); - }); - t.end(); -}); - -test('faked BigInt values', function (t) { - t.test('real BigInt valueOf', { skip: !hasBigInts }, function (st) { - var fakeBigInt = { valueOf: function () { return BigInt(42); } }; - st.equal(false, isBigInt(fakeBigInt), 'object with valueOf returning a BigInt is not a BigInt'); - st.end(); - }); - - t.test('faked @@toStringTag', { skip: !hasBigInts || !hasSymbols || !Symbol.toStringTag }, function (st) { - var fakeBigInt = { valueOf: function () { return BigInt(42); } }; - fakeBigInt[Symbol.toStringTag] = 'BigInt'; - st.equal(false, isBigInt(fakeBigInt), 'object with fake BigInt @@toStringTag and valueOf returning a BigInt is not a BigInt'); - - var notSoFakeBigInt = { valueOf: function () { return 42; } }; - notSoFakeBigInt[Symbol.toStringTag] = 'BigInt'; - st.equal(false, isBigInt(notSoFakeBigInt), 'object with fake BigInt @@toStringTag and valueOf not returning a BigInt is not a BigInt'); - st.end(); - }); - - var fakeBigIntString = { toString: function () { return '42n'; } }; - t.equal(false, isBigInt(fakeBigIntString), 'object with toString returning 42n is not a BigInt'); - - t.end(); -}); - -test('BigInt support', { skip: !hasBigInts }, function (t) { - forEach([ - Function('return 42n')(), // eslint-disable-line no-new-func - BigInt(42), - Object(BigInt(42)) - ], function (bigInt) { - t.equal(true, isBigInt(bigInt), debug(bigInt, 'is a BigInt')); - }); - - t.end(); -}); diff --git a/node_modules/is-boolean-object/.editorconfig b/node_modules/is-boolean-object/.editorconfig deleted file mode 100644 index 8d93cc1..0000000 --- a/node_modules/is-boolean-object/.editorconfig +++ /dev/null @@ -1,22 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[.github/workflows/*.yml] -indent_style = off -indent_size = off -max_line_length = off - -[{CHANGELOG.md,*.json}] -max_line_length = off diff --git a/node_modules/is-boolean-object/.eslintignore b/node_modules/is-boolean-object/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-boolean-object/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-boolean-object/.eslintrc b/node_modules/is-boolean-object/.eslintrc deleted file mode 100644 index a072916..0000000 --- a/node_modules/is-boolean-object/.eslintrc +++ /dev/null @@ -1,22 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-nested-callbacks": [2, 3] - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "prefer-regex-literals": 0, - }, - }, - { - "files": "test-corejs.js", - "extends": "@ljharb/eslint-config/tests", - }, - ], -} diff --git a/node_modules/is-boolean-object/.github/FUNDING.yml b/node_modules/is-boolean-object/.github/FUNDING.yml deleted file mode 100644 index fd04996..0000000 --- a/node_modules/is-boolean-object/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-boolean-object -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-boolean-object/.nycrc b/node_modules/is-boolean-object/.nycrc deleted file mode 100644 index a69aa2d..0000000 --- a/node_modules/is-boolean-object/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test", - "test-corejs.js" - ] -} diff --git a/node_modules/is-boolean-object/CHANGELOG.md b/node_modules/is-boolean-object/CHANGELOG.md deleted file mode 100644 index 25a891a..0000000 --- a/node_modules/is-boolean-object/CHANGELOG.md +++ /dev/null @@ -1,100 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.1.1](https://github.com/inspect-js/is-boolean-object/compare/v1.1.0...v1.1.1) - 2021-05-07 - -### Commits - -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7201c41`](https://github.com/inspect-js/is-boolean-object/commit/7201c41fc1fd9d64b51716b80fc63d95064a4a59) -- [Tests] run tests with core-js as well [`9590e61`](https://github.com/inspect-js/is-boolean-object/commit/9590e6135505e2e3f69c6d8785a539fca1b1e594) -- [meta] do not publish github action workflow files [`341472b`](https://github.com/inspect-js/is-boolean-object/commit/341472bbe9855030c7eda9340ee4284244f0a4ad) -- [readme] update repo URLs; remove travis badge [`9fdbbc6`](https://github.com/inspect-js/is-boolean-object/commit/9fdbbc64b2a70ee93fcfd95fc6c94c7ec2bbedd4) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`1cd35c9`](https://github.com/inspect-js/is-boolean-object/commit/1cd35c9b9b0b4af203f20bda0d7fd60798e57f99) -- [readme] add actions and codecov badges [`03769fe`](https://github.com/inspect-js/is-boolean-object/commit/03769feb1466f03b1345882ca0e4f8cacbbce9ce) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`db6598c`](https://github.com/inspect-js/is-boolean-object/commit/db6598c4cabcd0ffd2ba9b4525b53907f8b2ff1f) -- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`e0b8a9f`](https://github.com/inspect-js/is-boolean-object/commit/e0b8a9f0fc1290a0a29c75967d56bc1c17eb8d2d) -- [readme] remove defunct testling badge [`986a621`](https://github.com/inspect-js/is-boolean-object/commit/986a6217da7385f7063e1d4e4bf5be2892d00c20) -- [meta] use `prepublishOnly` script for npm 7+ [`7bb3b29`](https://github.com/inspect-js/is-boolean-object/commit/7bb3b2902008ca07af4185ca98bc41b3222d579f) -- [Deps] update `call-bind` [`3af6a71`](https://github.com/inspect-js/is-boolean-object/commit/3af6a71e1004c79567630ac9944b9f2cc184ac77) -- [meta] do not publish corejs test file [`d911f03`](https://github.com/inspect-js/is-boolean-object/commit/d911f0368b6922645d15b9e28f3ed92e1badcef4) -- [actions] update workflows [`9bb3d90`](https://github.com/inspect-js/is-boolean-object/commit/9bb3d9015f377280324b162a3062d21936707216) - -## [v1.1.0](https://github.com/inspect-js/is-boolean-object/compare/v1.0.1...v1.1.0) - 2020-12-05 - -### Commits - -- [Tests] migrate tests to Github Actions [`6cdb652`](https://github.com/inspect-js/is-boolean-object/commit/6cdb652add3c6e44c2f7fe07c5ca4c0d14ddc2c1) -- [Tests] run `nyc` on all tests [`9a33076`](https://github.com/inspect-js/is-boolean-object/commit/9a33076d14869bf5120a6ca3903bcb9a008cf2e5) -- [Tests] add .editorconfig [`bb401c0`](https://github.com/inspect-js/is-boolean-object/commit/bb401c084416b010d64e0c5a74465b37addab31f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`5cb2405`](https://github.com/inspect-js/is-boolean-object/commit/5cb24052ca84d840e929f05cd1fe6c03b85ec032) -- [Robustness] use `call-bind` to avoid a dependency on `.call` [`76d87ae`](https://github.com/inspect-js/is-boolean-object/commit/76d87ae74235a9995d39bcf5783c04c744c34520) -- [actions] add "Allow Edits" workflow [`337206a`](https://github.com/inspect-js/is-boolean-object/commit/337206af74bd7c340bc938ab6dc0535c08490b3d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`11f0481`](https://github.com/inspect-js/is-boolean-object/commit/11f0481efca28a241a35d384e2a302b1bcdc9a37) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`b9602c8`](https://github.com/inspect-js/is-boolean-object/commit/b9602c8ca11be138722187c1fb0a5b25a57a4edc) -- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`999e9e2`](https://github.com/inspect-js/is-boolean-object/commit/999e9e224d4eec8b20fc9c3431e9ba42caad79c9) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`bbb6728`](https://github.com/inspect-js/is-boolean-object/commit/bbb6728b9410f9d3e2d266523a477127e5e4c16f) - -## [v1.0.1](https://github.com/inspect-js/is-boolean-object/compare/v1.0.0...v1.0.1) - 2019-12-18 - -### Commits - -- [Tests] use shared travis-ci configs [`a1778b8`](https://github.com/inspect-js/is-boolean-object/commit/a1778b81ab4fe4479176de854e4e233cc441f183) -- Update `eslint`; use my personal shared `eslint` config. [`2c42c50`](https://github.com/inspect-js/is-boolean-object/commit/2c42c50a0654044b6c7e2a4ab18227e8c275464b) -- [Tests] remove `jscs` [`3807025`](https://github.com/inspect-js/is-boolean-object/commit/380702504fabc47fe22f61c4847379023d31a657) -- [Tests] up to `node` `v8.4`, `v7.10`, `v6.11`, `v5.12`, `v4.8`; improve matrix; newer npm breaks in older node; improve scripts. [`a02b986`](https://github.com/inspect-js/is-boolean-object/commit/a02b98682b285de09e2c5a895627771d6a7f552c) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `jscs`, `nsp`, `semver`, `tape` [`d9030a9`](https://github.com/inspect-js/is-boolean-object/commit/d9030a99b8e274c76ae5f23f31d9d085a7e25272) -- Update `eslint`, `nsp` [`a1b6388`](https://github.com/inspect-js/is-boolean-object/commit/a1b6388fabd0de51a02c567953826344ef05890c) -- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9`; use `nvm install-latest-npm` [`17a0fd3`](https://github.com/inspect-js/is-boolean-object/commit/17a0fd391e32635ec3434baca0d062f8abeeb592) -- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`0b1818f`](https://github.com/inspect-js/is-boolean-object/commit/0b1818fdcaebc6133e515dfe3b5a8930b38999b5) -- [meta] remove unused Makefile and associated utilities [`33dc0ae`](https://github.com/inspect-js/is-boolean-object/commit/33dc0ae35a03e91f81b1bb3db5ba763dacadbfa2) -- Update `covert`, `jscs`, `eslint`, `semver` [`7e513c1`](https://github.com/inspect-js/is-boolean-object/commit/7e513c12998a651c14f62b3ecfb7215a5cc5ee8f) -- [Tests] up to `node` `v11.4`, `v10.14`, `v8.14`, `v6.15` [`992b849`](https://github.com/inspect-js/is-boolean-object/commit/992b84933760e0fe6ba2cee74ad7fff507f28128) -- [meta] add `auto-changelog` [`63d71b8`](https://github.com/inspect-js/is-boolean-object/commit/63d71b8beb9aeb77cab3d2db2cf643f1b8b1a55c) -- Update `tape`, `eslint`, `semver` [`76aea69`](https://github.com/inspect-js/is-boolean-object/commit/76aea699fb315ac460799182d707c388b4a4e017) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`a6cbec0`](https://github.com/inspect-js/is-boolean-object/commit/a6cbec09940b6f2c7cf366526a94c0c4756508f5) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace`, `semver`, `tape`; add `safe-publish-latest` [`7cf6bb0`](https://github.com/inspect-js/is-boolean-object/commit/7cf6bb05ba7bac504df680dd9ca625fba6dccb5a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`57d713c`](https://github.com/inspect-js/is-boolean-object/commit/57d713cca2ccbbbf1da1142ee5e8236d12551f76) -- [actions] add automatic rebasing / merge commit blocking [`f7a2bdb`](https://github.com/inspect-js/is-boolean-object/commit/f7a2bdb905e07d75c65593359f81bfeda9fe9826) -- [meta] create FUNDING.yml [`9765e73`](https://github.com/inspect-js/is-boolean-object/commit/9765e738cccdd5ff6c89b21324119a2bf4064fbd) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `replace`, `semver`, `tape` [`5c16b56`](https://github.com/inspect-js/is-boolean-object/commit/5c16b56a5a2d36c6a70c1bd396b3a6c931f655db) -- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`5717aad`](https://github.com/inspect-js/is-boolean-object/commit/5717aadd8b0e8c76ccb194d1845ad8cc120f29c6) -- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`80b924d`](https://github.com/inspect-js/is-boolean-object/commit/80b924dd270188e1e928f4141078bee14d810e9b) -- [Dev Deps] update `jscs` [`2e5479e`](https://github.com/inspect-js/is-boolean-object/commit/2e5479e56b6d33288582cfe8c254ca081e79500c) -- Test up to `io.js` `v2.2` [`93379a4`](https://github.com/inspect-js/is-boolean-object/commit/93379a4b48ba719113006ab08bbe6679c8a27293) -- [Tests] remove `nsp`; use `npm audit`; allow to fail for now [`36ae30a`](https://github.com/inspect-js/is-boolean-object/commit/36ae30acffe4a892ea0882a793b8a90f09d08fdf) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`ef76976`](https://github.com/inspect-js/is-boolean-object/commit/ef76976db22f2867fca2ee377fdbc9da81f0d142) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`a1182bd`](https://github.com/inspect-js/is-boolean-object/commit/a1182bd99e5d31e113107241f0d697e71b27bf7b) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`4f79b47`](https://github.com/inspect-js/is-boolean-object/commit/4f79b474f0643fd2c9dbc863949a61cf01255b6f) -- [Tests] up to `node` `v10.3` [`5e96464`](https://github.com/inspect-js/is-boolean-object/commit/5e96464fc08eacc45f5f58fe7800ddbc45e40cea) -- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`e1eb3fa`](https://github.com/inspect-js/is-boolean-object/commit/e1eb3fad8bad65140db3bd2381bb3bea6a9c6242) -- Only apps should have lockfiles. [`c7f301f`](https://github.com/inspect-js/is-boolean-object/commit/c7f301ff368f9e04f7f64a2ce9b6ae1aec803e69) -- [meta] add `funding` field [`fad0366`](https://github.com/inspect-js/is-boolean-object/commit/fad03662becea5db7cef29d816d173ad771be86a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`80d39d9`](https://github.com/inspect-js/is-boolean-object/commit/80d39d90205d3bb564acb80b0625e90c267347fd) -- [Tests] use `eclint` instead of `editorconfig-tools` [`980e91b`](https://github.com/inspect-js/is-boolean-object/commit/980e91b186a728f77366ba16b7bebc813b9cc3b0) -- [Dev Deps] Update `tape`, `eslint` [`9960830`](https://github.com/inspect-js/is-boolean-object/commit/9960830876a3672686c569fde3d43bb7983955f1) -- Test up to `io.js` `v3.0` [`a3c3cd0`](https://github.com/inspect-js/is-boolean-object/commit/a3c3cd087d7fcefbf4f3525c05f4cee3b6e5b0ef) -- [Dev Deps] update `tape` [`217fbd6`](https://github.com/inspect-js/is-boolean-object/commit/217fbd6bb2989f9304ad95cd49697da7fe03b8d5) -- [Tests] only audit prod deps [`89284ee`](https://github.com/inspect-js/is-boolean-object/commit/89284ee17dce1d044df0ca9e006072f25742bbaf) -- [Performance] only use toStringTag code path when the value has that property [`2863bc5`](https://github.com/inspect-js/is-boolean-object/commit/2863bc5b72680f05ace8e66fddcf48966b942d55) -- [Dev Deps] update `replace` [`53e72a5`](https://github.com/inspect-js/is-boolean-object/commit/53e72a5ceca5b3a82e6407829f9227df9df6d329) -- [Enhancement] slight optimization for `null` [`a90a3c4`](https://github.com/inspect-js/is-boolean-object/commit/a90a3c4464d0300e23384d96fb4281b55b7fd723) -- [Dev Deps] update `tape` [`9377bd5`](https://github.com/inspect-js/is-boolean-object/commit/9377bd5110e99d8ec550f24ef3f6ead62a8f1f50) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`3085530`](https://github.com/inspect-js/is-boolean-object/commit/30855304841854f79e406372f524efe4bc7d8c04) -- Test on `io.js` `v2.4` [`8af335c`](https://github.com/inspect-js/is-boolean-object/commit/8af335ca82a0eeba4a0a593775e4caf744834ec4) -- Test on `io.js` `v2.3` [`1eb3424`](https://github.com/inspect-js/is-boolean-object/commit/1eb3424bef528551f5c99a754281a51d92e40ab1) - -## v1.0.0 - 2015-04-28 - -### Commits - -- Dotfiles [`6b9b998`](https://github.com/inspect-js/is-boolean-object/commit/6b9b998bb238a32d4829c9f9bf274e5ca15023ee) -- `make release` [`d5e50b3`](https://github.com/inspect-js/is-boolean-object/commit/d5e50b33a3cd8d8abe7de8ae36e2944c24ce76ba) -- package.json [`117676a`](https://github.com/inspect-js/is-boolean-object/commit/117676a48609e636d4257c1b35c695ff20939211) -- Read me [`ef327a7`](https://github.com/inspect-js/is-boolean-object/commit/ef327a74c7f73e64cfa3c20a9620ef7accf8b762) -- Initial commit [`2346886`](https://github.com/inspect-js/is-boolean-object/commit/2346886252b9637c1af6851a3fc2cbc98bc986aa) -- Tests [`67211f8`](https://github.com/inspect-js/is-boolean-object/commit/67211f8bff1a49e5df219935765b83573c097353) -- Implementation [`2d88bd6`](https://github.com/inspect-js/is-boolean-object/commit/2d88bd6e1ef0f07f5a639775eb89f3b78e12eb65) diff --git a/node_modules/is-boolean-object/LICENSE b/node_modules/is-boolean-object/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/is-boolean-object/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/is-boolean-object/README.md b/node_modules/is-boolean-object/README.md deleted file mode 100644 index a77f3e9..0000000 --- a/node_modules/is-boolean-object/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# is-boolean-object [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value a JS Boolean? This module works cross-realm/iframe, and despite ES6 @@toStringTag. - -## Example - -```js -var isBoolean = require('is-boolean-object'); -var assert = require('assert'); - -assert.notOk(isBoolean(undefined)); -assert.notOk(isBoolean(null)); -assert.notOk(isBoolean('foo')); -assert.notOk(isBoolean(function () {})); -assert.notOk(isBoolean([])); -assert.notOk(isBoolean({})); -assert.notOk(isBoolean(/a/g)); -assert.notOk(isBoolean(new RegExp('a', 'g'))); -assert.notOk(isBoolean(new Date())); -assert.notOk(isBoolean(42)); -assert.notOk(isBoolean(NaN)); -assert.notOk(isBoolean(Infinity)); - -assert.ok(isBoolean(new Boolean(42))); -assert.ok(isBoolean(false)); -assert.ok(isBoolean(Object(false))); -assert.ok(isBoolean(true)); -assert.ok(isBoolean(Object(true))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-boolean-object -[2]: https://versionbadg.es/inspect-js/is-boolean-object.svg -[5]: https://david-dm.org/inspect-js/is-boolean-object.svg -[6]: https://david-dm.org/inspect-js/is-boolean-object -[7]: https://david-dm.org/inspect-js/is-boolean-object/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-boolean-object#info=devDependencies -[11]: https://nodei.co/npm/is-boolean-object.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-boolean-object.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-boolean-object.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-boolean-object -[codecov-image]: https://codecov.io/gh/inspect-js/is-boolean-object/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-boolean-object/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-boolean-object -[actions-url]: https://github.com/inspect-js/is-boolean-object/actions diff --git a/node_modules/is-boolean-object/index.js b/node_modules/is-boolean-object/index.js deleted file mode 100644 index 0cd8e77..0000000 --- a/node_modules/is-boolean-object/index.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $boolToStr = callBound('Boolean.prototype.toString'); -var $toString = callBound('Object.prototype.toString'); - -var tryBooleanObject = function booleanBrandCheck(value) { - try { - $boolToStr(value); - return true; - } catch (e) { - return false; - } -}; -var boolClass = '[object Boolean]'; -var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; - -module.exports = function isBoolean(value) { - if (typeof value === 'boolean') { - return true; - } - if (value === null || typeof value !== 'object') { - return false; - } - return hasToStringTag && Symbol.toStringTag in value ? tryBooleanObject(value) : $toString(value) === boolClass; -}; diff --git a/node_modules/is-boolean-object/package.json b/node_modules/is-boolean-object/package.json deleted file mode 100644 index 6ad2112..0000000 --- a/node_modules/is-boolean-object/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-boolean-object/test/index.js b/node_modules/is-boolean-object/test/index.js deleted file mode 100644 index 9ca4b34..0000000 --- a/node_modules/is-boolean-object/test/index.js +++ /dev/null @@ -1,48 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isBoolean = require('../'); -var hasSymbols = require('has-symbols/shams')(); - -test('not Booleans', function (t) { - t.test('primitives', function (st) { - st.notOk(isBoolean(), 'undefined is not Boolean'); - st.notOk(isBoolean(null), 'null is not Boolean'); - st.notOk(isBoolean(0), '0 is not Boolean'); - st.notOk(isBoolean(NaN), 'NaN is not Boolean'); - st.notOk(isBoolean(Infinity), 'Infinity is not Boolean'); - st.notOk(isBoolean('foo'), 'string is not Boolean'); - st.end(); - }); - - t.test('objects', function (st) { - st.notOk(isBoolean(Object(42)), 'number object is not Boolean'); - st.notOk(isBoolean([]), 'array is not Boolean'); - st.notOk(isBoolean({}), 'object is not Boolean'); - st.notOk(isBoolean(function () {}), 'function is not Boolean'); - st.notOk(isBoolean(/a/g), 'regex literal is not Boolean'); - st.notOk(isBoolean(new RegExp('a', 'g')), 'regex object is not Boolean'); - st.notOk(isBoolean(new Date()), 'new Date() is not Boolean'); - st.end(); - }); - - t.end(); -}); - -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { - var fakeBoolean = { - toString: function () { return 'true'; }, - valueOf: function () { return true; } - }; - fakeBoolean[Symbol.toStringTag] = 'Boolean'; - t.notOk(isBoolean(fakeBoolean), 'fake Boolean with @@toStringTag "Boolean" is not Boolean'); - t.end(); -}); - -test('Booleans', function (t) { - t.ok(isBoolean(true), 'true is Boolean'); - t.ok(isBoolean(false), 'false is Boolean'); - t.ok(isBoolean(Object(true)), 'Object(true) is Boolean'); - t.ok(isBoolean(Object(false)), 'Object(false) is Boolean'); - t.end(); -}); diff --git a/node_modules/is-callable/.editorconfig b/node_modules/is-callable/.editorconfig index 4623631..f5f5679 100644 --- a/node_modules/is-callable/.editorconfig +++ b/node_modules/is-callable/.editorconfig @@ -14,8 +14,18 @@ indent_style = space indent_size = 2 max_line_length = off +[README.md] +indent_style = off +indent_size = off +max_line_length = off + [*.json] max_line_length = off [Makefile] max_line_length = off + +[coverage*/**/*] +indent_style = off +indent_size = off +max_line_length = off diff --git a/node_modules/is-callable/.eslintignore b/node_modules/is-callable/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-callable/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-callable/.eslintrc b/node_modules/is-callable/.eslintrc index 631b8f3..ce033bf 100644 --- a/node_modules/is-callable/.eslintrc +++ b/node_modules/is-callable/.eslintrc @@ -5,17 +5,6 @@ "rules": { "id-length": 0, - "max-statements": [2, 14], "max-statements-per-line": [2, { "max": 2 }], - "operator-linebreak": [2, "before"], }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "no-throw-literal": 0, - }, - }, - ], } diff --git a/node_modules/is-callable/.github/main.workflow b/node_modules/is-callable/.github/main.workflow deleted file mode 100644 index 0494481..0000000 --- a/node_modules/is-callable/.github/main.workflow +++ /dev/null @@ -1,14 +0,0 @@ -workflow "Autorebase branch on merge commits" { - on = "push" - resolves = ["rebase"] -} - -workflow "Autorebase PR on merge commits" { - on = "pull_request" - resolves = ["rebase"] -} - - action "rebase" { - uses = "ljharb/rebase@latest" - secrets = ["GITHUB_TOKEN"] -} diff --git a/node_modules/is-callable/.istanbul.yml b/node_modules/is-callable/.istanbul.yml deleted file mode 100644 index 9affe0b..0000000 --- a/node_modules/is-callable/.istanbul.yml +++ /dev/null @@ -1,47 +0,0 @@ -verbose: false -instrumentation: - root: . - extensions: - - .js - - .jsx - default-excludes: true - excludes: [] - variable: __coverage__ - compact: true - preserve-comments: false - complete-copy: false - save-baseline: false - baseline-file: ./coverage/coverage-baseline.raw.json - include-all-sources: false - include-pid: false - es-modules: false - auto-wrap: false -reporting: - print: summary - reports: - - html - dir: ./coverage - summarizer: pkg - report-config: {} - watermarks: - statements: [50, 80] - functions: [50, 80] - branches: [50, 80] - lines: [50, 80] -hooks: - hook-run-in-context: false - post-require-hook: null - handle-sigint: false -check: - global: - statements: 100 - lines: 100 - branches: 100 - functions: 100 - excludes: [] - each: - statements: 100 - lines: 100 - branches: 100 - functions: 100 - excludes: [] diff --git a/node_modules/is-callable/.nycrc b/node_modules/is-callable/.nycrc index 1826526..bdd626c 100644 --- a/node_modules/is-callable/.nycrc +++ b/node_modules/is-callable/.nycrc @@ -2,10 +2,6 @@ "all": true, "check-coverage": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, "exclude": [ "coverage", "test" diff --git a/node_modules/is-callable/CHANGELOG.md b/node_modules/is-callable/CHANGELOG.md index 6b88f5b..32788cd 100644 --- a/node_modules/is-callable/CHANGELOG.md +++ b/node_modules/is-callable/CHANGELOG.md @@ -1,3 +1,67 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.7](https://github.com/inspect-js/is-callable/compare/v1.2.6...v1.2.7) - 2022-09-23 + +### Commits + +- [Fix] recognize `document.all` in IE 6-10 [`06c1db2`](https://github.com/inspect-js/is-callable/commit/06c1db2b9b2e0f28428e1293eb572f8f93871ec7) +- [Tests] improve logic for FF 20-35 [`0f7d9b9`](https://github.com/inspect-js/is-callable/commit/0f7d9b9c7fe149ca87e71f0a125ade251a6a578c) +- [Fix] handle `document.all` in FF 27 (and +, probably) [`696c661`](https://github.com/inspect-js/is-callable/commit/696c661b8c0810c2d05ab172f1607f4e77ddf81e) +- [Tests] fix proxy tests in FF 42-63 [`985df0d`](https://github.com/inspect-js/is-callable/commit/985df0dd36f8cfe6f1993657b7c0f4cfc19dae30) +- [readme] update tested browsers [`389e919`](https://github.com/inspect-js/is-callable/commit/389e919493b1cb2010126b0411e5291bf76169bd) +- [Fix] detect `document.all` in Opera 12.16 [`b9f1022`](https://github.com/inspect-js/is-callable/commit/b9f1022b3d7e466b7f09080bd64c253caf644325) +- [Fix] HTML elements: properly report as callable in Opera 12.16 [`17391fe`](https://github.com/inspect-js/is-callable/commit/17391fe02b895777c4337be28dca3b364b743b34) +- [Tests] fix inverted logic in FF3 test [`056ebd4`](https://github.com/inspect-js/is-callable/commit/056ebd48790f46ca18ff5b12f51b44c08ccc3595) + +## [v1.2.6](https://github.com/inspect-js/is-callable/compare/v1.2.5...v1.2.6) - 2022-09-14 + +### Commits + +- [Fix] work for `document.all` in Firefox 3 and IE 6-8 [`015132a`](https://github.com/inspect-js/is-callable/commit/015132aaef886ec777b5b3593ef4ce461dd0c7d4) +- [Test] skip function toString check for nullish values [`8698116`](https://github.com/inspect-js/is-callable/commit/8698116f95eb59df8b48ec8e4585fc1cdd8cae9f) +- [readme] add "supported engines" section [`0442207`](https://github.com/inspect-js/is-callable/commit/0442207a89a1554d41ba36daf21862ef7ccbd500) +- [Tests] skip one of the fixture objects in FF 3.6 [`a501141`](https://github.com/inspect-js/is-callable/commit/a5011410bc6edb276c6ec8b47ce5c5d83c4bee15) +- [Tests] allow `class` constructor tests to fail in FF v45 - v54, which has undetectable classes [`b12e4a4`](https://github.com/inspect-js/is-callable/commit/b12e4a4d8c438678bd7710f9f896680150766b51) +- [Fix] Safari 4: regexes should not be considered callable [`4b732ff`](https://github.com/inspect-js/is-callable/commit/4b732ffa34346db3f0193ea4e46b7d4e637e6c82) +- [Fix] properly recognize `document.all` in Safari 4 [`3193735`](https://github.com/inspect-js/is-callable/commit/319373525dc4603346661641840cd9a3e0613136) + +## [v1.2.5](https://github.com/inspect-js/is-callable/compare/v1.2.4...v1.2.5) - 2022-09-11 + +### Commits + +- [actions] reuse common workflows [`5bb4b32`](https://github.com/inspect-js/is-callable/commit/5bb4b32dc93987328ab4f396601f751c4a7abd62) +- [meta] better `eccheck` command [`b9bd597`](https://github.com/inspect-js/is-callable/commit/b9bd597322b6e3a24c74c09881ca73e1d9f9f485) +- [meta] use `npmignore` to autogenerate an npmignore file [`3192d38`](https://github.com/inspect-js/is-callable/commit/3192d38527c7fc461d05d5aa93d47628e658bc45) +- [Fix] for HTML constructors, always use `tryFunctionObject` even in pre-toStringTag browsers [`3076ea2`](https://github.com/inspect-js/is-callable/commit/3076ea21d1f6ecc1cb711dcf1da08f257892c72b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `available-typed-arrays`, `object-inspect`, `safe-publish-latest`, `tape` [`8986746`](https://github.com/inspect-js/is-callable/commit/89867464c42adc5cd375ee074a4574b0295442cb) +- [meta] add `auto-changelog` [`7dda9d0`](https://github.com/inspect-js/is-callable/commit/7dda9d04e670a69ae566c8fa596da4ff4371e615) +- [Fix] properly report `document.all` [`da90b2b`](https://github.com/inspect-js/is-callable/commit/da90b2b68dc4f33702c2e01ad07b4f89bcb60984) +- [actions] update codecov uploader [`c8f847c`](https://github.com/inspect-js/is-callable/commit/c8f847c90e04e54ff73c7cfae86e96e94990e324) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`899ae00`](https://github.com/inspect-js/is-callable/commit/899ae00b6abd10d81fc8bc7f02b345fd885d5f56) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `es-value-fixtures`, `object-inspect`, `tape` [`344e913`](https://github.com/inspect-js/is-callable/commit/344e913b149609bf741aa7345fa32dc0b90d8893) +- [meta] remove greenkeeper config [`737dce5`](https://github.com/inspect-js/is-callable/commit/737dce5590b1abb16183a63cb9d7d26920b3b394) +- [meta] npmignore coverage output [`680a883`](https://github.com/inspect-js/is-callable/commit/680a8839071bf36a419fe66e1ced7a3303c27b28) + + +1.2.4 / 2021-08-05 +================= + * [Fix] use `has-tostringtag` approach to behave correctly in the presence of symbol shams + * [readme] fix repo URLs + * [readme] add actions and codecov badges + * [readme] remove defunct badges + * [meta] ignore eclint checking coverage output + * [meta] use `prepublishOnly` script for npm 7+ + * [actions] use `node/install` instead of `node/run`; use `codecov` action + * [actions] remove unused workflow file + * [Tests] run `nyc` on all tests; use `tape` runner + * [Tests] use `available-typed-arrays`, `for-each`, `has-symbols`, `object-inspect` + * [Dev Deps] update `available-typed-arrays`, `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` + 1.2.3 / 2021-01-31 ================= * [Fix] `document.all` is callable (do not use `document.all`!) diff --git a/node_modules/is-callable/README.md b/node_modules/is-callable/README.md index b5c965c..4f2b6d6 100644 --- a/node_modules/is-callable/README.md +++ b/node_modules/is-callable/README.md @@ -1,6 +1,7 @@ # is-callable [![Version Badge][2]][1] -[![Build Status][3]][4] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] @@ -8,10 +9,24 @@ [![npm badge][11]][1] -[![browser support][9]][10] - Is this JS value callable? Works with Functions and GeneratorFunctions, despite ES6 @@toStringTag. +## Supported engines +Automatically tested in every minor version of node. + +Manually tested in: + - Safari: v4 - v15 (4, 5, 5.1, 6.0.5, 6.2, 7.1, 8, 9.1.3, 10.1.2, 11.1.2, 12.1, 13.1.2, 14.1.2, 15.3, 15.6.1) + - Note: Safari 9 has `class`, but `Function.prototype.toString` hides that progeny and makes them look like functions, so `class` constructors will be reported by this package as callable, when they are not in fact callable. + - Chrome: v15 - v81, v83 - v106(every integer version) + - Note: This includes Edge v80+ and Opera v15+, which matches Chrome + - Firefox: v3, v3.6, v4 - v105 (every integer version) + - Note: v45 - v54 has `class`, but `Function.prototype.toString` hides that progeny and makes them look like functions, so `class` constructors will be reported by this package as callable, when they are not in fact callable. + - Note: in v42 - v63, `Function.prototype.toString` throws on HTML element constructors, or a Proxy to a function + - Note: in v20 - v35, HTML element constructors are not callable, despite having typeof `function`. + - Note: in v19, `document.all` is not callable. + - IE: v6 - v11(every integer version + - Opera: v11.1, v11.5, v11.6, v12.1, v12.14, v12.15, v12.16, v15+ v15+ matches Chrome + ## Example ```js @@ -52,17 +67,17 @@ npm install is-callable Simply clone the repo, `npm install`, and run `npm test` [1]: https://npmjs.org/package/is-callable -[2]: http://versionbadg.es/ljharb/is-callable.svg -[3]: https://travis-ci.org/ljharb/is-callable.svg -[4]: https://travis-ci.org/ljharb/is-callable -[5]: https://david-dm.org/ljharb/is-callable.svg -[6]: https://david-dm.org/ljharb/is-callable -[7]: https://david-dm.org/ljharb/is-callable/dev-status.svg -[8]: https://david-dm.org/ljharb/is-callable#info=devDependencies -[9]: https://ci.testling.com/ljharb/is-callable.png -[10]: https://ci.testling.com/ljharb/is-callable +[2]: https://versionbadg.es/inspect-js/is-callable.svg +[5]: https://david-dm.org/inspect-js/is-callable.svg +[6]: https://david-dm.org/inspect-js/is-callable +[7]: https://david-dm.org/inspect-js/is-callable/dev-status.svg +[8]: https://david-dm.org/inspect-js/is-callable#info=devDependencies [11]: https://nodei.co/npm/is-callable.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-callable.svg +[license-image]: https://img.shields.io/npm/l/is-callable.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-callable.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-callable +[downloads-image]: https://img.shields.io/npm/dm/is-callable.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-callable +[codecov-image]: https://codecov.io/gh/inspect-js/is-callable/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-callable/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-callable +[actions-url]: https://github.com/inspect-js/is-callable/actions diff --git a/node_modules/is-callable/index.js b/node_modules/is-callable/index.js index f36d71d..f2a89f8 100644 --- a/node_modules/is-callable/index.js +++ b/node_modules/is-callable/index.js @@ -43,32 +43,59 @@ var tryFunctionObject = function tryFunctionToStr(value) { } }; var toStr = Object.prototype.toString; +var objectClass = '[object Object]'; var fnClass = '[object Function]'; var genClass = '[object GeneratorFunction]'; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; -/* globals document: false */ -var documentDotAll = typeof document === 'object' && typeof document.all === 'undefined' && document.all !== undefined ? document.all : {}; +var ddaClass = '[object HTMLAllCollection]'; // IE 11 +var ddaClass2 = '[object HTML document.all class]'; +var ddaClass3 = '[object HTMLCollection]'; // IE 9-10 +var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag` + +var isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing + +var isDDA = function isDocumentDotAll() { return false; }; +if (typeof document === 'object') { + // Firefox 3 canonicalizes DDA to undefined when it's not accessed directly + var all = document.all; + if (toStr.call(all) === toStr.call(document.all)) { + isDDA = function isDocumentDotAll(value) { + /* globals document: false */ + // in IE 6-8, typeof document.all is "object" and it's truthy + if ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) { + try { + var str = toStr.call(value); + return ( + str === ddaClass + || str === ddaClass2 + || str === ddaClass3 // opera 12.16 + || str === objectClass // IE 6-8 + ) && value('') == null; // eslint-disable-line eqeqeq + } catch (e) { /**/ } + } + return false; + }; + } +} module.exports = reflectApply ? function isCallable(value) { - if (value === documentDotAll) { return true; } + if (isDDA(value)) { return true; } if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } - if (typeof value === 'function' && !value.prototype) { return true; } try { reflectApply(value, null, badArrayLike); } catch (e) { if (e !== isCallableMarker) { return false; } } - return !isES6ClassFn(value); + return !isES6ClassFn(value) && tryFunctionObject(value); } : function isCallable(value) { - if (value === documentDotAll) { return true; } + if (isDDA(value)) { return true; } if (!value) { return false; } if (typeof value !== 'function' && typeof value !== 'object') { return false; } - if (typeof value === 'function' && !value.prototype) { return true; } if (hasToStringTag) { return tryFunctionObject(value); } if (isES6ClassFn(value)) { return false; } var strClass = toStr.call(value); - return strClass === fnClass || strClass === genClass; + if (strClass !== fnClass && strClass !== genClass && !(/^\[object HTML/).test(strClass)) { return false; } + return tryFunctionObject(value); }; diff --git a/node_modules/is-callable/package.json b/node_modules/is-callable/package.json index fe36c0a..aa3e8df 100644 --- a/node_modules/is-callable/package.json +++ b/node_modules/is-callable/package.json @@ -1,6 +1,6 @@ { "name": "is-callable", - "version": "1.2.3", + "version": "1.2.7", "author": { "name": "Jordan Harband", "email": "ljharb@gmail.com", @@ -20,27 +20,21 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepack": "npmignore --auto --commentLines=autogenerated", + "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)\")\"", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "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 ." + "test": "npm run tests-only --", + "posttest": "aud --production", + "tests-only": "nyc tape 'test/**/*.js'", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs ." }, "repository": { "type": "git", - "url": "git://github.com/ljharb/is-callable.git" + "url": "git://github.com/inspect-js/is-callable.git" }, "keywords": [ "Function", @@ -54,22 +48,25 @@ "toStringTag", "@@toStringTag" ], - "dependencies": {}, "devDependencies": { - "@ljharb/eslint-config": "^17.5.0", - "aud": "^1.1.3", - "covert": "^1.1.1", + "@ljharb/eslint-config": "^21.0.0", + "aud": "^2.0.0", + "auto-changelog": "^2.4.0", + "available-typed-arrays": "^1.0.5", "eclint": "^2.8.1", - "eslint": "^7.19.0", - "foreach": "^2.0.5", - "istanbul": "1.1.0-alpha.1", - "istanbul-merge": "^1.1.1", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", "make-arrow-function": "^1.2.0", "make-async-function": "^1.0.0", "make-generator-function": "^2.0.0", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "object-inspect": "^1.12.2", "rimraf": "^2.7.1", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.0" }, "testling": { "files": "test/index.js", @@ -92,9 +89,18 @@ "engines": { "node": ">= 0.4" }, - "greenkeeper": { + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true, + "startingVersion": "v1.2.5" + }, + "publishConfig": { "ignore": [ - "rimraf" + ".github/workflows" ] } } diff --git a/node_modules/is-callable/test/index.js b/node_modules/is-callable/test/index.js index 2eacb0e..bfe5db5 100644 --- a/node_modules/is-callable/test/index.js +++ b/node_modules/is-callable/test/index.js @@ -1,11 +1,14 @@ 'use strict'; -/* globals Proxy */ /* eslint no-magic-numbers: 1 */ var test = require('tape'); var isCallable = require('../'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); +var v = require('es-value-fixtures'); +var forEach = require('for-each'); +var inspect = require('object-inspect'); +var typedArrayNames = require('available-typed-arrays')(); var generators = require('make-generator-function')(); var arrows = require('make-arrow-function').list(); var asyncs = require('make-async-function').list(); @@ -15,7 +18,16 @@ try { weirdlyCommentedArrowFn = Function('return cl/*/**/=>/**/ass - 1;')(); /* eslint-enable no-new-func */ } catch (e) { /**/ } -var forEach = require('foreach'); + +var isIE68 = !(0 in [undefined]); +var isFirefox = typeof window !== 'undefined' && ('netscape' in window) && (/ rv:/).test(navigator.userAgent); +var fnToStringCoerces; +try { + Function.prototype.toString.call(v.uncoercibleFnObject); + fnToStringCoerces = true; +} catch (e) { + fnToStringCoerces = false; +} var noop = function () {}; var classFake = function classFake() { }; // eslint-disable-line func-name-matching @@ -36,11 +48,8 @@ if (typeof Proxy === 'function') { proxy(); String(proxy); } catch (_) { - // If `Reflect` is supported, then `Function.prototype.toString` isn't used for callability detection. - if (typeof Reflect !== 'object') { - // Older engines throw a `TypeError` when `Function.prototype.toString` is called on a Proxy object. - proxy = null; - } + // Older engines throw a `TypeError` when `Function.prototype.toString` is called on a Proxy object. + proxy = null; } } @@ -56,6 +65,7 @@ var invokeFunction = function invokeFunctionString(str) { }; var classConstructor = invokeFunction('"use strict"; return class Foo {}'); +var hasDetectableClasses = classConstructor && Function.prototype.toString.call(classConstructor) === 'class Foo {}'; var commentedClass = invokeFunction('"use strict"; return class/*kkk*/\n//blah\n Bar\n//blah\n {}'); var commentedClassOneLine = invokeFunction('"use strict"; return class/**/A{}'); @@ -63,46 +73,51 @@ var classAnonymous = invokeFunction('"use strict"; return class{}'); var classAnonymousCommentedOneLine = invokeFunction('"use strict"; return class/*/*/{}'); test('not callables', function (t) { - t.test('non-number/string primitives', function (st) { - st.notOk(isCallable(), 'undefined is not callable'); - st.notOk(isCallable(null), 'null is not callable'); - st.notOk(isCallable(false), 'false is not callable'); - st.notOk(isCallable(true), 'true is not callable'); - st.end(); - }); - - t.notOk(isCallable([]), 'array is not callable'); - t.notOk(isCallable({}), 'object is not callable'); - t.notOk(isCallable(/a/g), 'regex literal is not callable'); - t.notOk(isCallable(new RegExp('a', 'g')), 'regex object is not callable'); - t.notOk(isCallable(new Date()), 'new Date() is not callable'); - - t.test('numbers', function (st) { - st.notOk(isCallable(42), 'number is not callable'); - st.notOk(isCallable(Object(42)), 'number object is not callable'); - st.notOk(isCallable(NaN), 'NaN is not callable'); - st.notOk(isCallable(Infinity), 'Infinity is not callable'); - st.end(); - }); - - t.test('strings', function (st) { - st.notOk(isCallable('foo'), 'string primitive is not callable'); - st.notOk(isCallable(Object('foo')), 'string object is not callable'); - st.end(); + t.notOk(isCallable(), 'implicit undefined is not callable'); + + forEach(v.nonFunctions.concat([ + Object(42), + Object('foo'), + NaN, + [], + /a/g, + new RegExp('a', 'g'), + new Date() + ]), function (nonFunction) { + if (fnToStringCoerces && nonFunction === v.coercibleFnObject) { + t.comment('FF 3.6 has a Function toString that coerces its receiver, so this test is skipped'); + return; + } + if (nonFunction != null) { // eslint-disable-line eqeqeq + if (isFirefox) { + // Firefox 3 throws some kind of *object* here instead of a proper error + t['throws']( + function () { Function.prototype.toString.call(nonFunction); }, + inspect(nonFunction) + ' can not be used with Function toString' + ); + } else { + t['throws']( + function () { Function.prototype.toString.call(nonFunction); }, + TypeError, + inspect(nonFunction) + ' can not be used with Function toString' + ); + } + } + t.equal(isCallable(nonFunction), false, inspect(nonFunction) + ' is not callable'); }); t.test('non-function with function in its [[Prototype]] chain', function (st) { var Foo = function Bar() {}; Foo.prototype = noop; - st.equal(true, isCallable(Foo), 'sanity check: Foo is callable'); - st.equal(false, isCallable(new Foo()), 'instance of Foo is not callable'); + st.equal(isCallable(Foo), true, 'sanity check: Foo is callable'); + st.equal(isCallable(new Foo()), false, 'instance of Foo is not callable'); st.end(); }); t.end(); }); -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { +test('@@toStringTag', { skip: !hasToStringTag }, function (t) { var fakeFunction = { toString: function () { return String(return3); }, valueOf: return3 @@ -114,18 +129,6 @@ test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) t.end(); }); -var typedArrayNames = [ - 'Int8Array', - 'Uint8Array', - 'Uint8ClampedArray', - 'Int16Array', - 'Uint16Array', - 'Int32Array', - 'Uint32Array', - 'Float32Array', - 'Float64Array' -]; - test('Functions', function (t) { t.ok(isCallable(noop), 'function is callable'); t.ok(isCallable(classFake), 'function with name containing "class" is callable'); @@ -134,14 +137,9 @@ test('Functions', function (t) { t.end(); }); -test('Typed Arrays', function (st) { +test('Typed Arrays', { skip: typedArrayNames.length === 0 }, function (st) { forEach(typedArrayNames, function (typedArray) { - /* istanbul ignore if : covered in node 0.6 */ - if (typeof global[typedArray] === 'undefined') { - st.comment('# SKIP typed array "' + typedArray + '" not supported'); - } else { - st.ok(isCallable(global[typedArray]), typedArray + ' is callable'); - } + st.ok(isCallable(global[typedArray]), typedArray + ' is callable'); }); st.end(); }); @@ -161,7 +159,12 @@ test('Arrow functions', { skip: arrows.length === 0 }, function (t) { t.end(); }); -test('"Class" constructors', { skip: !classConstructor || !commentedClass || !commentedClassOneLine || !classAnonymous }, function (t) { +test('"Class" constructors', { + skip: !classConstructor || !commentedClass || !commentedClassOneLine || !classAnonymous, todo: !hasDetectableClasses +}, function (t) { + if (!hasDetectableClasses) { + t.comment('WARNING: This engine does not support detectable classes'); + } t.notOk(isCallable(classConstructor), 'class constructors are not callable'); t.notOk(isCallable(commentedClass), 'class constructors with comments in the signature are not callable'); t.notOk(isCallable(commentedClassOneLine), 'one-line class constructors with comments in the signature are not callable'); @@ -178,7 +181,7 @@ test('`async function`s', { skip: asyncs.length === 0 }, function (t) { }); test('proxies of functions', { skip: !proxy }, function (t) { - t.ok(isCallable(proxy), 'proxies of functions are callable'); + t.equal(isCallable(proxy), true, 'proxies of functions are callable'); t.end(); }); @@ -189,10 +192,53 @@ test('throwing functions', function (t) { t.ok(isCallable(thrower), 'a function that throws is callable'); }); -/* globals document: false */ -test('document.all', { skip: typeof document !== 'object' }, function (t) { - t.notOk(isCallable(document), 'document is not callable'); - t.ok(isCallable(document.all), 'document.all is callable'); +test('DOM', function (t) { + /* eslint-env browser */ + + t.test('document.all', { skip: typeof document !== 'object' }, function (st) { + st.notOk(isCallable(document), 'document is not callable'); + + var all = document.all; + var isFF3 = !isIE68 && Object.prototype.toString(all) === Object.prototype.toString.call(document.all); // this test is true in IE 6-8 also + var expected = false; + if (!isFF3) { + try { + expected = document.all('') == null; // eslint-disable-line eqeqeq + } catch (e) { /**/ } + } + st.equal(isCallable(document.all), expected, 'document.all is ' + (isFF3 ? 'not ' : '') + 'callable'); + + st.end(); + }); + + forEach([ + 'HTMLElement', + 'HTMLAnchorElement' + ], function (name) { + var constructor = global[name]; + + t.test(name, { skip: !constructor }, function (st) { + st.match(typeof constructor, /^(?:function|object)$/, name + ' is a function or object'); + + var callable = isCallable(constructor); + st.equal(typeof callable, 'boolean'); + + if (callable) { + st.doesNotThrow( + function () { Function.prototype.toString.call(constructor); }, + 'anything this library claims is callable should be accepted by Function toString' + ); + } else { + st['throws']( + function () { Function.prototype.toString.call(constructor); }, + TypeError, + 'anything this library claims is not callable should not be accepted by Function toString' + ); + } + + st.end(); + }); + }); t.end(); }); diff --git a/node_modules/is-core-module/.eslintignore b/node_modules/is-core-module/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-core-module/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-core-module/.eslintrc b/node_modules/is-core-module/.eslintrc index 9c7d516..f2e0726 100644 --- a/node_modules/is-core-module/.eslintrc +++ b/node_modules/is-core-module/.eslintrc @@ -3,13 +3,13 @@ "root": true, "rules": { "func-style": 1, - "operator-linebreak": [2, "before"], }, "overrides": [ { "files": "test/**", "rules": { "global-require": 0, + "max-depth": 0, "max-lines-per-function": 0, "no-negated-condition": 0, }, diff --git a/node_modules/is-core-module/CHANGELOG.md b/node_modules/is-core-module/CHANGELOG.md index 1445627..f44fd84 100644 --- a/node_modules/is-core-module/CHANGELOG.md +++ b/node_modules/is-core-module/CHANGELOG.md @@ -5,6 +5,89 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v2.13.0](https://github.com/inspect-js/is-core-module/compare/v2.12.1...v2.13.0) - 2023-08-05 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `semver`, `tape` [`c75b263`](https://github.com/inspect-js/is-core-module/commit/c75b263d047cb53430c3970107e5eb64d6cd6c0c) +- [New] `node:test/reporters` and `wasi`/`node:wasi` are in v18.17 [`d76cbf8`](https://github.com/inspect-js/is-core-module/commit/d76cbf8e9b208acfd98913fed5a5f45cb15fe5dc) + +## [v2.12.1](https://github.com/inspect-js/is-core-module/compare/v2.12.0...v2.12.1) - 2023-05-16 + +### Commits + +- [Fix] `test/reporters` now requires the `node:` prefix as of v20.2 [`12183d0`](https://github.com/inspect-js/is-core-module/commit/12183d0d8e4edf56b6ce18a1b3be54bfce10175b) + +## [v2.12.0](https://github.com/inspect-js/is-core-module/compare/v2.11.0...v2.12.0) - 2023-04-10 + +### Commits + +- [actions] update rebase action to use reusable workflow [`c0a7251`](https://github.com/inspect-js/is-core-module/commit/c0a7251f734f3c621932c5fcdfd1bf966b42ca32) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`9ae8b7f`](https://github.com/inspect-js/is-core-module/commit/9ae8b7fac03c369861d0991b4a2ce8d4848e6a7d) +- [New] `test/reporters` added in v19.9, `wasi` added in v20 [`9d5341a`](https://github.com/inspect-js/is-core-module/commit/9d5341ab32053f25b7fa7db3c0e18461db24a79c) +- [Dev Deps] add missing `in-publish` dep [`5980245`](https://github.com/inspect-js/is-core-module/commit/59802456e9ac919fa748f53be9d8fbf304a197df) + +## [v2.11.0](https://github.com/inspect-js/is-core-module/compare/v2.10.0...v2.11.0) - 2022-10-18 + +### Commits + +- [meta] use `npmignore` to autogenerate an npmignore file [`3360011`](https://github.com/inspect-js/is-core-module/commit/33600118857b46177178072fba2affcdeb009d12) +- [Dev Deps] update `aud`, `tape` [`651c6b0`](https://github.com/inspect-js/is-core-module/commit/651c6b0cc2799d4130866cf43ad333dcade3d26c) +- [New] `inspector/promises` and `node:inspector/promises` is now available in node 19 [`22d332f`](https://github.com/inspect-js/is-core-module/commit/22d332fe22ac050305444e0781ff85af819abcb0) + +## [v2.10.0](https://github.com/inspect-js/is-core-module/compare/v2.9.0...v2.10.0) - 2022-08-03 + +### Commits + +- [New] `node:test` is now available in node ^16.17 [`e8fd36e`](https://github.com/inspect-js/is-core-module/commit/e8fd36e9b86c917775a07cc473b62a3294f459f2) +- [Tests] improve skip message [`c014a4c`](https://github.com/inspect-js/is-core-module/commit/c014a4c0cd6eb15fff573ae4709191775e70cab4) + +## [v2.9.0](https://github.com/inspect-js/is-core-module/compare/v2.8.1...v2.9.0) - 2022-04-19 + +### Commits + +- [New] add `node:test`, in node 18+ [`f853eca`](https://github.com/inspect-js/is-core-module/commit/f853eca801d0a7d4e1dbb670f1b6d9837d9533c5) +- [Tests] use `mock-property` [`03b3644`](https://github.com/inspect-js/is-core-module/commit/03b3644dff4417f4ba5a7d0aa0138f5f6b3e5c46) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`7c0e2d0`](https://github.com/inspect-js/is-core-module/commit/7c0e2d06ed2a89acf53abe2ab34d703ed5b03455) +- [meta] simplify "exports" [`d6ed201`](https://github.com/inspect-js/is-core-module/commit/d6ed201eba7fbba0e59814a9050fc49a6e9878c8) + +## [v2.8.1](https://github.com/inspect-js/is-core-module/compare/v2.8.0...v2.8.1) - 2022-01-05 + +### Commits + +- [actions] reuse common workflows [`cd2cf9b`](https://github.com/inspect-js/is-core-module/commit/cd2cf9b3b66c8d328f65610efe41e9325db7716d) +- [Fix] update node 0.4 results [`062195d`](https://github.com/inspect-js/is-core-module/commit/062195d89f0876a88b95d378b43f7fcc1205bc5b) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`0790b62`](https://github.com/inspect-js/is-core-module/commit/0790b6222848c6167132f9f73acc3520fa8d1298) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7d139a6`](https://github.com/inspect-js/is-core-module/commit/7d139a6d767709eabf0a0251e074ec1fb230c06e) +- [Tests] run `nyc` in `tests-only`, not `test` [`780e8a0`](https://github.com/inspect-js/is-core-module/commit/780e8a049951c71cf78b1707f0871c48a28bde14) + +## [v2.8.0](https://github.com/inspect-js/is-core-module/compare/v2.7.0...v2.8.0) - 2021-10-14 + +### Commits + +- [actions] update codecov uploader [`0cfe94e`](https://github.com/inspect-js/is-core-module/commit/0cfe94e106a7d005ea03e008c0a21dec13a77904) +- [New] add `readline/promises` to node v17+ [`4f78c30`](https://github.com/inspect-js/is-core-module/commit/4f78c3008b1b58b4db6dc91d99610b1bc859da7e) +- [Tests] node ^14.18 supports `node:` prefixes for CJS [`43e2f17`](https://github.com/inspect-js/is-core-module/commit/43e2f177452cea2f0eaf34f61b5407217bbdb6f4) + +## [v2.7.0](https://github.com/inspect-js/is-core-module/compare/v2.6.0...v2.7.0) - 2021-09-27 + +### Commits + +- [New] node `v14.18` added `node:`-prefixed core modules to `require` [`6d943ab`](https://github.com/inspect-js/is-core-module/commit/6d943abe81382b9bbe344384d80fbfebe1cc0526) +- [Tests] add coverage for Object.prototype pollution [`c6baf5f`](https://github.com/inspect-js/is-core-module/commit/c6baf5f942311a1945c1af41167bb80b84df2af7) +- [Dev Deps] update `@ljharb/eslint-config` [`6717f00`](https://github.com/inspect-js/is-core-module/commit/6717f000d063ea57beb772bded36c2f056ac404c) +- [eslint] fix linter warning [`594c10b`](https://github.com/inspect-js/is-core-module/commit/594c10bb7d39d7eb00925c90924199ff596184b2) +- [meta] add `sideEffects` flag [`c32cfa5`](https://github.com/inspect-js/is-core-module/commit/c32cfa5195632944c4dd4284a142b8476e75be13) + +## [v2.6.0](https://github.com/inspect-js/is-core-module/compare/v2.5.0...v2.6.0) - 2021-08-17 + +### Commits + +- [Dev Deps] update `eslint`, `tape` [`6cc928f`](https://github.com/inspect-js/is-core-module/commit/6cc928f8a4bba66aeeccc4f6beeac736d4bd3081) +- [New] add `stream/consumers` to node `>= 16.7` [`a1a423e`](https://github.com/inspect-js/is-core-module/commit/a1a423e467e4cc27df180234fad5bab45943e67d) +- [Refactor] Remove duplicated `&&` operand [`86faea7`](https://github.com/inspect-js/is-core-module/commit/86faea738213a2433c62d1098488dc9314dca832) +- [Tests] include prereleases [`a4da7a6`](https://github.com/inspect-js/is-core-module/commit/a4da7a6abf7568e2aa4fd98e69452179f1850963) + ## [v2.5.0](https://github.com/inspect-js/is-core-module/compare/v2.4.0...v2.5.0) - 2021-07-12 ### Commits diff --git a/node_modules/is-core-module/core.json b/node_modules/is-core-module/core.json index 773222f..3cda693 100644 --- a/node_modules/is-core-module/core.json +++ b/node_modules/is-core-module/core.json @@ -1,132 +1,141 @@ { "assert": true, - "node:assert": ">= 16", + "node:assert": [">= 14.18 && < 15", ">= 16"], "assert/strict": ">= 15", "node:assert/strict": ">= 16", "async_hooks": ">= 8", - "node:async_hooks": ">= 16", - "buffer_ieee754": "< 0.9.7", + "node:async_hooks": [">= 14.18 && < 15", ">= 16"], + "buffer_ieee754": ">= 0.5 && < 0.9.7", "buffer": true, - "node:buffer": ">= 16", + "node:buffer": [">= 14.18 && < 15", ">= 16"], "child_process": true, - "node:child_process": ">= 16", - "cluster": true, - "node:cluster": ">= 16", + "node:child_process": [">= 14.18 && < 15", ">= 16"], + "cluster": ">= 0.5", + "node:cluster": [">= 14.18 && < 15", ">= 16"], "console": true, - "node:console": ">= 16", + "node:console": [">= 14.18 && < 15", ">= 16"], "constants": true, - "node:constants": ">= 16", + "node:constants": [">= 14.18 && < 15", ">= 16"], "crypto": true, - "node:crypto": ">= 16", + "node:crypto": [">= 14.18 && < 15", ">= 16"], "_debug_agent": ">= 1 && < 8", "_debugger": "< 8", "dgram": true, - "node:dgram": ">= 16", + "node:dgram": [">= 14.18 && < 15", ">= 16"], "diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"], - "node:diagnostics_channel": ">= 16", + "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], "dns": true, - "node:dns": ">= 16", + "node:dns": [">= 14.18 && < 15", ">= 16"], "dns/promises": ">= 15", "node:dns/promises": ">= 16", "domain": ">= 0.7.12", - "node:domain": ">= 16", + "node:domain": [">= 14.18 && < 15", ">= 16"], "events": true, - "node:events": ">= 16", + "node:events": [">= 14.18 && < 15", ">= 16"], "freelist": "< 6", "fs": true, - "node:fs": ">= 16", + "node:fs": [">= 14.18 && < 15", ">= 16"], "fs/promises": [">= 10 && < 10.1", ">= 14"], - "node:fs/promises": ">= 16", + "node:fs/promises": [">= 14.18 && < 15", ">= 16"], "_http_agent": ">= 0.11.1", - "node:_http_agent": ">= 16", + "node:_http_agent": [">= 14.18 && < 15", ">= 16"], "_http_client": ">= 0.11.1", - "node:_http_client": ">= 16", + "node:_http_client": [">= 14.18 && < 15", ">= 16"], "_http_common": ">= 0.11.1", - "node:_http_common": ">= 16", + "node:_http_common": [">= 14.18 && < 15", ">= 16"], "_http_incoming": ">= 0.11.1", - "node:_http_incoming": ">= 16", + "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], "_http_outgoing": ">= 0.11.1", - "node:_http_outgoing": ">= 16", + "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], "_http_server": ">= 0.11.1", - "node:_http_server": ">= 16", + "node:_http_server": [">= 14.18 && < 15", ">= 16"], "http": true, - "node:http": ">= 16", + "node:http": [">= 14.18 && < 15", ">= 16"], "http2": ">= 8.8", - "node:http2": ">= 16", + "node:http2": [">= 14.18 && < 15", ">= 16"], "https": true, - "node:https": ">= 16", + "node:https": [">= 14.18 && < 15", ">= 16"], "inspector": ">= 8", - "node:inspector": ">= 16", + "node:inspector": [">= 14.18 && < 15", ">= 16"], + "inspector/promises": [">= 19"], + "node:inspector/promises": [">= 19"], "_linklist": "< 8", "module": true, - "node:module": ">= 16", + "node:module": [">= 14.18 && < 15", ">= 16"], "net": true, - "node:net": ">= 16", + "node:net": [">= 14.18 && < 15", ">= 16"], "node-inspect/lib/_inspect": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", "os": true, - "node:os": ">= 16", + "node:os": [">= 14.18 && < 15", ">= 16"], "path": true, - "node:path": ">= 16", + "node:path": [">= 14.18 && < 15", ">= 16"], "path/posix": ">= 15.3", "node:path/posix": ">= 16", "path/win32": ">= 15.3", "node:path/win32": ">= 16", "perf_hooks": ">= 8.5", - "node:perf_hooks": ">= 16", + "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], "process": ">= 1", - "node:process": ">= 16", - "punycode": true, - "node:punycode": ">= 16", + "node:process": [">= 14.18 && < 15", ">= 16"], + "punycode": ">= 0.5", + "node:punycode": [">= 14.18 && < 15", ">= 16"], "querystring": true, - "node:querystring": ">= 16", + "node:querystring": [">= 14.18 && < 15", ">= 16"], "readline": true, - "node:readline": ">= 16", + "node:readline": [">= 14.18 && < 15", ">= 16"], + "readline/promises": ">= 17", + "node:readline/promises": ">= 17", "repl": true, - "node:repl": ">= 16", + "node:repl": [">= 14.18 && < 15", ">= 16"], "smalloc": ">= 0.11.5 && < 3", "_stream_duplex": ">= 0.9.4", - "node:_stream_duplex": ">= 16", + "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], "_stream_transform": ">= 0.9.4", - "node:_stream_transform": ">= 16", + "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], "_stream_wrap": ">= 1.4.1", - "node:_stream_wrap": ">= 16", + "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], "_stream_passthrough": ">= 0.9.4", - "node:_stream_passthrough": ">= 16", + "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], "_stream_readable": ">= 0.9.4", - "node:_stream_readable": ">= 16", + "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], "_stream_writable": ">= 0.9.4", - "node:_stream_writable": ">= 16", + "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], "stream": true, - "node:stream": ">= 16", + "node:stream": [">= 14.18 && < 15", ">= 16"], + "stream/consumers": ">= 16.7", + "node:stream/consumers": ">= 16.7", "stream/promises": ">= 15", "node:stream/promises": ">= 16", "stream/web": ">= 16.5", "node:stream/web": ">= 16.5", "string_decoder": true, - "node:string_decoder": ">= 16", - "sys": [">= 0.6 && < 0.7", ">= 0.8"], - "node:sys": ">= 16", + "node:string_decoder": [">= 14.18 && < 15", ">= 16"], + "sys": [">= 0.4 && < 0.7", ">= 0.8"], + "node:sys": [">= 14.18 && < 15", ">= 16"], + "test/reporters": ">= 19.9 && < 20.2", + "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], + "node:test": [">= 16.17 && < 17", ">= 18"], "timers": true, - "node:timers": ">= 16", + "node:timers": [">= 14.18 && < 15", ">= 16"], "timers/promises": ">= 15", "node:timers/promises": ">= 16", "_tls_common": ">= 0.11.13", - "node:_tls_common": ">= 16", + "node:_tls_common": [">= 14.18 && < 15", ">= 16"], "_tls_legacy": ">= 0.11.3 && < 10", "_tls_wrap": ">= 0.11.3", - "node:_tls_wrap": ">= 16", + "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], "tls": true, - "node:tls": ">= 16", + "node:tls": [">= 14.18 && < 15", ">= 16"], "trace_events": ">= 10", - "node:trace_events": ">= 16", + "node:trace_events": [">= 14.18 && < 15", ">= 16"], "tty": true, - "node:tty": ">= 16", + "node:tty": [">= 14.18 && < 15", ">= 16"], "url": true, - "node:url": ">= 16", + "node:url": [">= 14.18 && < 15", ">= 16"], "util": true, - "node:util": ">= 16", + "node:util": [">= 14.18 && < 15", ">= 16"], "util/types": ">= 15.3", "node:util/types": ">= 16", "v8/tools/arguments": ">= 10 && < 12", @@ -137,12 +146,13 @@ "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8": ">= 1", - "node:v8": ">= 16", + "node:v8": [">= 14.18 && < 15", ">= 16"], "vm": true, - "node:vm": ">= 16", - "wasi": ">= 13.4 && < 13.5", + "node:vm": [">= 14.18 && < 15", ">= 16"], + "wasi": [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], + "node:wasi": [">= 18.17 && < 19", ">= 20"], "worker_threads": ">= 11.7", - "node:worker_threads": ">= 16", - "zlib": true, - "node:zlib": ">= 16" + "node:worker_threads": [">= 14.18 && < 15", ">= 16"], + "zlib": ">= 0.5", + "node:zlib": [">= 14.18 && < 15", ">= 16"] } diff --git a/node_modules/is-core-module/index.js b/node_modules/is-core-module/index.js index f5a69cf..f9637e0 100644 --- a/node_modules/is-core-module/index.js +++ b/node_modules/is-core-module/index.js @@ -44,7 +44,7 @@ function versionIncluded(nodeVersion, specifierValue) { } var current = typeof nodeVersion === 'undefined' - ? process.versions && process.versions.node && process.versions.node + ? process.versions && process.versions.node : nodeVersion; if (typeof current !== 'string') { diff --git a/node_modules/is-core-module/package.json b/node_modules/is-core-module/package.json index 464294e..1269c80 100644 --- a/node_modules/is-core-module/package.json +++ b/node_modules/is-core-module/package.json @@ -1,24 +1,21 @@ { "name": "is-core-module", - "version": "2.5.0", + "version": "2.13.0", "description": "Is this specifier a node.js core module?", "main": "index.js", + "sideEffects": false, "exports": { - ".": [ - { - "default": "./index.js" - }, - "./index.js" - ], + ".": "./index.js", "./package.json": "./package.json" }, "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", "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", + "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)\")\"" @@ -48,14 +45,17 @@ "has": "^1.0.3" }, "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", - "auto-changelog": "^2.3.0", - "eslint": "^7.30.0", + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "mock-property": "^1.0.0", + "npmignore": "^0.3.0", "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "semver": "^6.3.0", - "tape": "^5.2.2" + "safe-publish-latest": "^2.0.0", + "semver": "^6.3.1", + "tape": "^5.6.6" }, "auto-changelog": { "output": "CHANGELOG.md", @@ -64,5 +64,10 @@ "commitLimit": false, "backfillLimit": false, "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github" + ] } } diff --git a/node_modules/is-core-module/test/index.js b/node_modules/is-core-module/test/index.js index 281c7e9..912808b 100644 --- a/node_modules/is-core-module/test/index.js +++ b/node_modules/is-core-module/test/index.js @@ -3,10 +3,12 @@ var test = require('tape'); var keys = require('object-keys'); var semver = require('semver'); +var mockProperty = require('mock-property'); + var isCore = require('../'); var data = require('../core.json'); -var supportsNodePrefix = semver.satisfies(process.versions.node, '>= 16'); +var supportsNodePrefix = semver.satisfies(process.versions.node, '^14.18 || >= 16', { includePrerelease: true }); test('core modules', function (t) { t.test('isCore()', function (st) { @@ -42,7 +44,7 @@ test('core modules', function (t) { t.test('core via repl module', { skip: !data.repl }, function (st) { var libs = require('repl')._builtinLibs; // eslint-disable-line no-underscore-dangle if (!libs) { - st.skip('module.builtinModules does not exist'); + st.skip('repl._builtinLibs does not exist'); } else { for (var i = 0; i < libs.length; ++i) { var mod = libs[i]; @@ -51,16 +53,18 @@ test('core modules', function (t) { function () { require(mod); }, // eslint-disable-line no-loop-func 'requiring ' + mod + ' does not throw' ); - if (supportsNodePrefix) { - st.doesNotThrow( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' does not throw' - ); - } else { - st['throws']( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' throws' - ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } } } } @@ -79,6 +83,10 @@ test('core modules', function (t) { 'v8/tools/tickprocessor', 'v8/tools/profile' ]; + // see https://github.com/nodejs/node/issues/42785 + if (semver.satisfies(process.version, '>= 18')) { + libs = libs.concat('node:test'); + } for (var i = 0; i < libs.length; ++i) { var mod = libs[i]; if (excludeList.indexOf(mod) === -1) { @@ -87,16 +95,18 @@ test('core modules', function (t) { function () { require(mod); }, // eslint-disable-line no-loop-func 'requiring ' + mod + ' does not throw' ); - if (supportsNodePrefix) { - st.doesNotThrow( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' does not throw' - ); - } else { - st['throws']( - function () { require('node:' + mod); }, // eslint-disable-line no-loop-func - 'requiring node:' + mod + ' throws' - ); + if (mod.slice(0, 5) !== 'node:') { + if (supportsNodePrefix) { + st.doesNotThrow( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' does not throw' + ); + } else { + st['throws']( + function () { require('node:' + mod); }, // eslint-disable-line no-loop-func + 'requiring node:' + mod + ' throws' + ); + } } } } @@ -104,5 +114,20 @@ test('core modules', function (t) { st.end(); }); + t.test('Object.prototype pollution', function (st) { + var nonKey = 'not a core module'; + st.teardown(mockProperty(Object.prototype, 'fs', { value: false })); + st.teardown(mockProperty(Object.prototype, 'path', { value: '>= 999999999' })); + st.teardown(mockProperty(Object.prototype, 'http', { value: data.http })); + st.teardown(mockProperty(Object.prototype, nonKey, { value: true })); + + st.equal(isCore('fs'), true, 'fs is a core module even if Object.prototype lies'); + st.equal(isCore('path'), true, 'path is a core module even if Object.prototype lies'); + st.equal(isCore('http'), true, 'path is a core module even if Object.prototype matches data'); + st.equal(isCore(nonKey), false, '"' + nonKey + '" is not a core module even if Object.prototype lies'); + + st.end(); + }); + t.end(); }); diff --git a/node_modules/is-date-object/.editorconfig b/node_modules/is-date-object/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/is-date-object/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/is-date-object/.eslintignore b/node_modules/is-date-object/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-date-object/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-date-object/.eslintrc b/node_modules/is-date-object/.eslintrc deleted file mode 100644 index 1228f97..0000000 --- a/node_modules/is-date-object/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-statements": [2, 12] - } -} diff --git a/node_modules/is-date-object/.github/FUNDING.yml b/node_modules/is-date-object/.github/FUNDING.yml deleted file mode 100644 index 9cfa9fd..0000000 --- a/node_modules/is-date-object/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-date-object -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-date-object/.jscs.json b/node_modules/is-date-object/.jscs.json deleted file mode 100644 index b4d9b8b..0000000 --- a/node_modules/is-date-object/.jscs.json +++ /dev/null @@ -1,176 +0,0 @@ -{ - "es3": true, - - "additionalRules": [], - - "requireSemicolons": true, - - "disallowMultipleSpaces": true, - - "disallowIdentifierNames": [], - - "requireCurlyBraces": { - "allExcept": [], - "keywords": ["if", "else", "for", "while", "do", "try", "catch"] - }, - - "requireSpaceAfterKeywords": ["if", "else", "for", "while", "do", "switch", "return", "try", "catch", "function"], - - "disallowSpaceAfterKeywords": [], - - "disallowSpaceBeforeComma": true, - "disallowSpaceAfterComma": false, - "disallowSpaceBeforeSemicolon": true, - - "disallowNodeTypes": [ - "DebuggerStatement", - "ForInStatement", - "LabeledStatement", - "SwitchCase", - "SwitchStatement", - "WithStatement" - ], - - "requireObjectKeysOnNewLine": { "allExcept": ["sameLine"] }, - - "requireSpacesInAnonymousFunctionExpression": { "beforeOpeningRoundBrace": true, "beforeOpeningCurlyBrace": true }, - "requireSpacesInNamedFunctionExpression": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInNamedFunctionExpression": { "beforeOpeningRoundBrace": true }, - "requireSpacesInFunctionDeclaration": { "beforeOpeningCurlyBrace": true }, - "disallowSpacesInFunctionDeclaration": { "beforeOpeningRoundBrace": true }, - - "requireSpaceBetweenArguments": true, - - "disallowSpacesInsideParentheses": true, - - "disallowSpacesInsideArrayBrackets": true, - - "disallowQuotedKeysInObjects": { "allExcept": ["reserved"] }, - - "disallowSpaceAfterObjectKeys": true, - - "requireCommaBeforeLineBreak": true, - - "disallowSpaceAfterPrefixUnaryOperators": ["++", "--", "+", "-", "~", "!"], - "requireSpaceAfterPrefixUnaryOperators": [], - - "disallowSpaceBeforePostfixUnaryOperators": ["++", "--"], - "requireSpaceBeforePostfixUnaryOperators": [], - - "disallowSpaceBeforeBinaryOperators": [], - "requireSpaceBeforeBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - - "requireSpaceAfterBinaryOperators": ["+", "-", "/", "*", "=", "==", "===", "!=", "!=="], - "disallowSpaceAfterBinaryOperators": [], - - "disallowImplicitTypeConversion": ["binary", "string"], - - "disallowKeywords": ["with", "eval"], - - "requireKeywordsOnNewLine": [], - "disallowKeywordsOnNewLine": ["else"], - - "requireLineFeedAtFileEnd": true, - - "disallowTrailingWhitespace": true, - - "disallowTrailingComma": true, - - "excludeFiles": ["node_modules/**", "vendor/**"], - - "disallowMultipleLineStrings": true, - - "requireDotNotation": { "allExcept": ["keywords"] }, - - "requireParenthesesAroundIIFE": true, - - "validateLineBreaks": "LF", - - "validateQuoteMarks": { - "escape": true, - "mark": "'" - }, - - "disallowOperatorBeforeLineBreak": [], - - "requireSpaceBeforeKeywords": [ - "do", - "for", - "if", - "else", - "switch", - "case", - "try", - "catch", - "finally", - "while", - "with", - "return" - ], - - "validateAlignedFunctionParameters": { - "lineBreakAfterOpeningBraces": true, - "lineBreakBeforeClosingBraces": true - }, - - "requirePaddingNewLinesBeforeExport": true, - - "validateNewlineAfterArrayElements": { - "maximum": 1 - }, - - "requirePaddingNewLinesAfterUseStrict": true, - - "disallowArrowFunctions": true, - - "disallowMultiLineTernary": true, - - "validateOrderInObjectKeys": "asc-insensitive", - - "disallowIdenticalDestructuringNames": true, - - "disallowNestedTernaries": { "maxLevel": 1 }, - - "requireSpaceAfterComma": { "allExcept": ["trailing"] }, - "requireAlignedMultilineParams": false, - - "requireSpacesInGenerator": { - "afterStar": true - }, - - "disallowSpacesInGenerator": { - "beforeStar": true - }, - - "disallowVar": false, - - "requireArrayDestructuring": false, - - "requireEnhancedObjectLiterals": false, - - "requireObjectDestructuring": false, - - "requireEarlyReturn": false, - - "requireCapitalizedConstructorsNew": { - "allExcept": ["Function", "String", "Object", "Symbol", "Number", "Date", "RegExp", "Error", "Boolean", "Array"] - }, - - "requireImportAlphabetized": false, - - "requireSpaceBeforeObjectValues": true, - "requireSpaceBeforeDestructuredValues": true, - - "disallowSpacesInsideTemplateStringPlaceholders": true, - - "disallowArrayDestructuringReturn": false, - - "requireNewlineBeforeSingleStatementsInIf": false, - - "disallowUnusedVariables": true, - - "requireSpacesInsideImportedObjectBraces": true, - - "requireUseStrict": true -} - diff --git a/node_modules/is-date-object/.nycrc b/node_modules/is-date-object/.nycrc deleted file mode 100644 index a69aa2d..0000000 --- a/node_modules/is-date-object/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test", - "test-corejs.js" - ] -} diff --git a/node_modules/is-date-object/CHANGELOG.md b/node_modules/is-date-object/CHANGELOG.md deleted file mode 100644 index 0f4fbbd..0000000 --- a/node_modules/is-date-object/CHANGELOG.md +++ /dev/null @@ -1,106 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.4](https://github.com/inspect-js/is-date-object/compare/v1.0.3...v1.0.4) - 2021-05-07 - -### Commits - -- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`8943a4a`](https://github.com/inspect-js/is-date-object/commit/8943a4a5035b3f2c8cee9a5edabb55579c16983d) -- [readme] make all URLs https [`1d4d6cd`](https://github.com/inspect-js/is-date-object/commit/1d4d6cd37365c3a36f98e3f82cfe6262227437db) -- [Dev Deps] update `eslint` [`a7abeaa`](https://github.com/inspect-js/is-date-object/commit/a7abeaa2409d3a34fccebcb5b362e0b90d0a8883) - -## [v1.0.3](https://github.com/inspect-js/is-date-object/compare/v1.0.2...v1.0.3) - 2021-05-05 - -### Commits - -- [Tests] migrate tests to Github Actions [`023504f`](https://github.com/inspect-js/is-date-object/commit/023504f4d48fc8788ff52ee525a1d9ec74fa7df5) -- [readme] add actions and codecov badges [`e63305f`](https://github.com/inspect-js/is-date-object/commit/e63305f2fb9ff3eb0dab7e0716585507a4f95a75) -- [meta] do not publish github action workflow files [`017d906`](https://github.com/inspect-js/is-date-object/commit/017d90679b6b1c16b398c0157904f91f56160219) -- [Tests] run `nyc` on all tests [`0376b6f`](https://github.com/inspect-js/is-date-object/commit/0376b6fb7a0ffcc42107c3c579ba0b3ab635b9e4) -- [readme] fix repo URLs; remove defunct badges [`1c148c6`](https://github.com/inspect-js/is-date-object/commit/1c148c6cb6eb0892b3186e814df3367dabb9732d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`c7a3f54`](https://github.com/inspect-js/is-date-object/commit/c7a3f54a207a6056ffafaa58178889ea1b1b77f7) -- [actions] add "Allow Edits" workflow [`e79b5b2`](https://github.com/inspect-js/is-date-object/commit/e79b5b25c173c3201e8b42a614d5f12c48b74a86) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`da28980`](https://github.com/inspect-js/is-date-object/commit/da28980c5fe86528585b2a420319ca8fc35f763a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`5cabae9`](https://github.com/inspect-js/is-date-object/commit/5cabae9f00bf458a470bde68b734540b8ab78c3b) -- [readme] add actions and codecov badges [`33dfb88`](https://github.com/inspect-js/is-date-object/commit/33dfb881b7abf668cd3bf956e2947a1ece552f25) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`745eb04`](https://github.com/inspect-js/is-date-object/commit/745eb0462ef3838df65f41f4a95453cc4f0aa06e) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`466c62b`](https://github.com/inspect-js/is-date-object/commit/466c62b45af5a5a83963f6ef8617da887b0ab272) -- [actions] use checkout v2; remove unneeded env [`ff87a16`](https://github.com/inspect-js/is-date-object/commit/ff87a161e36d76d081d70933bf801a357c3b25fe) -- [Dev Deps] update `auto-changelog`, `tape` [`93188f5`](https://github.com/inspect-js/is-date-object/commit/93188f58e4b2c2b5e978a61a45380101d01f9838) -- [meta] use `prepublishOnly` script for npm 7+ [`1d0e3ea`](https://github.com/inspect-js/is-date-object/commit/1d0e3ea672971f02bb48c88b49079789ab41f574) -- [actions] update workflows [`4d1a235`](https://github.com/inspect-js/is-date-object/commit/4d1a2358de35a9fbe23a1dee10735748ed276301) -- [Dev Deps] update `auto-changelog`; add `aud` [`67be59a`](https://github.com/inspect-js/is-date-object/commit/67be59aa3c0ba44b982aaefb7e42adfb14eb279b) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`a6661c2`](https://github.com/inspect-js/is-date-object/commit/a6661c26af701a7782f6e06ad1b34587ce2b09bc) -- [Tests] only audit prod deps [`dd4a47f`](https://github.com/inspect-js/is-date-object/commit/dd4a47f8bcf82c3090826d890a7766f50d6f7af9) - -## [v1.0.2](https://github.com/inspect-js/is-date-object/compare/v1.0.1...v1.0.2) - 2019-12-18 - -### Commits - -- [Tests] use shared travis-ci configs [`8a378b8`](https://github.com/inspect-js/is-date-object/commit/8a378b8fd6a4202fffc9ec193aca02efe937bc35) -- [Tests] on all node minors; use `nvm install-latest-npm`; fix scripts; improve matrix [`6e97a21`](https://github.com/inspect-js/is-date-object/commit/6e97a21276cf448ce424fb9ea13edd4587f289f1) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `jscs`, `nsp`, `semver`, `tape` [`8472b90`](https://github.com/inspect-js/is-date-object/commit/8472b90f82e5153c22e7a8a7726a5cc6110e93d7) -- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`ae73e38`](https://github.com/inspect-js/is-date-object/commit/ae73e3890df7da0bc4449088e30340cb4df3294d) -- [meta] add `auto-changelog` [`82f8f47`](https://github.com/inspect-js/is-date-object/commit/82f8f473a6ee45e2b66810cb743e0122c18381c5) -- [meta] remove unused Makefile and associated utilities [`788a2cd`](https://github.com/inspect-js/is-date-object/commit/788a2cdfd0bc8f1903967219897f6d00c4c6a26b) -- [Tests] up to `node` `v11.4`, `v10.14`, `v8.14`, `v6.15` [`b9caf7c`](https://github.com/inspect-js/is-date-object/commit/b9caf7c814e5e2549454cb444f8b739f9ce1a388) -- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v8.15`, `v6.17`; use `nvm install-latest-npm` [`cda0abc`](https://github.com/inspect-js/is-date-object/commit/cda0abc04a21c9b5ec72eabd010155c988032056) -- [Tests] up to `node` `v12.10`, `v10.16`, `v8.16` [`49bc482`](https://github.com/inspect-js/is-date-object/commit/49bc482fd9f71436b663c07144083a8423697299) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `semver`, `tape`; add `safe-publish-latest` [`f77fec4`](https://github.com/inspect-js/is-date-object/commit/f77fec48057e156b2276b4c14cf303306116b9f6) -- [actions] add automatic rebasing / merge commit blocking [`68605fc`](https://github.com/inspect-js/is-date-object/commit/68605fcb6bc0341ff0aae14a94bf5d18e1bc73be) -- [meta] create FUNDING.yml [`4f82d88`](https://github.com/inspect-js/is-date-object/commit/4f82d88e1e6ac1b97f0ce96aa0aa057ad758a581) -- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`3cbf28a`](https://github.com/inspect-js/is-date-object/commit/3cbf28a185ced940cfce8a09fa8479cc83575876) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config@`, `is`, `semver`, `tape` [`abf9fb0`](https://github.com/inspect-js/is-date-object/commit/abf9fb0d55ef0697e64e888d74f2e5fe53d7cdcb) -- [Tests] switch from `nsp` to `npm audit` [`6543c7d`](https://github.com/inspect-js/is-date-object/commit/6543c7d559d1fb79215b46c8b79e0e3e2a83f5de) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`ba5d2d7`](https://github.com/inspect-js/is-date-object/commit/ba5d2d7fc0975d7c03b8f2b7f43a09af93e365ba) -- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`c1e3525`](https://github.com/inspect-js/is-date-object/commit/c1e3525afa76a696f7cf1b58aab7f55d220b2c20) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`14e4824`](https://github.com/inspect-js/is-date-object/commit/14e4824188c85207ed3b86627b09e9f64b135db7) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`68ead64`](https://github.com/inspect-js/is-date-object/commit/68ead64a07e0de282ea3cd38e12cc8b0e0f6d3cd) -- [Dev Deps] update `eslint`, semver`, `tape`, `semver` [`f55453f`](https://github.com/inspect-js/is-date-object/commit/f55453f200903277465d7e9307a9c49120a4f419) -- Only apps should have lockfiles [`6c848eb`](https://github.com/inspect-js/is-date-object/commit/6c848eba982cc58053d4cca08c01f12a433f3695) -- [Tests] remove `jscs` [`3fd3a62`](https://github.com/inspect-js/is-date-object/commit/3fd3a62121607ad074b7fc977f3fc6575b66f755) -- [Dev Deps] update `eslint`, `tape` [`77d3130`](https://github.com/inspect-js/is-date-object/commit/77d3130a0039e5dae24c17de790dd510c265edc6) -- [meta] add `funding` field [`9ef6d58`](https://github.com/inspect-js/is-date-object/commit/9ef6d5888bf829a5812b3b091dc99839d48c355e) - -## [v1.0.1](https://github.com/inspect-js/is-date-object/compare/v1.0.0...v1.0.1) - 2015-09-27 - -### Commits - -- Update `tape`, `semver`, `eslint`; use my personal shared `eslint` config. [`731aa13`](https://github.com/inspect-js/is-date-object/commit/731aa134b0b8dc84e302d0b2264a415cb456ccab) -- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `nsp`, `eslint`, `semver` [`53e43a6`](https://github.com/inspect-js/is-date-object/commit/53e43a627dd01757cf3d469599f3dffd9d72b150) -- Update `eslint` [`d2fc304`](https://github.com/inspect-js/is-date-object/commit/d2fc3046f087b0026448ffde0cf46b1f741cbd4e) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`c9568df`](https://github.com/inspect-js/is-date-object/commit/c9568df228fa698dc6fcc9553b5d612e7ee427aa) -- Test on latest `node` and `io.js` versions. [`a21d537`](https://github.com/inspect-js/is-date-object/commit/a21d537562166ebd18bde3a262fd157dd774ae17) -- Update `nsp`, `eslint`, `semver` [`9e1d908`](https://github.com/inspect-js/is-date-object/commit/9e1d9087c0c79c34fcb2abfc701cdfa1efcb327c) -- Update `covert`, `jscs`, `eslint`, `semver` [`f198f6b`](https://github.com/inspect-js/is-date-object/commit/f198f6b997912da10a3d821a089e1581edc730a0) -- [Dev Deps] update `tape`, `jscs`, `eslint` [`ab9bdbb`](https://github.com/inspect-js/is-date-object/commit/ab9bdbbc189cef033346508db47cd1feb04a69d3) -- If `@@toStringTag` is not present, use the old-school `Object#toString` test. [`c03afce`](https://github.com/inspect-js/is-date-object/commit/c03afce001368b29eb929900075749b113a252c8) -- [Dev Deps] update `jscs`, `nsp`, `tape`, `eslint`, `@ljharb/eslint-config` [`9d94ccb`](https://github.com/inspect-js/is-date-object/commit/9d94ccbab4160d2fa649123e37951d86b69a8b15) -- [Dev Deps] update `is`, `eslint`, `@ljharb/eslint-config`, `semver` [`35cbff7`](https://github.com/inspect-js/is-date-object/commit/35cbff7f7c8216fbb79c799f74b2336eaf0d726a) -- Test up to `io.js` `v2.3` [`be5d11e`](https://github.com/inspect-js/is-date-object/commit/be5d11e7ebd9473d7ae554179b3769082485f6f4) -- [Tests] on `io.js` `v3.3`, up to `node` `v4.1` [`20221a3`](https://github.com/inspect-js/is-date-object/commit/20221a34858d2b21e23bdc2c08df23f0bc08d11e) -- [Tests] up to `io.js` `v3.2 ` [`7009b4a`](https://github.com/inspect-js/is-date-object/commit/7009b4a9999e14eacbdf6068afd82f478473f007) -- Test on `io.js` `v2.1` [`68b29b1`](https://github.com/inspect-js/is-date-object/commit/68b29b19a07e6589a7ca37ab764be28f144ac88e) -- Remove `editorconfig-tools` [`8d3972c`](https://github.com/inspect-js/is-date-object/commit/8d3972c1795fdcfd337680e11ab610e4885fb079) -- [Dev Deps] update `tape` [`204945d`](https://github.com/inspect-js/is-date-object/commit/204945d8658a3513ca6315ddf795e4034adb4545) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`7bff214`](https://github.com/inspect-js/is-date-object/commit/7bff214dcb2317b96219921476f990814afbb401) -- Test on `io.js` `v2.5` [`92f7bd6`](https://github.com/inspect-js/is-date-object/commit/92f7bd6747e3259b0ddc9c287876f46a9cd4c270) -- Test on `io.js` `v2.4` [`ebb34bf`](https://github.com/inspect-js/is-date-object/commit/ebb34bf1f58949768063f86ac012f1ca5d7cf6d9) -- Fix tests for faked @@toStringTag [`3b9c26c`](https://github.com/inspect-js/is-date-object/commit/3b9c26c15040af6a87f8d77ce6c85a7bef7a4304) -- Test on `io.js` `v3.0` [`5eedf4b`](https://github.com/inspect-js/is-date-object/commit/5eedf4bea76380a08813fd0977469c2480302a82) - -## v1.0.0 - 2015-01-28 - -### Commits - -- Dotfiles. [`5b6a929`](https://github.com/inspect-js/is-date-object/commit/5b6a9298c6f70882e78e66d64c9c019f85790f52) -- `make release` [`e8d40ce`](https://github.com/inspect-js/is-date-object/commit/e8d40ceca85acd0aa4b2753faa6e41c0c54cf6c3) -- package.json [`a107259`](https://github.com/inspect-js/is-date-object/commit/a1072591ea510a2998298be6cef827b123f4643f) -- Read me [`eb92695`](https://github.com/inspect-js/is-date-object/commit/eb92695664bdee8fc49891cd73aa2f41075f53cb) -- Initial commit [`4fc7755`](https://github.com/inspect-js/is-date-object/commit/4fc7755ff12f1d7a55cf841d486bf6b2350fe5a0) -- Tests. [`b6f432f`](https://github.com/inspect-js/is-date-object/commit/b6f432fb6801c5ff8d89cfec7601d59478e23dd1) -- Implementation. [`dd0fd96`](https://github.com/inspect-js/is-date-object/commit/dd0fd96c4016a66cec7cd59db0fde37c2ef3cdb5) diff --git a/node_modules/is-date-object/LICENSE b/node_modules/is-date-object/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/is-date-object/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/is-date-object/README.md b/node_modules/is-date-object/README.md deleted file mode 100644 index 1c084ad..0000000 --- a/node_modules/is-date-object/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# is-date-object [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value a JS Date object? This module works cross-realm/iframe, and despite ES6 @@toStringTag. - -## Example - -```js -var isDate = require('is-date-object'); -var assert = require('assert'); - -assert.notOk(isDate(undefined)); -assert.notOk(isDate(null)); -assert.notOk(isDate(false)); -assert.notOk(isDate(true)); -assert.notOk(isDate(42)); -assert.notOk(isDate('foo')); -assert.notOk(isDate(function () {})); -assert.notOk(isDate([])); -assert.notOk(isDate({})); -assert.notOk(isDate(/a/g)); -assert.notOk(isDate(new RegExp('a', 'g'))); - -assert.ok(isDate(new Date())); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-date-object -[2]: https://versionbadg.es/inspect-js/is-date-object.svg -[5]: https://david-dm.org/inspect-js/is-date-object.svg -[6]: https://david-dm.org/inspect-js/is-date-object -[7]: https://david-dm.org/inspect-js/is-date-object/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-date-object#info=devDependencies -[11]: https://nodei.co/npm/is-date-object.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-date-object.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-date-object.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-date-object -[codecov-image]: https://codecov.io/gh/inspect-js/is-date-object/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-date-object/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-date-object -[actions-url]: https://github.com/inspect-js/is-date-object/actions diff --git a/node_modules/is-date-object/index.js b/node_modules/is-date-object/index.js deleted file mode 100644 index 996c5bb..0000000 --- a/node_modules/is-date-object/index.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var getDay = Date.prototype.getDay; -var tryDateObject = function tryDateGetDayCall(value) { - try { - getDay.call(value); - return true; - } catch (e) { - return false; - } -}; - -var toStr = Object.prototype.toString; -var dateClass = '[object Date]'; -var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; - -module.exports = function isDateObject(value) { - if (typeof value !== 'object' || value === null) { - return false; - } - return hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass; -}; diff --git a/node_modules/is-date-object/package.json b/node_modules/is-date-object/package.json deleted file mode 100644 index 28c8f5c..0000000 --- a/node_modules/is-date-object/package.json +++ /dev/null @@ -1,76 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-date-object/test/index.js b/node_modules/is-date-object/test/index.js deleted file mode 100644 index 3b2d93f..0000000 --- a/node_modules/is-date-object/test/index.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isDate = require('../'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator !== 'undefined'; - -test('not Dates', function (t) { - t.notOk(isDate(), 'undefined is not Date'); - t.notOk(isDate(null), 'null is not Date'); - t.notOk(isDate(false), 'false is not Date'); - t.notOk(isDate(true), 'true is not Date'); - t.notOk(isDate(42), 'number is not Date'); - t.notOk(isDate('foo'), 'string is not Date'); - t.notOk(isDate([]), 'array is not Date'); - t.notOk(isDate({}), 'object is not Date'); - t.notOk(isDate(function () {}), 'function is not Date'); - t.notOk(isDate(/a/g), 'regex literal is not Date'); - t.notOk(isDate(new RegExp('a', 'g')), 'regex object is not Date'); - t.end(); -}); - -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { - var realDate = new Date(); - var fakeDate = { - toString: function () { return String(realDate); }, - valueOf: function () { return realDate.getTime(); } - }; - fakeDate[Symbol.toStringTag] = 'Date'; - t.notOk(isDate(fakeDate), 'fake Date with @@toStringTag "Date" is not Date'); - t.end(); -}); - -test('Dates', function (t) { - t.ok(isDate(new Date()), 'new Date() is Date'); - t.end(); -}); diff --git a/node_modules/is-generator-function/CHANGELOG.md b/node_modules/is-generator-function/CHANGELOG.md index 73b0fb1..25b705c 100644 --- a/node_modules/is-generator-function/CHANGELOG.md +++ b/node_modules/is-generator-function/CHANGELOG.md @@ -5,6 +5,14 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v1.0.10](https://github.com/inspect-js/is-generator-function/compare/v1.0.9...v1.0.10) - 2021-08-05 + +### Commits + +- [Dev Deps] update `eslint`, `auto-changelog`, `core-js`, `tape` [`63cd935`](https://github.com/inspect-js/is-generator-function/commit/63cd9353eead5ad5eb8cf581fc4129841641bb43) +- [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams [`8c3fe76`](https://github.com/inspect-js/is-generator-function/commit/8c3fe76b546fbc5085381df65800e4fc67e25ede) +- [Dev Deps] unpin `core-js` v3 [`ebf2885`](https://github.com/inspect-js/is-generator-function/commit/ebf2885bc202b59f37e074f28951639873c6f38e) + ## [v1.0.9](https://github.com/inspect-js/is-generator-function/compare/v1.0.8...v1.0.9) - 2021-05-05 ### Fixed diff --git a/node_modules/is-generator-function/index.js b/node_modules/is-generator-function/index.js index a3873e1..9064e91 100644 --- a/node_modules/is-generator-function/index.js +++ b/node_modules/is-generator-function/index.js @@ -3,7 +3,7 @@ var toStr = Object.prototype.toString; var fnToStr = Function.prototype.toString; var isFnRegex = /^\s*(?:function)?\*/; -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); var getProto = Object.getPrototypeOf; var getGeneratorFunc = function () { // eslint-disable-line consistent-return if (!hasToStringTag) { diff --git a/node_modules/is-generator-function/package.json b/node_modules/is-generator-function/package.json index e0234f5..d013d43 100644 --- a/node_modules/is-generator-function/package.json +++ b/node_modules/is-generator-function/package.json @@ -1,6 +1,6 @@ { "name": "is-generator-function", - "version": "1.0.9", + "version": "1.0.10", "description": "Determine if a function is a native generator function.", "main": "index.js", "scripts": { @@ -40,16 +40,19 @@ "bugs": { "url": "https://github.com/inspect-js/is-generator-function/issues" }, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, "devDependencies": { "@ljharb/eslint-config": "^17.6.0", "aud": "^1.1.5", - "auto-changelog": "^2.2.1", - "core-js": "^2.6.5 || ^3 <3.9", - "eslint": "^7.25.0", + "auto-changelog": "^2.3.0", + "core-js": "^2.6.5 || ^3.16.0", + "eslint": "^7.32.0", "make-generator-function": "^2.0.0", "nyc": "^10.3.2", "safe-publish-latest": "^1.1.4", - "tape": "^5.2.2", + "tape": "^5.3.0", "uglify-register": "^1.0.1" }, "testling": { diff --git a/node_modules/is-generator-function/test/index.js b/node_modules/is-generator-function/test/index.js index a7fab25..cbaab5d 100644 --- a/node_modules/is-generator-function/test/index.js +++ b/node_modules/is-generator-function/test/index.js @@ -5,7 +5,7 @@ var test = require('tape'); var isGeneratorFunction = require('../index'); var generatorFuncs = require('make-generator-function')(); -var hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); var forEach = function (arr, func) { var i; diff --git a/node_modules/is-negative-zero/.editorconfig b/node_modules/is-negative-zero/.editorconfig deleted file mode 100644 index aaac325..0000000 --- a/node_modules/is-negative-zero/.editorconfig +++ /dev/null @@ -1,8 +0,0 @@ -root = true - -[*] -indent_style = tab -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/node_modules/is-negative-zero/.eslintignore b/node_modules/is-negative-zero/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-negative-zero/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-negative-zero/.eslintrc b/node_modules/is-negative-zero/.eslintrc deleted file mode 100644 index 9079df7..0000000 --- a/node_modules/is-negative-zero/.eslintrc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-statements": [2, 14], - "no-extra-parens": [1], - "no-magic-numbers": 0 - } -} diff --git a/node_modules/is-negative-zero/.github/workflows/node-4+.yml b/node_modules/is-negative-zero/.github/workflows/node-4+.yml deleted file mode 100644 index ba174e1..0000000 --- a/node_modules/is-negative-zero/.github/workflows/node-4+.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: 'Tests: node.js' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - latest: ${{ steps.set-matrix.outputs.requireds }} - minors: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: '>=4' - - latest: - needs: [matrix] - name: 'latest minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.latest) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - minors: - needs: [matrix, latest] - name: 'non-latest minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.minors) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - - node: - name: 'node 4+' - needs: [latest, minors] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/node-iojs.yml b/node_modules/is-negative-zero/.github/workflows/node-iojs.yml deleted file mode 100644 index f707c3c..0000000 --- a/node_modules/is-negative-zero/.github/workflows/node-iojs.yml +++ /dev/null @@ -1,58 +0,0 @@ -name: 'Tests: node.js (io.js)' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - latest: ${{ steps.set-matrix.outputs.requireds }} - minors: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: 'iojs' - - latest: - needs: [matrix] - name: 'latest minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.latest) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - skip-ls-check: true - - minors: - needs: [matrix, latest] - name: 'non-latest minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.minors) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - skip-ls-check: true - - node: - name: 'io.js' - needs: [latest, minors] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/node-pretest.yml b/node_modules/is-negative-zero/.github/workflows/node-pretest.yml deleted file mode 100644 index 3921e0a..0000000 --- a/node_modules/is-negative-zero/.github/workflows/node-pretest.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 'Tests: pretest/posttest' - -on: [pull_request, push] - -jobs: - pretest: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run pretest' - with: - node-version: 'lts/*' - command: 'pretest' - - posttest: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run posttest' - with: - node-version: 'lts/*' - command: 'posttest' diff --git a/node_modules/is-negative-zero/.github/workflows/node-zero.yml b/node_modules/is-negative-zero/.github/workflows/node-zero.yml deleted file mode 100644 index 2435bf2..0000000 --- a/node_modules/is-negative-zero/.github/workflows/node-zero.yml +++ /dev/null @@ -1,60 +0,0 @@ -name: 'Tests: node.js (0.x)' - -on: [pull_request, push] - -jobs: - matrix: - runs-on: ubuntu-latest - outputs: - stable: ${{ steps.set-matrix.outputs.requireds }} - unstable: ${{ steps.set-matrix.outputs.optionals }} - steps: - - uses: ljharb/actions/node/matrix@main - id: set-matrix - with: - preset: '0.x' - - stable: - needs: [matrix] - name: 'stable minors' - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.stable) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} - skip-ls-check: true - - unstable: - needs: [matrix, stable] - name: 'unstable minors' - continue-on-error: true - if: ${{ !github.head_ref || !startsWith(github.head_ref, 'renovate') }} - runs-on: ubuntu-latest - - strategy: - matrix: ${{ fromJson(needs.matrix.outputs.unstable) }} - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/actions/node/run@main - name: 'npm install && npm run tests-only' - with: - node-version: ${{ matrix.node-version }} - command: 'tests-only' - cache-node-modules-key: node_modules-${{ github.workflow }}-${{ github.action }}-${{ github.run_id }} - skip-ls-check: true - - node: - name: 'node 0.x' - needs: [stable, unstable] - runs-on: ubuntu-latest - steps: - - run: 'echo tests completed' diff --git a/node_modules/is-negative-zero/.github/workflows/rebase.yml b/node_modules/is-negative-zero/.github/workflows/rebase.yml deleted file mode 100644 index 027aed0..0000000 --- a/node_modules/is-negative-zero/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request_target] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v2 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml b/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml deleted file mode 100644 index 549d7b4..0000000 --- a/node_modules/is-negative-zero/.github/workflows/require-allow-edits.yml +++ /dev/null @@ -1,12 +0,0 @@ -name: Require “Allow Edits” - -on: [pull_request_target] - -jobs: - _: - name: "Require “Allow Edits”" - - runs-on: ubuntu-latest - - steps: - - uses: ljharb/require-allow-edits@main diff --git a/node_modules/is-negative-zero/.nycrc b/node_modules/is-negative-zero/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/node_modules/is-negative-zero/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/is-negative-zero/CHANGELOG.md b/node_modules/is-negative-zero/CHANGELOG.md deleted file mode 100644 index 71d9b9a..0000000 --- a/node_modules/is-negative-zero/CHANGELOG.md +++ /dev/null @@ -1,117 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v2.0.1](https://github.com/inspect-js/is-negative-zero/compare/v2.0.0...v2.0.1) - 2020-12-04 - -### Commits - -- [Tests] use shared travis-ci configs [`5b92482`](https://github.com/inspect-js/is-negative-zero/commit/5b92482ed26e55e1aafcc6b6310d279958af8204) -- [Tests] up to `node` `v11.7`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.16`, `v5.12`, `v4.9`; use `nvm install-latest-npm`; fix test scripts [`0f5d2f8`](https://github.com/inspect-js/is-negative-zero/commit/0f5d2f85ea7fe83de47f39b6b35e489b866d88a7) -- [Tests] migrate tests to Github Actions [`b80f05a`](https://github.com/inspect-js/is-negative-zero/commit/b80f05adb11a6a3232860fb50272b101aacb504f) -- [Tests] remove `jscs` [`7ccaf41`](https://github.com/inspect-js/is-negative-zero/commit/7ccaf4100281b614d61d7c9122e6f87943a89295) -- [meta] add missing changelog [`992bdde`](https://github.com/inspect-js/is-negative-zero/commit/992bddee362cbae71f2cdfd8666f4774b252412e) -- [readme] fix repo URLs; remove defunct badges [`80fd18d`](https://github.com/inspect-js/is-negative-zero/commit/80fd18d2b0191321afe0e1b572200e4c025eb664) -- [Tests] run `nyc` on all tests [`df26f14`](https://github.com/inspect-js/is-negative-zero/commit/df26f14b0b854d82b0d3ca7b4949811c9f151357) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`d7723aa`](https://github.com/inspect-js/is-negative-zero/commit/d7723aa70e5b478adc36d98e1338abe741c1906a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`9fdaabe`](https://github.com/inspect-js/is-negative-zero/commit/9fdaabecfdb25e6e860e5007a91b60ee0f20734f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`f07eeb2`](https://github.com/inspect-js/is-negative-zero/commit/f07eeb2740037c53f270e95d2f62edc051cafc56) -- [Dev Deps] update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`bd5c751`](https://github.com/inspect-js/is-negative-zero/commit/bd5c751fa4850ba8726dc1c197ed6c843a227b05) -- [actions] add automatic rebasing / merge commit blocking [`5666a91`](https://github.com/inspect-js/is-negative-zero/commit/5666a917db6bdcee63c0a3e28e5e281359975abc) -- [meta] add `auto-changelog` [`f70fb2b`](https://github.com/inspect-js/is-negative-zero/commit/f70fb2b5b9ea53dc52729310717553648292189e) -- [actions] add "Allow Edits" workflow [`2b040a8`](https://github.com/inspect-js/is-negative-zero/commit/2b040a87d362f17d8cab2b0d48058b80e426ad4e) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`09e2e53`](https://github.com/inspect-js/is-negative-zero/commit/09e2e537390225c1d1a6912be64267eaec6ea367) -- [Tests] use `npm audit` instead of `nsp` [`7df2669`](https://github.com/inspect-js/is-negative-zero/commit/7df2669013ac9328d424e9d8c82a53a0458f0888) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4ff97c5`](https://github.com/inspect-js/is-negative-zero/commit/4ff97c5891c7a241a91c03fb54bd83e78570ef22) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`9e8cb7b`](https://github.com/inspect-js/is-negative-zero/commit/9e8cb7bca46d325ecf202187c0fde7da8722bcab) -- [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config`, `nsp` [`70b9888`](https://github.com/inspect-js/is-negative-zero/commit/70b988802a99c84ab7eb8da287bb8ff0efc5c055) -- [Dev Deps] update `jscs` [`59d0c42`](https://github.com/inspect-js/is-negative-zero/commit/59d0c42131020b74e68fd444798b9a3bf247fb2d) -- Add `npm run security` [`eb418ed`](https://github.com/inspect-js/is-negative-zero/commit/eb418ed7e79216808c206388fbd360cc7a75655f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`86a758d`](https://github.com/inspect-js/is-negative-zero/commit/86a758d42eb7d17a18f7f584c337d8820b842758) -- Only apps should have lockfiles [`a0ab621`](https://github.com/inspect-js/is-negative-zero/commit/a0ab6215590bf6adb3eaf1ff9e7c036d72e807ec) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`5c51349`](https://github.com/inspect-js/is-negative-zero/commit/5c513498fc5a8b2fd06f5e0c1b38b8e93c3477ac) -- [meta] add `funding` field [`1d0b2f4`](https://github.com/inspect-js/is-negative-zero/commit/1d0b2f43bf5bf75176859a440346b3e338ee510e) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`9b12367`](https://github.com/inspect-js/is-negative-zero/commit/9b12367706f1c269a3df406c8e2c211558671a15) -- [Dev Deps] update `auto-changelog`, `tape` [`6d98b8d`](https://github.com/inspect-js/is-negative-zero/commit/6d98b8d1f512c3844d4062215c793070084d1164) -- [Dev Deps] Update `tape`, `eslint` [`a258cdb`](https://github.com/inspect-js/is-negative-zero/commit/a258cdb86691725482d1d43a1f9e7953c3c6733f) -- [Dev Deps] update `auto-changelog`; add `aud` [`2ca2afb`](https://github.com/inspect-js/is-negative-zero/commit/2ca2afb9efef4ebc8b3c19046ab1ab3ad516ea9a) -- Test up to `io.js` `v3.0` [`1254ae8`](https://github.com/inspect-js/is-negative-zero/commit/1254ae80b7706616331ac914654d7a17bff31039) -- [Dev Deps] update `auto-changelog` [`4b54722`](https://github.com/inspect-js/is-negative-zero/commit/4b547228fceaae8f9eccabc9ad8a49046492348d) -- [Tests] only audit prod deps [`86d298b`](https://github.com/inspect-js/is-negative-zero/commit/86d298b56db90f81617ee5d942476eda34afb374) -- [Dev Deps] update `tape` [`3a47e27`](https://github.com/inspect-js/is-negative-zero/commit/3a47e2730f889539f666ef0eb09a93fb9c80bfd1) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`128d9bd`](https://github.com/inspect-js/is-negative-zero/commit/128d9bd4c12385fb5e478ac3dd3138fa4360a777) - -## [v2.0.0](https://github.com/inspect-js/is-negative-zero/compare/v1.0.0...v2.0.0) - 2015-07-24 - -### Commits - -- Update `tape`, `eslint`; use my personal shared `eslint` config. [`648d002`](https://github.com/inspect-js/is-negative-zero/commit/648d0029b177886428a11b07307f233ae2d3175b) -- Add `npm run eslint` [`5a52d80`](https://github.com/inspect-js/is-negative-zero/commit/5a52d80ab052e377044b9b181991a32afaaa3090) -- Using my standard jscs.json file [`5a667d9`](https://github.com/inspect-js/is-negative-zero/commit/5a667d9f8b7402ca3bd134080cd4435b5c7f1462) -- Adding `npm run lint` [`9a85ed9`](https://github.com/inspect-js/is-negative-zero/commit/9a85ed934da65d8733a38bf6ad3c89fd62115194) -- Update `tape`, `covert`, `jscs` [`c6cd3a6`](https://github.com/inspect-js/is-negative-zero/commit/c6cd3a64ea5b98100e10537549f50a9eeadc30ec) -- Update `eslint` [`e9c9b6e`](https://github.com/inspect-js/is-negative-zero/commit/e9c9b6e9623f021b7f3ae4091bf9ea2571ab02b4) -- Test on latest `io.js` [`2f7c8a9`](https://github.com/inspect-js/is-negative-zero/commit/2f7c8a9d174066400c072841d7bcf02cf90f8ebf) -- Adding license and downloads badges [`717087a`](https://github.com/inspect-js/is-negative-zero/commit/717087a013b4cfc9dc7847d3d4a64faf19341be4) -- Remove Number type coercion. [`481295d`](https://github.com/inspect-js/is-negative-zero/commit/481295dbd09dbf81d196dc77382f1b92f534de3f) -- Test up to `io.js` `v2.1` [`139a84a`](https://github.com/inspect-js/is-negative-zero/commit/139a84a3dbdec29682044c6e7ac884a7382ae6e1) -- Update `eslint` [`2f5fbfb`](https://github.com/inspect-js/is-negative-zero/commit/2f5fbfbc436ccd8676fc36fcd9f0edcdda33a1e7) -- Update `eslint` [`53cb4c5`](https://github.com/inspect-js/is-negative-zero/commit/53cb4c5eccecdf2d874e78e5c38cca762ed76a9d) -- Test on `io.js` `v2.2` [`98a1824`](https://github.com/inspect-js/is-negative-zero/commit/98a1824c86366f8a03cf303f46acecd67409f94b) -- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`772d6cd`](https://github.com/inspect-js/is-negative-zero/commit/772d6cdf397e6fc1b26e5ed5f279d07a5ead6df8) -- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`3e6147e`](https://github.com/inspect-js/is-negative-zero/commit/3e6147ebb5ecdfda4a2bffa441572fe017c7bb73) -- Use SVG badges instead of PNG [`d986cb4`](https://github.com/inspect-js/is-negative-zero/commit/d986cb450e5bd4f373041255b69e18f47c252a1e) -- Update `tape`, `jscs` [`9f9d7e7`](https://github.com/inspect-js/is-negative-zero/commit/9f9d7e751bcf4ceeed8e36e75e31d29c76326b3f) -- Update `jscs` [`079eaf6`](https://github.com/inspect-js/is-negative-zero/commit/079eaf699d53e7e32c54e5233259a00f5f494d9a) -- Update `tape`, `jscs` [`cffe3fc`](https://github.com/inspect-js/is-negative-zero/commit/cffe3fc17c6bfaa6996bf7402446b160631a04b3) -- Update `tape`, `jscs` [`3a16616`](https://github.com/inspect-js/is-negative-zero/commit/3a166165ae8770d59c296794d28547379cebec58) -- Use consistent quotes [`9509a81`](https://github.com/inspect-js/is-negative-zero/commit/9509a8110027b12c5762ba48d03b649a921847d5) -- Test on `io.js` `v2.4` [`a9150a3`](https://github.com/inspect-js/is-negative-zero/commit/a9150a3397db339d992e9e4e6ddb52d1237fd617) -- Test on `io.js` `v2.3` [`36d7acf`](https://github.com/inspect-js/is-negative-zero/commit/36d7acf5bb9193a2b35585e2c49ae8be9f45a55e) -- Lock covert to v1.0.0. [`29d8917`](https://github.com/inspect-js/is-negative-zero/commit/29d89171c3aad69ace372edbf641ec3a5468c760) -- Updating jscs [`fe09c8a`](https://github.com/inspect-js/is-negative-zero/commit/fe09c8a6d16c637ecd83a9a8a7f6192faef0754a) -- Updating jscs [`5877bc7`](https://github.com/inspect-js/is-negative-zero/commit/5877bc7c2ed44c1ecc5d31e1c484c523450722d8) -- Running linter as part of tests [`9e77756`](https://github.com/inspect-js/is-negative-zero/commit/9e777563905f511d915ec7257e2637811b911bd6) -- Updating covert [`520a695`](https://github.com/inspect-js/is-negative-zero/commit/520a695164465b88c76860a638baafd4192bce5c) - -## [v1.0.0](https://github.com/inspect-js/is-negative-zero/compare/v0.1.1...v1.0.0) - 2014-08-08 - -### Commits - -- Updating tape [`31d1942`](https://github.com/inspect-js/is-negative-zero/commit/31d19422ecd9d453677851a9d5a8d9372a16fb39) -- Updating tape [`e7143bf`](https://github.com/inspect-js/is-negative-zero/commit/e7143bf3b67d8881b1b6ee0444637647d7bb1d2b) - -## [v0.1.1](https://github.com/inspect-js/is-negative-zero/compare/v0.1.0...v0.1.1) - 2014-05-13 - -### Merged - -- Simplify code [`#1`](https://github.com/inspect-js/is-negative-zero/pull/1) - -### Commits - -- Adding a trailing newline [`61fb37f`](https://github.com/inspect-js/is-negative-zero/commit/61fb37f677e871cca53d9309e765d808ddddfd5a) - -## [v0.1.0](https://github.com/inspect-js/is-negative-zero/compare/v0.0.0...v0.1.0) - 2014-05-13 - -### Commits - -- Make sure old and unstable nodes don't break Travis [`f627215`](https://github.com/inspect-js/is-negative-zero/commit/f627215527a95dc1ca014600650e00f15fe122c5) -- Updating deps [`b502f48`](https://github.com/inspect-js/is-negative-zero/commit/b502f48e807d7671cb07e2ca247ae2daa62e4165) -- Oops, negative numbers were negative zero! [`746cb97`](https://github.com/inspect-js/is-negative-zero/commit/746cb975d82c0fa0c5058e8e031807f9afcfd6db) -- Updating covert [`99ef4ed`](https://github.com/inspect-js/is-negative-zero/commit/99ef4ed97d2f76f2a5afbef029bf794f1b5bcffa) -- Updating tape [`ee9cfc2`](https://github.com/inspect-js/is-negative-zero/commit/ee9cfc2fd0039bdb65b6493ce0b8e47d18aa17cd) -- Testing on node 0.6 again [`6a9bf0a`](https://github.com/inspect-js/is-negative-zero/commit/6a9bf0a09e210cca09c7a8a225d08ef1e6789b5a) - -## v0.0.0 - 2014-01-19 - -### Commits - -- package.json [`8411d92`](https://github.com/inspect-js/is-negative-zero/commit/8411d92ec787fd522a1b5e65154ae88e9024a23f) -- read me [`5c8bf3c`](https://github.com/inspect-js/is-negative-zero/commit/5c8bf3ce4867dbf2997ef01ea6b712aa294ec959) -- Initial commit [`c06f7dc`](https://github.com/inspect-js/is-negative-zero/commit/c06f7dcf926f5b35ba678787a0f16cdd7b544054) -- Tests. [`5c554d4`](https://github.com/inspect-js/is-negative-zero/commit/5c554d405bfb323a7413fde395d8dc39c5316356) -- Travis CI [`334d000`](https://github.com/inspect-js/is-negative-zero/commit/334d000941fc926493cc7dbdb4e5f7ae481a311b) -- Implementation. [`4ef4491`](https://github.com/inspect-js/is-negative-zero/commit/4ef449189c36d471d283e40aa20a8ebfa4985882) diff --git a/node_modules/is-negative-zero/LICENSE b/node_modules/is-negative-zero/LICENSE deleted file mode 100644 index 47b7b50..0000000 --- a/node_modules/is-negative-zero/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-negative-zero/README.md b/node_modules/is-negative-zero/README.md deleted file mode 100644 index b60b4d3..0000000 --- a/node_modules/is-negative-zero/README.md +++ /dev/null @@ -1,51 +0,0 @@ -# is-negative-zero [![Version Badge][2]][1] - -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value negative zero? === will lie to you. - -## Example - -```js -var isNegativeZero = require('is-negative-zero'); -var assert = require('assert'); - -assert.notOk(isNegativeZero(undefined)); -assert.notOk(isNegativeZero(null)); -assert.notOk(isNegativeZero(false)); -assert.notOk(isNegativeZero(true)); -assert.notOk(isNegativeZero(0)); -assert.notOk(isNegativeZero(42)); -assert.notOk(isNegativeZero(Infinity)); -assert.notOk(isNegativeZero(-Infinity)); -assert.notOk(isNegativeZero(NaN)); -assert.notOk(isNegativeZero('foo')); -assert.notOk(isNegativeZero(function () {})); -assert.notOk(isNegativeZero([])); -assert.notOk(isNegativeZero({})); - -assert.ok(isNegativeZero(-0)); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-negative-zero -[2]: http://versionbadg.es/inspect-js/is-negative-zero.svg -[3]: https://travis-ci.org/inspect-js/is-negative-zero.svg -[4]: https://travis-ci.org/inspect-js/is-negative-zero -[5]: https://david-dm.org/inspect-js/is-negative-zero.svg -[6]: https://david-dm.org/inspect-js/is-negative-zero -[7]: https://david-dm.org/inspect-js/is-negative-zero/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-negative-zero#info=devDependencies -[11]: https://nodei.co/npm/is-negative-zero.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-negative-zero.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-negative-zero.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-negative-zero - diff --git a/node_modules/is-negative-zero/index.js b/node_modules/is-negative-zero/index.js deleted file mode 100644 index 400e5d1..0000000 --- a/node_modules/is-negative-zero/index.js +++ /dev/null @@ -1,6 +0,0 @@ -'use strict'; - -module.exports = function isNegativeZero(number) { - return number === 0 && (1 / number) === -Infinity; -}; - diff --git a/node_modules/is-negative-zero/package.json b/node_modules/is-negative-zero/package.json deleted file mode 100644 index ca5fdc4..0000000 --- a/node_modules/is-negative-zero/package.json +++ /dev/null @@ -1,79 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-negative-zero/test/index.js b/node_modules/is-negative-zero/test/index.js deleted file mode 100644 index 8fd7d16..0000000 --- a/node_modules/is-negative-zero/test/index.js +++ /dev/null @@ -1,28 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isNegativeZero = require('../'); - -test('not negative zero', function (t) { - t.notOk(isNegativeZero(), 'undefined is not negative zero'); - t.notOk(isNegativeZero(null), 'null is not negative zero'); - t.notOk(isNegativeZero(false), 'false is not negative zero'); - t.notOk(isNegativeZero(true), 'true is not negative zero'); - t.notOk(isNegativeZero(0), 'positive zero is not negative zero'); - t.notOk(isNegativeZero(Infinity), 'Infinity is not negative zero'); - t.notOk(isNegativeZero(-Infinity), '-Infinity is not negative zero'); - t.notOk(isNegativeZero(NaN), 'NaN is not negative zero'); - t.notOk(isNegativeZero('foo'), 'string is not negative zero'); - t.notOk(isNegativeZero([]), 'array is not negative zero'); - t.notOk(isNegativeZero({}), 'object is not negative zero'); - t.notOk(isNegativeZero(function () {}), 'function is not negative zero'); - t.notOk(isNegativeZero(-1), '-1 is not negative zero'); - - t.end(); -}); - -test('negative zero', function (t) { - t.ok(isNegativeZero(-0), 'negative zero is negative zero'); - t.end(); -}); - diff --git a/node_modules/is-number-object/.editorconfig b/node_modules/is-number-object/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/is-number-object/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/is-number-object/.eslintignore b/node_modules/is-number-object/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-number-object/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-number-object/.eslintrc b/node_modules/is-number-object/.eslintrc deleted file mode 100644 index a6dec94..0000000 --- a/node_modules/is-number-object/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - }, -} diff --git a/node_modules/is-number-object/.github/FUNDING.yml b/node_modules/is-number-object/.github/FUNDING.yml deleted file mode 100644 index 17f4dc5..0000000 --- a/node_modules/is-number-object/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-number-object -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-number-object/CHANGELOG.md b/node_modules/is-number-object/CHANGELOG.md deleted file mode 100644 index d6954eb..0000000 --- a/node_modules/is-number-object/CHANGELOG.md +++ /dev/null @@ -1,105 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.5](https://github.com/inspect-js/is-number-object/compare/v1.0.4...v1.0.5) - 2021-05-07 - -### Commits - -- [Tests] migrate tests to Github Actions [`9666737`](https://github.com/inspect-js/is-number-object/commit/96667372f8e36f70516218f86318f957f8c175ad) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`7815ce2`](https://github.com/inspect-js/is-number-object/commit/7815ce21cb5662c2d1651b3ec302f186aa8a016b) -- [meta] do not publish github action workflow files [`80ccb75`](https://github.com/inspect-js/is-number-object/commit/80ccb7509f91732675b018cc1a636d649a92889e) -- [Tests] run `nyc` on all tests [`c9ffb74`](https://github.com/inspect-js/is-number-object/commit/c9ffb74443690ef22f9aa7dd35855fd1e3be5184) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`7e84161`](https://github.com/inspect-js/is-number-object/commit/7e84161d089c87ef42e3639ac1889642624ebd28) -- [readme] add actions and codecov badges [`0c5ec7a`](https://github.com/inspect-js/is-number-object/commit/0c5ec7aa87dac27bdcda2365124c3aa0ccf9c278) -- [actions] add Require Allow Edits workflow [`dd0fb74`](https://github.com/inspect-js/is-number-object/commit/dd0fb74b2ecb630ea7778a6f06dcc017323a3c1d) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `tape` [`2d36f80`](https://github.com/inspect-js/is-number-object/commit/2d36f809a7b9896958b0b0f3b69be0067caedb45) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`77d3140`](https://github.com/inspect-js/is-number-object/commit/77d3140557d483e467ce070b21bf384e9a7562d5) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`75d4abf`](https://github.com/inspect-js/is-number-object/commit/75d4abf34168e69d73f621c696a16179ddc0873c) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`0c2a917`](https://github.com/inspect-js/is-number-object/commit/0c2a917e4802b102888759fad912bd9faa5587f7) -- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`8b6ebc4`](https://github.com/inspect-js/is-number-object/commit/8b6ebc489db14a0c369214e081413f326fc0d598) -- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`62045fc`](https://github.com/inspect-js/is-number-object/commit/62045fcaddb9e4d3ef81068e99d07d21cd62023b) -- [actions] use checkout v2; remove unneeded env [`d48cd06`](https://github.com/inspect-js/is-number-object/commit/d48cd06720ea71f278a6d35c6f0a8ec04242a58f) -- [meta] use `prepublishOnly` script for npm 7+ [`827ab0d`](https://github.com/inspect-js/is-number-object/commit/827ab0d52d25f46d232ae7442ece270dec2de1df) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`bfed500`](https://github.com/inspect-js/is-number-object/commit/bfed500e6cc3cd3b9e7ffea78429c59857035791) -- [meta] remove explicit audit level config [`ce23e5e`](https://github.com/inspect-js/is-number-object/commit/ce23e5e49fbebe190267d8c99ddfd880a963b7ee) -- [meta] gitignore coverage output [`f1ad981`](https://github.com/inspect-js/is-number-object/commit/f1ad98106549c1c88322d8cb206068ea4c5bd424) - -## [v1.0.4](https://github.com/inspect-js/is-number-object/compare/v1.0.3...v1.0.4) - 2019-12-18 - -### Commits - -- [Tests] use shared travis-ci configs [`792b5aa`](https://github.com/inspect-js/is-number-object/commit/792b5aa5e7313ddf5507f7283bb7d5d5c646b11b) -- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`dc66db7`](https://github.com/inspect-js/is-number-object/commit/dc66db7dd1eca0263f6602597eb40601519e912e) -- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`7660fed`](https://github.com/inspect-js/is-number-object/commit/7660fed03a7060eb5c91e74b9a17303d4fac1056) -- [Tests] remove `jscs` [`f1fee97`](https://github.com/inspect-js/is-number-object/commit/f1fee97423478bcc653c844fadda55138d9b9a54) -- [meta] add `auto-changelog` [`4b1c225`](https://github.com/inspect-js/is-number-object/commit/4b1c2253770eb18761a1e8b157772028d6f742c4) -- [meta] remove unused Makefile and associated utilities [`379b979`](https://github.com/inspect-js/is-number-object/commit/379b9793d9c61d7889e53bd9de9578dca9964ebc) -- Update `covert`, `jscs`, `eslint`, `semver` [`16d2af8`](https://github.com/inspect-js/is-number-object/commit/16d2af82a6c93aee614f7a4b2c468411c743e95f) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `is`, `replace`, `semver`, `tape` [`21c0f04`](https://github.com/inspect-js/is-number-object/commit/21c0f0431984b87443c6acb9f003368feb7b4368) -- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `nsp`, `eslint`, `semver`. Add `replace`. Use `^` instead of `~`. [`19d6ee3`](https://github.com/inspect-js/is-number-object/commit/19d6ee3a3d4a87764d57316804fd8b882ba5197c) -- Update `eslint` [`d32754b`](https://github.com/inspect-js/is-number-object/commit/d32754bcca0033e01eba531c4353d1239e992203) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace` [`1df8165`](https://github.com/inspect-js/is-number-object/commit/1df8165dd63d9f2f78ccb78e905d0a6b3e302884) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`675372b`](https://github.com/inspect-js/is-number-object/commit/675372b115fb20b5034f40bcbb5560c6c0512746) -- [readme] clean up readme; remove testling; fix repo URLs [`80e29c4`](https://github.com/inspect-js/is-number-object/commit/80e29c4d6d0811fc361e95ee83b81280bf3ae3f5) -- [Tests] up to `node` `v12.7`, `v10.16`, `v8.16` [`287a968`](https://github.com/inspect-js/is-number-object/commit/287a9687b1fc3d091ec231c06f19a19ff7b0e8f6) -- Test on latest `iojs` and `node` versions. [`11c98a2`](https://github.com/inspect-js/is-number-object/commit/11c98a23b232cb21c7daab797fd63875c2970681) -- [actions] add automatic rebasing / merge commit blocking [`022d026`](https://github.com/inspect-js/is-number-object/commit/022d026129df445f239ba2ecd8d47a2786242d75) -- [meta] create FUNDING.yml [`7f52710`](https://github.com/inspect-js/is-number-object/commit/7f527107168aad7108b7c262d295dcf44e03214d) -- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`bc8cd50`](https://github.com/inspect-js/is-number-object/commit/bc8cd508fe4440168f9b049be3ddf93c56c06c49) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`1f9200b`](https://github.com/inspect-js/is-number-object/commit/1f9200b7c56840dc23eeeca5d0ee4f64a0446e08) -- [Tests] up to `node` `v12.11` [`706d50a`](https://github.com/inspect-js/is-number-object/commit/706d50a779b90feb3f4d2ae88d8189d19b913073) -- [Dev Deps] update `jscs` [`e3591a4`](https://github.com/inspect-js/is-number-object/commit/e3591a445b1af25d46632eafea51efa07b4eb6dc) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`baf4ee7`](https://github.com/inspect-js/is-number-object/commit/baf4ee749fb65ec12e9cab102e77aa0e14312109) -- Update `nsp`, `eslint` [`61b18d5`](https://github.com/inspect-js/is-number-object/commit/61b18d5b44542fddf4950534d506b20d8c8b1f44) -- Update `eslint`, `semver` [`52e61bd`](https://github.com/inspect-js/is-number-object/commit/52e61bd4334c0a1afacd147fd0bc1e2c1be10df5) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`; add `safe-publish-latest` [`79db7f6`](https://github.com/inspect-js/is-number-object/commit/79db7f610d2bcf5f0d6e8ca834f7402504101072) -- Only apps should have lockfiles [`677b9b4`](https://github.com/inspect-js/is-number-object/commit/677b9b4fb6ad9d7b984cb0f89c8b5a6df143b29a) -- Test on `io.js` `v2.2` [`e8a38b2`](https://github.com/inspect-js/is-number-object/commit/e8a38b2fe73b841b0ed55d9f60573d460a4f2a62) -- [meta] add `funding` field [`85315e7`](https://github.com/inspect-js/is-number-object/commit/85315e75c119a2aef70a766f2ddc1079b64d006b) -- [Dev Deps] update `eslint`, `tape` [`f3581aa`](https://github.com/inspect-js/is-number-object/commit/f3581aaea310546f6ee4612990468d39f058d320) -- [Tests] use `eclint` instead of `editorconfig-tools` [`7b53680`](https://github.com/inspect-js/is-number-object/commit/7b5368071000eb1c715aeeee5ff47ffdbee9fe5c) -- [Dev Deps] update `semver`, `tape` [`d6b524a`](https://github.com/inspect-js/is-number-object/commit/d6b524ac2e8c0240c436cbe8828671e383d51fd5) -- [Dev Deps] Update `tape`, `eslint` [`be19203`](https://github.com/inspect-js/is-number-object/commit/be19203dee0aa70ff8f09823bf880a38b824e1ed) -- Test up to `io.js` `v2.1` [`feb7ba6`](https://github.com/inspect-js/is-number-object/commit/feb7ba63a0816f1d36419ce240f96e9b4e4c90ba) -- Test up to `io.js` `v3.0` [`7be1f0a`](https://github.com/inspect-js/is-number-object/commit/7be1f0a25dc59b6606be9ee1ace38cb7039a59d2) -- [Dev Deps] update `tape` [`d9a2318`](https://github.com/inspect-js/is-number-object/commit/d9a2318bc82477e9321e961def11e28d364e5562) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`a6cd411`](https://github.com/inspect-js/is-number-object/commit/a6cd411c6bd92691a48b52683afce584c2c6b21b) -- Test on `io.js` `v2.4` [`46c2e7f`](https://github.com/inspect-js/is-number-object/commit/46c2e7f2ce8ad7f8ab3c1da827d93fc2780eff06) -- Test on `io.js` `v2.3` [`9c344b0`](https://github.com/inspect-js/is-number-object/commit/9c344b0df83628908a1f776a3f2e5fc4fae1d4d2) -- Fix tests for faked @@toStringTag [`f8c446e`](https://github.com/inspect-js/is-number-object/commit/f8c446e9fc320c23807717356e259529f494b9f3) - -## [v1.0.3](https://github.com/inspect-js/is-number-object/compare/v1.0.2...v1.0.3) - 2015-01-29 - -### Commits - -- If @@toStringTag is not present, use the old-school Object#toString test. [`9b2a4df`](https://github.com/inspect-js/is-number-object/commit/9b2a4df6ccf903e89198d4244eeb7f47a7056327) - -## [v1.0.2](https://github.com/inspect-js/is-number-object/compare/v1.0.1...v1.0.2) - 2015-01-29 - -### Commits - -- Improve optimizability of the non-try/catch part. [`7e6be2f`](https://github.com/inspect-js/is-number-object/commit/7e6be2fd2346557fc81bd544ac8745021c50e266) -- Fix package.json [`4f2ebea`](https://github.com/inspect-js/is-number-object/commit/4f2ebeae09c45e1eefeb2c10a011ff2ef0aca921) - -## [v1.0.1](https://github.com/inspect-js/is-number-object/compare/v1.0.0...v1.0.1) - 2015-01-29 - -### Commits - -- Use Object() instead of new Number() [`1aaa746`](https://github.com/inspect-js/is-number-object/commit/1aaa746c26878a0f698aabea4d88215311f2a38d) -- Add early exits for typeof number, or typeof not "object". [`eae4337`](https://github.com/inspect-js/is-number-object/commit/eae43375d3f88e04bb10eabd954e5a6b66ad5305) - -## v1.0.0 - 2015-01-28 - -### Commits - -- Dotfiles. [`9c74e3e`](https://github.com/inspect-js/is-number-object/commit/9c74e3eb2b10398d4022de7c4015531e874f06c8) -- `make release` [`a99e5ae`](https://github.com/inspect-js/is-number-object/commit/a99e5aeb3995a7d543fc5833722bc02011fabad6) -- package.json [`4fed9ef`](https://github.com/inspect-js/is-number-object/commit/4fed9ef7c35ccfc45ca8acd3c92c9cb91c7daa6d) -- Read me [`c91d6ba`](https://github.com/inspect-js/is-number-object/commit/c91d6ba00de79eaaac5fec7c9d8866d61d0abb62) -- Initial commit [`629fb96`](https://github.com/inspect-js/is-number-object/commit/629fb969f076e0802c799b368c7b02556bb0750e) -- Tests. [`a39de62`](https://github.com/inspect-js/is-number-object/commit/a39de624785cc204ed7c0ea5518f1c878870ceb1) -- Implementation. [`aedd91e`](https://github.com/inspect-js/is-number-object/commit/aedd91e6fc23f00852ad1266b6c19f32b7f93a22) diff --git a/node_modules/is-number-object/LICENSE b/node_modules/is-number-object/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/is-number-object/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/is-number-object/README.md b/node_modules/is-number-object/README.md deleted file mode 100644 index a5f1e5b..0000000 --- a/node_modules/is-number-object/README.md +++ /dev/null @@ -1,55 +0,0 @@ -# is-number-object [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value a JS Number object? This module works cross-realm/iframe, and despite ES6 @@toStringTag. - -## Example - -```js -var isNumber = require('is-number-object'); -var assert = require('assert'); - -assert.notOk(isNumber(undefined)); -assert.notOk(isNumber(null)); -assert.notOk(isNumber(false)); -assert.notOk(isNumber(true)); -assert.notOk(isNumber('foo')); -assert.notOk(isNumber(function () {})); -assert.notOk(isNumber([])); -assert.notOk(isNumber({})); -assert.notOk(isNumber(/a/g)); -assert.notOk(isNumber(new RegExp('a', 'g'))); -assert.notOk(isNumber(new Date())); - -assert.ok(isNumber(42)); -assert.ok(isNumber(NaN)); -assert.ok(isNumber(Infinity)); -assert.ok(isNumber(new Number(42))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-number-object -[2]: https://versionbadg.es/inspect-js/is-number-object.svg -[5]: https://david-dm.org/inspect-js/is-number-object.svg -[6]: https://david-dm.org/inspect-js/is-number-object -[7]: https://david-dm.org/inspect-js/is-number-object/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-number-object#info=devDependencies -[11]: https://nodei.co/npm/is-number-object.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-number-object.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-number-object.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-number-object -[codecov-image]: https://codecov.io/gh/inspect-js/is-number-object/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-number-object/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-number-object -[actions-url]: https://github.com/inspect-js/is-number-object/actions diff --git a/node_modules/is-number-object/index.js b/node_modules/is-number-object/index.js deleted file mode 100644 index 637a4b9..0000000 --- a/node_modules/is-number-object/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var numToStr = Number.prototype.toString; -var tryNumberObject = function tryNumberObject(value) { - try { - numToStr.call(value); - return true; - } catch (e) { - return false; - } -}; -var toStr = Object.prototype.toString; -var numClass = '[object Number]'; -var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; - -module.exports = function isNumberObject(value) { - if (typeof value === 'number') { - return true; - } - if (typeof value !== 'object') { - return false; - } - return hasToStringTag ? tryNumberObject(value) : toStr.call(value) === numClass; -}; diff --git a/node_modules/is-number-object/package.json b/node_modules/is-number-object/package.json deleted file mode 100644 index 3816d2f..0000000 --- a/node_modules/is-number-object/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-number-object/test/corejs.js b/node_modules/is-number-object/test/corejs.js deleted file mode 100644 index 73f0c89..0000000 --- a/node_modules/is-number-object/test/corejs.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('core-js'); - -require('./'); diff --git a/node_modules/is-number-object/test/index.js b/node_modules/is-number-object/test/index.js deleted file mode 100644 index 04ada7d..0000000 --- a/node_modules/is-number-object/test/index.js +++ /dev/null @@ -1,38 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isNumber = require('../'); -var hasSymbols = require('has-symbols/shams')(); - -test('not Numbers', function (t) { - t.notOk(isNumber(), 'undefined is not Number'); - t.notOk(isNumber(null), 'null is not Number'); - t.notOk(isNumber(false), 'false is not Number'); - t.notOk(isNumber(true), 'true is not Number'); - t.notOk(isNumber('foo'), 'string is not Number'); - t.notOk(isNumber([]), 'array is not Number'); - t.notOk(isNumber({}), 'object is not Number'); - t.notOk(isNumber(function () {}), 'function is not Number'); - t.notOk(isNumber(/a/g), 'regex literal is not Number'); - t.notOk(isNumber(new RegExp('a', 'g')), 'regex object is not Number'); - t.notOk(isNumber(new Date()), 'new Date() is not Number'); - t.end(); -}); - -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { - var fakeNumber = { - toString: function () { return '7'; }, - valueOf: function () { return 42; } - }; - fakeNumber[Symbol.toStringTag] = 'Number'; - t.notOk(isNumber(fakeNumber), 'fake Number with @@toStringTag "Number" is not Number'); - t.end(); -}); - -test('Numbers', function (t) { - t.ok(isNumber(42), 'number is Number'); - t.ok(isNumber(Object(42)), 'number object is Number'); - t.ok(isNumber(NaN), 'NaN is Number'); - t.ok(isNumber(Infinity), 'Infinity is Number'); - t.end(); -}); diff --git a/node_modules/is-regex/.editorconfig b/node_modules/is-regex/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/is-regex/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/is-regex/.eslintignore b/node_modules/is-regex/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-regex/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-regex/.eslintrc b/node_modules/is-regex/.eslintrc deleted file mode 100644 index 1f6f127..0000000 --- a/node_modules/is-regex/.eslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "id-length": [1], - "operator-linebreak": [2, "before"], - }, - - "overrides": [ - { - "files": ["test/**/*.js"], - "globals": { - "Proxy": false, - }, - }, - ], -} diff --git a/node_modules/is-regex/.nycrc b/node_modules/is-regex/.nycrc deleted file mode 100644 index a69aa2d..0000000 --- a/node_modules/is-regex/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test", - "test-corejs.js" - ] -} diff --git a/node_modules/is-regex/CHANGELOG.md b/node_modules/is-regex/CHANGELOG.md deleted file mode 100644 index 3b2a48c..0000000 --- a/node_modules/is-regex/CHANGELOG.md +++ /dev/null @@ -1,190 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.1.3](https://github.com/inspect-js/is-regex/compare/v1.1.2...v1.1.3) - 2021-05-07 - -### Commits - -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`c681ab9`](https://github.com/inspect-js/is-regex/commit/c681ab99c07f8b3b7ae5f652b3105a30bce94f69) -- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`ca019fd`](https://github.com/inspect-js/is-regex/commit/ca019fdb828dc7d32e323213403ac9995d8604e3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`605a66f`](https://github.com/inspect-js/is-regex/commit/605a66f278900f1c8ae9d1dfcec31e5f61b10ad3) -- [readme] add actions and codecov badges [`8d7c6f0`](https://github.com/inspect-js/is-regex/commit/8d7c6f0e007bd982f21b958e0abc98b8a84e2a24) -- [meta] use `prepublishOnly` script for npm 7+ [`8e50e91`](https://github.com/inspect-js/is-regex/commit/8e50e91f51aa5038745526710ef2e030527982a7) -- [Deps] update `has-symbols` [`4742c81`](https://github.com/inspect-js/is-regex/commit/4742c81260c3db9a8c9ef57110981fb6175f58e0) - -## [v1.1.2](https://github.com/inspect-js/is-regex/compare/v1.1.1...v1.1.2) - 2021-02-01 - -### Commits - -- [Tests] migrate tests to Github Actions [`cc1686e`](https://github.com/inspect-js/is-regex/commit/cc1686e25f446ca6948f43b3f180d6e55e31fb4e) -- [readme] fix repo URLs; remove travis badge [`d1d1da6`](https://github.com/inspect-js/is-regex/commit/d1d1da647bb4e91589606f12470cd27a47b3bb81) -- [meta] do not publish github action workflow files [`9f84b99`](https://github.com/inspect-js/is-regex/commit/9f84b993a995f057b4d2d097ef47b1ff9c84115d) -- [Tests] run `nyc` on all tests [`c37aab9`](https://github.com/inspect-js/is-regex/commit/c37aab9d332c4834b08ada94736c45ab1d39cd2f) -- [Robustness] use `call-bind` [`fbb61bf`](https://github.com/inspect-js/is-regex/commit/fbb61bf3e19ccc178e6ed1e0d7ab9cc7c7167393) -- [actions] add "Allow Edits" workflow [`9022b53`](https://github.com/inspect-js/is-regex/commit/9022b53cb05b0f105cd179800cf96e055b249f08) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`d60f28f`](https://github.com/inspect-js/is-regex/commit/d60f28f7f2fb21dade7bce302b3e0246206423d3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`2c35c43`](https://github.com/inspect-js/is-regex/commit/2c35c437edf3eeb37129eea2404d8f465d27620f) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`1009e25`](https://github.com/inspect-js/is-regex/commit/1009e259d49a63753dc6e79e2b876a30c00c6de6) -- [meta] gitignore coverage output [`3b5fa9e`](https://github.com/inspect-js/is-regex/commit/3b5fa9ed2882c65ee81dff979f79f1a2751d3772) -- [actions] update workflows [`1843ef6`](https://github.com/inspect-js/is-regex/commit/1843ef65b8b8c24a44e91bc4ed5ee60dffc31c2d) - -## [v1.1.1](https://github.com/inspect-js/is-regex/compare/v1.1.0...v1.1.1) - 2020-08-03 - -### Commits - -- [Performance] Re-add lastIndex check to improve performance [`d8495cd`](https://github.com/inspect-js/is-regex/commit/d8495cd22d475ddca250818921b6088f631c1972) -- [Dev Deps] update `auto-changelog`, `eslint` [`778fa6b`](https://github.com/inspect-js/is-regex/commit/778fa6b9d2b182ee6d73993e103532855e956f85) - -## [v1.1.0](https://github.com/inspect-js/is-regex/compare/v1.0.5...v1.1.0) - 2020-06-03 - -### Commits - -- [New] use `badStringifier`‑based RegExp detection [`31eff67`](https://github.com/inspect-js/is-regex/commit/31eff673243d65c3d6c05848c0eb52f5380f1be3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`fc91458`](https://github.com/inspect-js/is-regex/commit/fc914588187b8bb00d8d792c84f06a6e15d883c1) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`; add `safe-publish-latest` [`d43ed83`](https://github.com/inspect-js/is-regex/commit/d43ed83db54ea727bb0b1b77a50af79d1edb8a6d) -- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`56647d1`](https://github.com/inspect-js/is-regex/commit/56647d196be34ef3c118ad67726e75169fbcb875) -- [meta] only run `aud` on prod deps [`e0865b8`](https://github.com/inspect-js/is-regex/commit/e0865b8360b0ac1b9d17b7b81ae5f339e5c9036b) - -## [v1.0.5](https://github.com/inspect-js/is-regex/compare/v1.0.4...v1.0.5) - 2019-12-15 - -### Commits - -- [Tests] use shared travis-ci configs [`af728b2`](https://github.com/inspect-js/is-regex/commit/af728b21c5cc9e41234fb4015594bffdcfff597c) -- [Tests] remove `jscs` [`1b8cfe8`](https://github.com/inspect-js/is-regex/commit/1b8cfe8cfb14820c196775f19d370276e4034791) -- [meta] add `auto-changelog` [`c3131d8`](https://github.com/inspect-js/is-regex/commit/c3131d8ab5d06ea5fa05a4bb2ad28bbfb81668ad) -- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`, `v4.8`; newer npm fails on older nodes [`660b658`](https://github.com/inspect-js/is-regex/commit/660b6585d1a9607dbdae879b70ce2f6a5684616c) -- [Tests] up to `node` `v9.3`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS [`7c25218`](https://github.com/inspect-js/is-regex/commit/7c25218d540ab17c18e4ae333677c5725806a778) -- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`fa95547`](https://github.com/inspect-js/is-regex/commit/fa955478950a5ba0a920010d5daaa29487500b30) -- [meta] remove unused Makefile and associated utilities [`9fd2a29`](https://github.com/inspect-js/is-regex/commit/9fd2a29dc57ed125f3d61e94f6254a9dd8ee0044) -- [Tests] up to `node` `v11.3`, `v10.14`, `v8.14`, `v6.15` [`7f2ac41`](https://github.com/inspect-js/is-regex/commit/7f2ac41ef5dc4d53bfe2fb1c24486c688a2537bd) -- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`6fa2b0f`](https://github.com/inspect-js/is-regex/commit/6fa2b0fe171a5b02086a06679a92d989e83a8b8e) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`697e1de`](https://github.com/inspect-js/is-regex/commit/697e1de1c9e69f08e591cc0040d81fdbbde6fe4e) -- [actions] add automatic rebasing / merge commit blocking [`ad86dc9`](https://github.com/inspect-js/is-regex/commit/ad86dc97a52e4f66fbfb3b8c9c78da3963588b54) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `jscs`, `nsp`, `replace`, `semver`, `tape` [`5c99c8e`](https://github.com/inspect-js/is-regex/commit/5c99c8e384d5ce2ef434be5853c301477cf35456) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `replace`, `semver`, `tape` [`bb63686`](https://github.com/inspect-js/is-regex/commit/bb63686a9d0fc586d121549cf484da95edec3b0a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config@`, `replace`, `semver`, `tape` [`ddf3670`](https://github.com/inspect-js/is-regex/commit/ddf36705e5f7bd29832721e4a23abf06195032c6) -- [Dev Deps] update `tape`, `nsp`, `eslint`, `@ljharb/eslint-config` [`e7b5a62`](https://github.com/inspect-js/is-regex/commit/e7b5a626eef3b9648c7d52d4620ce2e2a98a9ab8) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape` [`c803db5`](https://github.com/inspect-js/is-regex/commit/c803db5cd94cf9e0a559617adbc1e4c9d22007ff) -- [Tests] switch from `nsp` to `npm audit` [`b7239be`](https://github.com/inspect-js/is-regex/commit/b7239be9da263a0f7066f79d087eaf700a9613e9) -- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`347ee6c`](https://github.com/inspect-js/is-regex/commit/347ee6c67ba0f56b03f21a5abe743658f6515963) -- Only apps should have lockfiles. [`3866575`](https://github.com/inspect-js/is-regex/commit/38665755ecf028061f15816059e26023890a0dc7) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`d099a39`](https://github.com/inspect-js/is-regex/commit/d099a3943eb7e156a3e64fb8b74e11d7c83a4bec) -- [meta] add `funding` field [`741aecd`](https://github.com/inspect-js/is-regex/commit/741aecd92cd49868b3606c8cc99ce299e5f3c7d5) -- [Tests] use `eclint` instead of `editorconfig-tools` [`bc6aa75`](https://github.com/inspect-js/is-regex/commit/bc6aa7539e506788709b96f7bf3d7549850a81c3) -- [Tests] on `node` `v10.1` [`262226f`](https://github.com/inspect-js/is-regex/commit/262226f08fa34dff9a8dffd16daabb3dc6e262eb) -- [Dev Deps] update `eslint` [`31fd719`](https://github.com/inspect-js/is-regex/commit/31fd719dd59a6111ca710cdb0d19a8adadf9b8c6) -- [Deps] update `has` [`e9e25a3`](https://github.com/inspect-js/is-regex/commit/e9e25a3de7e89faaa6aadf5010477074140e8218) -- [Dev Deps] update `replace` [`aeeb968`](https://github.com/inspect-js/is-regex/commit/aeeb968bf5a4fc07f0fa6905f2c699fc563b6c32) -- [Tests] set audit level [`2a6290e`](https://github.com/inspect-js/is-regex/commit/2a6290e78b58bf14b734d7998fe53b4a84db5e44) -- [Tests] remove `nsp` [`fc74c2b`](https://github.com/inspect-js/is-regex/commit/fc74c2bb6970a7f3280abe6eff3b492d77d89c9f) - -## [v1.0.4](https://github.com/inspect-js/is-regex/compare/v1.0.3...v1.0.4) - 2017-02-18 - -### Fixed - -- [Fix] ensure that `lastIndex` is not mutated [`#3`](https://github.com/inspect-js/is-regex/issues/3) - -### Commits - -- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`c4a41c3`](https://github.com/inspect-js/is-regex/commit/c4a41c3a8203a3919b01cd0d1b577daadf30a452) -- [Tests] on all node minors; improve test matrix [`58d7508`](https://github.com/inspect-js/is-regex/commit/58d7508a36eb92bd76717486b9e78bde502ffe3e) -- [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`7290076`](https://github.com/inspect-js/is-regex/commit/729007606e9ed162953d1f5812c37eb06c554ec2) -- Update `covert`, `jscs`, `eslint`, `semver` [`dabc729`](https://github.com/inspect-js/is-regex/commit/dabc729cfc4458264c6f7642004d41dd5c214bfd) -- Update `eslint` [`a946b05`](https://github.com/inspect-js/is-regex/commit/a946b051159396b4311c564880f96e3d00e8b8e2) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`1744dde`](https://github.com/inspect-js/is-regex/commit/1744dde77526841f216fa2c1c866c5a82b1638c0) -- [Refactor] when try/catch is needed, bail early if the value lacks an own `lastIndex` data property. [`288ad93`](https://github.com/inspect-js/is-regex/commit/288ad93dbfed9f6828de20de67105ee6d6504425) -- Update `editorconfig-tools`, `eslint`, `semver`, `replace` [`4d895c6`](https://github.com/inspect-js/is-regex/commit/4d895c68a0cdbb5803185928963c15147aad0404) -- Update `eslint`, `tape`, `semver` [`f387f03`](https://github.com/inspect-js/is-regex/commit/f387f03b260b56372bfca301d4e79c4067633854) -- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`55e480f`](https://github.com/inspect-js/is-regex/commit/55e480f407cafb6c21a6c32aef04ccaa3ba4216c) -- [Dev Deps] update `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`89d9528`](https://github.com/inspect-js/is-regex/commit/89d95285b364913ebcd8ac7e0872570fe009a5d3) -- [Dev Deps] update `jscs` [`eb222a8`](https://github.com/inspect-js/is-regex/commit/eb222a8435e59909354f3700fd4880e4ce1cb13e) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`c65429c`](https://github.com/inspect-js/is-regex/commit/c65429cea0366508c10ad2ab773af7b83a34fc81) -- Update `nsp`, `eslint` [`c60fbd8`](https://github.com/inspect-js/is-regex/commit/c60fbd8680f7fb3508ec3c5be8ebb788672516c8) -- Update `eslint`, `semver` [`6a62116`](https://github.com/inspect-js/is-regex/commit/6a621168c63616bf004ca8b1f885b4eb8a58a3e5) -- [Tests] on `node` `v7.5`, `v4.7` [`e764651`](https://github.com/inspect-js/is-regex/commit/e764651336f5da5e239e9fe8869f3a3201c19d2b) -- Test up to `io.js` `v2.1` [`3bf326a`](https://github.com/inspect-js/is-regex/commit/3bf326a9bcd530fd16c9fc806e249a68e25ab7e3) -- Test on the latest `io.js` versions. [`693d047`](https://github.com/inspect-js/is-regex/commit/693d0477631c5d7671f6c99eca5594ffffa75771) -- [Refactor] use an early return instead of a ternary. [`31eaca2`](https://github.com/inspect-js/is-regex/commit/31eaca28b7d0aaac0599fe7a569b93b842f8ab16) -- Test on `io.js` `v2.2` [`c18c55a`](https://github.com/inspect-js/is-regex/commit/c18c55aee6358d70531f935e98851e42b698d93c) -- Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. [`a1c237d`](https://github.com/inspect-js/is-regex/commit/a1c237d35f880fe0bcbc9275254611a6a2300aaf) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`aa3ea0f`](https://github.com/inspect-js/is-regex/commit/aa3ea0f148af31d75f7ef8a800412729d82def04) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`d97831d`](https://github.com/inspect-js/is-regex/commit/d97831d0e2ccd3d00d1f7354b7f81e2575f90953) -- [Dev Deps] Update `tape`, `eslint` [`95e6def`](https://github.com/inspect-js/is-regex/commit/95e6defe3178c45dc9df16e474e558979d5f5c05) -- Update `eslint`, `nsp` [`3844c93`](https://github.com/inspect-js/is-regex/commit/3844c935cfe7c52fae0dc74d27e884c417cb4616) -- Update `tape`, `jscs` [`0d6dac8`](https://github.com/inspect-js/is-regex/commit/0d6dac818ed251910171965932f021291919e770) -- Fix tests for faked @@toStringTag [`2ebef9f`](https://github.com/inspect-js/is-regex/commit/2ebef9f0759843e9a063de7a512b46e3e7daea7e) -- Test up to `io.js` `v3.0` [`ec1d2d4`](https://github.com/inspect-js/is-regex/commit/ec1d2d44481fa0fa11448527da8030c99fe47a12) -- [Refactor] bail earlier when the value is falsy. [`a9e333e`](https://github.com/inspect-js/is-regex/commit/a9e333e2ac8912ca05b7e31d30e4eea683c0da4b) -- [Dev Deps] update `tape` [`8cdcaae`](https://github.com/inspect-js/is-regex/commit/8cdcaae07be8c790cdb99849e6076ea7702a4c84) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`281c4ef`](https://github.com/inspect-js/is-regex/commit/281c4efeb71c86dd380e741bcaee3f7dbf956151) -- Test on `io.js` `v2.4` [`4d54c68`](https://github.com/inspect-js/is-regex/commit/4d54c68a81b5332a3b76259d8aa8f514be5efd13) -- Test on `io.js` `v2.3` [`23170f5`](https://github.com/inspect-js/is-regex/commit/23170f5cae632d0377de73bd2febc53db8aebbc9) -- Test on `iojs-v1.6` [`4487ad0`](https://github.com/inspect-js/is-regex/commit/4487ad0194a5684223bfa2690da4e0a441f7132a) - -## [v1.0.3](https://github.com/inspect-js/is-regex/compare/v1.0.2...v1.0.3) - 2015-01-29 - -### Commits - -- Update npm run scripts. [`dc528dd`](https://github.com/inspect-js/is-regex/commit/dc528dd25e775089bc0a3f5a8f7ae7ffc4cdf52a) -- Add toStringTag tests. [`f48a83a`](https://github.com/inspect-js/is-regex/commit/f48a83a78720b78ab60ca586c16f6f3dbcfec825) -- If @@toStringTag is not present, use the old-school Object#toString test. [`50b0ffd`](https://github.com/inspect-js/is-regex/commit/50b0ffd9c7fdbd54aee8cde1b07e680ae84f6a0d) - -## [v1.0.2](https://github.com/inspect-js/is-regex/compare/v1.0.1...v1.0.2) - 2015-01-29 - -### Commits - -- `make release` [`a1de7ec`](https://github.com/inspect-js/is-regex/commit/a1de7eca4cecc8015fd27804669f8fc61bd16a68) -- Improve optimization by separating the try/catch, and bailing out early when not typeof "object". [`5ab7632`](https://github.com/inspect-js/is-regex/commit/5ab76322a348487fa8b16761e83f6824c3c27d11) - -## [v1.0.1](https://github.com/inspect-js/is-regex/compare/v1.0.0...v1.0.1) - 2015-01-28 - -### Commits - -- Using my standard jscs.json file [`1f1733a`](https://github.com/inspect-js/is-regex/commit/1f1733ac8433cdcceb25356f86b74136a4477cb9) -- Adding `npm run lint` [`51ea70f`](https://github.com/inspect-js/is-regex/commit/51ea70fa7e461d022f611c195f343ea8d0333d71) -- Use RegExp#exec to test if something is a regex, which works even with ES6 @@toStringTag. [`042c8c7`](https://github.com/inspect-js/is-regex/commit/042c8c734faade9015932b61f1e8ea4f3a93b1b3) -- Adding license and downloads badges [`366d619`](https://github.com/inspect-js/is-regex/commit/366d61965d3a4119126e78e09b2166bbcddd0c5a) -- Use SVG badges instead of PNG [`6a32e4f`](https://github.com/inspect-js/is-regex/commit/6a32e4fc87d7d3a3787b800dd033c9293aead6df) -- Update `tape`, `jscs` [`f1b9462`](https://github.com/inspect-js/is-regex/commit/f1b9462f86d1b69de07176e7f277f668757ba964) -- Update `jscs` [`1bff23f`](https://github.com/inspect-js/is-regex/commit/1bff23ff0fe88c8263e8bf04cf99e290af96d5b0) -- Update `tape`, `jscs` [`c22ea2e`](https://github.com/inspect-js/is-regex/commit/c22ea2e7967f45618deed01ff5ea483f918be216) -- Update `tape`, `jscs` [`b0479db`](https://github.com/inspect-js/is-regex/commit/b0479db99a1b1b872d1618fb0a71f0c74a78b29b) -- Use consistent quotes [`1a6e347`](https://github.com/inspect-js/is-regex/commit/1a6e34730d9270f3f20519139faa4c4e6ec2e1f5) -- Make travis builds faster. [`090a4ea`](https://github.com/inspect-js/is-regex/commit/090a4ea7c5fa709d108d596e3bc304e6ce973dec) -- Update `tape` [`7d76129`](https://github.com/inspect-js/is-regex/commit/7d7612928bdd43230fbd835db71797249ca24f35) -- Lock covert to v1.0.0. [`9a90b03`](https://github.com/inspect-js/is-regex/commit/9a90b03fb390e66f874223a34c58ba2bb109edd3) -- Updating tape [`bfbc7f5`](https://github.com/inspect-js/is-regex/commit/bfbc7f593a007acd0411152bbb55f724dc4ca935) -- Updating jscs [`13ad511`](https://github.com/inspect-js/is-regex/commit/13ad511d80cd67300c2c0c5387fc4b3b423e2768) -- Updating jscs [`cda1945`](https://github.com/inspect-js/is-regex/commit/cda1945d603dfe99e24d5a909a931d366451bc4d) -- Updating jscs [`de96c99`](https://github.com/inspect-js/is-regex/commit/de96c99d4bf5787df671de6df9138b6547a6545b) -- Running linter as part of tests [`2cb6567`](https://github.com/inspect-js/is-regex/commit/2cb656733b1ed0af14ad11fb584006d22de0c69d) -- Updating covert [`a56ae74`](https://github.com/inspect-js/is-regex/commit/a56ae74ec8d5f0473295a8b10519a18580f16624) -- Updating tape [`ffe47f7`](https://github.com/inspect-js/is-regex/commit/ffe47f7fe9cf6d16896b4bdc286bd1d0805d5c49) - -## [v1.0.0](https://github.com/inspect-js/is-regex/compare/v0.0.0...v1.0.0) - 2014-05-19 - -### Commits - -- Make sure old and unstable nodes don't break Travis [`05da747`](https://github.com/inspect-js/is-regex/commit/05da7478f960dc131ec3ad864e27e8c6b7d74a80) -- toString is a reserved var name in old Opera [`885c48c`](https://github.com/inspect-js/is-regex/commit/885c48c120f921a55f1842b0607d3e7875379821) -- Updating deps [`2ca0e79`](https://github.com/inspect-js/is-regex/commit/2ca0e79a2443ca34d85e8b2ea2e26f55855b74a7) -- Updating tape. [`9678435`](https://github.com/inspect-js/is-regex/commit/96784355611deb0c23b9064be774216d76e3e457) -- Updating covert [`c3bb898`](https://github.com/inspect-js/is-regex/commit/c3bb8985a422e3e0c81f9c43899b6c19a72c755f) -- Updating tape [`7811708`](https://github.com/inspect-js/is-regex/commit/78117089688258b8f939b397b37897b5b3e30f74) -- Testing on node 0.6 again [`dec36ae`](https://github.com/inspect-js/is-regex/commit/dec36ae58a39a3f80e832b702c3e19406363c160) -- Run code coverage as part of tests [`e6f4ebe`](https://github.com/inspect-js/is-regex/commit/e6f4ebec26894543747603f2cb360e839f2ca290) - -## v0.0.0 - 2014-01-15 - -### Commits - -- package.json [`aa60d43`](https://github.com/inspect-js/is-regex/commit/aa60d43d2c8adb9fdd47f5898e5e1e570bd238d8) -- read me [`861e944`](https://github.com/inspect-js/is-regex/commit/861e944de88e84010eaa662ea9ea9f17c90cff8c) -- Initial commit [`d0cdd71`](https://github.com/inspect-js/is-regex/commit/d0cdd71a637d8490b7ee3eaaf75c7e31d0f9242f) -- Tests. [`b533f74`](https://github.com/inspect-js/is-regex/commit/b533f741a88dff002790fb7af054b2a74e72d4da) -- Implementation. [`3c9a8c0`](https://github.com/inspect-js/is-regex/commit/3c9a8c06994003cdfffeb3620f251f4c4cae7755) -- Travis CI [`742c440`](https://github.com/inspect-js/is-regex/commit/742c4407015f9108875fd108fde137f5245e9e7a) diff --git a/node_modules/is-regex/LICENSE b/node_modules/is-regex/LICENSE deleted file mode 100644 index 47b7b50..0000000 --- a/node_modules/is-regex/LICENSE +++ /dev/null @@ -1,20 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of -the Software, and to permit persons to whom the Software is furnished to do so, -subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS -FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR -COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER -IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN -CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/node_modules/is-regex/README.md b/node_modules/is-regex/README.md deleted file mode 100644 index d61332b..0000000 --- a/node_modules/is-regex/README.md +++ /dev/null @@ -1,52 +0,0 @@ -# is-regex [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value a JS regex? -This module works cross-realm/iframe, and despite ES6 @@toStringTag. - -## Example - -```js -var isRegex = require('is-regex'); -var assert = require('assert'); - -assert.notOk(isRegex(undefined)); -assert.notOk(isRegex(null)); -assert.notOk(isRegex(false)); -assert.notOk(isRegex(true)); -assert.notOk(isRegex(42)); -assert.notOk(isRegex('foo')); -assert.notOk(isRegex(function () {})); -assert.notOk(isRegex([])); -assert.notOk(isRegex({})); - -assert.ok(isRegex(/a/g)); -assert.ok(isRegex(new RegExp('a', 'g'))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-regex -[2]: https://versionbadg.es/inspect-js/is-regex.svg -[5]: https://david-dm.org/inspect-js/is-regex.svg -[6]: https://david-dm.org/inspect-js/is-regex -[7]: https://david-dm.org/inspect-js/is-regex/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-regex#info=devDependencies -[11]: https://nodei.co/npm/is-regex.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-regex.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-regex.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-regex -[codecov-image]: https://codecov.io/gh/inspect-js/is-regex/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-regex/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-regex -[actions-url]: https://github.com/inspect-js/is-regex/actions diff --git a/node_modules/is-regex/index.js b/node_modules/is-regex/index.js deleted file mode 100644 index 80a2d33..0000000 --- a/node_modules/is-regex/index.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var hasSymbols = require('has-symbols/shams')(); -var hasToStringTag = hasSymbols && !!Symbol.toStringTag; -var has; -var $exec; -var isRegexMarker; -var badStringifier; - -if (hasToStringTag) { - has = callBound('Object.prototype.hasOwnProperty'); - $exec = callBound('RegExp.prototype.exec'); - isRegexMarker = {}; - - var throwRegexMarker = function () { - throw isRegexMarker; - }; - badStringifier = { - toString: throwRegexMarker, - valueOf: throwRegexMarker - }; - - if (typeof Symbol.toPrimitive === 'symbol') { - badStringifier[Symbol.toPrimitive] = throwRegexMarker; - } -} - -var $toString = callBound('Object.prototype.toString'); -var gOPD = Object.getOwnPropertyDescriptor; -var regexClass = '[object RegExp]'; - -module.exports = hasToStringTag - // eslint-disable-next-line consistent-return - ? function isRegex(value) { - if (!value || typeof value !== 'object') { - return false; - } - - var descriptor = gOPD(value, 'lastIndex'); - var hasLastIndexDataProperty = descriptor && has(descriptor, 'value'); - if (!hasLastIndexDataProperty) { - return false; - } - - try { - $exec(value, badStringifier); - } catch (e) { - return e === isRegexMarker; - } - } - : function isRegex(value) { - // In older browsers, typeof regex incorrectly returns 'function' - if (!value || (typeof value !== 'object' && typeof value !== 'function')) { - return false; - } - - return $toString(value) === regexClass; - }; diff --git a/node_modules/is-regex/package.json b/node_modules/is-regex/package.json deleted file mode 100644 index 7a6dc8a..0000000 --- a/node_modules/is-regex/package.json +++ /dev/null @@ -1,86 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-regex/test/index.js b/node_modules/is-regex/test/index.js deleted file mode 100644 index 93ea4e4..0000000 --- a/node_modules/is-regex/test/index.js +++ /dev/null @@ -1,105 +0,0 @@ -'use strict'; - -var hasSymbols = require('has-symbols/shams')(); -var hasToStringTag = hasSymbols && !!Symbol.toStringTag; -var forEach = require('foreach'); -var test = require('tape'); -var isRegex = require('..'); - -test('not regexes', function (t) { - t.notOk(isRegex(), 'undefined is not regex'); - t.notOk(isRegex(null), 'null is not regex'); - t.notOk(isRegex(false), 'false is not regex'); - t.notOk(isRegex(true), 'true is not regex'); - t.notOk(isRegex(42), 'number is not regex'); - t.notOk(isRegex('foo'), 'string is not regex'); - t.notOk(isRegex([]), 'array is not regex'); - t.notOk(isRegex({}), 'object is not regex'); - t.notOk(isRegex(function () {}), 'function is not regex'); - t.end(); -}); - -test('@@toStringTag', { skip: !hasToStringTag }, function (t) { - var regex = /a/g; - var fakeRegex = { - toString: function () { return String(regex); }, - valueOf: function () { return regex; } - }; - fakeRegex[Symbol.toStringTag] = 'RegExp'; - t.notOk(isRegex(fakeRegex), 'fake RegExp with @@toStringTag "RegExp" is not regex'); - t.end(); -}); - -test('regexes', function (t) { - t.ok(isRegex(/a/g), 'regex literal is regex'); - t.ok(isRegex(new RegExp('a', 'g')), 'regex object is regex'); - t.end(); -}); - -test('does not mutate regexes', function (t) { - t.test('lastIndex is a marker object', function (st) { - var regex = /a/; - var marker = {}; - regex.lastIndex = marker; - st.equal(regex.lastIndex, marker, 'lastIndex is the marker object'); - st.ok(isRegex(regex), 'is regex'); - st.equal(regex.lastIndex, marker, 'lastIndex is the marker object after isRegex'); - st.end(); - }); - - t.test('lastIndex is nonzero', function (st) { - var regex = /a/; - regex.lastIndex = 3; - st.equal(regex.lastIndex, 3, 'lastIndex is 3'); - st.ok(isRegex(regex), 'is regex'); - st.equal(regex.lastIndex, 3, 'lastIndex is 3 after isRegex'); - st.end(); - }); - - t.end(); -}); - -test('does not perform operations observable to Proxies', { skip: typeof Proxy !== 'function' }, function (t) { - var Handler = function () { - this.trapCalls = []; - }; - - forEach([ - 'defineProperty', - 'deleteProperty', - 'get', - 'getOwnPropertyDescriptor', - 'getPrototypeOf', - 'has', - 'isExtensible', - 'ownKeys', - 'preventExtensions', - 'set', - 'setPrototypeOf' - ], function (trapName) { - Handler.prototype[trapName] = function () { - this.trapCalls.push(trapName); - return Reflect[trapName].apply(Reflect, arguments); - }; - }); - - t.test('proxy of object', function (st) { - var handler = new Handler(); - var proxy = new Proxy({ lastIndex: 0 }, handler); - - st.equal(isRegex(proxy), false, 'proxy of plain object is not regex'); - st.deepEqual(handler.trapCalls, ['getOwnPropertyDescriptor'], 'no unexpected proxy traps were triggered'); - st.end(); - }); - - t.test('proxy of RegExp instance', function (st) { - var handler = new Handler(); - var proxy = new Proxy(/a/, handler); - - st.equal(isRegex(proxy), false, 'proxy of RegExp instance is not regex'); - st.deepEqual(handler.trapCalls, ['getOwnPropertyDescriptor'], 'no unexpected proxy traps were triggered'); - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/is-string/.eslintignore b/node_modules/is-string/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-string/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-string/.eslintrc b/node_modules/is-string/.eslintrc deleted file mode 100644 index 5bf1191..0000000 --- a/node_modules/is-string/.eslintrc +++ /dev/null @@ -1,19 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "func-name-matching": 0, - "max-statements": [2, 15] - }, - - "overrides": [ - { - "files": ["test.js"], - "rules": { - "no-magic-numbers": 0, - }, - }, - ], -} diff --git a/node_modules/is-string/.github/FUNDING.yml b/node_modules/is-string/.github/FUNDING.yml deleted file mode 100644 index 519746b..0000000 --- a/node_modules/is-string/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-string -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-string/.nycrc b/node_modules/is-string/.nycrc deleted file mode 100644 index a69aa2d..0000000 --- a/node_modules/is-string/.nycrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test", - "test-corejs.js" - ] -} diff --git a/node_modules/is-string/CHANGELOG.md b/node_modules/is-string/CHANGELOG.md deleted file mode 100644 index 9334c53..0000000 --- a/node_modules/is-string/CHANGELOG.md +++ /dev/null @@ -1,107 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). - -## [v1.0.6](https://github.com/inspect-js/is-string/compare/v1.0.5...v1.0.6) - 2021-05-07 - -### Commits - -- [Tests] migrate tests to Github Actions [`c7790c8`](https://github.com/inspect-js/is-string/commit/c7790c89e5077251fe7ca32ac29eeee02f1b2751) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`1e52bbd`](https://github.com/inspect-js/is-string/commit/1e52bbd19b1608f6932c0335d9981824584c3186) -- [Fix] do not use `Object.prototype.toString` when `Symbol.toStringTag` is shammed [`83337eb`](https://github.com/inspect-js/is-string/commit/83337ebf55308b7bb9c1befae420760e0f8d8016) -- [meta] do not publish github action workflow files [`b25aea2`](https://github.com/inspect-js/is-string/commit/b25aea2e8a53ed9e9090cf96481590cdc00a0957) -- [readme] update badges [`759ccd9`](https://github.com/inspect-js/is-string/commit/759ccd94de4a2000231a179f91af6b5c12c11e00) -- [Tests] run `nyc` on all tests [`dc02f70`](https://github.com/inspect-js/is-string/commit/dc02f7080c355f0d24368c1622db09f7cc30cdbd) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `auto-changelog`, `tape`; add `aud` [`a0f76fa`](https://github.com/inspect-js/is-string/commit/a0f76fa1990bb580948f9e2daa89bdcda3fae7f0) -- [actions] add "Allow Edits" workflow [`9ec3902`](https://github.com/inspect-js/is-string/commit/9ec390295b4faef7744d2b579c1050be66168cb7) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`57fbe21`](https://github.com/inspect-js/is-string/commit/57fbe215da83a3b601855a9c6543ad1a96de5702) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`191e55f`](https://github.com/inspect-js/is-string/commit/191e55ff1fa782654ffcce2df922e23345b56690) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`1ea2b81`](https://github.com/inspect-js/is-string/commit/1ea2b81e866775a7890e75c44c742204124aa354) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`105d1b9`](https://github.com/inspect-js/is-string/commit/105d1b9851e366ef23c2a27d4064e0d36da25939) -- [Dev Deps] update `auto-changelog`, `tape`; add `aud` [`114cfad`](https://github.com/inspect-js/is-string/commit/114cfad854d8860421f847cd99a3bdb8ef1353dc) -- [meta] use `prepublishOnly` script for npm 7+ [`fc38f26`](https://github.com/inspect-js/is-string/commit/fc38f26adb486f50880c5771d145ab2bffb6247a) -- [meta] gitignore coverage output [`3419127`](https://github.com/inspect-js/is-string/commit/34191278f1fa09ba4da801a6fd7a32e31050e759) -- [actions] update rebase action to use checkout v2 [`334eca0`](https://github.com/inspect-js/is-string/commit/334eca02d40f4cf7dc15a8e7d5ff06852028abb5) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`7a332e9`](https://github.com/inspect-js/is-string/commit/7a332e963f1ab717fafa671e0fa8a1b20c53d861) -- [meta] remove explicit audit level config [`04630b1`](https://github.com/inspect-js/is-string/commit/04630b1b535084322ddeae8efb79a8810d7cf325) - -## [v1.0.5](https://github.com/inspect-js/is-string/compare/v1.0.4...v1.0.5) - 2019-12-18 - -### Commits - -- [Tests] use shared travis-ci configs [`4121d6b`](https://github.com/inspect-js/is-string/commit/4121d6b168ae1d54a81791ee6877f9813cab6253) -- [Tests] up to `node` `v12.4`, `v11.15`, `v10.15`, `v9.11`, `v8.15`, `v7.10`, `v6.17`, `v5.12`, `v4.9`; use `nvm install-latest-npm` [`e7a3e89`](https://github.com/inspect-js/is-string/commit/e7a3e89ccb9638d73f45dbcb2a42e509bd3153c4) -- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`6c380a7`](https://github.com/inspect-js/is-string/commit/6c380a70011714370e754fa0df95f56cdcaa3e60) -- [Tests] remove `jscs` [`3d49592`](https://github.com/inspect-js/is-string/commit/3d49592b9880fcb1a23b67286445281131a553e3) -- Update `is`, `tape`, `covert`, `jscs`, `editorconfig-tools`, `eslint`, `nsp`, `semver`. [`cc6983d`](https://github.com/inspect-js/is-string/commit/cc6983d06bc98f4ae9b7c9439d5d73c7318d8acd) -- [meta] add `auto-changelog` [`b857897`](https://github.com/inspect-js/is-string/commit/b85789723ce3a7064536598e0fcdd495257c6134) -- [meta] remove unused Makefile and associated utilities [`3f0f51c`](https://github.com/inspect-js/is-string/commit/3f0f51cbae1f97dbe1466eee88d105b3df0d2f0a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `is`, `covert`, `tape`, `semver` [`9d4a95e`](https://github.com/inspect-js/is-string/commit/9d4a95e4473fe8195501878525b5af5948aa45c9) -- Update `eslint` [`e861b4b`](https://github.com/inspect-js/is-string/commit/e861b4bc71f5390670aebdff91119a1f8aeeb88a) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`172e2dd`](https://github.com/inspect-js/is-string/commit/172e2dd1a0b9eb042bcb9a80ff5e774a90ff0695) -- Test on `node` and `io.js` latest. [`fd426cd`](https://github.com/inspect-js/is-string/commit/fd426cd18b22b0d0e1731598125393dcfe0c5704) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest` [`23bdf83`](https://github.com/inspect-js/is-string/commit/23bdf83cf42138eba09f45bd0b040b069f9839d4) -- [actions] add automatic rebasing / merge commit blocking [`96153c0`](https://github.com/inspect-js/is-string/commit/96153c0d687a7fda2261f4c02add5d0b41e8aed7) -- [meta] create FUNDING.yml [`66ae246`](https://github.com/inspect-js/is-string/commit/66ae246d6cdaa4ccbc21f7c144b672139b8ccef6) -- [Dev Deps] update `is`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config`, `semver` [`817361a`](https://github.com/inspect-js/is-string/commit/817361a9673cd1ec9854b52578a980159f7d8701) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `tape` [`fc35d3f`](https://github.com/inspect-js/is-string/commit/fc35d3feb40921bb22e1639903cb7f2fab77814b) -- [Dev Deps] update `jscs` [`886767e`](https://github.com/inspect-js/is-string/commit/886767e04e5ad59ac0bc926a87233cc8546c8b4f) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`3410922`](https://github.com/inspect-js/is-string/commit/341092203c11a3b92eee55a7ecb7b8265e8fcecd) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`4d6c73b`](https://github.com/inspect-js/is-string/commit/4d6c73b507bcd39050ef71e554069f72fc5b222a) -- Update `nsp`, `eslint` [`b11de49`](https://github.com/inspect-js/is-string/commit/b11de4910beee1ffe1e67fbe25ec6707ca796b27) -- Update `eslint`, `semver` [`0777977`](https://github.com/inspect-js/is-string/commit/0777977757a85a1db75831d03a14b4b1fde05d7e) -- Only apps should have lockfiles [`78b49ff`](https://github.com/inspect-js/is-string/commit/78b49ffd04d4cd8c57d9e7b485421fbf3641b41b) -- [meta] add `funding` field [`81328a6`](https://github.com/inspect-js/is-string/commit/81328a6ef3eee989164127e4c0c82f1da73d3567) -- [Dev Deps] update `eslint`, `tape` [`fc9a225`](https://github.com/inspect-js/is-string/commit/fc9a225b27935f7c9c2704281d7fddd3614d3cb8) -- [Tests] use `eclint` instead of `editorconfig-tools` [`59c2c61`](https://github.com/inspect-js/is-string/commit/59c2c610dbd8e8ca1e4aa3fa9c9f93205cab9b07) -- [Dev Deps] Update `tape`, `eslint` [`a429816`](https://github.com/inspect-js/is-string/commit/a429816688e23c81948b4ae72324c26c27849b7c) -- Test on `io.js` `v2.2` [`08b476e`](https://github.com/inspect-js/is-string/commit/08b476ed0734a70e3091c04ddd2f173a2df21eb2) -- Test up to `io.js` `v3.0` [`22637ef`](https://github.com/inspect-js/is-string/commit/22637ef9e0030533df85cf1992fc099a88b1924c) -- [meta] add `safe-publish-latest` [`20ccb48`](https://github.com/inspect-js/is-string/commit/20ccb48fd85f0245eb893507d00003090da020d0) -- [Dev Deps] update `tape` [`06b58a0`](https://github.com/inspect-js/is-string/commit/06b58a048c2a820e5611ad2bd9ddfbe893295a57) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`ea7cf84`](https://github.com/inspect-js/is-string/commit/ea7cf849b952c924d1687a302098251a7b827c80) -- Test on `io.js` `v2.4` [`66ec3ea`](https://github.com/inspect-js/is-string/commit/66ec3ea390b364583a792799b53857fd186ccc88) -- Test on `io.js` `v2.3` [`ca6e796`](https://github.com/inspect-js/is-string/commit/ca6e796f16ec433b88962162fde8012f28e18f1e) -- Fix tests for faked @@toStringTag [`3cce832`](https://github.com/inspect-js/is-string/commit/3cce8329133dfd233987359df151018b3b136be1) - -## [v1.0.4](https://github.com/inspect-js/is-string/compare/v1.0.3...v1.0.4) - 2015-01-29 - -### Commits - -- If @@toStringTag is not present, use the old-school Object#toString test. [`30675ec`](https://github.com/inspect-js/is-string/commit/30675ecb5c5cc43873918661a414a1d0f8b77325) - -## [v1.0.3](https://github.com/inspect-js/is-string/compare/v1.0.2...v1.0.3) - 2015-01-29 - -### Commits - -- Refactor to aid optimization of non-try/catch code. [`9b2772a`](https://github.com/inspect-js/is-string/commit/9b2772abe09ba8cbaa631322cc226ee906d2db22) - -## [v1.0.2](https://github.com/inspect-js/is-string/compare/v1.0.1...v1.0.2) - 2015-01-29 - -### Commits - -- Fix broken package.json [`dc921d3`](https://github.com/inspect-js/is-string/commit/dc921d332b64e4041162f04e4712b0dc687863a5) - -## [v1.0.1](https://github.com/inspect-js/is-string/compare/v1.0.0...v1.0.1) - 2015-01-29 - -### Commits - -- Fix eslint config. [`c4e05bd`](https://github.com/inspect-js/is-string/commit/c4e05bd171da6002d432e451fd48912db8b048e0) -- Add early exits for typeof "string", or typeof not "object". [`82f41d3`](https://github.com/inspect-js/is-string/commit/82f41d36a599bc6a06152792c84c7683e412c513) - -## v1.0.0 - 2015-01-29 - -### Commits - -- Dotfiles. [`45bc9dd`](https://github.com/inspect-js/is-string/commit/45bc9dd60201722344986a6c7536be9ea9ccefbf) -- `make release` [`23707f5`](https://github.com/inspect-js/is-string/commit/23707f5ecfdf00afb0e57c06ac07f7f49cdeb606) -- package.json [`575ad81`](https://github.com/inspect-js/is-string/commit/575ad811c61b156cfbcc60ff61947183c6ebe6a2) -- Read me [`3f67c9a`](https://github.com/inspect-js/is-string/commit/3f67c9a0725f811845d38646a19322895cd03981) -- Initial commit [`2c26a7a`](https://github.com/inspect-js/is-string/commit/2c26a7a2e41dec77be2c59d5847f29a6ab7c0b29) -- Tests. [`38c987b`](https://github.com/inspect-js/is-string/commit/38c987b8513b0ac03b0897e0fce7de8135d4ee0f) -- Implementation. [`0471d59`](https://github.com/inspect-js/is-string/commit/0471d59078d7f3f77619913ec21c57c0af27114c) diff --git a/node_modules/is-string/LICENSE b/node_modules/is-string/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/is-string/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/is-string/README.md b/node_modules/is-string/README.md deleted file mode 100644 index d9d7edf..0000000 --- a/node_modules/is-string/README.md +++ /dev/null @@ -1,56 +0,0 @@ -# is-string [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this value a JS String object or primitive? This module works cross-realm/iframe, and despite ES6 @@toStringTag. - -## Example - -```js -var isString = require('is-string'); -var assert = require('assert'); - -assert.notOk(isString(undefined)); -assert.notOk(isString(null)); -assert.notOk(isString(false)); -assert.notOk(isString(true)); -assert.notOk(isString(function () {})); -assert.notOk(isString([])); -assert.notOk(isString({})); -assert.notOk(isString(/a/g)); -assert.notOk(isString(new RegExp('a', 'g'))); -assert.notOk(isString(new Date())); -assert.notOk(isString(42)); -assert.notOk(isString(NaN)); -assert.notOk(isString(Infinity)); -assert.notOk(isString(new Number(42))); - -assert.ok(isString('foo')); -assert.ok(isString(Object('foo'))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-string -[2]: https://versionbadg.es/inspect-js/is-string.svg -[5]: https://david-dm.org/inspect-js/is-string.svg -[6]: https://david-dm.org/inspect-js/is-string -[7]: https://david-dm.org/inspect-js/is-string/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-string#info=devDependencies -[11]: https://nodei.co/npm/is-string.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-string.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-string.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-string -[codecov-image]: https://codecov.io/gh/inspect-js/is-string/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-string/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-string -[actions-url]: https://github.com/inspect-js/is-string/actions diff --git a/node_modules/is-string/index.js b/node_modules/is-string/index.js deleted file mode 100644 index 5f77f03..0000000 --- a/node_modules/is-string/index.js +++ /dev/null @@ -1,24 +0,0 @@ -'use strict'; - -var strValue = String.prototype.valueOf; -var tryStringObject = function tryStringObject(value) { - try { - strValue.call(value); - return true; - } catch (e) { - return false; - } -}; -var toStr = Object.prototype.toString; -var strClass = '[object String]'; -var hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; - -module.exports = function isString(value) { - if (typeof value === 'string') { - return true; - } - if (typeof value !== 'object') { - return false; - } - return hasToStringTag ? tryStringObject(value) : toStr.call(value) === strClass; -}; diff --git a/node_modules/is-string/package.json b/node_modules/is-string/package.json deleted file mode 100644 index ecb7855..0000000 --- a/node_modules/is-string/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-string/test/index.js b/node_modules/is-string/test/index.js deleted file mode 100644 index 8fbba42..0000000 --- a/node_modules/is-string/test/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isString = require('../'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator !== 'undefined'; - -test('not Strings', function (t) { - t.notOk(isString(), 'undefined is not String'); - t.notOk(isString(null), 'null is not String'); - t.notOk(isString(false), 'false is not String'); - t.notOk(isString(true), 'true is not String'); - t.notOk(isString([]), 'array is not String'); - t.notOk(isString({}), 'object is not String'); - t.notOk(isString(function () {}), 'function is not String'); - t.notOk(isString(/a/g), 'regex literal is not String'); - t.notOk(isString(new RegExp('a', 'g')), 'regex object is not String'); - t.notOk(isString(new Date()), 'new Date() is not String'); - t.notOk(isString(42), 'number is not String'); - t.notOk(isString(Object(42)), 'number object is not String'); - t.notOk(isString(NaN), 'NaN is not String'); - t.notOk(isString(Infinity), 'Infinity is not String'); - t.end(); -}); - -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { - var fakeString = { - toString: function () { return '7'; }, - valueOf: function () { return '42'; } - }; - fakeString[Symbol.toStringTag] = 'String'; - t.notOk(isString(fakeString), 'fake String with @@toStringTag "String" is not String'); - t.end(); -}); - -test('Strings', function (t) { - t.ok(isString('foo'), 'string primitive is String'); - t.ok(isString(Object('foo')), 'string object is String'); - t.end(); -}); diff --git a/node_modules/is-symbol/.editorconfig b/node_modules/is-symbol/.editorconfig deleted file mode 100644 index eaa2141..0000000 --- a/node_modules/is-symbol/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = tab; -insert_final_newline = true; -quote_type = auto; -space_after_anonymous_functions = true; -space_after_control_statements = true; -spaces_around_operators = true; -trim_trailing_whitespace = true; -spaces_in_brackets = false; -end_of_line = lf; - diff --git a/node_modules/is-symbol/.eslintignore b/node_modules/is-symbol/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-symbol/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-symbol/.eslintrc b/node_modules/is-symbol/.eslintrc deleted file mode 100644 index 046dd07..0000000 --- a/node_modules/is-symbol/.eslintrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "overrides": [ - { - "files": "test/**", - "rules": { - "no-restricted-properties": 0, - }, - }, - ], -} diff --git a/node_modules/is-symbol/.github/FUNDING.yml b/node_modules/is-symbol/.github/FUNDING.yml deleted file mode 100644 index a65600e..0000000 --- a/node_modules/is-symbol/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/is-symbol -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-symbol/.nycrc b/node_modules/is-symbol/.nycrc deleted file mode 100644 index bdd626c..0000000 --- a/node_modules/is-symbol/.nycrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/is-symbol/CHANGELOG.md b/node_modules/is-symbol/CHANGELOG.md deleted file mode 100644 index ce8dd99..0000000 --- a/node_modules/is-symbol/CHANGELOG.md +++ /dev/null @@ -1,113 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.4](https://github.com/inspect-js/is-symbol/compare/v1.0.3...v1.0.4) - 2021-05-08 - -### Commits - -- [Tests] migrate tests to Github Actions [`997d43c`](https://github.com/inspect-js/is-symbol/commit/997d43c091d1f8d3a2b3d7dfb17a73cdc5a75dde) -- [actions] use `node/install` instead of `node/run`; use `codecov` action [`fe0ccb7`](https://github.com/inspect-js/is-symbol/commit/fe0ccb7b7b64e74e095ef782dcc1d24d6c4b0be4) -- [meta] remove unused Makefile and associated utilities [`3ab2748`](https://github.com/inspect-js/is-symbol/commit/3ab2748ab6c2de21fc24f131bb880c68ba0b7b34) -- [meta] do not publish github action workflow files [`f20fafe`](https://github.com/inspect-js/is-symbol/commit/f20fafeb21585c7b4871ea19f104fd7696734fe8) -- [Tests] run `nyc` on all tests [`5c332fc`](https://github.com/inspect-js/is-symbol/commit/5c332fc92cecbed4a2041bc0c52b991b4a593f34) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`c5a58a8`](https://github.com/inspect-js/is-symbol/commit/c5a58a8bea390a9b02e1c8c4aac30c223370297b) -- [readme] fix repo URLs; remove travis badge [`bcd9258`](https://github.com/inspect-js/is-symbol/commit/bcd9258d161fe709148fcc47962df3372c544727) -- [actions] add "Allow Edits" workflow [`33ae2d3`](https://github.com/inspect-js/is-symbol/commit/33ae2d3940e9daa6003a84c232874ee558b2fb44) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`e53def0`](https://github.com/inspect-js/is-symbol/commit/e53def0b77c38cbfae87fd8bbfd78953b845ea94) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect` [`ae36504`](https://github.com/inspect-js/is-symbol/commit/ae365048c0c1b13457faa78658b80561f5a0bcd0) -- [readme] add actions and codecov badges [`aae7f09`](https://github.com/inspect-js/is-symbol/commit/aae7f09bd59d36df69d3b66d9b351c39fe072330) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`d993fae`](https://github.com/inspect-js/is-symbol/commit/d993fae6d89856d4ab7818874be597249cb8a8cc) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`51808a5`](https://github.com/inspect-js/is-symbol/commit/51808a55f272023201f40a59b2459ec6305bf73a) -- [Dev Deps] update `auto-changelog`, `tape` [`c90040f`](https://github.com/inspect-js/is-symbol/commit/c90040f0aeded8d0071a78d5cd593b385f8828ee) -- [Dev Deps] update `eslint`, `tape` [`9fee159`](https://github.com/inspect-js/is-symbol/commit/9fee159403d499a5ed2f5cb5db03747d09ab1766) -- [meta] use `prepublishOnly` script for npm 7+ [`b166afc`](https://github.com/inspect-js/is-symbol/commit/b166afc3ae3c6d11721a9558ddb112a28261688d) -- [meta] gitignore coverage output [`4a0fe3a`](https://github.com/inspect-js/is-symbol/commit/4a0fe3aa074b933074fcc231ce739005e1fec195) -- [actions] update workflows [`fbcbc9e`](https://github.com/inspect-js/is-symbol/commit/fbcbc9eb5bfe2cf9a77d5bd86bb1dece8e5f81d0) -- [Dev Deps] update `auto-changelog`; add `aud` [`e66ab98`](https://github.com/inspect-js/is-symbol/commit/e66ab989e48b81b48bd443d35dba0071950c5d7a) -- [Deps] update `has-symbols` [`6ce7de5`](https://github.com/inspect-js/is-symbol/commit/6ce7de53c866c068de2c28d97b3a64cf6d5f6a76) -- [actions] update rebase action to use checkout v2 [`1173c79`](https://github.com/inspect-js/is-symbol/commit/1173c79914076d73aec9aebc22dce4122e7bd3ae) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`94a6348`](https://github.com/inspect-js/is-symbol/commit/94a6348f6274eac9bf4c5a6057b4f6120fc7d1d1) -- [Tests] only audit prod deps [`0692681`](https://github.com/inspect-js/is-symbol/commit/06926811fa029fe0fded5d0af4553a7808c143d1) -- [meta] do not publish .nvmrc file [`ed47833`](https://github.com/inspect-js/is-symbol/commit/ed478333c72384f8dbeb51e5fd501238f52a4972) - -## [v1.0.3](https://github.com/inspect-js/is-symbol/compare/v1.0.2...v1.0.3) - 2019-11-20 - -### Commits - -- [Tests] use shared travis-ci configs [`034afdd`](https://github.com/inspect-js/is-symbol/commit/034afdd677c1b72b76751f3e5131acc927a32916) -- [Tests] remove `jscs` [`0c026a0`](https://github.com/inspect-js/is-symbol/commit/0c026a06815e46a33a8a5b4b1be8965d32d38e5c) -- [meta] add `auto-changelog` [`9a1776b`](https://github.com/inspect-js/is-symbol/commit/9a1776bb49f3e6ac12a5b3a447edcc651216891b) -- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`23a6db4`](https://github.com/inspect-js/is-symbol/commit/23a6db49a338d19eab19d876745513820bb6a9dc) -- [Tests] up to `node` `v11.7`, `v10.15`, `v8.15`, `v6.16` [`892d92e`](https://github.com/inspect-js/is-symbol/commit/892d92e7c40f3c0577583a98134106181c38bb7e) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `semver`, `tape` [`c2e6d6a`](https://github.com/inspect-js/is-symbol/commit/c2e6d6a71f839522bbd124b7419f5fc42ffff6d3) -- [readme] fix repo URLs [`655c288`](https://github.com/inspect-js/is-symbol/commit/655c288a815856e647dba4b6049b1743cec3533c) -- [actions] add automatic rebasing / merge commit blocking [`97b1229`](https://github.com/inspect-js/is-symbol/commit/97b12296bf8fa1ce0c6121bf3de56c413da10aae) -- [meta] add FUNDING.yml [`94c64a3`](https://github.com/inspect-js/is-symbol/commit/94c64a367a1c34f960cf6007fc65cfbbcba34ba3) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `covert`, `tape`, `semver` [`71ab543`](https://github.com/inspect-js/is-symbol/commit/71ab543e09b820378362f4f66248addd410c6388) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `semver`, `tape` [`c6212f9`](https://github.com/inspect-js/is-symbol/commit/c6212f94e28622c94bb37189ffc241ee88b5b1dd) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `object-inspect` [`91bc802`](https://github.com/inspect-js/is-symbol/commit/91bc802e18e63f4e8230ee0148302ce849e2f733) -- [Tests] use `npx aud` instead of `nsp` or `npm audit` with hoops [`8cbe69c`](https://github.com/inspect-js/is-symbol/commit/8cbe69c3fafe9cfbe7d27f710c88d02d2d2c6a00) -- [Tests] use `npm audit` instead of `nsp` [`741b51d`](https://github.com/inspect-js/is-symbol/commit/741b51dac868f6b22736c204910d257bcf4d5044) -- [meta] add `funding` field [`65b58d1`](https://github.com/inspect-js/is-symbol/commit/65b58d1e9fc572712d462d615e6b2418627d8fb9) -- [Deps] update `has-symbols` [`9cb5b2a`](https://github.com/inspect-js/is-symbol/commit/9cb5b2a9a3b89e8e0246be8df4fff3f5ceac7309) - -## [v1.0.2](https://github.com/inspect-js/is-symbol/compare/v1.0.1...v1.0.2) - 2018-09-20 - -### Commits - -- Update `eslint`, `tape`, `semver`; use my personal shared `eslint` config [`e86aaea`](https://github.com/inspect-js/is-symbol/commit/e86aaea8d81356801ecfc60540523e9b809a55f4) -- [Tests] on all node minors; improve test matrix [`50bc07f`](https://github.com/inspect-js/is-symbol/commit/50bc07f2ff73e5499b02a61f0a00ea48a84ae213) -- [Dev Deps] update `tape`, `jscs`, `nsp`, `semver`, `eslint`, `@ljharb/eslint-config` [`45e17bd`](https://github.com/inspect-js/is-symbol/commit/45e17bdf145846f30122348a94c5e506b90836ba) -- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9`; use `nvm install-latest-npm` [`44402cb`](https://github.com/inspect-js/is-symbol/commit/44402cb82d4499e947b48b31b14667d1ebe7e2b4) -- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`, `v4.8`; improve matrix; old npm breaks on newer nodes [`9047c23`](https://github.com/inspect-js/is-symbol/commit/9047c232857ecb80551a21cc0b1cc4c91d28da1f) -- Update `tape`, `covert`, `jscs`, `semver` [`d57d1ce`](https://github.com/inspect-js/is-symbol/commit/d57d1ce3fc0b740885a1ed5c0738d4a27b29ab07) -- Add `npm run eslint` [`0d75a66`](https://github.com/inspect-js/is-symbol/commit/0d75a6638ad6f7ff7d5bc958531a6328fb13e3fe) -- Update `eslint` [`042fb3a`](https://github.com/inspect-js/is-symbol/commit/042fb3aec590f0c0d205b15812b285ad95cfff6b) -- [Refactor] use `has-symbols` and `object-inspect` [`129bc68`](https://github.com/inspect-js/is-symbol/commit/129bc68dd619b789b9956ac9b63b46257ee1060c) -- [Tests] up to `node` `v10.11`, `v8.12` [`c1822e8`](https://github.com/inspect-js/is-symbol/commit/c1822e84d6cc0cee9f1c2893e91b1aa999ad41db) -- Update `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` [`089d2cf`](https://github.com/inspect-js/is-symbol/commit/089d2cf7cad87b75aa534769af11524ad2e79080) -- [Tests] up to `node` `v8.4`; newer npm breaks on older node [`05ce701`](https://github.com/inspect-js/is-symbol/commit/05ce701e3c1be8b3266ffac49806832e410491c1) -- All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. [`241e6a6`](https://github.com/inspect-js/is-symbol/commit/241e6a655c0e19e9dcf0ae88e7fddd4cde394c5c) -- Test on latest `node` and `io.js` versions. [`5c8d5de`](https://github.com/inspect-js/is-symbol/commit/5c8d5deb9b7c01a8cdf959082a3d619c19751b0a) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `nsp`, `semver`, `tape` [`06047bf`](https://github.com/inspect-js/is-symbol/commit/06047bf72b20a66c0b455e80856b2d00b1910391) -- [Dev Deps] update `jscs`, `nsp`, `semver`, `eslint`, `@ljharb/eslint-config` [`9d25dd7`](https://github.com/inspect-js/is-symbol/commit/9d25dd79347c89f98207a3bad39f667f1f8a410e) -- [Tests] up to `io.js` `v3.3`, `node` `v4.1` [`ce173bd`](https://github.com/inspect-js/is-symbol/commit/ce173bda6e146907e3061a0e70463107d955de35) -- Update `nsp`, `eslint` [`29e5214`](https://github.com/inspect-js/is-symbol/commit/29e52140fac2049b4a32e175787bb3b184a1dd72) -- Update `semver`, `eslint` [`53be884`](https://github.com/inspect-js/is-symbol/commit/53be884c2811f7a4452581003d9cdaf6f9bddd3c) -- [Dev Deps] update `eslint`, `nsp`, `semver`, `tape` [`3bd149c`](https://github.com/inspect-js/is-symbol/commit/3bd149c869c099b07104b06c0692755a01f8298c) -- [Dev Deps] update `jscs` [`69b4231`](https://github.com/inspect-js/is-symbol/commit/69b4231632b170e5ddb350db2f0c59e6cad6f548) -- Test up to `io.js` `v2.1` [`0b61ac7`](https://github.com/inspect-js/is-symbol/commit/0b61ac7ac4de390296aeefb9395549592ea87da4) -- [Dev Deps] update `tape` [`5e1b200`](https://github.com/inspect-js/is-symbol/commit/5e1b2008c910bcdabee299a1ac599143ea07c3f9) -- Only apps should have lockfiles. [`a191ff5`](https://github.com/inspect-js/is-symbol/commit/a191ff5f0320fc16db42fdaa40f0c21d4326255e) -- [Dev Deps] update `nsp`, `eslint`, `@ljharb/eslint-config` [`97c87ef`](https://github.com/inspect-js/is-symbol/commit/97c87ef52b966f211e231092a54ef6ed05c99a26) -- Test on `io.js` `v2.2` [`42560e4`](https://github.com/inspect-js/is-symbol/commit/42560e466e17cbbb9fa71c0121f4bbbcf266c887) -- [Dev Deps] Update `tape`, `eslint` [`149b2f2`](https://github.com/inspect-js/is-symbol/commit/149b2f20bde92b2da12ccfeb8988beb2dc95c37c) -- [Tests] fix test messages [`28bd1ed`](https://github.com/inspect-js/is-symbol/commit/28bd1eda310590e13ada19cbd718c85c25d8a0c5) -- Test up to `io.js` `v3.0` [`c0dcc98`](https://github.com/inspect-js/is-symbol/commit/c0dcc98313d17151ec043e5452df306618be865e) -- `node` now supports Symbols now. [`d1853ad`](https://github.com/inspect-js/is-symbol/commit/d1853adf6369ab9d4c4516bdb032c2e42f52f90a) -- [Dev Deps] update `tape` [`f7a6575`](https://github.com/inspect-js/is-symbol/commit/f7a6575fbdef13abcc412c63d22b56943ed85969) -- Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG. [`aae9c6a`](https://github.com/inspect-js/is-symbol/commit/aae9c6a724578659976ea74e11ec9fe35608607b) -- Test on `io.js` `v2.4` [`ab8f449`](https://github.com/inspect-js/is-symbol/commit/ab8f4492115270cc00a479915b02ac1bac75dfed) -- Test on `io.js` `v2.3` [`58ce871`](https://github.com/inspect-js/is-symbol/commit/58ce871674e857955b333aa057eeecd68b40e988) - -## [v1.0.1](https://github.com/inspect-js/is-symbol/compare/v1.0.0...v1.0.1) - 2015-01-26 - -### Commits - -- Correct package description. [`f4d15b9`](https://github.com/inspect-js/is-symbol/commit/f4d15b928b4b754b097a84f7c3ceac73c486aceb) - -## v1.0.0 - 2015-01-24 - -### Commits - -- Dotfiles. [`5d9a744`](https://github.com/inspect-js/is-symbol/commit/5d9a7441f724630070e9bd74a995191cafa1064b) -- Tests. [`8af5663`](https://github.com/inspect-js/is-symbol/commit/8af56631950dcee48b36f517837273193a6ba119) -- `make release` [`6293446`](https://github.com/inspect-js/is-symbol/commit/629344654a72e7fc8059607d6a86c64b002c3e5d) -- package.json [`7d4082c`](https://github.com/inspect-js/is-symbol/commit/7d4082ca9502118e70d24f526704d45a1a7f2067) -- Initial commit [`cbb179f`](https://github.com/inspect-js/is-symbol/commit/cbb179f677bd3dcb56ac5e3f0a7a9af503fd8952) -- Read me. [`099a775`](https://github.com/inspect-js/is-symbol/commit/099a775e7e751706283ae1cab7a8635c094773a9) -- Implementation. [`cb51248`](https://github.com/inspect-js/is-symbol/commit/cb51248eedaf55e0b8ad7dacdab179db2d76e96e) diff --git a/node_modules/is-symbol/LICENSE b/node_modules/is-symbol/LICENSE deleted file mode 100644 index b43df44..0000000 --- a/node_modules/is-symbol/LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2015 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. - diff --git a/node_modules/is-symbol/README.md b/node_modules/is-symbol/README.md deleted file mode 100644 index 5432594..0000000 --- a/node_modules/is-symbol/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# is-symbol [![Version Badge][2]][1] - -[![github actions][actions-image]][actions-url] -[![coverage][codecov-image]][codecov-url] -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Is this an ES6 Symbol value? - -## Example - -```js -var isSymbol = require('is-symbol'); -assert(!isSymbol(function () {})); -assert(!isSymbol(null)); -assert(!isSymbol(function* () { yield 42; return Infinity; }); - -assert(isSymbol(Symbol.iterator)); -assert(isSymbol(Symbol('foo'))); -assert(isSymbol(Symbol.for('foo'))); -assert(isSymbol(Object(Symbol('foo')))); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/is-symbol -[2]: https://versionbadg.es/inspect-js/is-symbol.svg -[5]: https://david-dm.org/inspect-js/is-symbol.svg -[6]: https://david-dm.org/inspect-js/is-symbol -[7]: https://david-dm.org/inspect-js/is-symbol/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-symbol#info=devDependencies -[11]: https://nodei.co/npm/is-symbol.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/is-symbol.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/is-symbol.svg -[downloads-url]: https://npm-stat.com/charts.html?package=is-symbol -[codecov-image]: https://codecov.io/gh/inspect-js/is-symbol/branch/main/graphs/badge.svg -[codecov-url]: https://app.codecov.io/gh/inspect-js/is-symbol/ -[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-symbol -[actions-url]: https://github.com/inspect-js/is-symbol/actions diff --git a/node_modules/is-symbol/index.js b/node_modules/is-symbol/index.js deleted file mode 100644 index 3d653e2..0000000 --- a/node_modules/is-symbol/index.js +++ /dev/null @@ -1,35 +0,0 @@ -'use strict'; - -var toStr = Object.prototype.toString; -var hasSymbols = require('has-symbols')(); - -if (hasSymbols) { - var symToStr = Symbol.prototype.toString; - var symStringRegex = /^Symbol\(.*\)$/; - var isSymbolObject = function isRealSymbolObject(value) { - if (typeof value.valueOf() !== 'symbol') { - return false; - } - return symStringRegex.test(symToStr.call(value)); - }; - - module.exports = function isSymbol(value) { - if (typeof value === 'symbol') { - return true; - } - if (toStr.call(value) !== '[object Symbol]') { - return false; - } - try { - return isSymbolObject(value); - } catch (e) { - return false; - } - }; -} else { - - module.exports = function isSymbol(value) { - // this environment does not support Symbols. - return false && value; - }; -} diff --git a/node_modules/is-symbol/package.json b/node_modules/is-symbol/package.json deleted file mode 100644 index 4472b17..0000000 --- a/node_modules/is-symbol/package.json +++ /dev/null @@ -1,77 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/is-symbol/test/index.js b/node_modules/is-symbol/test/index.js deleted file mode 100644 index e01f035..0000000 --- a/node_modules/is-symbol/test/index.js +++ /dev/null @@ -1,92 +0,0 @@ -'use strict'; - -var test = require('tape'); -var isSymbol = require('../index'); - -var forEach = function (arr, func) { - var i; - for (i = 0; i < arr.length; ++i) { - func(arr[i], i, arr); - } -}; - -var hasSymbols = require('has-symbols')(); -var inspect = require('object-inspect'); -var debug = function (v, m) { return inspect(v) + ' ' + m; }; - -test('non-symbol values', function (t) { - var nonSymbols = [ - true, - false, - Object(true), - Object(false), - null, - undefined, - {}, - [], - /a/g, - 'string', - 42, - new Date(), - function () {}, - NaN - ]; - t.plan(nonSymbols.length); - forEach(nonSymbols, function (nonSymbol) { - t.equal(false, isSymbol(nonSymbol), debug(nonSymbol, 'is not a symbol')); - }); - t.end(); -}); - -test('faked symbol values', function (t) { - t.test('real symbol valueOf', { skip: !hasSymbols }, function (st) { - var fakeSymbol = { valueOf: function () { return Symbol('foo'); } }; - st.equal(false, isSymbol(fakeSymbol), 'object with valueOf returning a symbol is not a symbol'); - st.end(); - }); - - t.test('faked @@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (st) { - var fakeSymbol = { valueOf: function () { return Symbol('foo'); } }; - fakeSymbol[Symbol.toStringTag] = 'Symbol'; - st.equal(false, isSymbol(fakeSymbol), 'object with fake Symbol @@toStringTag and valueOf returning a symbol is not a symbol'); - var notSoFakeSymbol = { valueOf: function () { return 42; } }; - notSoFakeSymbol[Symbol.toStringTag] = 'Symbol'; - st.equal(false, isSymbol(notSoFakeSymbol), 'object with fake Symbol @@toStringTag and valueOf not returning a symbol is not a symbol'); - st.end(); - }); - - var fakeSymbolString = { toString: function () { return 'Symbol(foo)'; } }; - t.equal(false, isSymbol(fakeSymbolString), 'object with toString returning Symbol(foo) is not a symbol'); - - t.end(); -}); - -test('Symbol support', { skip: !hasSymbols }, function (t) { - t.test('well-known Symbols', function (st) { - var isWellKnown = function filterer(name) { - return name !== 'for' && name !== 'keyFor' && !(name in filterer); - }; - var wellKnownSymbols = Object.getOwnPropertyNames(Symbol).filter(isWellKnown); - wellKnownSymbols.forEach(function (name) { - var sym = Symbol[name]; - st.equal(true, isSymbol(sym), debug(sym, ' is a symbol')); - }); - st.end(); - }); - - t.test('user-created symbols', function (st) { - var symbols = [ - Symbol(), - Symbol('foo'), - Symbol['for']('foo'), - Object(Symbol('object')) - ]; - symbols.forEach(function (sym) { - st.equal(true, isSymbol(sym), debug(sym, ' is a symbol')); - }); - st.end(); - }); - - t.end(); -}); - diff --git a/node_modules/is-typed-array/.eslintignore b/node_modules/is-typed-array/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/is-typed-array/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/is-typed-array/.eslintrc b/node_modules/is-typed-array/.eslintrc index 344c5b6..34a6262 100644 --- a/node_modules/is-typed-array/.eslintrc +++ b/node_modules/is-typed-array/.eslintrc @@ -3,6 +3,10 @@ "extends": "@ljharb", + "globals": { + "globalThis": false + }, + "rules": { "max-statements-per-line": [2, { "max": 2 }] }, diff --git a/node_modules/is-typed-array/.nycrc b/node_modules/is-typed-array/.nycrc index 1826526..bdd626c 100644 --- a/node_modules/is-typed-array/.nycrc +++ b/node_modules/is-typed-array/.nycrc @@ -2,10 +2,6 @@ "all": true, "check-coverage": false, "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, "exclude": [ "coverage", "test" diff --git a/node_modules/is-typed-array/CHANGELOG.md b/node_modules/is-typed-array/CHANGELOG.md index e2f0573..b139d2d 100644 --- a/node_modules/is-typed-array/CHANGELOG.md +++ b/node_modules/is-typed-array/CHANGELOG.md @@ -1,3 +1,66 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.1.12](https://github.com/inspect-js/is-typed-array/compare/v1.1.11...v1.1.12) - 2023-07-17 + +### Commits + +- [Refactor] use `which-typed-array` for all internals [`7619405`](https://github.com/inspect-js/is-typed-array/commit/761940532de595f6721fed101b02814dcfa7fe4e) + +## [v1.1.11](https://github.com/inspect-js/is-typed-array/compare/v1.1.10...v1.1.11) - 2023-07-17 + +### Commits + +- [Fix] `node < v0.6` lacks proper Object toString behavior [`c94b90d`](https://github.com/inspect-js/is-typed-array/commit/c94b90dc6bc457783d6f8cc208415a49da0933b7) +- [Robustness] use `call-bind` [`573b00b`](https://github.com/inspect-js/is-typed-array/commit/573b00b8deec42ac1ac262415e442ea0b7e1c96b) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` [`c88c2d4`](https://github.com/inspect-js/is-typed-array/commit/c88c2d479976110478fa4038fe8921251c06a163) + +## [v1.1.10](https://github.com/inspect-js/is-typed-array/compare/v1.1.9...v1.1.10) - 2022-11-02 + +### Commits + +- [meta] add `auto-changelog` [`cf6d86b`](https://github.com/inspect-js/is-typed-array/commit/cf6d86bf2f693eca357439d4d12e76d641f91f92) +- [actions] update rebase action to use reusable workflow [`8da51a5`](https://github.com/inspect-js/is-typed-array/commit/8da51a5dce6d2442ae31ccbc2be136f2e04d6bef) +- [Dev Deps] update `aud`, `is-callable`, `object-inspect`, `tape` [`554e3de`](https://github.com/inspect-js/is-typed-array/commit/554e3deec59dec926d0badc628e589ab363e465b) +- [Refactor] use `gopd` instead of an `es-abstract` helper` [`cdaa465`](https://github.com/inspect-js/is-typed-array/commit/cdaa465d5f94bfc9e32475e31209e1c2458a9603) +- [Deps] update `es-abstract` [`677ae4b`](https://github.com/inspect-js/is-typed-array/commit/677ae4b3c8323b59d6650a9254ab945045c33f79) + + + +1.1.9 / 2022-05-13 +================= + * [Refactor] use `foreach` instead of `for-each` + * [readme] markdown URL cleanup + * [Deps] update `es-abstract` + * [meta] use `npmignore` to autogenerate an npmignore file + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `safe-publish-latest`, `tape` + * [actions] reuse common workflows + * [actions] update codecov uploader + +1.1.8 / 2021-08-30 +================= + * [Refactor] use `globalThis` if available (#53) + * [Deps] update `available-typed-arrays` + * [Dev Deps] update `@ljharb/eslint-config` + +1.1.7 / 2021-08-07 +================= + * [Fix] if Symbol.toStringTag exists but is not present, use Object.prototype.toString + * [Dev Deps] update `is-callable`, `tape` + +1.1.6 / 2021-08-05 +================= + * [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams + * [readme] add actions and codecov badges + * [meta] use `prepublishOnly` script for npm 7+ + * [Deps] update `available-typed-arrays`, `es-abstract` + * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` + * [actions] use `node/install` instead of `node/run`; use `codecov` action + 1.1.5 / 2021-02-14 ================= * [meta] do not publish github action workflow files or nyc output diff --git a/node_modules/is-typed-array/README.md b/node_modules/is-typed-array/README.md index 9afdf8f..5075257 100644 --- a/node_modules/is-typed-array/README.md +++ b/node_modules/is-typed-array/README.md @@ -1,11 +1,13 @@ -# is-typed-array [![Version Badge][2]][1] +# is-typed-array [![Version Badge][npm-version-svg]][package-url] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] [![dependency status][5]][6] [![dev dependency status][7]][8] [![License][license-image]][license-url] [![Downloads][downloads-image]][downloads-url] -[![npm badge][11]][1] +[![npm badge][npm-badge-png]][package-url] Is this value a JS Typed Array? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and despite ES6 Symbol.toStringTag. @@ -51,14 +53,18 @@ assert.ok(isTypedArray(new BigUint64Array())); ## Tests Simply clone the repo, `npm install`, and run `npm test` -[1]: https://npmjs.org/package/is-typed-array -[2]: http://versionbadg.es/inspect-js/is-typed-array.svg -[5]: https://david-dm.org/inspect-js/is-typed-array.svg -[6]: https://david-dm.org/inspect-js/is-typed-array -[7]: https://david-dm.org/inspect-js/is-typed-array/dev-status.svg -[8]: https://david-dm.org/inspect-js/is-typed-array#info=devDependencies -[11]: https://nodei.co/npm/is-typed-array.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/is-typed-array.svg +[package-url]: https://npmjs.org/package/is-typed-array +[npm-version-svg]: https://versionbadg.es/inspect-js/is-typed-array.svg +[deps-svg]: https://david-dm.org/inspect-js/is-typed-array.svg +[deps-url]: https://david-dm.org/inspect-js/is-typed-array +[dev-deps-svg]: https://david-dm.org/inspect-js/is-typed-array/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/is-typed-array#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/is-typed-array.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/is-typed-array.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/is-typed-array.svg -[downloads-url]: http://npm-stat.com/charts.html?package=is-typed-array +[downloads-image]: https://img.shields.io/npm/dm/is-typed-array.svg +[downloads-url]: https://npm-stat.com/charts.html?package=is-typed-array +[codecov-image]: https://codecov.io/gh/inspect-js/is-typed-array/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/is-typed-array/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/is-typed-array +[actions-url]: https://github.com/inspect-js/is-typed-array/actions diff --git a/node_modules/is-typed-array/index.js b/node_modules/is-typed-array/index.js index a769ced..08c3163 100644 --- a/node_modules/is-typed-array/index.js +++ b/node_modules/is-typed-array/index.js @@ -1,61 +1,7 @@ 'use strict'; -var forEach = require('foreach'); -var availableTypedArrays = require('available-typed-arrays'); -var callBound = require('call-bind/callBound'); - -var $toString = callBound('Object.prototype.toString'); -var hasSymbols = require('has-symbols')(); -var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol'; - -var typedArrays = availableTypedArrays(); - -var $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) { - for (var i = 0; i < array.length; i += 1) { - if (array[i] === value) { - return i; - } - } - return -1; -}; -var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor'); -var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); -if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function (typedArray) { - var arr = new global[typedArray](); - if (!(Symbol.toStringTag in arr)) { - throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.'); - } - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - }); -} - -var tryTypedArrays = function tryAllTypedArrays(value) { - var anyTrue = false; - forEach(toStrTags, function (getter, typedArray) { - if (!anyTrue) { - try { - anyTrue = getter.call(value) === typedArray; - } catch (e) { /**/ } - } - }); - return anyTrue; -}; +var whichTypedArray = require('which-typed-array'); module.exports = function isTypedArray(value) { - if (!value || typeof value !== 'object') { return false; } - if (!hasToStringTag) { - var tag = $slice($toString(value), 8, -1); - return $indexOf(typedArrays, tag) > -1; - } - if (!gOPD) { return false; } - return tryTypedArrays(value); + return !!whichTypedArray(value); }; diff --git a/node_modules/is-typed-array/package.json b/node_modules/is-typed-array/package.json index 5bb6f56..e2fc302 100644 --- a/node_modules/is-typed-array/package.json +++ b/node_modules/is-typed-array/package.json @@ -1,6 +1,6 @@ { "name": "is-typed-array", - "version": "1.1.5", + "version": "1.1.12", "author": { "name": "Jordan Harband", "email": "ljharb@gmail.com", @@ -20,14 +20,18 @@ "license": "MIT", "main": "index.js", "scripts": { - "prepublish": "safe-publish-latest", + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "evalmd README.md", + "lint": "eslint --ext=js,mjs .", "pretest": "npm run --silent lint", "test": "npm run tests-only && npm run test:harmony", "tests-only": "nyc tape test", "test:harmony": "nyc node --harmony --es-staging test", "posttest": "npx aud --production", - "prelint": "evalmd README.md", - "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", @@ -54,24 +58,25 @@ "@@toStringTag" ], "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.2", - "es-abstract": "^1.18.0-next.2", - "foreach": "^2.0.5", - "has-symbols": "^1.0.1" + "which-typed-array": "^1.1.11" }, "devDependencies": { - "@ljharb/eslint-config": "^17.5.1", - "aud": "^1.1.4", - "eslint": "^7.20.0", + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", "evalmd": "^0.0.19", - "is-callable": "^1.2.3", + "for-each": "^0.3.3", + "has-tostringtag": "^1.0.0", + "in-publish": "^2.0.1", + "is-callable": "^1.2.7", "make-arrow-function": "^1.2.0", "make-generator-function": "^2.0.0", + "npmignore": "^0.3.0", "nyc": "^10.3.2", - "object-inspect": "^1.9.0", - "safe-publish-latest": "^1.1.4", - "tape": "^5.1.1" + "object-inspect": "^1.12.3", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.5" }, "testling": { "files": "test/index.js", @@ -93,5 +98,19 @@ }, "engines": { "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true, + "startingVersion": "1.1.10" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] } } diff --git a/node_modules/is-typed-array/test/index.js b/node_modules/is-typed-array/test/index.js index e54700c..8e7a16b 100644 --- a/node_modules/is-typed-array/test/index.js +++ b/node_modules/is-typed-array/test/index.js @@ -3,10 +3,10 @@ var test = require('tape'); var isTypedArray = require('../'); var isCallable = require('is-callable'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); var generators = require('make-generator-function')(); var arrowFn = require('make-arrow-function')(); -var forEach = require('foreach'); +var forEach = require('for-each'); var inspect = require('object-inspect'); var typedArrayNames = [ @@ -34,7 +34,6 @@ test('not arrays', function (t) { t.notOk(isTypedArray({}), 'object is not typed array'); t.notOk(isTypedArray(/a/g), 'regex literal is not typed array'); - // eslint-disable-next-line prefer-regex-literals t.notOk(isTypedArray(new RegExp('a', 'g')), 'regex object is not typed array'); t.notOk(isTypedArray(new Date()), 'new Date() is not typed array'); @@ -72,7 +71,7 @@ test('Arrow functions', { skip: !arrowFn }, function (t) { t.end(); }); -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { +test('@@toStringTag', { skip: !hasToStringTag }, function (t) { forEach(typedArrayNames, function (typedArray) { if (typeof global[typedArray] === 'function') { var fakeTypedArray = []; diff --git a/node_modules/jasmine-core/README.md b/node_modules/jasmine-core/README.md index f26bb82..f900383 100644 --- a/node_modules/jasmine-core/README.md +++ b/node_modules/jasmine-core/README.md @@ -54,7 +54,7 @@ Jasmine tests itself across many browsers (Safari, Chrome, Firefox, Microsoft Ed | Node | 10, 12, 14, 16 | | Safari | 8-14 | | Chrome | Evergreen | -| Firefox | Evergreen, 68, 78 | +| Firefox | Evergreen, 68, 78, 91 | | Edge | Evergreen | | Internet Explorer | 10, 11 | diff --git a/node_modules/jasmine-core/lib/jasmine-core.js b/node_modules/jasmine-core/lib/jasmine-core.js index fe0ecd8..886b792 100644 --- a/node_modules/jasmine-core/lib/jasmine-core.js +++ b/node_modules/jasmine-core/lib/jasmine-core.js @@ -5,11 +5,12 @@ var path = require('path'), fs = require('fs'); var rootPath = path.join(__dirname, "jasmine-core"), - bootFiles = ['boot.js'], + bootFiles = ['boot0.js', 'boot1.js'], + legacyBootFiles = ['boot.js'], nodeBootFiles = ['node_boot.js'], cssFiles = [], jsFiles = [], - jsFilesToSkip = ['jasmine.js'].concat(bootFiles, nodeBootFiles); + jsFilesToSkip = ['jasmine.js'].concat(bootFiles, legacyBootFiles, nodeBootFiles); fs.readdirSync(rootPath).forEach(function(file) { if(fs.statSync(path.join(rootPath, file)).isFile()) { diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot.js b/node_modules/jasmine-core/lib/jasmine-core/boot.js index 9c9aee4..0fa3379 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/boot.js +++ b/node_modules/jasmine-core/lib/jasmine-core/boot.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2008-2021 Pivotal Labs +Copyright (c) 2008-2022 Pivotal Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -21,6 +21,10 @@ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /** + + NOTE: This file is deprecated and will be removed in a future release. + Include both boot0.js and boot1.js (in that order) instead. + Starting with version 2.0, this file "boots" Jasmine, performing all of the necessary initialization before executing the loaded environment and all of a project's specs. This file should be loaded after `jasmine.js` and `jasmine_html.js`, but before any project source files or spec files are loaded. Thus this file can also be used to customize Jasmine for a project. If a project is using Jasmine via the standalone distribution, this file can be customized directly. If a project is using Jasmine via the [Ruby gem][jasmine-gem], this file can be copied into the support directory via `jasmine copy_boot_js`. Other environments (e.g., Python) will have different mechanisms. @@ -77,8 +81,8 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. var filterSpecs = !!queryString.getParam("spec"); var config = { - failFast: queryString.getParam("failFast"), - oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"), + stopOnSpecFailure: queryString.getParam("failFast"), + stopSpecOnExpectationFailure: queryString.getParam("oneFailurePerSpec"), hideDisabled: queryString.getParam("hideDisabled") }; @@ -158,4 +162,6 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. return destination; } + env.deprecated('boot.js is deprecated. Please use boot0.js and boot1.js instead.', + { ignoreRunnable: true }); }()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot/boot.js b/node_modules/jasmine-core/lib/jasmine-core/boot/boot.js index e1e20f1..abed5b8 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/boot/boot.js +++ b/node_modules/jasmine-core/lib/jasmine-core/boot/boot.js @@ -1,4 +1,8 @@ /** + + NOTE: This file is deprecated and will be removed in a future release. + Include both boot0.js and boot1.js (in that order) instead. + Starting with version 2.0, this file "boots" Jasmine, performing all of the necessary initialization before executing the loaded environment and all of a project's specs. This file should be loaded after `jasmine.js` and `jasmine_html.js`, but before any project source files or spec files are loaded. Thus this file can also be used to customize Jasmine for a project. If a project is using Jasmine via the standalone distribution, this file can be customized directly. If a project is using Jasmine via the [Ruby gem][jasmine-gem], this file can be copied into the support directory via `jasmine copy_boot_js`. Other environments (e.g., Python) will have different mechanisms. @@ -55,8 +59,8 @@ var filterSpecs = !!queryString.getParam("spec"); var config = { - failFast: queryString.getParam("failFast"), - oneFailurePerSpec: queryString.getParam("oneFailurePerSpec"), + stopOnSpecFailure: queryString.getParam("failFast"), + stopSpecOnExpectationFailure: queryString.getParam("oneFailurePerSpec"), hideDisabled: queryString.getParam("hideDisabled") }; @@ -136,4 +140,6 @@ return destination; } + env.deprecated('boot.js is deprecated. Please use boot0.js and boot1.js instead.', + { ignoreRunnable: true }); }()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot/boot0.js b/node_modules/jasmine-core/lib/jasmine-core/boot/boot0.js new file mode 100644 index 0000000..ca72e49 --- /dev/null +++ b/node_modules/jasmine-core/lib/jasmine-core/boot/boot0.js @@ -0,0 +1,42 @@ +/** + This file starts the process of "booting" Jasmine. It initializes Jasmine, + makes its globals available, and creates the env. This file should be loaded + after `jasmine.js` and `jasmine_html.js`, but before `boot1.js` or any project + source files or spec files are loaded. + */ +(function() { + var jasmineRequire = window.jasmineRequire || require('./jasmine.js'); + + /** + * ## Require & Instantiate + * + * Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference. + */ + var jasmine = jasmineRequire.core(jasmineRequire), + global = jasmine.getGlobal(); + global.jasmine = jasmine; + + /** + * Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference. + */ + jasmineRequire.html(jasmine); + + /** + * Create the Jasmine environment. This is used to run all specs in a project. + */ + var env = jasmine.getEnv(); + + /** + * ## The Global Interface + * + * Build up the functions that will be exposed as the Jasmine public interface. A project can customize, rename or alias any of these functions as desired, provided the implementation remains unchanged. + */ + var jasmineInterface = jasmineRequire.interface(jasmine, env); + + /** + * Add all of the Jasmine global/public interface to the global scope, so a project can use the public interface directly. For example, calling `describe` in specs instead of `jasmine.getEnv().describe`. + */ + for (var property in jasmineInterface) { + global[property] = jasmineInterface[property]; + } +}()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot/boot1.js b/node_modules/jasmine-core/lib/jasmine-core/boot/boot1.js new file mode 100644 index 0000000..6100ae3 --- /dev/null +++ b/node_modules/jasmine-core/lib/jasmine-core/boot/boot1.js @@ -0,0 +1,111 @@ +/** + This file finishes "booting" Jasmine, performing all of the necessary + initialization before executing the loaded environment and all of a project's + specs. This file should be loaded after `boot0.js` but before any project + source files or spec files are loaded. Thus this file can also be used to + customize Jasmine for a project. + + If a project is using Jasmine via the standalone distribution, this file can + be customized directly. If you only wish to configure the Jasmine env, you + can load another file that calls `jasmine.getEnv().configure({...})` + after `boot0.js` is loaded and before this file is loaded. + */ + +(function() { + var env = jasmine.getEnv(); + + /** + * ## Runner Parameters + * + * More browser specific code - wrap the query string in an object and to allow for getting/setting parameters from the runner user interface. + */ + + var queryString = new jasmine.QueryString({ + getWindowLocation: function() { return window.location; } + }); + + var filterSpecs = !!queryString.getParam("spec"); + + var config = { + stopOnSpecFailure: queryString.getParam("failFast"), + stopSpecOnExpectationFailure: queryString.getParam("oneFailurePerSpec"), + hideDisabled: queryString.getParam("hideDisabled") + }; + + var random = queryString.getParam("random"); + + if (random !== undefined && random !== "") { + config.random = random; + } + + var seed = queryString.getParam("seed"); + if (seed) { + config.seed = seed; + } + + /** + * ## Reporters + * The `HtmlReporter` builds all of the HTML UI for the runner page. This reporter paints the dots, stars, and x's for specs, as well as all spec names and all failures (if any). + */ + var htmlReporter = new jasmine.HtmlReporter({ + env: env, + navigateWithNewParam: function(key, value) { return queryString.navigateWithNewParam(key, value); }, + addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); }, + getContainer: function() { return document.body; }, + createElement: function() { return document.createElement.apply(document, arguments); }, + createTextNode: function() { return document.createTextNode.apply(document, arguments); }, + timer: new jasmine.Timer(), + filterSpecs: filterSpecs + }); + + /** + * The `jsApiReporter` also receives spec results, and is used by any environment that needs to extract the results from JavaScript. + */ + env.addReporter(jsApiReporter); + env.addReporter(htmlReporter); + + /** + * Filter which specs will be run by matching the start of the full name against the `spec` query param. + */ + var specFilter = new jasmine.HtmlSpecFilter({ + filterString: function() { return queryString.getParam("spec"); } + }); + + config.specFilter = function(spec) { + return specFilter.matches(spec.getFullName()); + }; + + env.configure(config); + + /** + * Setting up timing functions to be able to be overridden. Certain browsers (Safari, IE 8, phantomjs) require this hack. + */ + window.setTimeout = window.setTimeout; + window.setInterval = window.setInterval; + window.clearTimeout = window.clearTimeout; + window.clearInterval = window.clearInterval; + + /** + * ## Execution + * + * Replace the browser window's `onload`, ensure it's called, and then run all of the loaded specs. This includes initializing the `HtmlReporter` instance and then executing the loaded Jasmine environment. All of this will happen after all of the specs are loaded. + */ + var currentWindowOnload = window.onload; + + window.onload = function() { + if (currentWindowOnload) { + currentWindowOnload(); + } + htmlReporter.initialize(); + env.execute(); + }; + + /** + * Helper function for readability above. + */ + function extend(destination, source) { + for (var property in source) destination[property] = source[property]; + return destination; + } + +}()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot0.js b/node_modules/jasmine-core/lib/jasmine-core/boot0.js new file mode 100644 index 0000000..1f7ffd1 --- /dev/null +++ b/node_modules/jasmine-core/lib/jasmine-core/boot0.js @@ -0,0 +1,64 @@ +/* +Copyright (c) 2008-2022 Pivotal Labs + +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. +*/ +/** + This file starts the process of "booting" Jasmine. It initializes Jasmine, + makes its globals available, and creates the env. This file should be loaded + after `jasmine.js` and `jasmine_html.js`, but before `boot1.js` or any project + source files or spec files are loaded. + */ +(function() { + var jasmineRequire = window.jasmineRequire || require('./jasmine.js'); + + /** + * ## Require & Instantiate + * + * Require Jasmine's core files. Specifically, this requires and attaches all of Jasmine's code to the `jasmine` reference. + */ + var jasmine = jasmineRequire.core(jasmineRequire), + global = jasmine.getGlobal(); + global.jasmine = jasmine; + + /** + * Since this is being run in a browser and the results should populate to an HTML page, require the HTML-specific Jasmine code, injecting the same reference. + */ + jasmineRequire.html(jasmine); + + /** + * Create the Jasmine environment. This is used to run all specs in a project. + */ + var env = jasmine.getEnv(); + + /** + * ## The Global Interface + * + * Build up the functions that will be exposed as the Jasmine public interface. A project can customize, rename or alias any of these functions as desired, provided the implementation remains unchanged. + */ + var jasmineInterface = jasmineRequire.interface(jasmine, env); + + /** + * Add all of the Jasmine global/public interface to the global scope, so a project can use the public interface directly. For example, calling `describe` in specs instead of `jasmine.getEnv().describe`. + */ + for (var property in jasmineInterface) { + global[property] = jasmineInterface[property]; + } +}()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/boot1.js b/node_modules/jasmine-core/lib/jasmine-core/boot1.js new file mode 100644 index 0000000..d5a2215 --- /dev/null +++ b/node_modules/jasmine-core/lib/jasmine-core/boot1.js @@ -0,0 +1,133 @@ +/* +Copyright (c) 2008-2022 Pivotal Labs + +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. +*/ +/** + This file finishes "booting" Jasmine, performing all of the necessary + initialization before executing the loaded environment and all of a project's + specs. This file should be loaded after `boot0.js` but before any project + source files or spec files are loaded. Thus this file can also be used to + customize Jasmine for a project. + + If a project is using Jasmine via the standalone distribution, this file can + be customized directly. If you only wish to configure the Jasmine env, you + can load another file that calls `jasmine.getEnv().configure({...})` + after `boot0.js` is loaded and before this file is loaded. + */ + +(function() { + var env = jasmine.getEnv(); + + /** + * ## Runner Parameters + * + * More browser specific code - wrap the query string in an object and to allow for getting/setting parameters from the runner user interface. + */ + + var queryString = new jasmine.QueryString({ + getWindowLocation: function() { return window.location; } + }); + + var filterSpecs = !!queryString.getParam("spec"); + + var config = { + stopOnSpecFailure: queryString.getParam("failFast"), + stopSpecOnExpectationFailure: queryString.getParam("oneFailurePerSpec"), + hideDisabled: queryString.getParam("hideDisabled") + }; + + var random = queryString.getParam("random"); + + if (random !== undefined && random !== "") { + config.random = random; + } + + var seed = queryString.getParam("seed"); + if (seed) { + config.seed = seed; + } + + /** + * ## Reporters + * The `HtmlReporter` builds all of the HTML UI for the runner page. This reporter paints the dots, stars, and x's for specs, as well as all spec names and all failures (if any). + */ + var htmlReporter = new jasmine.HtmlReporter({ + env: env, + navigateWithNewParam: function(key, value) { return queryString.navigateWithNewParam(key, value); }, + addToExistingQueryString: function(key, value) { return queryString.fullStringWithNewParam(key, value); }, + getContainer: function() { return document.body; }, + createElement: function() { return document.createElement.apply(document, arguments); }, + createTextNode: function() { return document.createTextNode.apply(document, arguments); }, + timer: new jasmine.Timer(), + filterSpecs: filterSpecs + }); + + /** + * The `jsApiReporter` also receives spec results, and is used by any environment that needs to extract the results from JavaScript. + */ + env.addReporter(jsApiReporter); + env.addReporter(htmlReporter); + + /** + * Filter which specs will be run by matching the start of the full name against the `spec` query param. + */ + var specFilter = new jasmine.HtmlSpecFilter({ + filterString: function() { return queryString.getParam("spec"); } + }); + + config.specFilter = function(spec) { + return specFilter.matches(spec.getFullName()); + }; + + env.configure(config); + + /** + * Setting up timing functions to be able to be overridden. Certain browsers (Safari, IE 8, phantomjs) require this hack. + */ + window.setTimeout = window.setTimeout; + window.setInterval = window.setInterval; + window.clearTimeout = window.clearTimeout; + window.clearInterval = window.clearInterval; + + /** + * ## Execution + * + * Replace the browser window's `onload`, ensure it's called, and then run all of the loaded specs. This includes initializing the `HtmlReporter` instance and then executing the loaded Jasmine environment. All of this will happen after all of the specs are loaded. + */ + var currentWindowOnload = window.onload; + + window.onload = function() { + if (currentWindowOnload) { + currentWindowOnload(); + } + htmlReporter.initialize(); + env.execute(); + }; + + /** + * Helper function for readability above. + */ + function extend(destination, source) { + for (var property in source) destination[property] = source[property]; + return destination; + } + +}()); diff --git a/node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js b/node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js index 79e0f45..2d55148 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js +++ b/node_modules/jasmine-core/lib/jasmine-core/jasmine-html.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2008-2021 Pivotal Labs +Copyright (c) 2008-2022 Pivotal Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -311,7 +311,8 @@ jasmineRequire.HtmlReporter = function(j$) { addDeprecationWarnings(doneResult); for (i = 0; i < deprecationWarnings.length; i++) { - var context; + var children = [], + context; switch (deprecationWarnings[i].runnableType) { case 'spec': @@ -324,13 +325,23 @@ jasmineRequire.HtmlReporter = function(j$) { context = ''; } + deprecationWarnings[i].message.split('\n').forEach(function(line) { + children.push(line); + children.push(createDom('br')); + }); + + children[0] = 'DEPRECATION: ' + children[0]; + children.push(context); + + if (deprecationWarnings[i].stack) { + children.push(createExpander(deprecationWarnings[i].stack)); + } + alert.appendChild( createDom( 'span', { className: 'jasmine-bar jasmine-warning' }, - 'DEPRECATION: ' + deprecationWarnings[i].message, - createDom('br'), - context + children ) ); } @@ -558,17 +569,20 @@ jasmineRequire.HtmlReporter = function(j$) { ); var failFastCheckbox = optionsMenuDom.querySelector('#jasmine-fail-fast'); - failFastCheckbox.checked = config.failFast; + failFastCheckbox.checked = config.stopOnSpecFailure; failFastCheckbox.onclick = function() { - navigateWithNewParam('failFast', !config.failFast); + navigateWithNewParam('failFast', !config.stopOnSpecFailure); }; var throwCheckbox = optionsMenuDom.querySelector( '#jasmine-throw-failures' ); - throwCheckbox.checked = config.oneFailurePerSpec; + throwCheckbox.checked = config.stopSpecOnExpectationFailure; throwCheckbox.onclick = function() { - navigateWithNewParam('oneFailurePerSpec', !config.oneFailurePerSpec); + navigateWithNewParam( + 'oneFailurePerSpec', + !config.stopSpecOnExpectationFailure + ); }; var randomCheckbox = optionsMenuDom.querySelector( @@ -649,17 +663,44 @@ jasmineRequire.HtmlReporter = function(j$) { if (result && result.deprecationWarnings) { for (var i = 0; i < result.deprecationWarnings.length; i++) { var warning = result.deprecationWarnings[i].message; - if (!j$.util.arrayContains(warning)) { - deprecationWarnings.push({ - message: warning, - runnableName: result.fullName, - runnableType: runnableType - }); - } + deprecationWarnings.push({ + message: warning, + stack: result.deprecationWarnings[i].stack, + runnableName: result.fullName, + runnableType: runnableType + }); } } } + function createExpander(stackTrace) { + var expandLink = createDom('a', { href: '#' }, 'Show stack trace'); + var root = createDom( + 'div', + { className: 'jasmine-expander' }, + expandLink, + createDom( + 'div', + { className: 'jasmine-expander-contents jasmine-stack-trace' }, + stackTrace + ) + ); + + expandLink.addEventListener('click', function(e) { + e.preventDefault(); + + if (root.classList.contains('jasmine-expanded')) { + root.classList.remove('jasmine-expanded'); + expandLink.textContent = 'Show stack trace'; + } else { + root.classList.add('jasmine-expanded'); + expandLink.textContent = 'Hide stack trace'; + } + }); + + return root; + } + function find(selector) { return getContainer().querySelector('.jasmine_html-reporter ' + selector); } @@ -673,11 +714,23 @@ jasmineRequire.HtmlReporter = function(j$) { } } - function createDom(type, attrs, childrenVarArgs) { - var el = createElement(type); + function createDom(type, attrs, childrenArrayOrVarArgs) { + var el = createElement(type), + children, + i; + + if (j$.isArray_(childrenArrayOrVarArgs)) { + children = childrenArrayOrVarArgs; + } else { + children = []; + + for (i = 2; i < arguments.length; i++) { + children.push(arguments[i]); + } + } - for (var i = 2; i < arguments.length; i++) { - var child = arguments[i]; + for (i = 0; i < children.length; i++) { + var child = children[i]; if (typeof child === 'string') { el.appendChild(createTextNode(child)); diff --git a/node_modules/jasmine-core/lib/jasmine-core/jasmine.css b/node_modules/jasmine-core/lib/jasmine-core/jasmine.css index dba3ca9..18b6457 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/jasmine.css +++ b/node_modules/jasmine-core/lib/jasmine-core/jasmine.css @@ -165,6 +165,8 @@ body { background-color: #bababa; } .jasmine_html-reporter .jasmine-bar.jasmine-warning { + margin-top: 14px; + margin-bottom: 14px; background-color: #ba9d37; color: #333; } @@ -268,4 +270,21 @@ body { border: 1px solid #ddd; background: white; white-space: pre; +} +.jasmine_html-reporter .jasmine-expander a { + display: block; + margin-left: 14px; + color: blue; + text-decoration: underline; +} +.jasmine_html-reporter .jasmine-expander-contents { + display: none; +} +.jasmine_html-reporter .jasmine-expanded { + padding-bottom: 10px; +} +.jasmine_html-reporter .jasmine-expanded .jasmine-expander-contents { + display: block; + margin-left: 14px; + padding: 5px; } \ No newline at end of file diff --git a/node_modules/jasmine-core/lib/jasmine-core/jasmine.js b/node_modules/jasmine-core/lib/jasmine-core/jasmine.js index 40207e6..6bbb4f2 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/jasmine.js +++ b/node_modules/jasmine-core/lib/jasmine-core/jasmine.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2008-2021 Pivotal Labs +Copyright (c) 2008-2022 Pivotal Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the @@ -60,11 +60,15 @@ var getJasmineRequireObj = (function(jasmineGlobal) { j$.Any = jRequire.Any(j$); j$.Anything = jRequire.Anything(j$); j$.CallTracker = jRequire.CallTracker(j$); - j$.MockDate = jRequire.MockDate(); + j$.MockDate = jRequire.MockDate(j$); j$.getClearStack = jRequire.clearStack(j$); j$.Clock = jRequire.Clock(); j$.DelayedFunctionScheduler = jRequire.DelayedFunctionScheduler(j$); + j$.Deprecator = jRequire.Deprecator(j$); j$.Env = jRequire.Env(j$); + j$.deprecatingThisProxy = jRequire.deprecatingThisProxy(j$); + j$.deprecatingSuiteProxy = jRequire.deprecatingSuiteProxy(j$); + j$.deprecatingSpecProxy = jRequire.deprecatingSpecProxy(j$); j$.StackTrace = jRequire.StackTrace(j$); j$.ExceptionFormatter = jRequire.ExceptionFormatter(j$); j$.ExpectationFilterChain = jRequire.ExpectationFilterChain(); @@ -76,11 +80,34 @@ var getJasmineRequireObj = (function(jasmineGlobal) { j$ ); j$.makePrettyPrinter = jRequire.makePrettyPrinter(j$); - j$.pp = j$.makePrettyPrinter(); + j$.basicPrettyPrinter_ = j$.makePrettyPrinter(); + Object.defineProperty(j$, 'pp', { + get: function() { + j$.getEnv().deprecated( + 'jasmine.pp is deprecated and will be removed in a future release. ' + + 'Use the pp method of the matchersUtil passed to the matcher factory ' + + "or the asymmetric equality tester's `asymmetricMatch` method " + + 'instead. See ' + + ' for details.' + ); + return j$.basicPrettyPrinter_; + } + }); j$.MatchersUtil = jRequire.MatchersUtil(j$); - j$.matchersUtil = new j$.MatchersUtil({ + var staticMatchersUtil = new j$.MatchersUtil({ customTesters: [], - pp: j$.pp + pp: j$.basicPrettyPrinter_ + }); + Object.defineProperty(j$, 'matchersUtil', { + get: function() { + j$.getEnv().deprecated( + 'jasmine.matchersUtil is deprecated and will be removed ' + + 'in a future release. Use the instance passed to the matcher factory or ' + + "the asymmetric equality tester's `asymmetricMatch` method instead. " + + 'See for details.' + ); + return staticMatchersUtil; + } }); j$.ObjectContaining = jRequire.ObjectContaining(j$); @@ -96,6 +123,7 @@ var getJasmineRequireObj = (function(jasmineGlobal) { j$.SpyRegistry = jRequire.SpyRegistry(j$); j$.SpyStrategy = jRequire.SpyStrategy(j$); j$.StringMatching = jRequire.StringMatching(j$); + j$.StringContaining = jRequire.StringContaining(j$); j$.UserContext = jRequire.UserContext(j$); j$.Suite = jRequire.Suite(j$); j$.Timer = jRequire.Timer(); @@ -175,6 +203,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { * Maximum object depth the pretty printer will print to. * Set this to a lower value to speed up pretty printing if you have large objects. * @name jasmine.MAX_PRETTY_PRINT_DEPTH + * @default 8 * @since 1.3.0 */ j$.MAX_PRETTY_PRINT_DEPTH = 8; @@ -183,6 +212,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { * This will also limit the number of keys and values displayed for an object. * Elements past this number will be ellipised. * @name jasmine.MAX_PRETTY_PRINT_ARRAY_LENGTH + * @default 50 * @since 2.7.0 */ j$.MAX_PRETTY_PRINT_ARRAY_LENGTH = 50; @@ -190,15 +220,35 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { * Maximum number of characters to display when pretty printing objects. * Characters past this number will be ellipised. * @name jasmine.MAX_PRETTY_PRINT_CHARS + * @default 100 * @since 2.9.0 */ j$.MAX_PRETTY_PRINT_CHARS = 1000; /** - * Default number of milliseconds Jasmine will wait for an asynchronous spec to complete. + * Default number of milliseconds Jasmine will wait for an asynchronous spec, + * before, or after function to complete. This can be overridden on a case by + * case basis by passing a time limit as the third argument to {@link it}, + * {@link beforeEach}, {@link afterEach}, {@link beforeAll}, or + * {@link afterAll}. The value must be no greater than the largest number of + * milliseconds supported by setTimeout, which is usually 2147483647. + * + * While debugging tests, you may want to set this to a large number (or pass + * a large number to one of the functions mentioned above) so that Jasmine + * does not move on to after functions or the next spec while you're debugging. * @name jasmine.DEFAULT_TIMEOUT_INTERVAL + * @default 5000 * @since 1.3.0 */ - j$.DEFAULT_TIMEOUT_INTERVAL = 5000; + var DEFAULT_TIMEOUT_INTERVAL = 5000; + Object.defineProperty(j$, 'DEFAULT_TIMEOUT_INTERVAL', { + get: function() { + return DEFAULT_TIMEOUT_INTERVAL; + }, + set: function(newValue) { + j$.util.validateTimeout(newValue, 'jasmine.DEFAULT_TIMEOUT_INTERVAL'); + DEFAULT_TIMEOUT_INTERVAL = newValue; + } + }); j$.getGlobal = function() { return jasmineGlobal; @@ -267,9 +317,21 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; j$.isError_ = function(value) { + if (!value) { + return false; + } + if (value instanceof Error) { return true; } + if ( + typeof window !== 'undefined' && + typeof window.trustedTypes !== 'undefined' + ) { + return ( + typeof value.stack === 'string' && typeof value.message === 'string' + ); + } if (value && value.constructor && value.constructor.constructor) { var valueGlobal = value.constructor.constructor('return this'); if (j$.isFunction_(valueGlobal)) { @@ -385,7 +447,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is an instance of the specified class/constructor. * @name jasmine.any * @since 1.3.0 @@ -397,7 +459,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is not `null` and not `undefined`. * @name jasmine.anything * @since 2.2.0 @@ -408,7 +470,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is `true` or anything truthy. * @name jasmine.truthy * @since 3.1.0 @@ -419,7 +481,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is `null`, `undefined`, `0`, `false` or anything falsey. * @name jasmine.falsy * @since 3.1.0 @@ -430,7 +492,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is empty. * @name jasmine.empty * @since 3.1.0 @@ -441,7 +503,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared is not empty. * @name jasmine.notEmpty * @since 3.1.0 @@ -452,7 +514,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value being compared contains at least the keys and values. * @name jasmine.objectContaining * @since 1.3.0 @@ -464,7 +526,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value is a `String` that matches the `RegExp` or `String`. * @name jasmine.stringMatching * @since 2.2.0 @@ -476,7 +538,19 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * that will succeed if the actual value is a `String` that contains the specified `String`. + * @name jasmine.stringContaining + * @since 3.10.0 + * @function + * @param {String} expected + */ + j$.stringContaining = function(expected) { + return new j$.StringContaining(expected); + }; + + /** + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value is an `Array` that contains at least the elements in the sample. * @name jasmine.arrayContaining * @since 2.2.0 @@ -488,7 +562,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if the actual value is an `Array` that contains all of the elements in the sample in any order. * @name jasmine.arrayWithExactContents * @since 2.8.0 @@ -500,7 +574,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if every key/value pair in the sample passes the deep equality comparison * with at least one key/value pair in the actual value being compared * @name jasmine.mapContaining @@ -513,7 +587,7 @@ getJasmineRequireObj().base = function(j$, jasmineGlobal) { }; /** - * Get a matcher, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), + * Get an {@link AsymmetricEqualityTester}, usable in any {@link matchers|matcher} that uses Jasmine's equality (e.g. {@link matchers#toEqual|toEqual}, {@link matchers#toContain|toContain}, or {@link matchers#toHaveBeenCalledWith|toHaveBeenCalledWith}), * that will succeed if every item in the sample passes the deep equality comparison * with at least one item in the actual value being compared * @name jasmine.setContaining @@ -688,6 +762,21 @@ getJasmineRequireObj().util = function(j$) { } }; + util.validateTimeout = function(timeout, msgPrefix) { + // Timeouts are implemented with setTimeout, which only supports a limited + // range of values. The limit is unspecified, as is the behavior when it's + // exceeded. But on all currently supported JS runtimes, setTimeout calls + // the callback immediately when the timeout is greater than 2147483647 + // (the maximum value of a signed 32 bit integer). + var max = 2147483647; + + if (timeout > max) { + throw new Error( + (msgPrefix || 'Timeout value') + ' cannot be greater than ' + max + ); + } + }; + return util; }; @@ -695,17 +784,26 @@ getJasmineRequireObj().Spec = function(j$) { /** * @interface Spec * @see Configuration#specFilter + * @since 2.0.0 */ function Spec(attrs) { this.expectationFactory = attrs.expectationFactory; this.asyncExpectationFactory = attrs.asyncExpectationFactory; this.resultCallback = attrs.resultCallback || function() {}; + /** + * The unique ID of this spec. + * @name Spec#id + * @readonly + * @type {string} + * @since 2.0.0 + */ this.id = attrs.id; /** * The description passed to the {@link it} that created this spec. * @name Spec#description * @readonly * @type {string} + * @since 2.0.0 */ this.description = attrs.description || ''; this.queueableFn = attrs.queueableFn; @@ -720,6 +818,8 @@ getJasmineRequireObj().Spec = function(j$) { return {}; }; this.onStart = attrs.onStart || function() {}; + this.autoCleanClosures = + attrs.autoCleanClosures === undefined ? true : !!attrs.autoCleanClosures; this.getSpecName = attrs.getSpecName || function() { @@ -727,6 +827,7 @@ getJasmineRequireObj().Spec = function(j$) { }; this.expectationResultFactory = attrs.expectationResultFactory || function() {}; + this.deprecated = attrs.deprecated || function() {}; this.queueRunnerFactory = attrs.queueRunnerFactory || function() {}; this.catchingExceptions = attrs.catchingExceptions || @@ -737,7 +838,7 @@ getJasmineRequireObj().Spec = function(j$) { this.timer = attrs.timer || new j$.Timer(); if (!this.queueableFn.fn) { - this.pend(); + this.exclude(); } /** @@ -752,7 +853,8 @@ getJasmineRequireObj().Spec = function(j$) { * @property {String} status - Once the spec has completed, this string represents the pass/fail status of this spec. * @property {number} duration - The time in ms used by the spec execution, including any before/afterEach. * @property {Object} properties - User-supplied properties, if any, that were set using {@link Env#setSpecProperty} - */ + * @since 2.0.0 +x */ this.result = { id: this.id, description: this.description, @@ -804,7 +906,9 @@ getJasmineRequireObj().Spec = function(j$) { var complete = { fn: function(done) { - self.queueableFn.fn = null; + if (self.autoCleanClosures) { + self.queueableFn.fn = null; + } self.result.status = self.status(excluded, failSpecWithNoExp); self.result.duration = self.timer.elapsed(); self.resultCallback(self.result, done); @@ -821,13 +925,32 @@ getJasmineRequireObj().Spec = function(j$) { onException: function() { self.onException.apply(self, arguments); }, - onComplete: function() { - onComplete( - self.result.status === 'failed' && - new j$.StopExecutionError('spec failed') + onMultipleDone: function() { + // Issue a deprecation. Include the context ourselves and pass + // ignoreRunnable: true, since getting here always means that we've already + // moved on and the current runnable isn't the one that caused the problem. + self.deprecated( + "An asynchronous function called its 'done' " + + 'callback more than once. This is a bug in the spec, beforeAll, ' + + 'beforeEach, afterAll, or afterEach function in question. This will ' + + 'be treated as an error in a future version. See' + + ' ' + + 'for more information.\n' + + '(in spec: ' + + self.getFullName() + + ')', + { ignoreRunnable: true } ); }, - userContext: this.userContext() + onComplete: function() { + if (self.result.status === 'failed') { + onComplete(new j$.StopExecutionError('spec failed')); + } else { + onComplete(); + } + }, + userContext: this.userContext(), + runnableName: this.getFullName.bind(this) }; if (this.markedPending || excluded === true) { @@ -841,6 +964,36 @@ getJasmineRequireObj().Spec = function(j$) { this.queueRunnerFactory(runnerConfig); }; + Spec.prototype.reset = function() { + /** + * @typedef SpecResult + * @property {Int} id - The unique id of this spec. + * @property {String} description - The description passed to the {@link it} that created this spec. + * @property {String} fullName - The full description including all ancestors of this spec. + * @property {Expectation[]} failedExpectations - The list of expectations that failed during execution of this spec. + * @property {Expectation[]} passedExpectations - The list of expectations that passed during execution of this spec. + * @property {Expectation[]} deprecationWarnings - The list of deprecation warnings that occurred during execution this spec. + * @property {String} pendingReason - If the spec is {@link pending}, this will be the reason. + * @property {String} status - Once the spec has completed, this string represents the pass/fail status of this spec. + * @property {number} duration - The time in ms used by the spec execution, including any before/afterEach. + * @property {Object} properties - User-supplied properties, if any, that were set using {@link Env#setSpecProperty} + * @since 2.0.0 + */ + this.result = { + id: this.id, + description: this.description, + fullName: this.getFullName(), + failedExpectations: [], + passedExpectations: [], + deprecationWarnings: [], + pendingReason: this.excludeMessage, + duration: null, + properties: null, + trace: null + }; + this.markedPending = this.markedExcluding; + }; + Spec.prototype.onException = function onException(e) { if (Spec.isPendingSpecException(e)) { this.pend(extractCustomPendingMessage(e)); @@ -864,6 +1017,10 @@ getJasmineRequireObj().Spec = function(j$) { ); }; + /* + * Marks state as pending + * @param {string} [message] An optional reason message + */ Spec.prototype.pend = function(message) { this.markedPending = true; if (message) { @@ -871,6 +1028,19 @@ getJasmineRequireObj().Spec = function(j$) { } }; + /* + * Like {@link Spec#pend}, but pending state will survive {@link Spec#reset} + * Useful for fit, xit, where pending state remains. + * @param {string} [message] An optional reason message + */ + Spec.prototype.exclude = function(message) { + this.markedExcluding = true; + if (this.message) { + this.excludeMessage = message; + } + this.pend(message); + }; + Spec.prototype.getResult = function() { this.result.status = this.status(); return this.result; @@ -903,6 +1073,7 @@ getJasmineRequireObj().Spec = function(j$) { * @name Spec#getFullName * @function * @returns {string} + * @since 2.0.0 */ Spec.prototype.getFullName = function() { return this.getSpecName(this); @@ -1057,8 +1228,17 @@ getJasmineRequireObj().Env = function(j$) { * @since 3.3.0 * @type Boolean * @default false + * @deprecated Use the `stopOnSpecFailure` config property instead. */ failFast: false, + /** + * Whether to stop execution of the suite after the first spec failure + * @name Configuration#stopOnSpecFailure + * @since 3.9.0 + * @type Boolean + * @default false + */ + stopOnSpecFailure: false, /** * Whether to fail the spec if it ran no expectations. By default * a spec that ran no expectations is reported as passed. Setting this @@ -1075,8 +1255,17 @@ getJasmineRequireObj().Env = function(j$) { * @since 3.3.0 * @type Boolean * @default false + * @deprecated Use the `stopSpecOnExpectationFailure` config property instead. */ oneFailurePerSpec: false, + /** + * Whether to cause specs to only have one expectation failure. + * @name Configuration#stopSpecOnExpectationFailure + * @since 3.3.0 + * @type Boolean + * @default false + */ + stopSpecOnExpectationFailure: false, /** * A function that takes a spec and returns true if it should be executed * or false if it should be skipped. @@ -1111,8 +1300,31 @@ getJasmineRequireObj().Env = function(j$) { * @since 3.5.0 * @type function * @default undefined + * @deprecated In a future version, Jasmine will ignore the Promise config + * property and always create native promises instead. + */ + Promise: undefined, + /** + * Clean closures when a suite is done running (done by clearing the stored function reference). + * This prevents memory leaks, but you won't be able to run jasmine multiple times. + * @name Configuration#autoCleanClosures + * @since 3.10.0 + * @type boolean + * @default true */ - Promise: undefined + autoCleanClosures: true, + /** + * Whether or not to issue warnings for certain deprecated functionality + * every time it's used. If not set or set to false, deprecation warnings + * for methods that tend to be called frequently will be issued only once + * or otherwise throttled to to prevent the suite output from being flooded + * with warnings. + * @name Configuration#verboseDeprecations + * @since 3.6.0 + * @type Boolean + * @default false + */ + verboseDeprecations: false }; var currentSuite = function() { @@ -1162,33 +1374,89 @@ getJasmineRequireObj().Env = function(j$) { * @function */ this.configure = function(configuration) { - if (configuration.specFilter) { - config.specFilter = configuration.specFilter; - } + var booleanProps = [ + 'random', + 'failSpecWithNoExpectations', + 'hideDisabled', + 'autoCleanClosures' + ]; + + booleanProps.forEach(function(prop) { + if (typeof configuration[prop] !== 'undefined') { + config[prop] = !!configuration[prop]; + } + }); - if (configuration.hasOwnProperty('random')) { - config.random = !!configuration.random; - } + if (typeof configuration.failFast !== 'undefined') { + // We can't unconditionally issue a warning here because then users who + // get the configuration from Jasmine, modify it, and pass it back would + // see the warning. + if (configuration.failFast !== config.failFast) { + this.deprecated( + 'The `failFast` config property is deprecated and will be removed ' + + 'in a future version of Jasmine. Please use `stopOnSpecFailure` ' + + 'instead.', + { ignoreRunnable: true } + ); + } - if (configuration.hasOwnProperty('seed')) { - config.seed = configuration.seed; - } + if (typeof configuration.stopOnSpecFailure !== 'undefined') { + if (configuration.stopOnSpecFailure !== configuration.failFast) { + throw new Error( + 'stopOnSpecFailure and failFast are aliases for ' + + "each other. Don't set failFast if you also set stopOnSpecFailure." + ); + } + } - if (configuration.hasOwnProperty('failFast')) { config.failFast = configuration.failFast; - } + config.stopOnSpecFailure = configuration.failFast; + } else if (typeof configuration.stopOnSpecFailure !== 'undefined') { + config.failFast = configuration.stopOnSpecFailure; + config.stopOnSpecFailure = configuration.stopOnSpecFailure; + } + + if (typeof configuration.oneFailurePerSpec !== 'undefined') { + // We can't unconditionally issue a warning here because then users who + // get the configuration from Jasmine, modify it, and pass it back would + // see the warning. + if (configuration.oneFailurePerSpec !== config.oneFailurePerSpec) { + this.deprecated( + 'The `oneFailurePerSpec` config property is deprecated and will be ' + + 'removed in a future version of Jasmine. Please use ' + + '`stopSpecOnExpectationFailure` instead.', + { ignoreRunnable: true } + ); + } - if (configuration.hasOwnProperty('failSpecWithNoExpectations')) { - config.failSpecWithNoExpectations = - configuration.failSpecWithNoExpectations; - } + if (typeof configuration.stopSpecOnExpectationFailure !== 'undefined') { + if ( + configuration.stopSpecOnExpectationFailure !== + configuration.oneFailurePerSpec + ) { + throw new Error( + 'stopSpecOnExpectationFailure and oneFailurePerSpec are aliases for ' + + "each other. Don't set oneFailurePerSpec if you also set stopSpecOnExpectationFailure." + ); + } + } - if (configuration.hasOwnProperty('oneFailurePerSpec')) { config.oneFailurePerSpec = configuration.oneFailurePerSpec; + config.stopSpecOnExpectationFailure = configuration.oneFailurePerSpec; + } else if ( + typeof configuration.stopSpecOnExpectationFailure !== 'undefined' + ) { + config.oneFailurePerSpec = configuration.stopSpecOnExpectationFailure; + config.stopSpecOnExpectationFailure = + configuration.stopSpecOnExpectationFailure; + } + + if (configuration.specFilter) { + config.specFilter = configuration.specFilter; } - if (configuration.hasOwnProperty('hideDisabled')) { - config.hideDisabled = configuration.hideDisabled; + if (typeof configuration.seed !== 'undefined') { + config.seed = configuration.seed; } // Don't use hasOwnProperty to check for Promise existence because Promise @@ -1200,12 +1468,22 @@ getJasmineRequireObj().Env = function(j$) { typeof configuration.Promise.reject === 'function' ) { customPromise = configuration.Promise; + self.deprecated( + 'The `Promise` config property is deprecated. Future versions ' + + 'of Jasmine will create native promises even if the `Promise` ' + + 'config property is set. Please remove it.' + ); } else { throw new Error( 'Custom promise library missing `resolve`/`reject` functions' ); } } + + if (configuration.hasOwnProperty('verboseDeprecations')) { + config.verboseDeprecations = configuration.verboseDeprecations; + deprecator.verboseDeprecations(config.verboseDeprecations); + } }; /** @@ -1226,13 +1504,19 @@ getJasmineRequireObj().Env = function(j$) { Object.defineProperty(this, 'specFilter', { get: function() { self.deprecated( - 'Getting specFilter directly from Env is deprecated and will be removed in a future version of Jasmine, please check the specFilter option from `configuration`' + 'Getting specFilter directly from Env is deprecated and will be ' + + 'removed in a future version of Jasmine. Please check the ' + + 'specFilter option from `configuration` instead.', + { ignoreRunnable: true } ); return config.specFilter; }, set: function(val) { self.deprecated( - 'Setting specFilter directly on Env is deprecated and will be removed in a future version of Jasmine, please use the specFilter option in `configure`' + 'Setting specFilter directly on Env is deprecated and will be ' + + 'removed in a future version of Jasmine. Please use the ' + + 'specFilter option in `configure` instead.', + { ignoreRunnable: true } ); config.specFilter = val; } @@ -1279,6 +1563,17 @@ getJasmineRequireObj().Env = function(j$) { runnableResources[currentRunnable().id].customMatchers; for (var matcherName in matchersToAdd) { + if (matchersToAdd[matcherName].length > 1) { + self.deprecated( + 'The matcher factory for "' + + matcherName + + '" ' + + 'accepts custom equality testers, but this parameter will no longer be ' + + 'passed in a future release. ' + + 'See for details.' + ); + } + customMatchers[matcherName] = matchersToAdd[matcherName]; } }; @@ -1293,6 +1588,17 @@ getJasmineRequireObj().Env = function(j$) { runnableResources[currentRunnable().id].customAsyncMatchers; for (var matcherName in matchersToAdd) { + if (matchersToAdd[matcherName].length > 1) { + self.deprecated( + 'The matcher factory for "' + + matcherName + + '" ' + + 'accepts custom equality testers, but this parameter will no longer be ' + + 'passed in a future release. ' + + 'See for details.' + ); + } + customAsyncMatchers[matcherName] = matchersToAdd[matcherName]; } }; @@ -1375,7 +1681,9 @@ getJasmineRequireObj().Env = function(j$) { } delayedExpectationResult.message += - 'Did you forget to return or await the result of expectAsync?'; + '1. Did you forget to return or await the result of expectAsync?\n' + + '2. Was done() invoked before an async operation completed?\n' + + '3. Did an expectation follow a call to done()?'; topSuite.result.failedExpectations.push(delayedExpectationResult); } @@ -1440,10 +1748,11 @@ getJasmineRequireObj().Env = function(j$) { delete runnableResources[id]; }; - var beforeAndAfterFns = function(suite) { + var beforeAndAfterFns = function(targetSuite) { return function() { var befores = [], - afters = []; + afters = [], + suite = targetSuite; while (suite) { befores = befores.concat(suite.beforeFns); @@ -1486,18 +1795,24 @@ getJasmineRequireObj().Env = function(j$) { * @since 2.3.0 * @function * @param {Boolean} value Whether to throw when a expectation fails - * @deprecated Use the `oneFailurePerSpec` option with {@link Env#configure} + * @deprecated Use the `stopSpecOnExpectationFailure` option with {@link Env#configure} */ this.throwOnExpectationFailure = function(value) { this.deprecated( - 'Setting throwOnExpectationFailure directly on Env is deprecated and will be removed in a future version of Jasmine, please use the oneFailurePerSpec option in `configure`' + 'Setting throwOnExpectationFailure directly on Env is deprecated and ' + + 'will be removed in a future version of Jasmine. Please use the ' + + 'stopSpecOnExpectationFailure option in `configure`.', + { ignoreRunnable: true } ); this.configure({ oneFailurePerSpec: !!value }); }; this.throwingExpectationFailures = function() { this.deprecated( - 'Getting throwingExpectationFailures directly from Env is deprecated and will be removed in a future version of Jasmine, please check the oneFailurePerSpec option from `configuration`' + 'Getting throwingExpectationFailures directly from Env is deprecated ' + + 'and will be removed in a future version of Jasmine. Please check ' + + 'the stopSpecOnExpectationFailure option from `configuration`.', + { ignoreRunnable: true } ); return config.oneFailurePerSpec; }; @@ -1508,18 +1823,24 @@ getJasmineRequireObj().Env = function(j$) { * @since 2.7.0 * @function * @param {Boolean} value Whether to stop suite execution when a spec fails - * @deprecated Use the `failFast` option with {@link Env#configure} + * @deprecated Use the `stopOnSpecFailure` option with {@link Env#configure} */ this.stopOnSpecFailure = function(value) { this.deprecated( - 'Setting stopOnSpecFailure directly is deprecated and will be removed in a future version of Jasmine, please use the failFast option in `configure`' + 'Setting stopOnSpecFailure directly is deprecated and will be ' + + 'removed in a future version of Jasmine. Please use the ' + + 'stopOnSpecFailure option in `configure`.', + { ignoreRunnable: true } ); - this.configure({ failFast: !!value }); + this.configure({ stopOnSpecFailure: !!value }); }; this.stoppingOnSpecFailure = function() { this.deprecated( - 'Getting stoppingOnSpecFailure directly from Env is deprecated and will be removed in a future version of Jasmine, please check the failFast option from `configuration`' + 'Getting stoppingOnSpecFailure directly from Env is deprecated and ' + + 'will be removed in a future version of Jasmine. Please check the ' + + 'stopOnSpecFailure option from `configuration`.', + { ignoreRunnable: true } ); return config.failFast; }; @@ -1534,14 +1855,20 @@ getJasmineRequireObj().Env = function(j$) { */ this.randomizeTests = function(value) { this.deprecated( - 'Setting randomizeTests directly is deprecated and will be removed in a future version of Jasmine, please use the random option in `configure`' + 'Setting randomizeTests directly is deprecated and will be removed ' + + 'in a future version of Jasmine. Please use the random option in ' + + '`configure` instead.', + { ignoreRunnable: true } ); config.random = !!value; }; this.randomTests = function() { this.deprecated( - 'Getting randomTests directly from Env is deprecated and will be removed in a future version of Jasmine, please check the random option from `configuration`' + 'Getting randomTests directly from Env is deprecated and will be ' + + 'removed in a future version of Jasmine. Please check the random ' + + 'option from `configuration` instead.', + { ignoreRunnable: true } ); return config.random; }; @@ -1556,7 +1883,10 @@ getJasmineRequireObj().Env = function(j$) { */ this.seed = function(value) { this.deprecated( - 'Setting seed directly is deprecated and will be removed in a future version of Jasmine, please use the seed option in `configure`' + 'Setting seed directly is deprecated and will be removed in a ' + + 'future version of Jasmine. Please use the seed option in ' + + '`configure` instead.', + { ignoreRunnable: true } ); if (value) { config.seed = value; @@ -1566,7 +1896,10 @@ getJasmineRequireObj().Env = function(j$) { this.hidingDisabled = function(value) { this.deprecated( - 'Getting hidingDisabled directly from Env is deprecated and will be removed in a future version of Jasmine, please check the hideDisabled option from `configuration`' + 'Getting hidingDisabled directly from Env is deprecated and will ' + + 'be removed in a future version of Jasmine. Please check the ' + + 'hideDisabled option from `configuration` instead.', + { ignoreRunnable: true } ); return config.hideDisabled; }; @@ -1575,41 +1908,51 @@ getJasmineRequireObj().Env = function(j$) { * @name Env#hideDisabled * @since 3.2.0 * @function + * @deprecated Use the `hideDisabled` option with {@link Env#configure} */ this.hideDisabled = function(value) { this.deprecated( - 'Setting hideDisabled directly is deprecated and will be removed in a future version of Jasmine, please use the hideDisabled option in `configure`' + 'Setting hideDisabled directly is deprecated and will be removed ' + + 'in a future version of Jasmine. Please use the hideDisabled option ' + + 'in `configure` instead.', + { ignoreRunnable: true } ); config.hideDisabled = !!value; }; - this.deprecated = function(deprecation) { + /** + * Causes a deprecation warning to be logged to the console and reported to + * reporters. + * + * The optional second parameter is an object that can have either of the + * following properties: + * + * omitStackTrace: Whether to omit the stack trace. Optional. Defaults to + * false. This option is ignored if the deprecation is an Error. Set this + * when the stack trace will not contain anything that helps the user find + * the source of the deprecation. + * + * ignoreRunnable: Whether to log the deprecation on the root suite, ignoring + * the spec or suite that's running when it happens. Optional. Defaults to + * false. + * + * @name Env#deprecated + * @since 2.99 + * @function + * @param {String|Error} deprecation The deprecation message + * @param {Object} [options] Optional extra options, as described above + */ + this.deprecated = function(deprecation, options) { var runnable = currentRunnable() || topSuite; - var context; - - if (runnable === topSuite) { - context = ''; - } else if (runnable === currentSuite()) { - context = ' (in suite: ' + runnable.getFullName() + ')'; - } else { - context = ' (in spec: ' + runnable.getFullName() + ')'; - } - - runnable.addDeprecationWarning(deprecation); - if ( - typeof console !== 'undefined' && - typeof console.error === 'function' - ) { - console.error('DEPRECATION: ' + deprecation + context); - } + deprecator.addDeprecationWarning(runnable, deprecation, options); }; var queueRunnerFactory = function(options, args) { var failFast = false; if (options.isLeaf) { - failFast = config.oneFailurePerSpec; + failFast = config.stopSpecOnExpectationFailure; } else if (!options.isReporter) { - failFast = config.failFast; + failFast = config.stopOnSpecFailure; } options.clearStack = options.clearStack || clearStack; options.timeout = { @@ -1635,9 +1978,10 @@ getJasmineRequireObj().Env = function(j$) { description: 'Jasmine__TopLevel__Suite', expectationFactory: expectationFactory, asyncExpectationFactory: suiteAsyncExpectationFactory, - expectationResultFactory: expectationResultFactory + expectationResultFactory: expectationResultFactory, + autoCleanClosures: config.autoCleanClosures }); - defaultResourcesForRunnable(topSuite.id); + var deprecator = new j$.Deprecator(topSuite); currentDeclarationSuite = topSuite; /** @@ -1646,9 +1990,10 @@ getJasmineRequireObj().Env = function(j$) { * @function * @name Env#topSuite * @return {Suite} the root suite + * @since 2.0.0 */ this.topSuite = function() { - return topSuite; + return j$.deprecatingSuiteProxy(topSuite, null, this); }; /** @@ -1723,7 +2068,8 @@ getJasmineRequireObj().Env = function(j$) { */ 'specDone' ], - queueRunnerFactory + queueRunnerFactory, + self.deprecated ); /** @@ -1741,13 +2087,24 @@ getJasmineRequireObj().Env = function(j$) { * * execute should not be called more than once. * + * If the environment supports promises, execute will return a promise that + * is resolved after the suite finishes executing. The promise will be + * resolved (not rejected) as long as the suite runs to completion. Use a + * {@link Reporter} to determine whether or not the suite passed. + * * @name Env#execute * @since 2.0.0 * @function * @param {(string[])=} runnablesToRun IDs of suites and/or specs to run * @param {Function=} onComplete Function that will be called after all specs have run + * @return {Promise} */ this.execute = function(runnablesToRun, onComplete) { + if (this._executedBefore) { + topSuite.reset(); + } + this._executedBefore = true; + defaultResourcesForRunnable(topSuite.id); installGlobalErrors(); if (!runnablesToRun) { @@ -1805,65 +2162,88 @@ getJasmineRequireObj().Env = function(j$) { var jasmineTimer = new j$.Timer(); jasmineTimer.start(); - /** - * Information passed to the {@link Reporter#jasmineStarted} event. - * @typedef JasmineStartedInfo - * @property {Int} totalSpecsDefined - The total number of specs defined in this suite. - * @property {Order} order - Information about the ordering (random or not) of this execution of the suite. - */ - reporter.jasmineStarted( - { - totalSpecsDefined: totalSpecsDefined, - order: order - }, - function() { - currentlyExecutingSuites.push(topSuite); - - processor.execute(function() { - clearResourcesForRunnable(topSuite.id); - currentlyExecutingSuites.pop(); - var overallStatus, incompleteReason; - - if (hasFailures || topSuite.result.failedExpectations.length > 0) { - overallStatus = 'failed'; - } else if (focusedRunnables.length > 0) { - overallStatus = 'incomplete'; - incompleteReason = 'fit() or fdescribe() was found'; - } else if (totalSpecsDefined === 0) { - overallStatus = 'incomplete'; - incompleteReason = 'No specs found'; - } else { - overallStatus = 'passed'; + var Promise = customPromise || global.Promise; + + if (Promise) { + return new Promise(function(resolve) { + runAll(function() { + if (onComplete) { + onComplete(); } - /** - * Information passed to the {@link Reporter#jasmineDone} event. - * @typedef JasmineDoneInfo - * @property {OverallStatus} overallStatus - The overall result of the suite: 'passed', 'failed', or 'incomplete'. - * @property {Int} totalTime - The total time (in ms) that it took to execute the suite - * @property {IncompleteReason} incompleteReason - Explanation of why the suite was incomplete. - * @property {Order} order - Information about the ordering (random or not) of this execution of the suite. - * @property {Expectation[]} failedExpectations - List of expectations that failed in an {@link afterAll} at the global level. - * @property {Expectation[]} deprecationWarnings - List of deprecation warnings that occurred at the global level. - */ - reporter.jasmineDone( - { - overallStatus: overallStatus, - totalTime: jasmineTimer.elapsed(), - incompleteReason: incompleteReason, - order: order, - failedExpectations: topSuite.result.failedExpectations, - deprecationWarnings: topSuite.result.deprecationWarnings - }, - function() { - if (onComplete) { - onComplete(); - } - } - ); + resolve(); }); - } - ); + }); + } else { + runAll(function() { + if (onComplete) { + onComplete(); + } + }); + } + + function runAll(done) { + /** + * Information passed to the {@link Reporter#jasmineStarted} event. + * @typedef JasmineStartedInfo + * @property {Int} totalSpecsDefined - The total number of specs defined in this suite. + * @property {Order} order - Information about the ordering (random or not) of this execution of the suite. + * @since 2.0.0 + */ + reporter.jasmineStarted( + { + totalSpecsDefined: totalSpecsDefined, + order: order + }, + function() { + currentlyExecutingSuites.push(topSuite); + + processor.execute(function() { + clearResourcesForRunnable(topSuite.id); + currentlyExecutingSuites.pop(); + var overallStatus, incompleteReason; + + if ( + hasFailures || + topSuite.result.failedExpectations.length > 0 + ) { + overallStatus = 'failed'; + } else if (focusedRunnables.length > 0) { + overallStatus = 'incomplete'; + incompleteReason = 'fit() or fdescribe() was found'; + } else if (totalSpecsDefined === 0) { + overallStatus = 'incomplete'; + incompleteReason = 'No specs found'; + } else { + overallStatus = 'passed'; + } + + /** + * Information passed to the {@link Reporter#jasmineDone} event. + * @typedef JasmineDoneInfo + * @property {OverallStatus} overallStatus - The overall result of the suite: 'passed', 'failed', or 'incomplete'. + * @property {Int} totalTime - The total time (in ms) that it took to execute the suite + * @property {IncompleteReason} incompleteReason - Explanation of why the suite was incomplete. + * @property {Order} order - Information about the ordering (random or not) of this execution of the suite. + * @property {Expectation[]} failedExpectations - List of expectations that failed in an {@link afterAll} at the global level. + * @property {Expectation[]} deprecationWarnings - List of deprecation warnings that occurred at the global level. + * @since 2.4.0 + */ + reporter.jasmineDone( + { + overallStatus: overallStatus, + totalTime: jasmineTimer.elapsed(), + incompleteReason: incompleteReason, + order: order, + failedExpectations: topSuite.result.failedExpectations, + deprecationWarnings: topSuite.result.deprecationWarnings + }, + done + ); + }); + } + ); + } }; /** @@ -2011,7 +2391,8 @@ getJasmineRequireObj().Env = function(j$) { expectationFactory: expectationFactory, asyncExpectationFactory: suiteAsyncExpectationFactory, expectationResultFactory: expectationResultFactory, - throwOnExpectationFailure: config.oneFailurePerSpec + throwOnExpectationFailure: config.oneFailurePerSpec, + autoCleanClosures: config.autoCleanClosures }); return suite; @@ -2024,20 +2405,27 @@ getJasmineRequireObj().Env = function(j$) { if (specDefinitions.length > 0) { throw new Error('describe does not expect any arguments'); } - if (currentDeclarationSuite.markedPending) { - suite.pend(); + if (currentDeclarationSuite.markedExcluding) { + suite.exclude(); } addSpecsToSuite(suite, specDefinitions); - return suite; + if (suite.parentSuite && !suite.children.length) { + this.deprecated( + 'describe with no children (describe() or it()) is ' + + 'deprecated and will be removed in a future version of Jasmine. ' + + 'Please either remove the describe or add children to it.' + ); + } + return j$.deprecatingSuiteProxy(suite, suite.parentSuite, this); }; this.xdescribe = function(description, specDefinitions) { ensureIsNotNested('xdescribe'); ensureIsFunction(specDefinitions, 'xdescribe'); var suite = suiteFactory(description); - suite.pend(); + suite.exclude(); addSpecsToSuite(suite, specDefinitions); - return suite; + return j$.deprecatingSuiteProxy(suite, suite.parentSuite, this); }; var focusedRunnables = []; @@ -2052,7 +2440,7 @@ getJasmineRequireObj().Env = function(j$) { unfocusAncestor(); addSpecsToSuite(suite, specDefinitions); - return suite; + return j$.deprecatingSuiteProxy(suite, suite.parentSuite, this); }; function addSpecsToSuite(suite, specDefinitions) { @@ -2062,7 +2450,7 @@ getJasmineRequireObj().Env = function(j$) { var declarationError = null; try { - specDefinitions.call(suite); + specDefinitions.call(j$.deprecatingThisProxy(suite, self)); } catch (e) { declarationError = e; } @@ -2104,6 +2492,7 @@ getJasmineRequireObj().Env = function(j$) { beforeAndAfterFns: beforeAndAfterFns(suite), expectationFactory: expectationFactory, asyncExpectationFactory: specAsyncExpectationFactory, + deprecated: self.deprecated, resultCallback: specResultCallback, getSpecName: function(spec) { return getSpecName(spec, suite); @@ -2120,6 +2509,7 @@ getJasmineRequireObj().Env = function(j$) { timeout: timeout || 0 }, throwOnExpectationFailure: config.oneFailurePerSpec, + autoCleanClosures: config.autoCleanClosures, timer: new j$.Timer() }); return spec; @@ -2142,21 +2532,32 @@ getJasmineRequireObj().Env = function(j$) { } }; - this.it = function(description, fn, timeout) { + this.it_ = function(description, fn, timeout) { ensureIsNotNested('it'); // it() sometimes doesn't have a fn argument, so only check the type if // it's given. if (arguments.length > 1 && typeof fn !== 'undefined') { ensureIsFunctionOrAsync(fn, 'it'); } + + if (timeout) { + j$.util.validateTimeout(timeout); + } + var spec = specFactory(description, fn, currentDeclarationSuite, timeout); - if (currentDeclarationSuite.markedPending) { - spec.pend(); + if (currentDeclarationSuite.markedExcluding) { + spec.exclude(); } currentDeclarationSuite.addChild(spec); + return spec; }; + this.it = function(description, fn, timeout) { + var spec = this.it_(description, fn, timeout); + return j$.deprecatingSpecProxy(spec, this); + }; + this.xit = function(description, fn, timeout) { ensureIsNotNested('xit'); // xit(), like it(), doesn't always have a fn argument, so only check the @@ -2164,19 +2565,23 @@ getJasmineRequireObj().Env = function(j$) { if (arguments.length > 1 && typeof fn !== 'undefined') { ensureIsFunctionOrAsync(fn, 'xit'); } - var spec = this.it.apply(this, arguments); - spec.pend('Temporarily disabled with xit'); - return spec; + var spec = this.it_.apply(this, arguments); + spec.exclude('Temporarily disabled with xit'); + return j$.deprecatingSpecProxy(spec, this); }; this.fit = function(description, fn, timeout) { ensureIsNotNested('fit'); ensureIsFunctionOrAsync(fn, 'fit'); + + if (timeout) { + j$.util.validateTimeout(timeout); + } var spec = specFactory(description, fn, currentDeclarationSuite, timeout); currentDeclarationSuite.addChild(spec); focusedRunnables.push(spec.id); unfocusAncestor(); - return spec; + return j$.deprecatingSpecProxy(spec, this); }; /** @@ -2236,6 +2641,11 @@ getJasmineRequireObj().Env = function(j$) { this.beforeEach = function(beforeEachFunction, timeout) { ensureIsNotNested('beforeEach'); ensureIsFunctionOrAsync(beforeEachFunction, 'beforeEach'); + + if (timeout) { + j$.util.validateTimeout(timeout); + } + currentDeclarationSuite.beforeEach({ fn: beforeEachFunction, timeout: timeout || 0 @@ -2245,6 +2655,11 @@ getJasmineRequireObj().Env = function(j$) { this.beforeAll = function(beforeAllFunction, timeout) { ensureIsNotNested('beforeAll'); ensureIsFunctionOrAsync(beforeAllFunction, 'beforeAll'); + + if (timeout) { + j$.util.validateTimeout(timeout); + } + currentDeclarationSuite.beforeAll({ fn: beforeAllFunction, timeout: timeout || 0 @@ -2254,6 +2669,11 @@ getJasmineRequireObj().Env = function(j$) { this.afterEach = function(afterEachFunction, timeout) { ensureIsNotNested('afterEach'); ensureIsFunctionOrAsync(afterEachFunction, 'afterEach'); + + if (timeout) { + j$.util.validateTimeout(timeout); + } + afterEachFunction.isCleanup = true; currentDeclarationSuite.afterEach({ fn: afterEachFunction, @@ -2264,6 +2684,11 @@ getJasmineRequireObj().Env = function(j$) { this.afterAll = function(afterAllFunction, timeout) { ensureIsNotNested('afterAll'); ensureIsFunctionOrAsync(afterAllFunction, 'afterAll'); + + if (timeout) { + j$.util.validateTimeout(timeout); + } + currentDeclarationSuite.afterAll({ fn: afterAllFunction, timeout: timeout || 0 @@ -2524,7 +2949,7 @@ getJasmineRequireObj().ArrayContaining = function(j$) { if (!j$.isArray_(this.sample)) { throw new Error( 'You must provide an array to arrayContaining, not ' + - j$.pp(this.sample) + + j$.basicPrettyPrinter_(this.sample) + '.' ); } @@ -2565,7 +2990,7 @@ getJasmineRequireObj().ArrayWithExactContents = function(j$) { if (!j$.isArray_(this.sample)) { throw new Error( 'You must provide an array to arrayWithExactContents, not ' + - j$.pp(this.sample) + + j$.basicPrettyPrinter_(this.sample) + '.' ); } @@ -2634,7 +3059,8 @@ getJasmineRequireObj().MapContaining = function(j$) { function MapContaining(sample) { if (!j$.isMap(sample)) { throw new Error( - 'You must provide a map to `mapContaining`, not ' + j$.pp(sample) + 'You must provide a map to `mapContaining`, not ' + + j$.basicPrettyPrinter_(sample) ); } @@ -2785,7 +3211,8 @@ getJasmineRequireObj().SetContaining = function(j$) { function SetContaining(sample) { if (!j$.isSet(sample)) { throw new Error( - 'You must provide a set to `setContaining`, not ' + j$.pp(sample) + 'You must provide a set to `setContaining`, not ' + + j$.basicPrettyPrinter_(sample) ); } @@ -2823,6 +3250,31 @@ getJasmineRequireObj().SetContaining = function(j$) { return SetContaining; }; +getJasmineRequireObj().StringContaining = function(j$) { + function StringContaining(expected) { + if (!j$.isString_(expected)) { + throw new Error('Expected is not a String'); + } + + this.expected = expected; + } + + StringContaining.prototype.asymmetricMatch = function(other) { + if (!j$.isString_(other)) { + // Arrays, etc. don't match no matter what their indexOf returns. + return false; + } + + return other.indexOf(this.expected) !== -1; + }; + + StringContaining.prototype.jasmineToString = function() { + return ''; + }; + + return StringContaining; +}; + getJasmineRequireObj().StringMatching = function(j$) { function StringMatching(expected) { if (!j$.isString_(expected) && !j$.isA_('RegExp', expected)) { @@ -2910,34 +3362,49 @@ getJasmineRequireObj().asymmetricEqualityTesterArgCompatShim = function(j$) { matchersUtil, customEqualityTesters ) { - var self = Object.create(matchersUtil), - props, - i, - k; + var self = Object.create(matchersUtil); - copy(self, customEqualityTesters, 'length'); + copyAndDeprecate(self, customEqualityTesters, 'length'); for (i = 0; i < customEqualityTesters.length; i++) { - copy(self, customEqualityTesters, i); + copyAndDeprecate(self, customEqualityTesters, i); + } + + // Avoid copying array props if we've previously done so, + // to avoid triggering our own deprecation warnings. + if (!self.isAsymmetricEqualityTesterArgCompatShim_) { + copyAndDeprecateArrayMethods(self); } - var props = arrayProps(); + self.isAsymmetricEqualityTesterArgCompatShim_ = true; + return self; + } + + function copyAndDeprecateArrayMethods(dest) { + var props = arrayProps(), + i, + k; for (i = 0; i < props.length; i++) { k = props[i]; + // Skip length (dealt with above), and anything that collides with // MatchesUtil e.g. an Array.prototype.contains method added by user code - if (k !== 'length' && !self[k]) { - copy(self, Array.prototype, k); + if (k !== 'length' && !dest[k]) { + copyAndDeprecate(dest, Array.prototype, k); } } - - return self; } - function copy(dest, src, propName) { + function copyAndDeprecate(dest, src, propName) { Object.defineProperty(dest, propName, { get: function() { + j$.getEnv().deprecated( + 'The second argument to asymmetricMatch is now a ' + + 'MatchersUtil. Using it as an array of custom equality testers is ' + + 'deprecated and will stop working in a future release. ' + + 'See for details.' + ); return src[propName]; } }); @@ -3019,6 +3486,7 @@ getJasmineRequireObj().CallTracker = function(j$) { /** * Get the "this" object that was passed to a specific invocation of this spy. * @name Spy#calls#thisFor + * @since 3.8.0 * @function * @param {Integer} index The 0-based invocation index. * @return {Object?} @@ -3180,6 +3648,7 @@ getJasmineRequireObj().Clock = function() { /** * @class Clock + * @since 1.3.0 * @classdesc Jasmine's mock clock is used when testing time dependent code.
* _Note:_ Do not construct this directly. You can get the current clock with * {@link jasmine.clock}. @@ -3410,13 +3879,31 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) { var currentTime = 0; var delayedFnCount = 0; var deletedKeys = []; + var ticking = false; self.tick = function(millis, tickDate) { - millis = millis || 0; - var endTime = currentTime + millis; + if (ticking) { + j$.getEnv().deprecated( + 'The behavior of reentrant calls to jasmine.clock().tick() will ' + + 'change in a future version. Either modify the affected spec to ' + + 'not call tick() from within a setTimeout or setInterval handler, ' + + 'or be aware that it may behave differently in the future. See ' + + ' ' + + 'for details.' + ); + } + + ticking = true; + + try { + millis = millis || 0; + var endTime = currentTime + millis; - runScheduledFunctions(endTime, tickDate); - currentTime = endTime; + runScheduledFunctions(endTime, tickDate); + currentTime = endTime; + } finally { + ticking = false; + } }; self.scheduleFunction = function( @@ -3581,6 +4068,302 @@ getJasmineRequireObj().DelayedFunctionScheduler = function(j$) { return DelayedFunctionScheduler; }; +/* eslint-disable compat/compat */ +// TODO: Remove this in the next major release. +getJasmineRequireObj().deprecatingSpecProxy = function(j$) { + function isMember(target, prop) { + return ( + Object.keys(target).indexOf(prop) !== -1 || + Object.keys(j$.Spec.prototype).indexOf(prop) !== -1 + ); + } + + function isAllowedMember(prop) { + return prop === 'id' || prop === 'description' || prop === 'getFullName'; + } + + function msg(member) { + var memberName = member.toString().replace(/^Symbol\((.+)\)$/, '$1'); + return ( + 'Access to private Spec members (in this case `' + + memberName + + '`) is not supported and will break in ' + + 'a future release. See ' + + 'for correct usage.' + ); + } + + try { + new Proxy({}, {}); + } catch (e) { + // Environment does not support Poxy. + return function(spec) { + return spec; + }; + } + + function DeprecatingSpecProxyHandler(env) { + this._env = env; + } + + DeprecatingSpecProxyHandler.prototype.get = function(target, prop, receiver) { + this._maybeDeprecate(target, prop); + + if (prop === 'getFullName') { + // getFullName calls a private method. Re-bind 'this' to avoid a bogus + // deprecation warning. + return target.getFullName.bind(target); + } else { + return target[prop]; + } + }; + + DeprecatingSpecProxyHandler.prototype.set = function(target, prop, value) { + this._maybeDeprecate(target, prop); + return (target[prop] = value); + }; + + DeprecatingSpecProxyHandler.prototype._maybeDeprecate = function( + target, + prop + ) { + if (isMember(target, prop) && !isAllowedMember(prop)) { + this._env.deprecated(msg(prop)); + } + }; + + function deprecatingSpecProxy(spec, env) { + return new Proxy(spec, new DeprecatingSpecProxyHandler(env)); + } + + return deprecatingSpecProxy; +}; + +/* eslint-disable compat/compat */ +// TODO: Remove this in the next major release. +getJasmineRequireObj().deprecatingSuiteProxy = function(j$) { + var allowedMembers = [ + 'id', + 'children', + 'description', + 'parentSuite', + 'getFullName' + ]; + + function isMember(target, prop) { + return ( + Object.keys(target).indexOf(prop) !== -1 || + Object.keys(j$.Suite.prototype).indexOf(prop) !== -1 + ); + } + + function isAllowedMember(prop) { + return allowedMembers.indexOf(prop) !== -1; + } + + function msg(member) { + var memberName = member.toString().replace(/^Symbol\((.+)\)$/, '$1'); + return ( + 'Access to private Suite members (in this case `' + + memberName + + '`) is not supported and will break in ' + + 'a future release. See ' + + 'for correct usage.' + ); + } + try { + new Proxy({}, {}); + } catch (e) { + // Environment does not support Poxy. + return function(suite) { + return suite; + }; + } + + function DeprecatingSuiteProxyHandler(parentSuite, env) { + this._parentSuite = parentSuite; + this._env = env; + } + + DeprecatingSuiteProxyHandler.prototype.get = function( + target, + prop, + receiver + ) { + if (prop === 'children') { + if (!this._children) { + this._children = target.children.map( + this._proxyForChild.bind(this, receiver) + ); + } + + return this._children; + } else if (prop === 'parentSuite') { + return this._parentSuite; + } else { + this._maybeDeprecate(target, prop); + return target[prop]; + } + }; + + DeprecatingSuiteProxyHandler.prototype.set = function(target, prop, value) { + this._maybeDeprecate(target, prop); + return (target[prop] = value); + }; + + DeprecatingSuiteProxyHandler.prototype._maybeDeprecate = function( + target, + prop + ) { + if (isMember(target, prop) && !isAllowedMember(prop)) { + this._env.deprecated(msg(prop)); + } + }; + + DeprecatingSuiteProxyHandler.prototype._proxyForChild = function( + ownProxy, + child + ) { + if (child.children) { + return deprecatingSuiteProxy(child, ownProxy, this._env); + } else { + return j$.deprecatingSpecProxy(child, this._env); + } + }; + + function deprecatingSuiteProxy(suite, parentSuite, env) { + return new Proxy(suite, new DeprecatingSuiteProxyHandler(parentSuite, env)); + } + + return deprecatingSuiteProxy; +}; + +/* eslint-disable compat/compat */ +// TODO: Remove this in the next major release. +getJasmineRequireObj().deprecatingThisProxy = function(j$) { + var msg = + "Access to 'this' in describe functions (and in arrow functions " + + 'inside describe functions) is deprecated.'; + + try { + new Proxy({}, {}); + } catch (e) { + // Environment does not support Poxy. + return function(suite) { + return suite; + }; + } + + function DeprecatingThisProxyHandler(env) { + this._env = env; + } + + DeprecatingThisProxyHandler.prototype.get = function(target, prop, receiver) { + this._env.deprecated(msg); + return target[prop]; + }; + + DeprecatingThisProxyHandler.prototype.set = function(target, prop, value) { + this._env.deprecated(msg); + return (target[prop] = value); + }; + + return function(suite, env) { + return new Proxy(suite, new DeprecatingThisProxyHandler(env)); + }; +}; + +getJasmineRequireObj().Deprecator = function(j$) { + function Deprecator(topSuite) { + this.topSuite_ = topSuite; + this.verbose_ = false; + this.toSuppress_ = []; + } + + var verboseNote = + 'Note: This message will be shown only once. Set the verboseDeprecations ' + + 'config property to true to see every occurrence.'; + + Deprecator.prototype.verboseDeprecations = function(enabled) { + this.verbose_ = enabled; + }; + + // runnable is a spec or a suite. + // deprecation is a string or an Error. + // See Env#deprecated for a description of the options argument. + Deprecator.prototype.addDeprecationWarning = function( + runnable, + deprecation, + options + ) { + options = options || {}; + + if (!this.verbose_ && !j$.isError_(deprecation)) { + if (this.toSuppress_.indexOf(deprecation) !== -1) { + return; + } + this.toSuppress_.push(deprecation); + } + + this.log_(runnable, deprecation, options); + this.report_(runnable, deprecation, options); + }; + + Deprecator.prototype.log_ = function(runnable, deprecation, options) { + var context; + + if (j$.isError_(deprecation)) { + console.error(deprecation); + return; + } + + if (runnable === this.topSuite_ || options.ignoreRunnable) { + context = ''; + } else if (runnable.children) { + context = ' (in suite: ' + runnable.getFullName() + ')'; + } else { + context = ' (in spec: ' + runnable.getFullName() + ')'; + } + + if (!options.omitStackTrace) { + context += '\n' + this.stackTrace_(); + } + + if (!this.verbose_) { + context += '\n' + verboseNote; + } + + console.error('DEPRECATION: ' + deprecation + context); + }; + + Deprecator.prototype.stackTrace_ = function() { + var formatter = new j$.ExceptionFormatter(); + return formatter.stack(j$.util.errorWithStack()).replace(/^Error\n/m, ''); + }; + + Deprecator.prototype.report_ = function(runnable, deprecation, options) { + if (options.ignoreRunnable) { + runnable = this.topSuite_; + } + + if (j$.isError_(deprecation)) { + runnable.addDeprecationWarning(deprecation); + return; + } + + if (!this.verbose_) { + deprecation += '\n' + verboseNote; + } + + runnable.addDeprecationWarning({ + message: deprecation, + omitStackTrace: options.omitStackTrace || false + }); + }; + + return Deprecator; +}; + getJasmineRequireObj().errors = function() { function ExpectationFailed() {} @@ -3684,7 +4467,7 @@ getJasmineRequireObj().ExceptionFormatter = function(j$) { } if (!empty) { - return 'error properties: ' + j$.pp(result) + '\n'; + return 'error properties: ' + j$.basicPrettyPrinter_(result) + '\n'; } return ''; @@ -3822,6 +4605,7 @@ getJasmineRequireObj().Expectation = function(j$) { * Otherwise evaluate the matcher. * @member * @name async-matchers#already + * @since 3.8.0 * @type {async-matchers} * @example * await expectAsync(myPromise).already.toBeResolved(); @@ -4037,7 +4821,7 @@ getJasmineRequireObj().buildExpectationResult = function(j$) { var result = { matcherName: options.matcherName, message: message(), - stack: stack(), + stack: options.omitStackTrace ? '' : stack(), passed: options.passed }; @@ -4123,7 +4907,15 @@ getJasmineRequireObj().Expector = function(j$) { this.args.unshift(this.actual); - var matcher = matcherFactory(this.matchersUtil, this.customEqualityTesters); + // TODO: Remove support for passing customEqualityTesters in the next major release. + var matcher; + + if (matcherFactory.length >= 2) { + matcher = matcherFactory(this.matchersUtil, this.customEqualityTesters); + } else { + matcher = matcherFactory(this.matchersUtil); + } + var comparisonFunc = this.filters.selectComparisonFunc(matcher); return comparisonFunc || matcher.compare; }; @@ -4230,16 +5022,22 @@ getJasmineRequireObj().GlobalErrors = function(j$) { function taggedOnError(error) { var substituteMsg; - if (error) { + if (j$.isError_(error)) { error.jasmineMessage = jasmineMessage + ': ' + error; } else { - substituteMsg = jasmineMessage + ' with no error or message'; + if (error) { + substituteMsg = jasmineMessage + ': ' + error; + } else { + substituteMsg = jasmineMessage + ' with no error or message'; + } if (errorType === 'unhandledRejection') { substituteMsg += '\n' + '(Tip: to get a useful stack trace, use ' + - 'Promise.reject(new Error(...)) instead of Promise.reject().)'; + 'Promise.reject(new Error(...)) instead of Promise.reject(' + + (error ? '...' : '') + + ').)'; } error = new Error(substituteMsg); @@ -4802,8 +5600,6 @@ getJasmineRequireObj().DiffBuilder = function(j$) { }; getJasmineRequireObj().MatchersUtil = function(j$) { - // TODO: convert all uses of j$.pp to use the injected pp - /** * @class MatchersUtil * @classdesc Utilities for use in implementing matchers.
@@ -4834,10 +5630,19 @@ getJasmineRequireObj().MatchersUtil = function(j$) { * @since 2.0.0 * @param {*} haystack The collection to search * @param {*} needle The value to search for - * @param [customTesters] An array of custom equality testers + * @param [customTesters] An array of custom equality testers. Deprecated. + * As of 3.6 this parameter no longer needs to be passed. It will be removed in 4.0. * @returns {boolean} True if `needle` was found in `haystack` */ MatchersUtil.prototype.contains = function(haystack, needle, customTesters) { + if (customTesters) { + j$.getEnv().deprecated( + 'Passing custom equality testers ' + + 'to MatchersUtil#contains is deprecated. ' + + 'See for details.' + ); + } + if (j$.isSet(haystack)) { return haystack.has(needle); } @@ -4847,8 +5652,13 @@ getJasmineRequireObj().MatchersUtil = function(j$) { (!!haystack && !haystack.indexOf) ) { for (var i = 0; i < haystack.length; i++) { - if (this.equals(haystack[i], needle, customTesters)) { - return true; + try { + this.suppressDeprecation_ = true; + if (this.equals(haystack[i], needle, customTesters)) { + return true; + } + } finally { + this.suppressDeprecation_ = false; } } return false; @@ -4952,7 +5762,8 @@ getJasmineRequireObj().MatchersUtil = function(j$) { * @since 2.0.0 * @param {*} a The first value to compare * @param {*} b The second value to compare - * @param [customTesters] An array of custom equality testers + * @param [customTesters] An array of custom equality testers. Deprecated. + * As of 3.6 this parameter no longer needs to be passed. It will be removed in 4.0. * @returns {boolean} True if the values are equal */ MatchersUtil.prototype.equals = function( @@ -4966,6 +5777,22 @@ getJasmineRequireObj().MatchersUtil = function(j$) { if (isDiffBuilder(customTestersOrDiffBuilder)) { diffBuilder = customTestersOrDiffBuilder; } else { + if (customTestersOrDiffBuilder && !this.suppressDeprecation_) { + j$.getEnv().deprecated( + 'Passing custom equality testers ' + + 'to MatchersUtil#equals is deprecated. ' + + 'See for details.' + ); + } + + if (diffBuilderOrNothing) { + j$.getEnv().deprecated( + 'Diff builder should be passed ' + + 'as the third argument to MatchersUtil#equals, not the fourth. ' + + 'See for details.' + ); + } + customTesters = customTestersOrDiffBuilder; diffBuilder = diffBuilderOrNothing; } @@ -5462,9 +6289,33 @@ getJasmineRequireObj().MatchersUtil = function(j$) { /** * @interface AsymmetricEqualityTester * @classdesc An asymmetric equality tester is an object that can match multiple - * objects. Examples include jasmine.any() and jasmine.stringMatching(). - * User-defined asymmetric equality testers can also be defined and used in - * expectations. + * objects. Examples include jasmine.any() and jasmine.stringMatching(). Jasmine + * includes a number of built-in asymmetric equality testers, such as + * {@link jasmine.objectContaining}. User-defined asymmetric equality testers are + * also supported. + * + * Asymmetric equality testers work with any matcher, including user-defined + * custom matchers, that uses {@link MatchersUtil#equals} or + * {@link MatchersUtil#contains}. + * + * @example + * function numberDivisibleBy(divisor) { + * return { + * asymmetricMatch: function(n) { + * return typeof n === 'number' && n % divisor === 0; + * }, + * jasmineToString: function() { + * return ``; + * } + * }; + * } + * + * var actual = { + * n: 2, + * otherFields: "don't care" + * }; + * + * expect(actual).toEqual(jasmine.objectContaining({n: numberDivisibleBy(2)})); * @see custom_asymmetric_equality_testers * @since 2.0.0 */ @@ -7087,7 +7938,7 @@ getJasmineRequireObj().toThrowMatching = function(j$) { return toThrowMatching; }; -getJasmineRequireObj().MockDate = function() { +getJasmineRequireObj().MockDate = function(j$) { function MockDate(global) { var self = this; var currentTime = 0; @@ -7105,6 +7956,14 @@ getJasmineRequireObj().MockDate = function() { if (mockDate instanceof GlobalDate) { currentTime = mockDate.getTime(); } else { + if (!j$.util.isUndefined(mockDate)) { + j$.getEnv().deprecated( + 'The argument to jasmine.clock().mockDate(), if specified, ' + + 'should be a Date instance. Passing anything other than a Date ' + + 'will be treated as an error in a future release.' + ); + } + currentTime = new GlobalDate().getTime(); } @@ -7606,10 +8465,14 @@ getJasmineRequireObj().QueueRunner = function(j$) { StopExecutionError.prototype = new Error(); j$.StopExecutionError = StopExecutionError; - function once(fn) { + function once(fn, onTwice) { var called = false; return function(arg) { - if (!called) { + if (called) { + if (onTwice) { + onTwice(); + } + } else { called = true; // Direct call using single parameter, because cleanup/next does not need more fn(arg); @@ -7618,6 +8481,16 @@ getJasmineRequireObj().QueueRunner = function(j$) { }; } + function fallbackOnMultipleDone() { + console.error( + new Error( + "An asynchronous function called its 'done' " + + 'callback more than once, in a QueueRunner without a onMultipleDone ' + + 'handler.' + ) + ); + } + function emptyFn() {} function QueueRunner(attrs) { @@ -7632,6 +8505,7 @@ getJasmineRequireObj().QueueRunner = function(j$) { fn(); }; this.onException = attrs.onException || emptyFn; + this.onMultipleDone = attrs.onMultipleDone || fallbackOnMultipleDone; this.userContext = attrs.userContext || new j$.UserContext(); this.timeout = attrs.timeout || { setTimeout: setTimeout, @@ -7689,8 +8563,9 @@ getJasmineRequireObj().QueueRunner = function(j$) { var self = this, completedSynchronously = true, handleError = function handleError(error) { + // TODO probably shouldn't next() right away here. + // That makes debugging async failures much more confusing. onException(error); - next(error); }, cleanup = once(function cleanup() { if (timeoutId !== void 0) { @@ -7698,31 +8573,52 @@ getJasmineRequireObj().QueueRunner = function(j$) { } self.globalErrors.popListener(handleError); }), - next = once(function next(err) { - cleanup(); + next = once( + function next(err) { + cleanup(); - if (j$.isError_(err)) { - if (!(err instanceof StopExecutionError) && !err.jasmineMessage) { - self.fail(err); + if (j$.isError_(err)) { + if (!(err instanceof StopExecutionError) && !err.jasmineMessage) { + self.fail(err); + } + self.errored = errored = true; + } else if (typeof err !== 'undefined' && !self.errored) { + self.deprecated( + 'Any argument passed to a done callback will be treated as an ' + + 'error in a future release. Call the done callback without ' + + "arguments if you don't want to trigger a spec failure." + ); } - self.errored = errored = true; - } - function runNext() { - if (self.completeOnFirstError && errored) { - self.skipToCleanup(iterativeIndex); - } else { - self.run(iterativeIndex + 1); + function runNext() { + if (self.completeOnFirstError && errored) { + self.skipToCleanup(iterativeIndex); + } else { + self.run(iterativeIndex + 1); + } } - } - if (completedSynchronously) { - self.setTimeout(runNext); - } else { - runNext(); + if (completedSynchronously) { + self.setTimeout(runNext); + } else { + runNext(); + } + }, + function() { + try { + if (!timedOut) { + self.onMultipleDone(); + } + } catch (error) { + // Any error we catch here is probably due to a bug in Jasmine, + // and it's not likely to end up anywhere useful if we let it + // propagate. Log it so it can at least show up when debugging. + console.error(error); + } } - }), + ), errored = false, + timedOut = false, queueableFn = self.queueableFns[iterativeIndex], timeoutId, maybeThenable; @@ -7738,6 +8634,7 @@ getJasmineRequireObj().QueueRunner = function(j$) { if (queueableFn.timeout !== undefined) { var timeoutInterval = queueableFn.timeout || j$.DEFAULT_TIMEOUT_INTERVAL; timeoutId = self.setTimeout(function() { + timedOut = true; var error = new Error( 'Timeout - Async function did not complete within ' + timeoutInterval + @@ -7746,6 +8643,9 @@ getJasmineRequireObj().QueueRunner = function(j$) { ? '(custom timeout)' : '(set by jasmine.DEFAULT_TIMEOUT_INTERVAL)') ); + // TODO Need to decide what to do about a successful completion after a + // timeout. That should probably not be a deprecation, and maybe not + // an error in 4.0. (But a diagnostic of some sort might be helpful.) onException(error); next(); }, timeoutInterval); @@ -7756,7 +8656,10 @@ getJasmineRequireObj().QueueRunner = function(j$) { maybeThenable = queueableFn.fn.call(self.userContext); if (maybeThenable && j$.isFunction_(maybeThenable.then)) { - maybeThenable.then(next, onPromiseRejection); + maybeThenable.then( + wrapInPromiseResolutionHandler(next), + onPromiseRejection + ); completedSynchronously = false; return { completedSynchronously: false }; } @@ -7811,38 +8714,57 @@ getJasmineRequireObj().QueueRunner = function(j$) { this.clearStack(function() { self.globalErrors.popListener(self.handleFinalError); - self.onComplete(self.errored && new StopExecutionError()); + + if (self.errored) { + self.onComplete(new StopExecutionError()); + } else { + self.onComplete(); + } }); }; QueueRunner.prototype.diagnoseConflictingAsync_ = function(fn, retval) { + var msg; + if (retval && j$.isFunction_(retval.then)) { - // Issue a warning that matches the user's code + // Issue a warning that matches the user's code. + // Omit the stack trace because there's almost certainly no user code + // on the stack at this point. if (j$.isAsyncFunction_(fn)) { - this.deprecated( + msg = 'An asynchronous before/it/after ' + - 'function was defined with the async keyword but also took a ' + - 'done callback. This is not supported and will stop working in' + - ' the future. Either remove the done callback (recommended) or ' + - 'remove the async keyword.' - ); + 'function was defined with the async keyword but also took a ' + + 'done callback. This is not supported and will stop working in' + + ' the future. Either remove the done callback (recommended) or ' + + 'remove the async keyword.'; } else { - this.deprecated( + msg = 'An asynchronous before/it/after ' + - 'function took a done callback but also returned a promise. ' + - 'This is not supported and will stop working in the future. ' + - 'Either remove the done callback (recommended) or change the ' + - 'function to not return a promise.' - ); + 'function took a done callback but also returned a promise. ' + + 'This is not supported and will stop working in the future. ' + + 'Either remove the done callback (recommended) or change the ' + + 'function to not return a promise.'; } + + this.deprecated(msg, { omitStackTrace: true }); } }; + function wrapInPromiseResolutionHandler(fn) { + return function(maybeArg) { + if (j$.isError_(maybeArg)) { + fn(maybeArg); + } else { + fn(); + } + }; + } + return QueueRunner; }; getJasmineRequireObj().ReportDispatcher = function(j$) { - function ReportDispatcher(methods, queueRunnerFactory) { + function ReportDispatcher(methods, queueRunnerFactory, deprecated) { var dispatchedMethods = methods || []; for (var i = 0; i < dispatchedMethods.length; i++) { @@ -7886,7 +8808,18 @@ getJasmineRequireObj().ReportDispatcher = function(j$) { queueRunnerFactory({ queueableFns: fns, onComplete: onComplete, - isReporter: true + isReporter: true, + onMultipleDone: function() { + deprecated( + "An asynchronous reporter callback called its 'done' callback " + + 'more than once. This is a bug in the reporter callback in ' + + 'question. This will be treated as an error in a future ' + + 'version. See' + + ' ' + + 'for more information.', + { ignoreRunnable: true } + ); + } }); } @@ -8516,7 +9449,7 @@ getJasmineRequireObj().Spy = function(j$) { "Spy '" + strategyArgs.name + "' received a call with arguments " + - j$.pp(Array.prototype.slice.call(args)) + + j$.basicPrettyPrinter_(Array.prototype.slice.call(args)) + ' but all configured strategies specify other arguments.' ); } else { @@ -9233,9 +10166,17 @@ getJasmineRequireObj().Suite = function(j$) { /** * @interface Suite * @see Env#topSuite + * @since 2.0.0 */ function Suite(attrs) { this.env = attrs.env; + /** + * The unique ID of this suite. + * @name Suite#id + * @readonly + * @type {string} + * @since 2.0.0 + */ this.id = attrs.id; /** * The parent of this suite, or null if this is the top suite. @@ -9249,12 +10190,15 @@ getJasmineRequireObj().Suite = function(j$) { * @name Suite#description * @readonly * @type {string} + * @since 2.0.0 */ this.description = attrs.description; this.expectationFactory = attrs.expectationFactory; this.asyncExpectationFactory = attrs.asyncExpectationFactory; this.expectationResultFactory = attrs.expectationResultFactory; this.throwOnExpectationFailure = !!attrs.throwOnExpectationFailure; + this.autoCleanClosures = + attrs.autoCleanClosures === undefined ? true : !!attrs.autoCleanClosures; this.beforeFns = []; this.afterFns = []; @@ -9267,29 +10211,11 @@ getJasmineRequireObj().Suite = function(j$) { * The suite's children. * @name Suite#children * @type {Array.<(Spec|Suite)>} + * @since 2.0.0 */ this.children = []; - /** - * @typedef SuiteResult - * @property {Int} id - The unique id of this suite. - * @property {String} description - The description text passed to the {@link describe} that made this suite. - * @property {String} fullName - The full description including all ancestors of this suite. - * @property {Expectation[]} failedExpectations - The list of expectations that failed in an {@link afterAll} for this suite. - * @property {Expectation[]} deprecationWarnings - The list of deprecation warnings that occurred on this suite. - * @property {String} status - Once the suite has completed, this string represents the pass/fail status of this suite. - * @property {number} duration - The time in ms for Suite execution, including any before/afterAll, before/afterEach. - * @property {Object} properties - User-supplied properties, if any, that were set using {@link Env#setSuiteProperty} - */ - this.result = { - id: this.id, - description: this.description, - fullName: this.getFullName(), - failedExpectations: [], - deprecationWarnings: [], - duration: null, - properties: null - }; + this.reset(); } Suite.prototype.setSuiteProperty = function(key, value) { @@ -9310,6 +10236,7 @@ getJasmineRequireObj().Suite = function(j$) { * @name Suite#getFullName * @function * @returns {string} + * @since 2.0.0 */ Suite.prototype.getFullName = function() { var fullName = []; @@ -9325,10 +10252,22 @@ getJasmineRequireObj().Suite = function(j$) { return fullName.join(' '); }; + /* + * Mark the suite with "pending" status + */ Suite.prototype.pend = function() { this.markedPending = true; }; + /* + * Like {@link Suite#pend}, but pending state will survive {@link Spec#reset} + * Useful for fdescribe, xdescribe, where pending state should remain. + */ + Suite.prototype.exclude = function() { + this.pend(); + this.markedExcluding = true; + }; + Suite.prototype.beforeEach = function(fn) { this.beforeFns.unshift(fn); }; @@ -9360,10 +10299,40 @@ getJasmineRequireObj().Suite = function(j$) { } Suite.prototype.cleanupBeforeAfter = function() { - removeFns(this.beforeAllFns); - removeFns(this.afterAllFns); - removeFns(this.beforeFns); - removeFns(this.afterFns); + if (this.autoCleanClosures) { + removeFns(this.beforeAllFns); + removeFns(this.afterAllFns); + removeFns(this.beforeFns); + removeFns(this.afterFns); + } + }; + + Suite.prototype.reset = function() { + /** + * @typedef SuiteResult + * @property {Int} id - The unique id of this suite. + * @property {String} description - The description text passed to the {@link describe} that made this suite. + * @property {String} fullName - The full description including all ancestors of this suite. + * @property {Expectation[]} failedExpectations - The list of expectations that failed in an {@link afterAll} for this suite. + * @property {Expectation[]} deprecationWarnings - The list of deprecation warnings that occurred on this suite. + * @property {String} status - Once the suite has completed, this string represents the pass/fail status of this suite. + * @property {number} duration - The time in ms for Suite execution, including any before/afterAll, before/afterEach. + * @property {Object} properties - User-supplied properties, if any, that were set using {@link Env#setSuiteProperty} + * @since 2.0.0 + */ + this.result = { + id: this.id, + description: this.description, + fullName: this.getFullName(), + failedExpectations: [], + deprecationWarnings: [], + duration: null, + properties: null + }; + this.markedPending = this.markedExcluding; + this.children.forEach(function(child) { + child.reset(); + }); }; Suite.prototype.addChild = function(child) { @@ -9426,6 +10395,36 @@ getJasmineRequireObj().Suite = function(j$) { this.result.failedExpectations.push(failedExpectation); }; + Suite.prototype.onMultipleDone = function() { + var msg; + + // Issue a deprecation. Include the context ourselves and pass + // ignoreRunnable: true, since getting here always means that we've already + // moved on and the current runnable isn't the one that caused the problem. + if (this.parentSuite) { + msg = + "An asynchronous function called its 'done' callback more than " + + 'once. This is a bug in the spec, beforeAll, beforeEach, afterAll, ' + + 'or afterEach function in question. This will be treated as an error ' + + 'in a future version. See' + + ' ' + + 'for more information.\n' + + '(in suite: ' + + this.getFullName() + + ')'; + } else { + msg = + 'A top-level beforeAll or afterAll function called its ' + + "'done' callback more than once. This is a bug in the beforeAll " + + 'or afterAll function in question. This will be treated as an ' + + 'error in a future version. See' + + ' ' + + 'for more information.'; + } + + this.env.deprecated(msg, { ignoreRunnable: true }); + }; + Suite.prototype.addExpectationResult = function() { if (isFailure(arguments)) { var data = arguments[1]; @@ -9528,7 +10527,10 @@ getJasmineRequireObj().TreeProcessor = function() { onException: function() { tree.onException.apply(tree, arguments); }, - onComplete: done + onComplete: done, + onMultipleDone: tree.onMultipleDone + ? tree.onMultipleDone.bind(tree) + : null }); }; @@ -9700,7 +10702,10 @@ getJasmineRequireObj().TreeProcessor = function() { userContext: node.sharedUserContext(), onException: function() { node.onException.apply(node, arguments); - } + }, + onMultipleDone: node.onMultipleDone + ? node.onMultipleDone.bind(node) + : null }); } }; @@ -9757,5 +10762,5 @@ getJasmineRequireObj().UserContext = function(j$) { }; getJasmineRequireObj().version = function() { - return '3.8.0'; + return '3.99.1'; }; diff --git a/node_modules/jasmine-core/lib/jasmine-core/node_boot.js b/node_modules/jasmine-core/lib/jasmine-core/node_boot.js index 4016e3b..e0a8ace 100644 --- a/node_modules/jasmine-core/lib/jasmine-core/node_boot.js +++ b/node_modules/jasmine-core/lib/jasmine-core/node_boot.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2008-2021 Pivotal Labs +Copyright (c) 2008-2022 Pivotal Labs Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the diff --git a/node_modules/jasmine-core/package.json b/node_modules/jasmine-core/package.json index 354d5c6..009df2f 100644 --- a/node_modules/jasmine-core/package.json +++ b/node_modules/jasmine-core/package.json @@ -1,7 +1,7 @@ { "name": "jasmine-core", "license": "MIT", - "version": "3.8.0", + "version": "3.99.1", "repository": { "type": "git", "url": "https://github.com/jasmine/jasmine.git" @@ -37,7 +37,6 @@ "ejs": "^2.5.5", "eslint": "^6.8.0", "eslint-plugin-compat": "^3.8.0", - "fast-check": "^1.21.0", "fast-glob": "^2.2.6", "grunt": "^1.0.4", "grunt-cli": "^1.3.2", @@ -45,8 +44,8 @@ "grunt-contrib-concat": "^1.0.1", "grunt-css-url-embed": "^1.11.1", "grunt-sass": "^3.0.2", - "jasmine": "^3.4.0", - "jasmine-browser-runner": "github:jasmine/jasmine-browser#main", + "jasmine": "^3.10.0", + "jasmine-browser-runner": "^0.10.0", "jsdom": "^15.0.0", "load-grunt-tasks": "^4.0.0", "prettier": "1.17.1", diff --git a/node_modules/jasmine/bin/jasmine.js b/node_modules/jasmine/bin/jasmine.js index b754044..a0ecd61 100755 --- a/node_modules/jasmine/bin/jasmine.js +++ b/node_modules/jasmine/bin/jasmine.js @@ -1,11 +1,11 @@ #!/usr/bin/env node -var path = require('path'), - Command = require('../lib/command'), - Jasmine = require('../lib/jasmine'); +const path = require('path'); +const Command = require('../lib/command'); +const Jasmine = require('../lib/jasmine'); -var jasmine = new Jasmine({ projectBaseDir: path.resolve() }); -var examplesDir = path.join(path.dirname(require.resolve('jasmine-core')), 'jasmine-core', 'example', 'node_example'); -var command = new Command(path.resolve(), examplesDir, console.log); +const jasmine = new Jasmine({ projectBaseDir: path.resolve() }); +const examplesDir = path.join(path.dirname(require.resolve('jasmine-core')), 'jasmine-core', 'example', 'node_example'); +const command = new Command(path.resolve(), examplesDir, console.log); command.run(jasmine, process.argv.slice(2)); diff --git a/node_modules/jasmine/lib/command.js b/node_modules/jasmine/lib/command.js index 560cc39..bba2950 100644 --- a/node_modules/jasmine/lib/command.js +++ b/node_modules/jasmine/lib/command.js @@ -1,9 +1,9 @@ -var path = require('path'), - fs = require('fs'); +const path = require('path'); +const fs = require('fs'); exports = module.exports = Command; -var subCommands = { +const subCommands = { init: { description: 'initialize jasmine', action: initJasmine @@ -28,14 +28,14 @@ function Command(projectBaseDir, examplesDir, print) { this.projectBaseDir = projectBaseDir; this.specDir = path.join(projectBaseDir, 'spec'); - var command = this; + const command = this; this.run = function(jasmine, commands) { setEnvironmentVariables(commands); - var commandToRun; + let commandToRun; Object.keys(subCommands).forEach(function(cmd) { - var commandObject = subCommands[cmd]; + const commandObject = subCommands[cmd]; if (commands.indexOf(cmd) >= 0) { commandToRun = commandObject; } else if(commandObject.alias && commands.indexOf(commandObject.alias) >= 0) { @@ -46,7 +46,7 @@ function Command(projectBaseDir, examplesDir, print) { if (commandToRun) { commandToRun.action({jasmine: jasmine, projectBaseDir: command.projectBaseDir, specDir: command.specDir, examplesDir: examplesDir, print: print}); } else { - var env = parseOptions(commands); + const env = parseOptions(commands); if (env.unknownOptions.length > 0) { process.exitCode = 1; print('Unknown options: ' + env.unknownOptions.join(', ')); @@ -64,7 +64,7 @@ function isFileArg(arg) { } function parseOptions(argv) { - var files = [], + let files = [], helpers = [], requires = [], unknownOptions = [], @@ -77,8 +77,8 @@ function parseOptions(argv) { random, seed; - for (var i in argv) { - var arg = argv[i]; + for (let i in argv) { + const arg = argv[i]; if (arg === '--no-color') { color = false; } else if (arg === '--color') { @@ -126,7 +126,7 @@ function parseOptions(argv) { } function runJasmine(jasmine, env, print) { - var loadConfig = require('./loadConfig'); + const loadConfig = require('./loadConfig'); loadConfig(jasmine, env, print); jasmine.execute(env.files, env.filter) .catch(function(error) { @@ -136,8 +136,8 @@ function runJasmine(jasmine, env, print) { } function initJasmine(options) { - var print = options.print; - var specDir = options.specDir; + const print = options.print; + const specDir = options.specDir; makeDirStructure(path.join(specDir, 'support/')); if(!fs.existsSync(path.join(specDir, 'support/jasmine.json'))) { fs.writeFileSync(path.join(specDir, 'support/jasmine.json'), fs.readFileSync(path.join(__dirname, '../lib/examples/jasmine.json'), 'utf-8')); @@ -148,9 +148,9 @@ function initJasmine(options) { } function installExamples(options) { - var specDir = options.specDir; - var projectBaseDir = options.projectBaseDir; - var examplesDir = options.examplesDir; + const specDir = options.specDir; + const projectBaseDir = options.projectBaseDir; + const examplesDir = options.examplesDir; makeDirStructure(path.join(specDir, 'support')); makeDirStructure(path.join(specDir, 'jasmine_examples')); @@ -177,12 +177,12 @@ function installExamples(options) { } function help(options) { - var print = options.print; + const print = options.print; print('Usage: jasmine [command] [options] [files] [--]'); print(''); print('Commands:'); Object.keys(subCommands).forEach(function(cmd) { - var commandNameText = cmd; + let commandNameText = cmd; if(subCommands[cmd].alias) { commandNameText = commandNameText + ',' + subCommands[cmd].alias; } @@ -210,7 +210,7 @@ function help(options) { } function version(options) { - var print = options.print; + const print = options.print; print('jasmine v' + require('../package.json').version); print('jasmine-core v' + options.jasmine.coreVersion()); } @@ -224,7 +224,7 @@ function lPad(str, length) { } function copyFiles(srcDir, destDir, pattern) { - var srcDirFiles = fs.readdirSync(srcDir); + const srcDirFiles = fs.readdirSync(srcDir); srcDirFiles.forEach(function(file) { if (file.search(pattern) !== -1) { fs.writeFileSync(path.join(destDir, file), fs.readFileSync(path.join(srcDir, file))); @@ -233,10 +233,10 @@ function copyFiles(srcDir, destDir, pattern) { } function makeDirStructure(absolutePath) { - var splitPath = absolutePath.split(path.sep); + const splitPath = absolutePath.split(path.sep); splitPath.forEach(function(dir, index) { if(index > 1) { - var fullPath = path.join(splitPath.slice(0, index).join('/'), dir); + const fullPath = path.join(splitPath.slice(0, index).join('/'), dir); if (!fs.existsSync(fullPath)) { fs.mkdirSync(fullPath); } @@ -245,16 +245,16 @@ function makeDirStructure(absolutePath) { } function isEnvironmentVariable(command) { - var envRegExp = /(.*)=(.*)/; + const envRegExp = /(.*)=(.*)/; return command.match(envRegExp); } function setEnvironmentVariables(commands) { commands.forEach(function (command) { - var regExpMatch = isEnvironmentVariable(command); + const regExpMatch = isEnvironmentVariable(command); if(regExpMatch) { - var key = regExpMatch[1]; - var value = regExpMatch[2]; + const key = regExpMatch[1]; + const value = regExpMatch[2]; process.env[key] = value; } }); diff --git a/node_modules/jasmine/lib/examples/jasmine.json b/node_modules/jasmine/lib/examples/jasmine.json index 370fc44..4f0fdb3 100644 --- a/node_modules/jasmine/lib/examples/jasmine.json +++ b/node_modules/jasmine/lib/examples/jasmine.json @@ -1,10 +1,10 @@ { "spec_dir": "spec", "spec_files": [ - "**/*[sS]pec.js" + "**/*[sS]pec.?(m)js" ], "helpers": [ - "helpers/**/*.js" + "helpers/**/*.?(m)js" ], "stopSpecOnExpectationFailure": false, "random": true diff --git a/node_modules/jasmine/lib/filters/console_spec_filter.js b/node_modules/jasmine/lib/filters/console_spec_filter.js index 0b92ad9..1e78aaf 100644 --- a/node_modules/jasmine/lib/filters/console_spec_filter.js +++ b/node_modules/jasmine/lib/filters/console_spec_filter.js @@ -1,8 +1,8 @@ module.exports = exports = ConsoleSpecFilter; function ConsoleSpecFilter(options) { - var filterString = options && options.filterString; - var filterPattern = new RegExp(filterString); + const filterString = options && options.filterString; + const filterPattern = new RegExp(filterString); this.matches = function(specName) { return filterPattern.test(specName); diff --git a/node_modules/jasmine/lib/jasmine.js b/node_modules/jasmine/lib/jasmine.js index 9790cfa..978c3a2 100644 --- a/node_modules/jasmine/lib/jasmine.js +++ b/node_modules/jasmine/lib/jasmine.js @@ -1,9 +1,9 @@ -var path = require('path'), - util = require('util'), - glob = require('glob'), - Loader = require('./loader'), - CompletionReporter = require('./reporters/completion_reporter'), - ConsoleSpecFilter = require('./filters/console_spec_filter'); +const path = require('path'); +const util = require('util'); +const glob = require('glob'); +const Loader = require('./loader'); +const CompletionReporter = require('./reporters/completion_reporter'); +const ConsoleSpecFilter = require('./filters/console_spec_filter'); module.exports = Jasmine; module.exports.ConsoleReporter = require('./reporters/console_reporter'); @@ -33,7 +33,7 @@ module.exports.ConsoleReporter = require('./reporters/console_reporter'); function Jasmine(options) { options = options || {}; this.loader = options.loader || new Loader(); - var jasmineCore = options.jasmineCore || require('jasmine-core'); + const jasmineCore = options.jasmineCore || require('jasmine-core'); this.jasmineCorePath = path.join(jasmineCore.files.path, 'jasmine.js'); this.jasmine = jasmineCore.boot(jasmineCore); this.projectBaseDir = options.projectBaseDir || path.resolve(); @@ -41,6 +41,13 @@ function Jasmine(options) { this.specFiles = []; this.helperFiles = []; this.requires = []; + /** + * The Jasmine environment. + * @name Jasmine#env + * @readonly + * @see {@link https://jasmine.github.io/api/edge/Env.html|Env} + * @type {Env} + */ this.env = this.jasmine.getEnv({suppressLoadErrors: true}); this.reportersCount = 0; this.completionReporter = new CompletionReporter(); @@ -51,7 +58,7 @@ function Jasmine(options) { this.addReporter(this.reporter); this.defaultReporterConfigured = false; - var jasmineRunner = this; + const jasmineRunner = this; this.completionReporter.onComplete(function(passed) { jasmineRunner.exitCodeCompletion(passed); }); @@ -65,6 +72,17 @@ function Jasmine(options) { this.coreVersion = function() { return jasmineCore.version(); }; + + /** + * Whether to cause the Node process to exit when the suite finishes executing. + * + * _Note_: If {@link Jasmine#onComplete|onComplete} is called, Jasmine will not + * exit when the suite completes even if exitOnCompletion is set to true. + * @name Jasmine#exitOnCompletion + * @type {boolean} + * @default true + */ + this.exitOnCompletion = true; } /** @@ -107,6 +125,16 @@ Jasmine.prototype.addSpecFile = function(filePath) { this.specFiles.push(filePath); }; +/** + * Adds a helper file to the list that will be loaded when the suite is executed. + * @function + * @name Jasmine#addHelperFile + * @param {string} filePath The path to the file to be loaded. + */ +Jasmine.prototype.addHelperFile = function(filePath) { + this.helperFiles.push(filePath); +}; + /** * Add a custom reporter to the Jasmine environment. * @function @@ -140,8 +168,12 @@ Jasmine.prototype.provideFallbackReporter = function(reporter) { this.env.provideFallbackReporter(reporter); }; +/** + * Configures the default reporter that is installed if no other reporter is + * specified. + * @param {ConsoleReporterOptions} options + */ Jasmine.prototype.configureDefaultReporter = function(options) { - options.timer = options.timer || new this.jasmine.Timer(); options.print = options.print || function() { process.stdout.write(util.format.apply(this, arguments)); }; @@ -184,6 +216,12 @@ Jasmine.prototype.loadRequires = function() { // TODO: In 4.0, switch to calling _loadFiles // (requires making this function async) this.requires.forEach(function(r) { + if (r.startsWith('./') || r.startsWith("../")) { + console.warn('DEPRECATION: requires with relative paths (in this case ' + + `${r}) are currently resolved relative to the jasmine/lib/jasmine ` + + 'module but will be relative to the current working directory in ' + + 'Jasmine 4.0.'); + } require(r); }); }; @@ -196,8 +234,8 @@ Jasmine.prototype.loadRequires = function() { */ Jasmine.prototype.loadConfigFile = function(configFilePath) { try { - var absoluteConfigFilePath = path.resolve(this.projectBaseDir, configFilePath || 'spec/support/jasmine.json'); - var config = require(absoluteConfigFilePath); + const absoluteConfigFilePath = path.resolve(this.projectBaseDir, configFilePath || 'spec/support/jasmine.json'); + const config = require(absoluteConfigFilePath); this.loadConfig(config); } catch (e) { if(configFilePath || e.code != 'MODULE_NOT_FOUND') { throw e; } @@ -212,7 +250,7 @@ Jasmine.prototype.loadConfig = function(config) { /** * @interface Configuration */ - var configuration = {}; + const envConfig = {...config.env}; /** * The directory that spec files are contained in, relative to the project @@ -229,7 +267,7 @@ Jasmine.prototype.loadConfig = function(config) { * @default false */ if (config.failSpecWithNoExpectations !== undefined) { - configuration.failSpecWithNoExpectations = config.failSpecWithNoExpectations; + envConfig.failSpecWithNoExpectations = config.failSpecWithNoExpectations; } /** @@ -239,7 +277,7 @@ Jasmine.prototype.loadConfig = function(config) { * @default false */ if (config.stopSpecOnExpectationFailure !== undefined) { - configuration.oneFailurePerSpec = config.stopSpecOnExpectationFailure; + envConfig.stopSpecOnExpectationFailure = config.stopSpecOnExpectationFailure; } /** @@ -249,7 +287,7 @@ Jasmine.prototype.loadConfig = function(config) { * @default false */ if (config.stopOnSpecFailure !== undefined) { - configuration.failFast = config.stopOnSpecFailure; + envConfig.stopOnSpecFailure = config.stopOnSpecFailure; } /** @@ -259,7 +297,11 @@ Jasmine.prototype.loadConfig = function(config) { * @default true */ if (config.random !== undefined) { - configuration.random = config.random; + envConfig.random = config.random; + } + + if (config.verboseDeprecations !== undefined) { + envConfig.verboseDeprecations = config.verboseDeprecations; } @@ -282,8 +324,8 @@ Jasmine.prototype.loadConfig = function(config) { '"require", and undefined.'); } - if (Object.keys(configuration).length > 0) { - this.env.configure(configuration); + if (Object.keys(envConfig).length > 0) { + this.env.configure(envConfig); } /** @@ -294,7 +336,7 @@ Jasmine.prototype.loadConfig = function(config) { * @type string[] | undefined */ if(config.helpers) { - this.addHelperFiles(config.helpers); + this.addMatchingHelperFiles(config.helpers); } /** @@ -314,15 +356,64 @@ Jasmine.prototype.loadConfig = function(config) { * @type string[] | undefined */ if(config.spec_files) { - this.addSpecFiles(config.spec_files); + this.addMatchingSpecFiles(config.spec_files); } }; -Jasmine.prototype.addHelperFiles = addFiles('helperFiles'); -Jasmine.prototype.addSpecFiles = addFiles('specFiles'); +/** + * Adds files that match the specified patterns to the list of spec files. + * @function + * @name Jasmine#addMatchingSpecFiles + * @param {Array} patterns An array of spec file paths + * or {@link https://github.com/isaacs/node-glob#glob-primer|globs} that match + * spec files. Each path or glob will be evaluated relative to the spec directory. + */ +Jasmine.prototype.addMatchingSpecFiles = addFiles('specFiles'); +/** + * Adds files that match the specified patterns to the list of helper files. + * @function + * @name Jasmine#addMatchingHelperFiles + * @param {Array} patterns An array of helper file paths + * or {@link https://github.com/isaacs/node-glob#glob-primer|globs} that match + * helper files. Each path or glob will be evaluated relative to the spec directory. + */ +Jasmine.prototype.addMatchingHelperFiles = addFiles('helperFiles'); + + +// Deprecated synonyms for the above. These are confusingly named (addSpecFiles +// doesn't just do N of what addSpecFile does) but they've been around a long +// time and there might be quite a bit of code that uses them. + +/** + * Synonym for {@link Jasmine#addMatchingSpecFiles} + * @function + * @name Jasmine#addSpecFiles + * @deprecated Use {@link Jasmine#addMatchingSpecFiles|addMatchingSpecFiles}, + * {@link Jasmine#loadConfig|loadConfig}, or {@link Jasmine#loadConfigFile|loadConfigFile} + * instead. + */ +Jasmine.prototype.addSpecFiles = function(globs) { + this.env.deprecated('jasmine#addSpecFiles is deprecated. Use ' + + 'jasmine#addMatchingSpecFiles instead.'); + this.addMatchingSpecFiles(globs); +}; + +/** + * Synonym for {@link Jasmine#addMatchingHelperFiles} + * @name Jasmine#addHelperFiles + * @function + * @deprecated Use {@link Jasmine#addMatchingHelperFiles|addMatchingHelperFiles}, + * {@link Jasmine#loadConfig|loadConfig}, or {@link Jasmine#loadConfigFile|loadConfigFile} + * instead. + */ +Jasmine.prototype.addHelperFiles = function(globs) { + this.env.deprecated('jasmine#addHelperFiles is deprecated. Use ' + + 'jasmine#addMatchingHelperFiles instead.'); + this.addMatchingHelperFiles(globs); +}; Jasmine.prototype.addRequires = function(requires) { - var jasmineRunner = this; + const jasmineRunner = this; requires.forEach(function(r) { jasmineRunner.requires.push(r); }); @@ -330,11 +421,11 @@ Jasmine.prototype.addRequires = function(requires) { function addFiles(kind) { return function (files) { - var jasmineRunner = this; - var fileArr = this[kind]; + const jasmineRunner = this; + const fileArr = this[kind]; - var {includeFiles, excludeFiles} = files.reduce(function(ongoing, file) { - var hasNegation = file.startsWith('!'); + const {includeFiles, excludeFiles} = files.reduce(function(ongoing, file) { + const hasNegation = file.startsWith('!'); if (hasNegation) { file = file.substring(1); @@ -351,7 +442,7 @@ function addFiles(kind) { }, { includeFiles: [], excludeFiles: [] }); includeFiles.forEach(function(file) { - var filePaths = glob + const filePaths = glob .sync(file, { ignore: excludeFiles }) .filter(function(filePath) { // glob will always output '/' as a segment separator but the fileArr may use \ on windows @@ -371,11 +462,20 @@ function addFiles(kind) { * * _Note_: Only one callback can be registered. The callback will be called * after the suite has completed and the results have been finalized, but not - * necessarily before all of Jasmine's cleanup has finished. + * necessarily before all of Jasmine's cleanup has finished. Calling this + * function will also prevent Jasmine from exiting the Node process at the end + * of suite execution. * + * @deprecated Set {@link Jasmine#exitOnCompletion|exitOnCompletion} to false + * and use the promise returned from {@link Jasmine#execute|execute} instead. * @param {function} onCompleteCallback */ Jasmine.prototype.onComplete = function(onCompleteCallback) { + this.env.deprecated( + 'Jasmine#onComplete is deprecated. Instead of calling onComplete, set ' + + "the Jasmine instance's exitOnCompletion property to false and use the " + + 'promise returned from the execute method.' + ); this.completionReporter.onComplete(onCompleteCallback); }; @@ -387,7 +487,7 @@ Jasmine.prototype.onComplete = function(onCompleteCallback) { * failure */ Jasmine.prototype.stopSpecOnExpectationFailure = function(value) { - this.env.configure({oneFailurePerSpec: value}); + this.env.configure({stopSpecOnExpectationFailure: value}); }; /** @@ -398,19 +498,24 @@ Jasmine.prototype.stopSpecOnExpectationFailure = function(value) { * first spec failure */ Jasmine.prototype.stopOnSpecFailure = function(value) { - this.env.configure({failFast: value}); + this.env.configure({stopOnSpecFailure: value}); }; Jasmine.prototype.exitCodeCompletion = function(passed) { - var jasmineRunner = this; - var streams = [process.stdout, process.stderr]; - var writesToWait = streams.length; + // Ensure that all data has been written to stdout and stderr, + // then exit with an appropriate status code. Otherwise, we + // might exit before all previous writes have actually been + // written when Jasmine is piped to another process that isn't + // reading quickly enough. + const jasmineRunner = this; + const streams = [process.stdout, process.stderr]; + let writesToWait = streams.length; streams.forEach(function(stream) { stream.write('', null, exitIfAllStreamsCompleted); }); function exitIfAllStreamsCompleted() { writesToWait--; - if (writesToWait === 0) { + if (writesToWait === 0 && jasmineRunner.exitOnCompletion) { if(passed) { jasmineRunner.exit(0); } @@ -421,7 +526,7 @@ Jasmine.prototype.exitCodeCompletion = function(passed) { } }; -var checkExit = function(jasmineRunner) { +const checkExit = function(jasmineRunner) { return function() { if (!jasmineRunner.completionReporter.isComplete()) { process.exitCode = 4; @@ -442,11 +547,15 @@ function checkForJsFileImportSupport() { /** * Runs the test suite. + * + * _Note_: Set {@link Jasmine#exitOnCompletion|exitOnCompletion} to false if you + * intend to use the returned promise. Otherwise, the Node process will + * ordinarily exit before the promise is settled. * @param {Array.} [files] Spec files to run instead of the previously * configured set * @param {string} [filterString] Regex used to filter specs. If specified, only * specs with matching full names will be run. - * @return {Promise} Promise that is resolved when the suite completes. + * @return {Promise} Promise that is resolved when the suite completes. */ Jasmine.prototype.execute = async function(files, filterString) { this.completionReporter.exitHandler = this.checkExit; @@ -458,7 +567,7 @@ Jasmine.prototype.execute = async function(files, filterString) { } if (filterString) { - var specFilter = new ConsoleSpecFilter({ + const specFilter = new ConsoleSpecFilter({ filterString: filterString }); this.env.configure({specFilter: function(spec) { @@ -469,14 +578,22 @@ Jasmine.prototype.execute = async function(files, filterString) { if (files && files.length > 0) { this.specDir = ''; this.specFiles = []; - this.addSpecFiles(files); + this.addMatchingSpecFiles(files); } await this.loadSpecs(); - this.addReporter(this.completionReporter); - + if (!this.completionReporterInstalled_) { + this.addReporter(this.completionReporter); + this.completionReporterInstalled_ = true; + } + + let overallResult; + this.addReporter({ + jasmineDone: r => overallResult = r + }); await new Promise(resolve => { this.env.execute(null, resolve); }); + return overallResult; }; diff --git a/node_modules/jasmine/lib/loadConfig.js b/node_modules/jasmine/lib/loadConfig.js index b4393d2..78d32a3 100644 --- a/node_modules/jasmine/lib/loadConfig.js +++ b/node_modules/jasmine/lib/loadConfig.js @@ -20,8 +20,8 @@ module.exports = exports = function(jasmine, env, print) { } if (env.reporter !== undefined) { try { - var Report = require(env.reporter); - var reporter = new Report(); + const Report = require(env.reporter); + const reporter = new Report(); jasmine.clearReporters(); jasmine.addReporter(reporter); } catch(e) { @@ -31,4 +31,4 @@ module.exports = exports = function(jasmine, env, print) { } } jasmine.showColors(env.color); -}; \ No newline at end of file +}; diff --git a/node_modules/jasmine/lib/loader.js b/node_modules/jasmine/lib/loader.js index 816cb8a..4b8522d 100644 --- a/node_modules/jasmine/lib/loader.js +++ b/node_modules/jasmine/lib/loader.js @@ -12,16 +12,7 @@ Loader.prototype.load = function(path, alwaysImport) { // Node enforces this on Windows but not on other OSes. const url = `file://${path}`; return this.import_(url).catch(function(e) { - if (e.message.indexOf(path) !== -1 || e.stack.indexOf(path) !== -1) { - return Promise.reject(e); - } else { - // When an ES module has a syntax error, the resulting exception does not - // include the filename. Add it. We lose the stack trace in the process, - // but the stack trace is usually not useful since it contains only frames - // from the Node module loader. - const updatedError = new Error(`While loading ${path}: ${e.constructor.name}: ${e.message}`); - return Promise.reject(updatedError); - } + return Promise.reject(fixupImportException(e, path)); }); } else { return new Promise(resolve => { @@ -38,3 +29,97 @@ function requireShim(path) { function importShim(path) { return import(path); } + + +function fixupImportException(e, importedPath) { + // When an ES module has a syntax error, the resulting exception does not + // include the filename, which the user will need to debug the problem. We + // need to fix those up to include the filename. However, other kinds of load- + // time errors *do* include the filename and usually the line number. We need + // to leave those alone. + // + // Some examples of load-time errors that we need to deal with: + // 1. Syntax error in an ESM spec: + // SyntaxError: missing ) after argument list + // at Loader.moduleStrategy (node:internal/modules/esm/translators:147:18) + // at async link (node:internal/modules/esm/module_job:64:21) + // + // 2. Syntax error in an ES module imported from an ESM spec. This is exactly + // the same as #1: there is no way to tell which file actually has the syntax + // error. + // + // 3. Syntax error in a CommonJS module imported by an ES module: + // /path/to/commonjs_with_syntax_error.js:2 + // + // + // + // SyntaxError: Unexpected end of input + // at Object.compileFunction (node:vm:355:18) + // at wrapSafe (node:internal/modules/cjs/loader:1038:15) + // at Module._compile (node:internal/modules/cjs/loader:1072:27) + // at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10) + // at Module.load (node:internal/modules/cjs/loader:988:32) + // at Function.Module._load (node:internal/modules/cjs/loader:828:14) + // at ModuleWrap. (node:internal/modules/esm/translators:201:29) + // at ModuleJob.run (node:internal/modules/esm/module_job:175:25) + // at async Loader.import (node:internal/modules/esm/loader:178:24) + // at async file:///path/to/esm_that_imported_cjs.mjs:2:11 + // + // Note: For Jasmine's purposes, case 3 only occurs in Node >= 14.8. Older + // versions don't support top-level await, without which it's not possible to + // load a CommonJS module from an ES module at load-time. The entire content + // above, including the file path and the three blank lines, is part of the + // error's `stack` property. There may or may not be any stack trace after the + // SyntaxError line, and if there's a stack trace it may or may not contain + // any useful information. + // + // 4. Any other kind of exception thrown at load time + // + // Error: nope + // at Object. (/path/to/file_throwing_error.js:1:7) + // at Module._compile (node:internal/modules/cjs/loader:1108:14) + // at Object.Module._extensions..js (node:internal/modules/cjs/loader:1137:10) + // at Module.load (node:internal/modules/cjs/loader:988:32) + // at Function.Module._load (node:internal/modules/cjs/loader:828:14) + // at ModuleWrap. (node:internal/modules/esm/translators:201:29) + // at ModuleJob.run (node:internal/modules/esm/module_job:175:25) + // at async Loader.import (node:internal/modules/esm/loader:178:24) + // at async file:///path_to_file_importing_broken_file.mjs:1:1 + // + // We need to replace the error with a useful one in cases 1 and 2, but not in + // cases 3 and 4. Distinguishing among them can be tricky. Simple heuristics + // like checking the stack trace for the name of the file we imported fail + // because it often shows up even when the error was elsewhere, e.g. at the + // bottom of the stack traces in the examples for cases 3 and 4 above. To add + // to the fun, file paths in errors on Windows can be either Windows style + // paths (c:\path\to\file.js) or URLs (file:///c:/path/to/file.js). + + if (!(e instanceof SyntaxError)) { + return e; + } + + const escapedWin = escapeStringForRegexp(importedPath.replace(/\//g, '\\')); + const windowsPathRegex = new RegExp('[a-zA-z]:\\\\([^\\s]+\\\\|)' + escapedWin); + const windowsUrlRegex = new RegExp('file:///[a-zA-z]:\\\\([^\\s]+\\\\|)' + escapedWin); + const anyUnixPathFirstLineRegex = /^\/[^\s:]+:\d/; + const anyWindowsPathFirstLineRegex = /^[a-zA-Z]:(\\[^\s\\:]+)+:/; + + if (e.message.indexOf(importedPath) !== -1 + || e.stack.indexOf(importedPath) !== -1 + || e.stack.match(windowsPathRegex) || e.stack.match(windowsUrlRegex) + || e.stack.match(anyUnixPathFirstLineRegex) + || e.stack.match(anyWindowsPathFirstLineRegex)) { + return e; + } else { + return new Error(`While loading ${importedPath}: ${e.constructor.name}: ${e.message}`); + } +} + +// Adapted from Sindre Sorhus's escape-string-regexp (MIT license) +function escapeStringForRegexp(string) { + // Escape characters with special meaning either inside or outside character sets. + // Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. + return string + .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') + .replace(/-/g, '\\x2d'); +} diff --git a/node_modules/jasmine/lib/reporters/completion_reporter.js b/node_modules/jasmine/lib/reporters/completion_reporter.js index ff10982..e1fdee0 100644 --- a/node_modules/jasmine/lib/reporters/completion_reporter.js +++ b/node_modules/jasmine/lib/reporters/completion_reporter.js @@ -1,6 +1,6 @@ module.exports = function() { - var onCompleteCallback = function() {}; - var completed = false; + let onCompleteCallback = function() {}; + let completed = false; this.onComplete = function(callback) { onCompleteCallback = callback; diff --git a/node_modules/jasmine/lib/reporters/console_reporter.js b/node_modules/jasmine/lib/reporters/console_reporter.js index defcfee..069ad25 100644 --- a/node_modules/jasmine/lib/reporters/console_reporter.js +++ b/node_modules/jasmine/lib/reporters/console_reporter.js @@ -10,7 +10,7 @@ module.exports = exports = ConsoleReporter; * const reporter = new ConsoleReporter(); */ function ConsoleReporter() { - var print = function() {}, + let print = function() {}, showColors = false, jasmineCorePath = null, specCount, @@ -58,7 +58,7 @@ function ConsoleReporter() { * A function that takes a random seed and returns the command to reproduce * that seed. Use this to customize the output when using ConsoleReporter * in a different command line tool. - * @name ConsoleReporterOptions#showColors + * @name ConsoleReporterOptions#randomSeedReproductionCmd * @type Function|undefined */ if (options.randomSeedReproductionCmd) { @@ -81,19 +81,19 @@ function ConsoleReporter() { this.jasmineDone = function(result) { printNewline(); printNewline(); - if(failedSpecs.length > 0) { + if (failedSpecs.length > 0) { print('Failures:'); } - for (var i = 0; i < failedSpecs.length; i++) { + for (let i = 0; i < failedSpecs.length; i++) { specFailureDetails(failedSpecs[i], i + 1); } - for(i = 0; i < failedSuites.length; i++) { + for(let i = 0; i < failedSuites.length; i++) { suiteFailureDetails(failedSuites[i]); } if (result && result.failedExpectations && result.failedExpectations.length > 0) { - suiteFailureDetails(result); + suiteFailureDetails({ fullName: 'top suite', ...result }); } if (pendingSpecs.length > 0) { @@ -110,7 +110,7 @@ function ConsoleReporter() { print('Ran ' + executableSpecCount + ' of ' + specCount + plural(' spec', specCount)); printNewline(); } - var specCounts = executableSpecCount + ' ' + plural('spec', executableSpecCount) + ', ' + + let specCounts = executableSpecCount + ' ' + plural('spec', executableSpecCount) + ', ' + failureCount + ' ' + plural('failure', failureCount); if (pendingSpecs.length) { @@ -123,7 +123,7 @@ function ConsoleReporter() { } printNewline(); - var seconds = result ? result.totalTime / 1000 : 0; + const seconds = result ? result.totalTime / 1000 : 0; print('Finished in ' + seconds + ' ' + plural('second', seconds)); printNewline(); @@ -189,17 +189,17 @@ function ConsoleReporter() { } function repeat(thing, times) { - var arr = []; - for (var i = 0; i < times; i++) { + const arr = []; + for (let i = 0; i < times; i++) { arr.push(thing); } return arr; } function indent(str, spaces) { - var lines = (str || '').split('\n'); - var newArr = []; - for (var i = 0; i < lines.length; i++) { + const lines = (str || '').split('\n'); + const newArr = []; + for (let i = 0; i < lines.length; i++) { newArr.push(repeat(' ', spaces).join('') + lines[i]); } return newArr.join('\n'); @@ -210,7 +210,7 @@ function ConsoleReporter() { return ''; } - var filteredStack = stack.split('\n').filter(function(stackLine) { + const filteredStack = stack.split('\n').filter(function(stackLine) { return stackLine.indexOf(jasmineCorePath) === -1; }).join('\n'); return filteredStack; @@ -221,6 +221,17 @@ function ConsoleReporter() { print(failedSpecNumber + ') '); print(result.fullName); printFailedExpectations(result); + + if (result.trace) { + printNewline(); + print(indent('Trace:', 2)); + printNewline(); + + for (const entry of result.trace) { + print(indent(`${entry.timestamp}ms: ${entry.message}`, 4)); + printNewline(); + } + } } function suiteFailureDetails(result) { @@ -230,8 +241,8 @@ function ConsoleReporter() { } function printFailedExpectations(result) { - for (var i = 0; i < result.failedExpectations.length; i++) { - var failedExpectation = result.failedExpectations[i]; + for (let i = 0; i < result.failedExpectations.length; i++) { + const failedExpectation = result.failedExpectations[i]; printNewline(); print(indent('Message:', 2)); printNewline(); @@ -266,7 +277,7 @@ function ConsoleReporter() { print(pendingSpecNumber + ') '); print(result.fullName); printNewline(); - var pendingReason = "No reason given"; + let pendingReason = "No reason given"; if (result.pendingReason && result.pendingReason !== '') { pendingReason = result.pendingReason; } diff --git a/node_modules/jasmine/package.json b/node_modules/jasmine/package.json index 971cf90..908d897 100644 --- a/node_modules/jasmine/package.json +++ b/node_modules/jasmine/package.json @@ -10,7 +10,7 @@ "bdd" ], "license": "MIT", - "version": "3.8.0", + "version": "3.99.0", "repository": { "type": "git", "url": "https://github.com/jasmine/jasmine-npm" @@ -28,7 +28,7 @@ ], "dependencies": { "glob": "^7.1.6", - "jasmine-core": "~3.8.0" + "jasmine-core": "~3.99.0" }, "bin": "./bin/jasmine.js", "main": "./lib/jasmine.js", diff --git a/node_modules/lz-string/package.json b/node_modules/lz-string/package.json index 6f3dac0..502462b 100644 --- a/node_modules/lz-string/package.json +++ b/node_modules/lz-string/package.json @@ -1,69 +1,41 @@ { - "_from": "lz-string@^1.4.4", - "_id": "lz-string@1.4.4", - "_inBundle": false, - "_integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", - "_location": "/lz-string", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "lz-string@^1.4.4", - "name": "lz-string", - "escapedName": "lz-string", - "rawSpec": "^1.4.4", - "saveSpec": null, - "fetchSpec": "^1.4.4" - }, - "_requiredBy": [ - "/@testing-library/dom" - ], - "_resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", - "_shasum": "c0d8eaf36059f705796e1e344811cf4c498d3a26", - "_spec": "lz-string@^1.4.4", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/@testing-library/dom", - "author": { - "name": "pieroxy", - "email": "pieroxy@pieroxy.net" - }, - "autoupdate": { - "source": "git", - "target": "git://github.com/pieroxy/lz-string.git", - "basePath": "libs/", - "files": [ - "lz-string.js", - "lz-string.min.js", - "base64-string.js" - ] - }, - "bin": { - "lz-string": "bin/bin.js" - }, - "bugs": { - "url": "https://github.com/pieroxy/lz-string/issues" - }, - "bundleDependencies": false, - "dependencies": {}, - "deprecated": false, - "description": "LZ-based compression algorithm", - "devDependencies": {}, - "directories": { - "test": "tests" - }, + "name": "lz-string", + "version": "1.4.4", + "license": "WTFPL", "filename": "lz-string.js", + "description": "LZ-based compression algorithm", "homepage": "http://pieroxy.net/blog/pages/lz-string/index.html", "keywords": [ "lz", "compression", "string" ], - "license": "WTFPL", "main": "libs/lz-string.js", - "name": "lz-string", + "bin": { + "lz-string": "bin/bin.js" + }, + "scripts": {}, + "dependencies": {}, + "devDependencies": {}, "repository": { "type": "git", - "url": "git+https://github.com/pieroxy/lz-string.git" + "url": "https://github.com/pieroxy/lz-string.git" }, - "scripts": {}, - "version": "1.4.4" + "bugs": { + "url": "https://github.com/pieroxy/lz-string/issues" + }, + "directories": { + "test": "tests" + }, + "author": "pieroxy ", + "autoupdate": { + "source": "git", + "target": "git://github.com/pieroxy/lz-string.git", + "basePath": "libs/", + "files": [ + "lz-string.js", + "lz-string.min.js", + "base64-string.js" + ] + } } diff --git a/node_modules/minimatch/README.md b/node_modules/minimatch/README.md index ad72b81..33ede1d 100644 --- a/node_modules/minimatch/README.md +++ b/node_modules/minimatch/README.md @@ -2,7 +2,7 @@ A minimal matching utility. -[![Build Status](https://secure.travis-ci.org/isaacs/minimatch.svg)](http://travis-ci.org/isaacs/minimatch) +[![Build Status](https://travis-ci.org/isaacs/minimatch.svg?branch=master)](http://travis-ci.org/isaacs/minimatch) This is the matching library used internally by npm. @@ -171,6 +171,27 @@ Suppress the behavior of treating a leading `!` character as negation. Returns from negate expressions the same as if they were not negated. (Ie, true on a hit, false on a miss.) +### partial + +Compare a partial path to a pattern. As long as the parts of the path that +are present are not contradicted by the pattern, it will be treated as a +match. This is useful in applications where you're walking through a +folder structure, and don't yet have the full path, but want to ensure that +you do not walk down paths that can never be a match. + +For example, + +```js +minimatch('/a/b', '/a/*/c/d', { partial: true }) // true, might be /a/b/c/d +minimatch('/a/b', '/**/d', { partial: true }) // true, might be /a/b/.../d +minimatch('/x/y/z', '/a/**/z', { partial: true }) // false, because x !== a +``` + +### allowWindowsEscape + +Windows path separator `\` is by default converted to `/`, which +prohibits the usage of `\` as a escape character. This flag skips that +behavior and allows using the escape character. ## Comparisons to other fnmatch/glob implementations diff --git a/node_modules/minimatch/minimatch.js b/node_modules/minimatch/minimatch.js index 5b5f8cf..fda45ad 100644 --- a/node_modules/minimatch/minimatch.js +++ b/node_modules/minimatch/minimatch.js @@ -1,10 +1,10 @@ module.exports = minimatch minimatch.Minimatch = Minimatch -var path = { sep: '/' } -try { - path = require('path') -} catch (er) {} +var path = (function () { try { return require('path') } catch (e) {}}()) || { + sep: '/' +} +minimatch.sep = path.sep var GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {} var expand = require('brace-expansion') @@ -56,43 +56,64 @@ function filter (pattern, options) { } function ext (a, b) { - a = a || {} b = b || {} var t = {} - Object.keys(b).forEach(function (k) { - t[k] = b[k] - }) Object.keys(a).forEach(function (k) { t[k] = a[k] }) + Object.keys(b).forEach(function (k) { + t[k] = b[k] + }) return t } minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return minimatch + if (!def || typeof def !== 'object' || !Object.keys(def).length) { + return minimatch + } var orig = minimatch var m = function minimatch (p, pattern, options) { - return orig.minimatch(p, pattern, ext(def, options)) + return orig(p, pattern, ext(def, options)) } m.Minimatch = function Minimatch (pattern, options) { return new orig.Minimatch(pattern, ext(def, options)) } + m.Minimatch.defaults = function defaults (options) { + return orig.defaults(ext(def, options)).Minimatch + } + + m.filter = function filter (pattern, options) { + return orig.filter(pattern, ext(def, options)) + } + + m.defaults = function defaults (options) { + return orig.defaults(ext(def, options)) + } + + m.makeRe = function makeRe (pattern, options) { + return orig.makeRe(pattern, ext(def, options)) + } + + m.braceExpand = function braceExpand (pattern, options) { + return orig.braceExpand(pattern, ext(def, options)) + } + + m.match = function (list, pattern, options) { + return orig.match(list, pattern, ext(def, options)) + } return m } Minimatch.defaults = function (def) { - if (!def || !Object.keys(def).length) return Minimatch return minimatch.defaults(def).Minimatch } function minimatch (p, pattern, options) { - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + assertValidPattern(pattern) if (!options) options = {} @@ -101,9 +122,6 @@ function minimatch (p, pattern, options) { return false } - // "" only matches "" - if (pattern.trim() === '') return p === '' - return new Minimatch(pattern, options).match(p) } @@ -112,15 +130,14 @@ function Minimatch (pattern, options) { return new Minimatch(pattern, options) } - if (typeof pattern !== 'string') { - throw new TypeError('glob pattern string required') - } + assertValidPattern(pattern) if (!options) options = {} + pattern = pattern.trim() // windows support: need to use /, not \ - if (path.sep !== '/') { + if (!options.allowWindowsEscape && path.sep !== '/') { pattern = pattern.split(path.sep).join('/') } @@ -131,6 +148,7 @@ function Minimatch (pattern, options) { this.negate = false this.comment = false this.empty = false + this.partial = !!options.partial // make the set of regexps etc. this.make() @@ -140,9 +158,6 @@ Minimatch.prototype.debug = function () {} Minimatch.prototype.make = make function make () { - // don't do it more than once. - if (this._made) return - var pattern = this.pattern var options = this.options @@ -162,7 +177,7 @@ function make () { // step 2: expand braces var set = this.globSet = this.braceExpand() - if (options.debug) this.debug = console.error + if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) } this.debug(this.pattern, set) @@ -242,12 +257,11 @@ function braceExpand (pattern, options) { pattern = typeof pattern === 'undefined' ? this.pattern : pattern - if (typeof pattern === 'undefined') { - throw new TypeError('undefined pattern') - } + assertValidPattern(pattern) - if (options.nobrace || - !pattern.match(/\{.*\}/)) { + // Thanks to Yeting Li for + // improving this regexp to avoid a ReDOS vulnerability. + if (options.nobrace || !/\{(?:(?!\{).)*\}/.test(pattern)) { // shortcut. no need to expand. return [pattern] } @@ -255,6 +269,17 @@ function braceExpand (pattern, options) { return expand(pattern) } +var MAX_PATTERN_LENGTH = 1024 * 64 +var assertValidPattern = function (pattern) { + if (typeof pattern !== 'string') { + throw new TypeError('invalid pattern') + } + + if (pattern.length > MAX_PATTERN_LENGTH) { + throw new TypeError('pattern is too long') + } +} + // parse a component of the expanded set. // At this point, no pattern may contain "/" in it // so we're going to return a 2d array, where each entry is the full @@ -269,14 +294,17 @@ function braceExpand (pattern, options) { Minimatch.prototype.parse = parse var SUBPARSE = {} function parse (pattern, isSub) { - if (pattern.length > 1024 * 64) { - throw new TypeError('pattern is too long') - } + assertValidPattern(pattern) var options = this.options // shortcuts - if (!options.noglobstar && pattern === '**') return GLOBSTAR + if (pattern === '**') { + if (!options.noglobstar) + return GLOBSTAR + else + pattern = '*' + } if (pattern === '') return '' var re = '' @@ -332,10 +360,12 @@ function parse (pattern, isSub) { } switch (c) { - case '/': + /* istanbul ignore next */ + case '/': { // completely not allowed, even escaped. // Should already be path-split by now. return false + } case '\\': clearStateChar() @@ -454,25 +484,23 @@ function parse (pattern, isSub) { // handle the case where we left a class open. // "[z-a]" is valid, equivalent to "\[z-a\]" - if (inClass) { - // split where the last [ was, make sure we don't have - // an invalid re. if so, re-walk the contents of the - // would-be class to re-translate any characters that - // were passed through as-is - // TODO: It would probably be faster to determine this - // without a try/catch and a new RegExp, but it's tricky - // to do safely. For now, this is safe and works. - var cs = pattern.substring(classStart + 1, i) - try { - RegExp('[' + cs + ']') - } catch (er) { - // not a valid class! - var sp = this.parse(cs, SUBPARSE) - re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' - hasMagic = hasMagic || sp[1] - inClass = false - continue - } + // split where the last [ was, make sure we don't have + // an invalid re. if so, re-walk the contents of the + // would-be class to re-translate any characters that + // were passed through as-is + // TODO: It would probably be faster to determine this + // without a try/catch and a new RegExp, but it's tricky + // to do safely. For now, this is safe and works. + var cs = pattern.substring(classStart + 1, i) + try { + RegExp('[' + cs + ']') + } catch (er) { + // not a valid class! + var sp = this.parse(cs, SUBPARSE) + re = re.substr(0, reClassStart) + '\\[' + sp[0] + '\\]' + hasMagic = hasMagic || sp[1] + inClass = false + continue } // finish up the class. @@ -556,9 +584,7 @@ function parse (pattern, isSub) { // something that could conceivably capture a dot var addPatternStart = false switch (re.charAt(0)) { - case '.': - case '[': - case '(': addPatternStart = true + case '[': case '.': case '(': addPatternStart = true } // Hack to work around lack of negative lookbehind in JS @@ -620,7 +646,7 @@ function parse (pattern, isSub) { var flags = options.nocase ? 'i' : '' try { var regExp = new RegExp('^' + re + '$', flags) - } catch (er) { + } catch (er) /* istanbul ignore next - should be impossible */ { // If it was an invalid regular expression, then it can't match // anything. This trick looks for a character after the end of // the string, which is of course impossible, except in multi-line @@ -678,7 +704,7 @@ function makeRe () { try { this.regexp = new RegExp(re, flags) - } catch (ex) { + } catch (ex) /* istanbul ignore next - should be impossible */ { this.regexp = false } return this.regexp @@ -696,8 +722,8 @@ minimatch.match = function (list, pattern, options) { return list } -Minimatch.prototype.match = match -function match (f, partial) { +Minimatch.prototype.match = function match (f, partial) { + if (typeof partial === 'undefined') partial = this.partial this.debug('match', f, this.pattern) // short-circuit in the case of busted things. // comments, etc. @@ -779,6 +805,7 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) { // should be impossible. // some invalid regexp stuff in the set. + /* istanbul ignore if */ if (p === false) return false if (p === GLOBSTAR) { @@ -852,6 +879,7 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) { // no match was found. // However, in partial mode, we can't say this is necessarily over. // If there's more *pattern* left, then + /* istanbul ignore if */ if (partial) { // ran out of file this.debug('\n>>> no match, partial?', file, fr, pattern, pr) @@ -865,11 +893,7 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) { // patterns with magic have been turned into regexps. var hit if (typeof p === 'string') { - if (options.nocase) { - hit = f.toLowerCase() === p.toLowerCase() - } else { - hit = f === p - } + hit = f === p this.debug('string match', p, f, hit) } else { hit = f.match(p) @@ -900,16 +924,16 @@ Minimatch.prototype.matchOne = function (file, pattern, partial) { // this is ok if we're doing the match as part of // a glob fs traversal. return partial - } else if (pi === pl) { + } else /* istanbul ignore else */ if (pi === pl) { // ran out of pattern, still have file left. // this is only acceptable if we're on the very last // empty segment of a file with a trailing slash. // a/* should match a/b/ - var emptyFileEnd = (fi === fl - 1) && (file[fi] === '') - return emptyFileEnd + return (fi === fl - 1) && (file[fi] === '') } // should be unreachable. + /* istanbul ignore next */ throw new Error('wtf?') } diff --git a/node_modules/minimatch/package.json b/node_modules/minimatch/package.json index c4514c8..566efdf 100644 --- a/node_modules/minimatch/package.json +++ b/node_modules/minimatch/package.json @@ -2,14 +2,17 @@ "author": "Isaac Z. Schlueter (http://blog.izs.me)", "name": "minimatch", "description": "a glob matcher in javascript", - "version": "3.0.4", + "version": "3.1.2", + "publishConfig": { + "tag": "v3-legacy" + }, "repository": { "type": "git", "url": "git://github.com/isaacs/minimatch.git" }, "main": "minimatch.js", "scripts": { - "test": "tap test/*.js --cov", + "test": "tap", "preversion": "npm test", "postversion": "npm publish", "postpublish": "git push origin --all; git push origin --tags" @@ -21,7 +24,7 @@ "brace-expansion": "^1.1.7" }, "devDependencies": { - "tap": "^10.3.2" + "tap": "^15.1.6" }, "license": "ISC", "files": [ diff --git a/node_modules/minimist/.eslintrc b/node_modules/minimist/.eslintrc new file mode 100644 index 0000000..bd1a5e0 --- /dev/null +++ b/node_modules/minimist/.eslintrc @@ -0,0 +1,29 @@ +{ + "root": true, + + "extends": "@ljharb/eslint-config/node/0.4", + + "rules": { + "array-element-newline": 0, + "complexity": 0, + "func-style": [2, "declaration"], + "max-lines-per-function": 0, + "max-nested-callbacks": 1, + "max-statements-per-line": 1, + "max-statements": 0, + "multiline-comment-style": 0, + "no-continue": 1, + "no-param-reassign": 1, + "no-restricted-syntax": 1, + "object-curly-newline": 0, + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "camelcase": 0, + }, + }, + ] +} diff --git a/node_modules/minimist/.github/FUNDING.yml b/node_modules/minimist/.github/FUNDING.yml new file mode 100644 index 0000000..a936622 --- /dev/null +++ b/node_modules/minimist/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/minimist +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/minimist/.nycrc b/node_modules/minimist/.nycrc new file mode 100644 index 0000000..55c3d29 --- /dev/null +++ b/node_modules/minimist/.nycrc @@ -0,0 +1,14 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "example", + "test" + ] +} diff --git a/node_modules/minimist/.travis.yml b/node_modules/minimist/.travis.yml deleted file mode 100644 index 74c57bf..0000000 --- a/node_modules/minimist/.travis.yml +++ /dev/null @@ -1,8 +0,0 @@ -language: node_js -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" -before_install: - - npm install -g npm@~1.4.6 diff --git a/node_modules/minimist/CHANGELOG.md b/node_modules/minimist/CHANGELOG.md new file mode 100644 index 0000000..c9a1e15 --- /dev/null +++ b/node_modules/minimist/CHANGELOG.md @@ -0,0 +1,298 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.2.8](https://github.com/minimistjs/minimist/compare/v1.2.7...v1.2.8) - 2023-02-09 + +### Merged + +- [Fix] Fix long option followed by single dash [`#17`](https://github.com/minimistjs/minimist/pull/17) +- [Tests] Remove duplicate test [`#12`](https://github.com/minimistjs/minimist/pull/12) +- [Fix] opt.string works with multiple aliases [`#10`](https://github.com/minimistjs/minimist/pull/10) + +### Fixed + +- [Fix] Fix long option followed by single dash (#17) [`#15`](https://github.com/minimistjs/minimist/issues/15) +- [Tests] Remove duplicate test (#12) [`#8`](https://github.com/minimistjs/minimist/issues/8) +- [Fix] Fix long option followed by single dash [`#15`](https://github.com/minimistjs/minimist/issues/15) +- [Fix] opt.string works with multiple aliases (#10) [`#9`](https://github.com/minimistjs/minimist/issues/9) +- [Fix] Fix handling of short option with non-trivial equals [`#5`](https://github.com/minimistjs/minimist/issues/5) +- [Tests] Remove duplicate test [`#8`](https://github.com/minimistjs/minimist/issues/8) +- [Fix] opt.string works with multiple aliases [`#9`](https://github.com/minimistjs/minimist/issues/9) + +### Commits + +- Merge tag 'v0.2.3' [`a026794`](https://github.com/minimistjs/minimist/commit/a0267947c7870fc5847cf2d437fbe33f392767da) +- [eslint] fix indentation and whitespace [`5368ca4`](https://github.com/minimistjs/minimist/commit/5368ca4147e974138a54cc0dc4cea8f756546b70) +- [eslint] fix indentation and whitespace [`e5f5067`](https://github.com/minimistjs/minimist/commit/e5f5067259ceeaf0b098d14bec910f87e58708c7) +- [eslint] more cleanup [`62fde7d`](https://github.com/minimistjs/minimist/commit/62fde7d935f83417fb046741531a9e2346a36976) +- [eslint] more cleanup [`36ac5d0`](https://github.com/minimistjs/minimist/commit/36ac5d0d95e4947d074e5737d94814034ca335d1) +- [meta] add `auto-changelog` [`73923d2`](https://github.com/minimistjs/minimist/commit/73923d223553fca08b1ba77e3fbc2a492862ae4c) +- [actions] add reusable workflows [`d80727d`](https://github.com/minimistjs/minimist/commit/d80727df77bfa9e631044d7f16368d8f09242c91) +- [eslint] add eslint; rules to enable later are warnings [`48bc06a`](https://github.com/minimistjs/minimist/commit/48bc06a1b41f00e9cdf183db34f7a51ba70e98d4) +- [eslint] fix indentation [`34b0f1c`](https://github.com/minimistjs/minimist/commit/34b0f1ccaa45183c3c4f06a91f9b405180a6f982) +- [readme] rename and add badges [`5df0fe4`](https://github.com/minimistjs/minimist/commit/5df0fe49211bd09a3636f8686a7cb3012c3e98f0) +- [Dev Deps] switch from `covert` to `nyc` [`a48b128`](https://github.com/minimistjs/minimist/commit/a48b128fdb8d427dfb20a15273f83e38d97bef07) +- [Dev Deps] update `covert`, `tape`; remove unnecessary `tap` [`f0fb958`](https://github.com/minimistjs/minimist/commit/f0fb958e9a1fe980cdffc436a211b0bda58f621b) +- [meta] create FUNDING.yml; add `funding` in package.json [`3639e0c`](https://github.com/minimistjs/minimist/commit/3639e0c819359a366387e425ab6eabf4c78d3caa) +- [meta] use `npmignore` to autogenerate an npmignore file [`be2e038`](https://github.com/minimistjs/minimist/commit/be2e038c342d8333b32f0fde67a0026b79c8150e) +- Only apps should have lockfiles [`282b570`](https://github.com/minimistjs/minimist/commit/282b570e7489d01b03f2d6d3dabf79cd3e5f84cf) +- isConstructorOrProto adapted from PR [`ef9153f`](https://github.com/minimistjs/minimist/commit/ef9153fc52b6cea0744b2239921c5dcae4697f11) +- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`098873c`](https://github.com/minimistjs/minimist/commit/098873c213cdb7c92e55ae1ef5aa1af3a8192a79) +- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`3124ed3`](https://github.com/minimistjs/minimist/commit/3124ed3e46306301ebb3c834874ce0241555c2c4) +- [meta] add `safe-publish-latest` [`4b927de`](https://github.com/minimistjs/minimist/commit/4b927de696d561c636b4f43bf49d4597cb36d6d6) +- [Tests] add `aud` in `posttest` [`b32d9bd`](https://github.com/minimistjs/minimist/commit/b32d9bd0ab340f4e9f8c3a97ff2a4424f25fab8c) +- [meta] update repo URLs [`f9fdfc0`](https://github.com/minimistjs/minimist/commit/f9fdfc032c54884d9a9996a390c63cd0719bbe1a) +- [actions] Avoid 0.6 tests due to build failures [`ba92fe6`](https://github.com/minimistjs/minimist/commit/ba92fe6ebbdc0431cca9a2ea8f27beb492f5e4ec) +- [Dev Deps] update `tape` [`950eaa7`](https://github.com/minimistjs/minimist/commit/950eaa74f112e04d23e9c606c67472c46739b473) +- [Dev Deps] add missing `npmignore` dev dep [`3226afa`](https://github.com/minimistjs/minimist/commit/3226afaf09e9d127ca369742437fe6e88f752d6b) +- Merge tag 'v0.2.2' [`980d7ac`](https://github.com/minimistjs/minimist/commit/980d7ac61a0b4bd552711251ac107d506b23e41f) + +## [v1.2.7](https://github.com/minimistjs/minimist/compare/v1.2.6...v1.2.7) - 2022-10-10 + +### Commits + +- [meta] add `auto-changelog` [`0ebf4eb`](https://github.com/minimistjs/minimist/commit/0ebf4ebcd5f7787a5524d31a849ef41316b83c3c) +- [actions] add reusable workflows [`e115b63`](https://github.com/minimistjs/minimist/commit/e115b63fa9d3909f33b00a2db647ff79068388de) +- [eslint] add eslint; rules to enable later are warnings [`f58745b`](https://github.com/minimistjs/minimist/commit/f58745b9bb84348e1be72af7dbba5840c7c13013) +- [Dev Deps] switch from `covert` to `nyc` [`ab03356`](https://github.com/minimistjs/minimist/commit/ab033567b9c8b31117cb026dc7f1e592ce455c65) +- [readme] rename and add badges [`236f4a0`](https://github.com/minimistjs/minimist/commit/236f4a07e4ebe5ee44f1496ec6974991ab293ffd) +- [meta] create FUNDING.yml; add `funding` in package.json [`783a49b`](https://github.com/minimistjs/minimist/commit/783a49bfd47e8335d3098a8cac75662cf71eb32a) +- [meta] use `npmignore` to autogenerate an npmignore file [`f81ece6`](https://github.com/minimistjs/minimist/commit/f81ece6aaec2fa14e69ff4f1e0407a8c4e2635a2) +- Only apps should have lockfiles [`56cad44`](https://github.com/minimistjs/minimist/commit/56cad44c7f879b9bb5ec18fcc349308024a89bfc) +- [Dev Deps] update `covert`, `tape`; remove unnecessary `tap` [`49c5f9f`](https://github.com/minimistjs/minimist/commit/49c5f9fb7e6a92db9eb340cc679de92fb3aacded) +- [Tests] add `aud` in `posttest` [`228ae93`](https://github.com/minimistjs/minimist/commit/228ae938f3cd9db9dfd8bd7458b076a7b2aef280) +- [meta] add `safe-publish-latest` [`01fc23f`](https://github.com/minimistjs/minimist/commit/01fc23f5104f85c75059972e01dd33796ab529ff) +- [meta] update repo URLs [`6b164c7`](https://github.com/minimistjs/minimist/commit/6b164c7d68e0b6bf32f894699effdfb7c63041dd) + +## [v1.2.6](https://github.com/minimistjs/minimist/compare/v1.2.5...v1.2.6) - 2022-03-21 + +### Commits + +- test from prototype pollution PR [`bc8ecee`](https://github.com/minimistjs/minimist/commit/bc8ecee43875261f4f17eb20b1243d3ed15e70eb) +- isConstructorOrProto adapted from PR [`c2b9819`](https://github.com/minimistjs/minimist/commit/c2b981977fa834b223b408cfb860f933c9811e4d) +- security notice for additional prototype pollution issue [`ef88b93`](https://github.com/minimistjs/minimist/commit/ef88b9325f77b5ee643ccfc97e2ebda577e4c4e2) + +## [v1.2.5](https://github.com/minimistjs/minimist/compare/v1.2.4...v1.2.5) - 2020-03-12 + +## [v1.2.4](https://github.com/minimistjs/minimist/compare/v1.2.3...v1.2.4) - 2020-03-11 + +### Commits + +- security notice [`4cf1354`](https://github.com/minimistjs/minimist/commit/4cf1354839cb972e38496d35e12f806eea92c11f) +- additional test for constructor prototype pollution [`1043d21`](https://github.com/minimistjs/minimist/commit/1043d212c3caaf871966e710f52cfdf02f9eea4b) + +## [v1.2.3](https://github.com/minimistjs/minimist/compare/v1.2.2...v1.2.3) - 2020-03-10 + +### Commits + +- more failing proto pollution tests [`13c01a5`](https://github.com/minimistjs/minimist/commit/13c01a5327736903704984b7f65616b8476850cc) +- even more aggressive checks for protocol pollution [`38a4d1c`](https://github.com/minimistjs/minimist/commit/38a4d1caead72ef99e824bb420a2528eec03d9ab) + +## [v1.2.2](https://github.com/minimistjs/minimist/compare/v1.2.1...v1.2.2) - 2020-03-10 + +### Commits + +- failing test for protocol pollution [`0efed03`](https://github.com/minimistjs/minimist/commit/0efed0340ec8433638758f7ca0c77cb20a0bfbab) +- cleanup [`67d3722`](https://github.com/minimistjs/minimist/commit/67d3722413448d00a62963d2d30c34656a92d7e2) +- console.dir -> console.log [`47acf72`](https://github.com/minimistjs/minimist/commit/47acf72c715a630bf9ea013867f47f1dd69dfc54) +- don't assign onto __proto__ [`63e7ed0`](https://github.com/minimistjs/minimist/commit/63e7ed05aa4b1889ec2f3b196426db4500cbda94) + +## [v1.2.1](https://github.com/minimistjs/minimist/compare/v1.2.0...v1.2.1) - 2020-03-10 + +### Merged + +- move the `opts['--']` example back where it belongs [`#63`](https://github.com/minimistjs/minimist/pull/63) + +### Commits + +- add test [`6be5dae`](https://github.com/minimistjs/minimist/commit/6be5dae35a32a987bcf4137fcd6c19c5200ee909) +- fix bad boolean regexp [`ac3fc79`](https://github.com/minimistjs/minimist/commit/ac3fc796e63b95128fdbdf67ea7fad71bd59aa76) + +## [v1.2.0](https://github.com/minimistjs/minimist/compare/v1.1.3...v1.2.0) - 2015-08-24 + +### Commits + +- failing -k=v short test [`63416b8`](https://github.com/minimistjs/minimist/commit/63416b8cd1d0d70e4714564cce465a36e4dd26d7) +- kv short fix [`6bbe145`](https://github.com/minimistjs/minimist/commit/6bbe14529166245e86424f220a2321442fe88dc3) +- failing kv short test [`f72ab7f`](https://github.com/minimistjs/minimist/commit/f72ab7f4572adc52902c9b6873cc969192f01b10) +- fixed kv test [`f5a48c3`](https://github.com/minimistjs/minimist/commit/f5a48c3e50e40ca54f00c8e84de4b4d6e9897fa8) +- enforce space between arg key and value [`86b321a`](https://github.com/minimistjs/minimist/commit/86b321affe648a8e016c095a4f0efa9d9074f502) + +## [v1.1.3](https://github.com/minimistjs/minimist/compare/v1.1.2...v1.1.3) - 2015-08-06 + +### Commits + +- add failing test - boolean alias array [`0fa3c5b`](https://github.com/minimistjs/minimist/commit/0fa3c5b3dd98551ddecf5392831b4c21211743fc) +- fix boolean values with multiple aliases [`9c0a6e7`](https://github.com/minimistjs/minimist/commit/9c0a6e7de25a273b11bbf9a7464f0bd833779795) + +## [v1.1.2](https://github.com/minimistjs/minimist/compare/v1.1.1...v1.1.2) - 2015-07-22 + +### Commits + +- Convert boolean arguments to boolean values [`8f3dc27`](https://github.com/minimistjs/minimist/commit/8f3dc27cf833f1d54671b6d0bcb55c2fe19672a9) +- use non-ancient npm, node 0.12 and iojs [`61ed1d0`](https://github.com/minimistjs/minimist/commit/61ed1d034b9ec7282764ce76f3992b1a0b4906ae) +- an older npm for 0.8 [`25cf778`](https://github.com/minimistjs/minimist/commit/25cf778b1220e7838a526832ad6972f75244054f) + +## [v1.1.1](https://github.com/minimistjs/minimist/compare/v1.1.0...v1.1.1) - 2015-03-10 + +### Commits + +- check that they type of a value is a boolean, not just that it is currently set to a boolean [`6863198`](https://github.com/minimistjs/minimist/commit/6863198e36139830ff1f20ffdceaddd93f2c1db9) +- upgrade tape, fix type issues from old tape version [`806712d`](https://github.com/minimistjs/minimist/commit/806712df91604ed02b8e39aa372b84aea659ee34) +- test for setting a boolean to a null default [`8c444fe`](https://github.com/minimistjs/minimist/commit/8c444fe89384ded7d441c120915ea60620b01dd3) +- if the previous value was a boolean, without an default (or with an alias) don't make an array either [`e5f419a`](https://github.com/minimistjs/minimist/commit/e5f419a3b5b3bc3f9e5ac71b7040621af70ed2dd) + +## [v1.1.0](https://github.com/minimistjs/minimist/compare/v1.0.0...v1.1.0) - 2014-08-10 + +### Commits + +- add support for handling "unknown" options not registered with the parser. [`6f3cc5d`](https://github.com/minimistjs/minimist/commit/6f3cc5d4e84524932a6ef2ce3592acc67cdd4383) +- reformat package.json [`02ed371`](https://github.com/minimistjs/minimist/commit/02ed37115194d3697ff358e8e25e5e66bab1d9f8) +- coverage script [`e5531ba`](https://github.com/minimistjs/minimist/commit/e5531ba0479da3b8138d3d8cac545d84ccb1c8df) +- extra fn to get 100% coverage again [`a6972da`](https://github.com/minimistjs/minimist/commit/a6972da89e56bf77642f8ec05a13b6558db93498) + +## [v1.0.0](https://github.com/minimistjs/minimist/compare/v0.2.3...v1.0.0) - 2014-08-10 + +### Commits + +- added stopEarly option [`471c7e4`](https://github.com/minimistjs/minimist/commit/471c7e4a7e910fc7ad8f9df850a186daf32c64e9) +- fix list [`fef6ae7`](https://github.com/minimistjs/minimist/commit/fef6ae79c38b9dc1c49569abb7cd04eb965eac5e) + +## [v0.2.3](https://github.com/minimistjs/minimist/compare/v0.2.2...v0.2.3) - 2023-02-09 + +### Merged + +- [Fix] Fix long option followed by single dash [`#17`](https://github.com/minimistjs/minimist/pull/17) +- [Tests] Remove duplicate test [`#12`](https://github.com/minimistjs/minimist/pull/12) +- [Fix] opt.string works with multiple aliases [`#10`](https://github.com/minimistjs/minimist/pull/10) + +### Fixed + +- [Fix] Fix long option followed by single dash (#17) [`#15`](https://github.com/minimistjs/minimist/issues/15) +- [Tests] Remove duplicate test (#12) [`#8`](https://github.com/minimistjs/minimist/issues/8) +- [Fix] opt.string works with multiple aliases (#10) [`#9`](https://github.com/minimistjs/minimist/issues/9) + +### Commits + +- [eslint] fix indentation and whitespace [`e5f5067`](https://github.com/minimistjs/minimist/commit/e5f5067259ceeaf0b098d14bec910f87e58708c7) +- [eslint] more cleanup [`36ac5d0`](https://github.com/minimistjs/minimist/commit/36ac5d0d95e4947d074e5737d94814034ca335d1) +- [eslint] fix indentation [`34b0f1c`](https://github.com/minimistjs/minimist/commit/34b0f1ccaa45183c3c4f06a91f9b405180a6f982) +- isConstructorOrProto adapted from PR [`ef9153f`](https://github.com/minimistjs/minimist/commit/ef9153fc52b6cea0744b2239921c5dcae4697f11) +- [Dev Deps] update `@ljharb/eslint-config`, `aud` [`098873c`](https://github.com/minimistjs/minimist/commit/098873c213cdb7c92e55ae1ef5aa1af3a8192a79) +- [Dev Deps] add missing `npmignore` dev dep [`3226afa`](https://github.com/minimistjs/minimist/commit/3226afaf09e9d127ca369742437fe6e88f752d6b) + +## [v0.2.2](https://github.com/minimistjs/minimist/compare/v0.2.1...v0.2.2) - 2022-10-10 + +### Commits + +- [meta] add `auto-changelog` [`73923d2`](https://github.com/minimistjs/minimist/commit/73923d223553fca08b1ba77e3fbc2a492862ae4c) +- [actions] add reusable workflows [`d80727d`](https://github.com/minimistjs/minimist/commit/d80727df77bfa9e631044d7f16368d8f09242c91) +- [eslint] add eslint; rules to enable later are warnings [`48bc06a`](https://github.com/minimistjs/minimist/commit/48bc06a1b41f00e9cdf183db34f7a51ba70e98d4) +- [readme] rename and add badges [`5df0fe4`](https://github.com/minimistjs/minimist/commit/5df0fe49211bd09a3636f8686a7cb3012c3e98f0) +- [Dev Deps] switch from `covert` to `nyc` [`a48b128`](https://github.com/minimistjs/minimist/commit/a48b128fdb8d427dfb20a15273f83e38d97bef07) +- [Dev Deps] update `covert`, `tape`; remove unnecessary `tap` [`f0fb958`](https://github.com/minimistjs/minimist/commit/f0fb958e9a1fe980cdffc436a211b0bda58f621b) +- [meta] create FUNDING.yml; add `funding` in package.json [`3639e0c`](https://github.com/minimistjs/minimist/commit/3639e0c819359a366387e425ab6eabf4c78d3caa) +- [meta] use `npmignore` to autogenerate an npmignore file [`be2e038`](https://github.com/minimistjs/minimist/commit/be2e038c342d8333b32f0fde67a0026b79c8150e) +- Only apps should have lockfiles [`282b570`](https://github.com/minimistjs/minimist/commit/282b570e7489d01b03f2d6d3dabf79cd3e5f84cf) +- [meta] add `safe-publish-latest` [`4b927de`](https://github.com/minimistjs/minimist/commit/4b927de696d561c636b4f43bf49d4597cb36d6d6) +- [Tests] add `aud` in `posttest` [`b32d9bd`](https://github.com/minimistjs/minimist/commit/b32d9bd0ab340f4e9f8c3a97ff2a4424f25fab8c) +- [meta] update repo URLs [`f9fdfc0`](https://github.com/minimistjs/minimist/commit/f9fdfc032c54884d9a9996a390c63cd0719bbe1a) + +## [v0.2.1](https://github.com/minimistjs/minimist/compare/v0.2.0...v0.2.1) - 2020-03-12 + +## [v0.2.0](https://github.com/minimistjs/minimist/compare/v0.1.0...v0.2.0) - 2014-06-19 + +### Commits + +- support all-boolean mode [`450a97f`](https://github.com/minimistjs/minimist/commit/450a97f6e2bc85c7a4a13185c19a818d9a5ebe69) + +## [v0.1.0](https://github.com/minimistjs/minimist/compare/v0.0.10...v0.1.0) - 2014-05-12 + +### Commits + +- Provide a mechanism to segregate -- arguments [`ce4a1e6`](https://github.com/minimistjs/minimist/commit/ce4a1e63a7e8d5ab88d2a3768adefa6af98a445a) +- documented argv['--'] [`14db0e6`](https://github.com/minimistjs/minimist/commit/14db0e6dbc6d2b9e472adaa54dad7004b364634f) +- Adding a test-case for notFlags segregation [`715c1e3`](https://github.com/minimistjs/minimist/commit/715c1e3714be223f998f6c537af6b505f0236c16) + +## [v0.0.10](https://github.com/minimistjs/minimist/compare/v0.0.9...v0.0.10) - 2014-05-11 + +### Commits + +- dedicated boolean test [`46e448f`](https://github.com/minimistjs/minimist/commit/46e448f9f513cfeb2bcc8b688b9b47ba1e515c2b) +- dedicated num test [`9bf2d36`](https://github.com/minimistjs/minimist/commit/9bf2d36f1d3b8795be90b8f7de0a937f098aa394) +- aliased values treated as strings [`1ab743b`](https://github.com/minimistjs/minimist/commit/1ab743bad4484d69f1259bed42f9531de01119de) +- cover the case of already numbers, at 100% coverage [`b2bb044`](https://github.com/minimistjs/minimist/commit/b2bb04436599d77a2ce029e8e555e25b3aa55d13) +- another test for higher coverage [`3662624`](https://github.com/minimistjs/minimist/commit/3662624be976d5489d486a856849c048d13be903) + +## [v0.0.9](https://github.com/minimistjs/minimist/compare/v0.0.8...v0.0.9) - 2014-05-08 + +### Commits + +- Eliminate `longest` fn. [`824f642`](https://github.com/minimistjs/minimist/commit/824f642038d1b02ede68b6261d1d65163390929a) + +## [v0.0.8](https://github.com/minimistjs/minimist/compare/v0.0.7...v0.0.8) - 2014-02-20 + +### Commits + +- return '' if flag is string and empty [`fa63ed4`](https://github.com/minimistjs/minimist/commit/fa63ed4651a4ef4eefddce34188e0d98d745a263) +- handle joined single letters [`66c248f`](https://github.com/minimistjs/minimist/commit/66c248f0241d4d421d193b022e9e365f11178534) + +## [v0.0.7](https://github.com/minimistjs/minimist/compare/v0.0.6...v0.0.7) - 2014-02-08 + +### Commits + +- another swap of .test for .match [`d1da408`](https://github.com/minimistjs/minimist/commit/d1da40819acbe846d89a5c02721211e3c1260dde) + +## [v0.0.6](https://github.com/minimistjs/minimist/compare/v0.0.5...v0.0.6) - 2014-02-08 + +### Commits + +- use .test() instead of .match() to not crash on non-string values in the arguments array [`7e0d1ad`](https://github.com/minimistjs/minimist/commit/7e0d1add8c9e5b9b20a4d3d0f9a94d824c578da1) + +## [v0.0.5](https://github.com/minimistjs/minimist/compare/v0.0.4...v0.0.5) - 2013-09-18 + +### Commits + +- Improve '--' handling. [`b11822c`](https://github.com/minimistjs/minimist/commit/b11822c09cc9d2460f30384d12afc0b953c037a4) + +## [v0.0.4](https://github.com/minimistjs/minimist/compare/v0.0.3...v0.0.4) - 2013-09-17 + +## [v0.0.3](https://github.com/minimistjs/minimist/compare/v0.0.2...v0.0.3) - 2013-09-12 + +### Commits + +- failing test for single dash preceeding a double dash [`b465514`](https://github.com/minimistjs/minimist/commit/b465514b82c9ae28972d714facd951deb2ad762b) +- fix for the dot test [`6a095f1`](https://github.com/minimistjs/minimist/commit/6a095f1d364c8fab2d6753d2291a0649315d297a) + +## [v0.0.2](https://github.com/minimistjs/minimist/compare/v0.0.1...v0.0.2) - 2013-08-28 + +### Commits + +- allow dotted aliases & defaults [`321c33e`](https://github.com/minimistjs/minimist/commit/321c33e755485faaeb44eeb1c05d33b2e0a5a7c4) +- use a better version of ff [`e40f611`](https://github.com/minimistjs/minimist/commit/e40f61114cf7be6f7947f7b3eed345853a67dbbb) + +## [v0.0.1](https://github.com/minimistjs/minimist/compare/v0.0.0...v0.0.1) - 2013-06-25 + +### Commits + +- remove trailing commas [`6ff0fa0`](https://github.com/minimistjs/minimist/commit/6ff0fa055064f15dbe06d50b89d5173a6796e1db) + +## v0.0.0 - 2013-06-25 + +### Commits + +- half of the parse test ported [`3079326`](https://github.com/minimistjs/minimist/commit/307932601325087de6cf94188eb798ffc4f3088a) +- stripped down code and a passing test from optimist [`7cced88`](https://github.com/minimistjs/minimist/commit/7cced88d82e399d1a03ed23eb667f04d3f320d10) +- ported parse tests completely over [`9448754`](https://github.com/minimistjs/minimist/commit/944875452e0820df6830b1408c26a0f7d3e1db04) +- docs, package.json [`a5bf46a`](https://github.com/minimistjs/minimist/commit/a5bf46ac9bb3bd114a9c340276c62c1091e538d5) +- move more short tests into short.js [`503edb5`](https://github.com/minimistjs/minimist/commit/503edb5c41d89c0d40831ee517154fc13b0f18b9) +- default bool test was wrong, not the code [`1b9f5db`](https://github.com/minimistjs/minimist/commit/1b9f5db4741b49962846081b68518de824992097) +- passing long tests ripped out of parse.js [`7972c4a`](https://github.com/minimistjs/minimist/commit/7972c4aff1f4803079e1668006658e2a761a0428) +- badges [`84c0370`](https://github.com/minimistjs/minimist/commit/84c037063664d42878aace715fe6572ce01b6f3b) +- all the tests now ported, some failures [`64239ed`](https://github.com/minimistjs/minimist/commit/64239edfe92c711c4eb0da254fcdfad2a5fdb605) +- failing short test [`f8a5341`](https://github.com/minimistjs/minimist/commit/f8a534112dd1138d2fad722def56a848480c446f) +- fixed the numeric test [`6b034f3`](https://github.com/minimistjs/minimist/commit/6b034f37c79342c60083ed97fd222e16928aac51) diff --git a/node_modules/minimist/README.md b/node_modules/minimist/README.md new file mode 100644 index 0000000..74da323 --- /dev/null +++ b/node_modules/minimist/README.md @@ -0,0 +1,121 @@ +# minimist [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +parse argument options + +This module is the guts of optimist's argument parser without all the +fanciful decoration. + +# example + +``` js +var argv = require('minimist')(process.argv.slice(2)); +console.log(argv); +``` + +``` +$ node example/parse.js -a beep -b boop +{ _: [], a: 'beep', b: 'boop' } +``` + +``` +$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz +{ + _: ['foo', 'bar', 'baz'], + x: 3, + y: 4, + n: 5, + a: true, + b: true, + c: true, + beep: 'boop' +} +``` + +# security + +Previous versions had a prototype pollution bug that could cause privilege +escalation in some circumstances when handling untrusted user input. + +Please use version 1.2.6 or later: + +* https://security.snyk.io/vuln/SNYK-JS-MINIMIST-2429795 (version <=1.2.5) +* https://snyk.io/vuln/SNYK-JS-MINIMIST-559764 (version <=1.2.3) + +# methods + +``` js +var parseArgs = require('minimist') +``` + +## var argv = parseArgs(args, opts={}) + +Return an argument object `argv` populated with the array arguments from `args`. + +`argv._` contains all the arguments that didn't have an option associated with +them. + +Numeric-looking arguments will be returned as numbers unless `opts.string` or +`opts.boolean` is set for that argument name. + +Any arguments after `'--'` will not be parsed and will end up in `argv._`. + +options can be: + +* `opts.string` - a string or array of strings argument names to always treat as +strings +* `opts.boolean` - a boolean, string or array of strings to always treat as +booleans. if `true` will treat all double hyphenated arguments without equal signs +as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`) +* `opts.alias` - an object mapping string names to strings or arrays of string +argument names to use as aliases +* `opts.default` - an object mapping string argument names to default values +* `opts.stopEarly` - when true, populate `argv._` with everything after the +first non-option +* `opts['--']` - when true, populate `argv._` with everything before the `--` +and `argv['--']` with everything after the `--`. Here's an example: + + ``` + > require('./')('one two three -- four five --six'.split(' '), { '--': true }) + { + _: ['one', 'two', 'three'], + '--': ['four', 'five', '--six'] + } + ``` + + Note that with `opts['--']` set, parsing for arguments still stops after the + `--`. + +* `opts.unknown` - a function which is invoked with a command line parameter not +defined in the `opts` configuration object. If the function returns `false`, the +unknown option is not added to `argv`. + +# install + +With [npm](https://npmjs.org) do: + +``` +npm install minimist +``` + +# license + +MIT + +[package-url]: https://npmjs.org/package/minimist +[npm-version-svg]: https://versionbadg.es/minimistjs/minimist.svg +[npm-badge-png]: https://nodei.co/npm/minimist.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/minimist.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/minimist.svg +[downloads-url]: https://npm-stat.com/charts.html?package=minimist +[codecov-image]: https://codecov.io/gh/minimistjs/minimist/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/minimistjs/minimist/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/minimistjs/minimist +[actions-url]: https://github.com/minimistjs/minimist/actions diff --git a/node_modules/minimist/example/parse.js b/node_modules/minimist/example/parse.js index f7c8d49..9d90ffb 100644 --- a/node_modules/minimist/example/parse.js +++ b/node_modules/minimist/example/parse.js @@ -1,2 +1,4 @@ +'use strict'; + var argv = require('../')(process.argv.slice(2)); console.log(argv); diff --git a/node_modules/minimist/index.js b/node_modules/minimist/index.js index d2afe5e..f020f39 100644 --- a/node_modules/minimist/index.js +++ b/node_modules/minimist/index.js @@ -1,245 +1,263 @@ -module.exports = function (args, opts) { - if (!opts) opts = {}; - - var flags = { bools : {}, strings : {}, unknownFn: null }; - - if (typeof opts['unknown'] === 'function') { - flags.unknownFn = opts['unknown']; - } - - if (typeof opts['boolean'] === 'boolean' && opts['boolean']) { - flags.allBools = true; - } else { - [].concat(opts['boolean']).filter(Boolean).forEach(function (key) { - flags.bools[key] = true; - }); - } - - var aliases = {}; - Object.keys(opts.alias || {}).forEach(function (key) { - aliases[key] = [].concat(opts.alias[key]); - aliases[key].forEach(function (x) { - aliases[x] = [key].concat(aliases[key].filter(function (y) { - return x !== y; - })); - }); - }); - - [].concat(opts.string).filter(Boolean).forEach(function (key) { - flags.strings[key] = true; - if (aliases[key]) { - flags.strings[aliases[key]] = true; - } - }); - - var defaults = opts['default'] || {}; - - var argv = { _ : [] }; - Object.keys(flags.bools).forEach(function (key) { - setArg(key, defaults[key] === undefined ? false : defaults[key]); - }); - - var notFlags = []; - - if (args.indexOf('--') !== -1) { - notFlags = args.slice(args.indexOf('--')+1); - args = args.slice(0, args.indexOf('--')); - } - - function argDefined(key, arg) { - return (flags.allBools && /^--[^=]+$/.test(arg)) || - flags.strings[key] || flags.bools[key] || aliases[key]; - } - - function setArg (key, val, arg) { - if (arg && flags.unknownFn && !argDefined(key, arg)) { - if (flags.unknownFn(arg) === false) return; - } - - var value = !flags.strings[key] && isNumber(val) - ? Number(val) : val - ; - setKey(argv, key.split('.'), value); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), value); - }); - } - - function setKey (obj, keys, value) { - var o = obj; - for (var i = 0; i < keys.length-1; i++) { - var key = keys[i]; - if (key === '__proto__') return; - if (o[key] === undefined) o[key] = {}; - if (o[key] === Object.prototype || o[key] === Number.prototype - || o[key] === String.prototype) o[key] = {}; - if (o[key] === Array.prototype) o[key] = []; - o = o[key]; - } - - var key = keys[keys.length - 1]; - if (key === '__proto__') return; - if (o === Object.prototype || o === Number.prototype - || o === String.prototype) o = {}; - if (o === Array.prototype) o = []; - if (o[key] === undefined || flags.bools[key] || typeof o[key] === 'boolean') { - o[key] = value; - } - else if (Array.isArray(o[key])) { - o[key].push(value); - } - else { - o[key] = [ o[key], value ]; - } - } - - function aliasIsBoolean(key) { - return aliases[key].some(function (x) { - return flags.bools[x]; - }); - } - - for (var i = 0; i < args.length; i++) { - var arg = args[i]; - - if (/^--.+=/.test(arg)) { - // Using [\s\S] instead of . because js doesn't support the - // 'dotall' regex modifier. See: - // http://stackoverflow.com/a/1068308/13216 - var m = arg.match(/^--([^=]+)=([\s\S]*)$/); - var key = m[1]; - var value = m[2]; - if (flags.bools[key]) { - value = value !== 'false'; - } - setArg(key, value, arg); - } - else if (/^--no-.+/.test(arg)) { - var key = arg.match(/^--no-(.+)/)[1]; - setArg(key, false, arg); - } - else if (/^--.+/.test(arg)) { - var key = arg.match(/^--(.+)/)[1]; - var next = args[i + 1]; - if (next !== undefined && !/^-/.test(next) - && !flags.bools[key] - && !flags.allBools - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, next, arg); - i++; - } - else if (/^(true|false)$/.test(next)) { - setArg(key, next === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } - else if (/^-[^-]+/.test(arg)) { - var letters = arg.slice(1,-1).split(''); - - var broken = false; - for (var j = 0; j < letters.length; j++) { - var next = arg.slice(j+2); - - if (next === '-') { - setArg(letters[j], next, arg) - continue; - } - - if (/[A-Za-z]/.test(letters[j]) && /=/.test(next)) { - setArg(letters[j], next.split('=')[1], arg); - broken = true; - break; - } - - if (/[A-Za-z]/.test(letters[j]) - && /-?\d+(\.\d*)?(e-?\d+)?$/.test(next)) { - setArg(letters[j], next, arg); - broken = true; - break; - } - - if (letters[j+1] && letters[j+1].match(/\W/)) { - setArg(letters[j], arg.slice(j+2), arg); - broken = true; - break; - } - else { - setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); - } - } - - var key = arg.slice(-1)[0]; - if (!broken && key !== '-') { - if (args[i+1] && !/^(-|--)[^-]/.test(args[i+1]) - && !flags.bools[key] - && (aliases[key] ? !aliasIsBoolean(key) : true)) { - setArg(key, args[i+1], arg); - i++; - } - else if (args[i+1] && /^(true|false)$/.test(args[i+1])) { - setArg(key, args[i+1] === 'true', arg); - i++; - } - else { - setArg(key, flags.strings[key] ? '' : true, arg); - } - } - } - else { - if (!flags.unknownFn || flags.unknownFn(arg) !== false) { - argv._.push( - flags.strings['_'] || !isNumber(arg) ? arg : Number(arg) - ); - } - if (opts.stopEarly) { - argv._.push.apply(argv._, args.slice(i + 1)); - break; - } - } - } - - Object.keys(defaults).forEach(function (key) { - if (!hasKey(argv, key.split('.'))) { - setKey(argv, key.split('.'), defaults[key]); - - (aliases[key] || []).forEach(function (x) { - setKey(argv, x.split('.'), defaults[key]); - }); - } - }); - - if (opts['--']) { - argv['--'] = new Array(); - notFlags.forEach(function(key) { - argv['--'].push(key); - }); - } - else { - notFlags.forEach(function(key) { - argv._.push(key); - }); - } - - return argv; -}; +'use strict'; -function hasKey (obj, keys) { - var o = obj; - keys.slice(0,-1).forEach(function (key) { - o = (o[key] || {}); - }); +function hasKey(obj, keys) { + var o = obj; + keys.slice(0, -1).forEach(function (key) { + o = o[key] || {}; + }); - var key = keys[keys.length - 1]; - return key in o; + var key = keys[keys.length - 1]; + return key in o; } -function isNumber (x) { - if (typeof x === 'number') return true; - if (/^0x[0-9a-f]+$/i.test(x)) return true; - return /^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/.test(x); +function isNumber(x) { + if (typeof x === 'number') { return true; } + if ((/^0x[0-9a-f]+$/i).test(x)) { return true; } + return (/^[-+]?(?:\d+(?:\.\d*)?|\.\d+)(e[-+]?\d+)?$/).test(x); } +function isConstructorOrProto(obj, key) { + return (key === 'constructor' && typeof obj[key] === 'function') || key === '__proto__'; +} + +module.exports = function (args, opts) { + if (!opts) { opts = {}; } + + var flags = { + bools: {}, + strings: {}, + unknownFn: null, + }; + + if (typeof opts.unknown === 'function') { + flags.unknownFn = opts.unknown; + } + + if (typeof opts.boolean === 'boolean' && opts.boolean) { + flags.allBools = true; + } else { + [].concat(opts.boolean).filter(Boolean).forEach(function (key) { + flags.bools[key] = true; + }); + } + + var aliases = {}; + + function aliasIsBoolean(key) { + return aliases[key].some(function (x) { + return flags.bools[x]; + }); + } + + Object.keys(opts.alias || {}).forEach(function (key) { + aliases[key] = [].concat(opts.alias[key]); + aliases[key].forEach(function (x) { + aliases[x] = [key].concat(aliases[key].filter(function (y) { + return x !== y; + })); + }); + }); + + [].concat(opts.string).filter(Boolean).forEach(function (key) { + flags.strings[key] = true; + if (aliases[key]) { + [].concat(aliases[key]).forEach(function (k) { + flags.strings[k] = true; + }); + } + }); + + var defaults = opts.default || {}; + + var argv = { _: [] }; + + function argDefined(key, arg) { + return (flags.allBools && (/^--[^=]+$/).test(arg)) + || flags.strings[key] + || flags.bools[key] + || aliases[key]; + } + + function setKey(obj, keys, value) { + var o = obj; + for (var i = 0; i < keys.length - 1; i++) { + var key = keys[i]; + if (isConstructorOrProto(o, key)) { return; } + if (o[key] === undefined) { o[key] = {}; } + if ( + o[key] === Object.prototype + || o[key] === Number.prototype + || o[key] === String.prototype + ) { + o[key] = {}; + } + if (o[key] === Array.prototype) { o[key] = []; } + o = o[key]; + } + + var lastKey = keys[keys.length - 1]; + if (isConstructorOrProto(o, lastKey)) { return; } + if ( + o === Object.prototype + || o === Number.prototype + || o === String.prototype + ) { + o = {}; + } + if (o === Array.prototype) { o = []; } + if (o[lastKey] === undefined || flags.bools[lastKey] || typeof o[lastKey] === 'boolean') { + o[lastKey] = value; + } else if (Array.isArray(o[lastKey])) { + o[lastKey].push(value); + } else { + o[lastKey] = [o[lastKey], value]; + } + } + + function setArg(key, val, arg) { + if (arg && flags.unknownFn && !argDefined(key, arg)) { + if (flags.unknownFn(arg) === false) { return; } + } + + var value = !flags.strings[key] && isNumber(val) + ? Number(val) + : val; + setKey(argv, key.split('.'), value); + + (aliases[key] || []).forEach(function (x) { + setKey(argv, x.split('.'), value); + }); + } + + Object.keys(flags.bools).forEach(function (key) { + setArg(key, defaults[key] === undefined ? false : defaults[key]); + }); + + var notFlags = []; + + if (args.indexOf('--') !== -1) { + notFlags = args.slice(args.indexOf('--') + 1); + args = args.slice(0, args.indexOf('--')); + } + + for (var i = 0; i < args.length; i++) { + var arg = args[i]; + var key; + var next; + + if ((/^--.+=/).test(arg)) { + // Using [\s\S] instead of . because js doesn't support the + // 'dotall' regex modifier. See: + // http://stackoverflow.com/a/1068308/13216 + var m = arg.match(/^--([^=]+)=([\s\S]*)$/); + key = m[1]; + var value = m[2]; + if (flags.bools[key]) { + value = value !== 'false'; + } + setArg(key, value, arg); + } else if ((/^--no-.+/).test(arg)) { + key = arg.match(/^--no-(.+)/)[1]; + setArg(key, false, arg); + } else if ((/^--.+/).test(arg)) { + key = arg.match(/^--(.+)/)[1]; + next = args[i + 1]; + if ( + next !== undefined + && !(/^(-|--)[^-]/).test(next) + && !flags.bools[key] + && !flags.allBools + && (aliases[key] ? !aliasIsBoolean(key) : true) + ) { + setArg(key, next, arg); + i += 1; + } else if ((/^(true|false)$/).test(next)) { + setArg(key, next === 'true', arg); + i += 1; + } else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } else if ((/^-[^-]+/).test(arg)) { + var letters = arg.slice(1, -1).split(''); + + var broken = false; + for (var j = 0; j < letters.length; j++) { + next = arg.slice(j + 2); + + if (next === '-') { + setArg(letters[j], next, arg); + continue; + } + + if ((/[A-Za-z]/).test(letters[j]) && next[0] === '=') { + setArg(letters[j], next.slice(1), arg); + broken = true; + break; + } + + if ( + (/[A-Za-z]/).test(letters[j]) + && (/-?\d+(\.\d*)?(e-?\d+)?$/).test(next) + ) { + setArg(letters[j], next, arg); + broken = true; + break; + } + + if (letters[j + 1] && letters[j + 1].match(/\W/)) { + setArg(letters[j], arg.slice(j + 2), arg); + broken = true; + break; + } else { + setArg(letters[j], flags.strings[letters[j]] ? '' : true, arg); + } + } + + key = arg.slice(-1)[0]; + if (!broken && key !== '-') { + if ( + args[i + 1] + && !(/^(-|--)[^-]/).test(args[i + 1]) + && !flags.bools[key] + && (aliases[key] ? !aliasIsBoolean(key) : true) + ) { + setArg(key, args[i + 1], arg); + i += 1; + } else if (args[i + 1] && (/^(true|false)$/).test(args[i + 1])) { + setArg(key, args[i + 1] === 'true', arg); + i += 1; + } else { + setArg(key, flags.strings[key] ? '' : true, arg); + } + } + } else { + if (!flags.unknownFn || flags.unknownFn(arg) !== false) { + argv._.push(flags.strings._ || !isNumber(arg) ? arg : Number(arg)); + } + if (opts.stopEarly) { + argv._.push.apply(argv._, args.slice(i + 1)); + break; + } + } + } + + Object.keys(defaults).forEach(function (k) { + if (!hasKey(argv, k.split('.'))) { + setKey(argv, k.split('.'), defaults[k]); + + (aliases[k] || []).forEach(function (x) { + setKey(argv, x.split('.'), defaults[k]); + }); + } + }); + + if (opts['--']) { + argv['--'] = notFlags.slice(); + } else { + notFlags.forEach(function (k) { + argv._.push(k); + }); + } + + return argv; +}; diff --git a/node_modules/minimist/package.json b/node_modules/minimist/package.json index c091d41..c10a334 100644 --- a/node_modules/minimist/package.json +++ b/node_modules/minimist/package.json @@ -1,45 +1,75 @@ { - "name": "minimist", - "version": "1.2.5", - "description": "parse argument options", - "main": "index.js", - "devDependencies": { - "covert": "^1.0.0", - "tap": "~0.4.0", - "tape": "^3.5.0" - }, - "scripts": { - "test": "tap test/*.js", - "coverage": "covert test/*.js" - }, - "testling": { - "files": "test/*.js", - "browsers": [ - "ie/6..latest", - "ff/5", - "firefox/latest", - "chrome/10", - "chrome/latest", - "safari/5.1", - "safari/latest", - "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" + "name": "minimist", + "version": "1.2.8", + "description": "parse argument options", + "main": "index.js", + "devDependencies": { + "@ljharb/eslint-config": "^21.0.1", + "aud": "^2.0.2", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.3" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=auto", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "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)\")\"" + }, + "testling": { + "files": "test/*.js", + "browsers": [ + "ie/6..latest", + "ff/5", + "firefox/latest", + "chrome/10", + "chrome/latest", + "safari/5.1", + "safari/latest", + "opera/12" + ] + }, + "repository": { + "type": "git", + "url": "git://github.com/minimistjs/minimist.git" + }, + "homepage": "https://github.com/minimistjs/minimist", + "keywords": [ + "argv", + "getopt", + "parser", + "optimist" + ], + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } } diff --git a/node_modules/minimist/readme.markdown b/node_modules/minimist/readme.markdown deleted file mode 100644 index 5fd97ab..0000000 --- a/node_modules/minimist/readme.markdown +++ /dev/null @@ -1,95 +0,0 @@ -# minimist - -parse argument options - -This module is the guts of optimist's argument parser without all the -fanciful decoration. - -# example - -``` js -var argv = require('minimist')(process.argv.slice(2)); -console.log(argv); -``` - -``` -$ node example/parse.js -a beep -b boop -{ _: [], a: 'beep', b: 'boop' } -``` - -``` -$ node example/parse.js -x 3 -y 4 -n5 -abc --beep=boop foo bar baz -{ _: [ 'foo', 'bar', 'baz' ], - x: 3, - y: 4, - n: 5, - a: true, - b: true, - c: true, - beep: 'boop' } -``` - -# security - -Previous versions had a prototype pollution bug that could cause privilege -escalation in some circumstances when handling untrusted user input. - -Please use version 1.2.3 or later: https://snyk.io/vuln/SNYK-JS-MINIMIST-559764 - -# methods - -``` js -var parseArgs = require('minimist') -``` - -## var argv = parseArgs(args, opts={}) - -Return an argument object `argv` populated with the array arguments from `args`. - -`argv._` contains all the arguments that didn't have an option associated with -them. - -Numeric-looking arguments will be returned as numbers unless `opts.string` or -`opts.boolean` is set for that argument name. - -Any arguments after `'--'` will not be parsed and will end up in `argv._`. - -options can be: - -* `opts.string` - a string or array of strings argument names to always treat as -strings -* `opts.boolean` - a boolean, string or array of strings to always treat as -booleans. if `true` will treat all double hyphenated arguments without equal signs -as boolean (e.g. affects `--foo`, not `-f` or `--foo=bar`) -* `opts.alias` - an object mapping string names to strings or arrays of string -argument names to use as aliases -* `opts.default` - an object mapping string argument names to default values -* `opts.stopEarly` - when true, populate `argv._` with everything after the -first non-option -* `opts['--']` - when true, populate `argv._` with everything before the `--` -and `argv['--']` with everything after the `--`. Here's an example: - - ``` - > require('./')('one two three -- four five --six'.split(' '), { '--': true }) - { _: [ 'one', 'two', 'three' ], - '--': [ 'four', 'five', '--six' ] } - ``` - - Note that with `opts['--']` set, parsing for arguments still stops after the - `--`. - -* `opts.unknown` - a function which is invoked with a command line parameter not -defined in the `opts` configuration object. If the function returns `false`, the -unknown option is not added to `argv`. - -# install - -With [npm](https://npmjs.org) do: - -``` -npm install minimist -``` - -# license - -MIT diff --git a/node_modules/minimist/test/all_bool.js b/node_modules/minimist/test/all_bool.js index ac83548..befa0c9 100644 --- a/node_modules/minimist/test/all_bool.js +++ b/node_modules/minimist/test/all_bool.js @@ -1,32 +1,34 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('flag boolean true (default all --args to boolean)', function (t) { - var argv = parse(['moo', '--honk', 'cow'], { - boolean: true - }); - - t.deepEqual(argv, { - honk: true, - _: ['moo', 'cow'] - }); - - t.deepEqual(typeof argv.honk, 'boolean'); - t.end(); + var argv = parse(['moo', '--honk', 'cow'], { + boolean: true, + }); + + t.deepEqual(argv, { + honk: true, + _: ['moo', 'cow'], + }); + + t.deepEqual(typeof argv.honk, 'boolean'); + t.end(); }); test('flag boolean true only affects double hyphen arguments without equals signs', function (t) { - var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], { - boolean: true - }); - - t.deepEqual(argv, { - honk: true, - tacos: 'good', - p: 55, - _: ['moo', 'cow'] - }); - - t.deepEqual(typeof argv.honk, 'boolean'); - t.end(); + var argv = parse(['moo', '--honk', 'cow', '-p', '55', '--tacos=good'], { + boolean: true, + }); + + t.deepEqual(argv, { + honk: true, + tacos: 'good', + p: 55, + _: ['moo', 'cow'], + }); + + t.deepEqual(typeof argv.honk, 'boolean'); + t.end(); }); diff --git a/node_modules/minimist/test/bool.js b/node_modules/minimist/test/bool.js index 5f7dbde..e58d47e 100644 --- a/node_modules/minimist/test/bool.js +++ b/node_modules/minimist/test/bool.js @@ -1,178 +1,177 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('flag boolean default false', function (t) { - var argv = parse(['moo'], { - boolean: ['t', 'verbose'], - default: { verbose: false, t: false } - }); - - t.deepEqual(argv, { - verbose: false, - t: false, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); + var argv = parse(['moo'], { + boolean: ['t', 'verbose'], + default: { verbose: false, t: false }, + }); + + t.deepEqual(argv, { + verbose: false, + t: false, + _: ['moo'], + }); + + t.deepEqual(typeof argv.verbose, 'boolean'); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); }); test('boolean groups', function (t) { - var argv = parse([ '-x', '-z', 'one', 'two', 'three' ], { - boolean: ['x','y','z'] - }); - - t.deepEqual(argv, { - x : true, - y : false, - z : true, - _ : [ 'one', 'two', 'three' ] - }); - - t.deepEqual(typeof argv.x, 'boolean'); - t.deepEqual(typeof argv.y, 'boolean'); - t.deepEqual(typeof argv.z, 'boolean'); - t.end(); + var argv = parse(['-x', '-z', 'one', 'two', 'three'], { + boolean: ['x', 'y', 'z'], + }); + + t.deepEqual(argv, { + x: true, + y: false, + z: true, + _: ['one', 'two', 'three'], + }); + + t.deepEqual(typeof argv.x, 'boolean'); + t.deepEqual(typeof argv.y, 'boolean'); + t.deepEqual(typeof argv.z, 'boolean'); + t.end(); }); test('boolean and alias with chainable api', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - herp: { alias: 'h', boolean: true } - }; - var aliasedArgv = parse(aliased, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var propertyArgv = parse(regular, { - boolean: 'herp', - alias: { h: 'herp' } - }); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); + var aliased = ['-h', 'derp']; + var regular = ['--herp', 'derp']; + var aliasedArgv = parse(aliased, { + boolean: 'herp', + alias: { h: 'herp' }, + }); + var propertyArgv = parse(regular, { + boolean: 'herp', + alias: { h: 'herp' }, + }); + var expected = { + herp: true, + h: true, + _: ['derp'], + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); }); test('boolean and alias with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var opts = { - alias: { 'h': 'herp' }, - boolean: 'herp' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); + var aliased = ['-h', 'derp']; + var regular = ['--herp', 'derp']; + var opts = { + alias: { h: 'herp' }, + boolean: 'herp', + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + _: ['derp'], + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); }); test('boolean and alias array with options hash', function (t) { - var aliased = [ '-h', 'derp' ]; - var regular = [ '--herp', 'derp' ]; - var alt = [ '--harp', 'derp' ]; - var opts = { - alias: { 'h': ['herp', 'harp'] }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var altPropertyArgv = parse(alt, opts); - var expected = { - harp: true, - herp: true, - h: true, - '_': [ 'derp' ] - }; - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.same(altPropertyArgv, expected); - t.end(); + var aliased = ['-h', 'derp']; + var regular = ['--herp', 'derp']; + var alt = ['--harp', 'derp']; + var opts = { + alias: { h: ['herp', 'harp'] }, + boolean: 'h', + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var altPropertyArgv = parse(alt, opts); + var expected = { + harp: true, + herp: true, + h: true, + _: ['derp'], + }; + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.same(altPropertyArgv, expected); + t.end(); }); test('boolean and alias using explicit true', function (t) { - var aliased = [ '-h', 'true' ]; - var regular = [ '--herp', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h' - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); - var expected = { - herp: true, - h: true, - '_': [ ] - }; - - t.same(aliasedArgv, expected); - t.same(propertyArgv, expected); - t.end(); + var aliased = ['-h', 'true']; + var regular = ['--herp', 'true']; + var opts = { + alias: { h: 'herp' }, + boolean: 'h', + }; + var aliasedArgv = parse(aliased, opts); + var propertyArgv = parse(regular, opts); + var expected = { + herp: true, + h: true, + _: [], + }; + + t.same(aliasedArgv, expected); + t.same(propertyArgv, expected); + t.end(); }); // regression, see https://github.com/substack/node-optimist/issues/71 -test('boolean and --x=true', function(t) { - var parsed = parse(['--boool', '--other=true'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'true'); - - parsed = parse(['--boool', '--other=false'], { - boolean: 'boool' - }); - - t.same(parsed.boool, true); - t.same(parsed.other, 'false'); - t.end(); +test('boolean and --x=true', function (t) { + var parsed = parse(['--boool', '--other=true'], { + boolean: 'boool', + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'true'); + + parsed = parse(['--boool', '--other=false'], { + boolean: 'boool', + }); + + t.same(parsed.boool, true); + t.same(parsed.other, 'false'); + t.end(); }); test('boolean --boool=true', function (t) { - var parsed = parse(['--boool=true'], { - default: { - boool: false - }, - boolean: ['boool'] - }); - - t.same(parsed.boool, true); - t.end(); + var parsed = parse(['--boool=true'], { + default: { + boool: false, + }, + boolean: ['boool'], + }); + + t.same(parsed.boool, true); + t.end(); }); test('boolean --boool=false', function (t) { - var parsed = parse(['--boool=false'], { - default: { - boool: true - }, - boolean: ['boool'] - }); - - t.same(parsed.boool, false); - t.end(); + var parsed = parse(['--boool=false'], { + default: { + boool: true, + }, + boolean: ['boool'], + }); + + t.same(parsed.boool, false); + t.end(); }); test('boolean using something similar to true', function (t) { - var opts = { boolean: 'h' }; - var result = parse(['-h', 'true.txt'], opts); - var expected = { - h: true, - '_': ['true.txt'] - }; - - t.same(result, expected); - t.end(); -}); \ No newline at end of file + var opts = { boolean: 'h' }; + var result = parse(['-h', 'true.txt'], opts); + var expected = { + h: true, + _: ['true.txt'], + }; + + t.same(result, expected); + t.end(); +}); diff --git a/node_modules/minimist/test/dash.js b/node_modules/minimist/test/dash.js index 5a4fa5b..7078817 100644 --- a/node_modules/minimist/test/dash.js +++ b/node_modules/minimist/test/dash.js @@ -1,31 +1,43 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('-', function (t) { - t.plan(5); - t.deepEqual(parse([ '-n', '-' ]), { n: '-', _: [] }); - t.deepEqual(parse([ '-' ]), { _: [ '-' ] }); - t.deepEqual(parse([ '-f-' ]), { f: '-', _: [] }); - t.deepEqual( - parse([ '-b', '-' ], { boolean: 'b' }), - { b: true, _: [ '-' ] } - ); - t.deepEqual( - parse([ '-s', '-' ], { string: 's' }), - { s: '-', _: [] } - ); + t.plan(6); + t.deepEqual(parse(['-n', '-']), { n: '-', _: [] }); + t.deepEqual(parse(['--nnn', '-']), { nnn: '-', _: [] }); + t.deepEqual(parse(['-']), { _: ['-'] }); + t.deepEqual(parse(['-f-']), { f: '-', _: [] }); + t.deepEqual( + parse(['-b', '-'], { boolean: 'b' }), + { b: true, _: ['-'] } + ); + t.deepEqual( + parse(['-s', '-'], { string: 's' }), + { s: '-', _: [] } + ); }); test('-a -- b', function (t) { - t.plan(3); - t.deepEqual(parse([ '-a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); - t.deepEqual(parse([ '--a', '--', 'b' ]), { a: true, _: [ 'b' ] }); + t.plan(2); + t.deepEqual(parse(['-a', '--', 'b']), { a: true, _: ['b'] }); + t.deepEqual(parse(['--a', '--', 'b']), { a: true, _: ['b'] }); +}); + +test('move arguments after the -- into their own `--` array', function (t) { + t.plan(1); + t.deepEqual( + parse(['--name', 'John', 'before', '--', 'after'], { '--': true }), + { name: 'John', _: ['before'], '--': ['after'] } + ); }); -test('move arguments after the -- into their own `--` array', function(t) { - t.plan(1); - t.deepEqual( - parse([ '--name', 'John', 'before', '--', 'after' ], { '--': true }), - { name: 'John', _: [ 'before' ], '--': [ 'after' ] }); +test('--- option value', function (t) { + // A multi-dash value is largely an edge case, but check the behaviour is as expected, + // and in particular the same for short option and long option (as made consistent in Jan 2023). + t.plan(2); + t.deepEqual(parse(['-n', '---']), { n: '---', _: [] }); + t.deepEqual(parse(['--nnn', '---']), { nnn: '---', _: [] }); }); + diff --git a/node_modules/minimist/test/default_bool.js b/node_modules/minimist/test/default_bool.js index 780a311..4e9f625 100644 --- a/node_modules/minimist/test/default_bool.js +++ b/node_modules/minimist/test/default_bool.js @@ -1,35 +1,37 @@ +'use strict'; + var test = require('tape'); var parse = require('../'); test('boolean default true', function (t) { - var argv = parse([], { - boolean: 'sometrue', - default: { sometrue: true } - }); - t.equal(argv.sometrue, true); - t.end(); + var argv = parse([], { + boolean: 'sometrue', + default: { sometrue: true }, + }); + t.equal(argv.sometrue, true); + t.end(); }); test('boolean default false', function (t) { - var argv = parse([], { - boolean: 'somefalse', - default: { somefalse: false } - }); - t.equal(argv.somefalse, false); - t.end(); + var argv = parse([], { + boolean: 'somefalse', + default: { somefalse: false }, + }); + t.equal(argv.somefalse, false); + t.end(); }); test('boolean default to null', function (t) { - var argv = parse([], { - boolean: 'maybe', - default: { maybe: null } - }); - t.equal(argv.maybe, null); - var argv = parse(['--maybe'], { - boolean: 'maybe', - default: { maybe: null } - }); - t.equal(argv.maybe, true); - t.end(); + var argv = parse([], { + boolean: 'maybe', + default: { maybe: null }, + }); + t.equal(argv.maybe, null); -}) + var argvLong = parse(['--maybe'], { + boolean: 'maybe', + default: { maybe: null }, + }); + t.equal(argvLong.maybe, true); + t.end(); +}); diff --git a/node_modules/minimist/test/dotted.js b/node_modules/minimist/test/dotted.js index d8b3e85..126ff03 100644 --- a/node_modules/minimist/test/dotted.js +++ b/node_modules/minimist/test/dotted.js @@ -1,22 +1,24 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('dotted alias', function (t) { - var argv = parse(['--a.b', '22'], {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 22); - t.equal(argv.aa.bb, 22); - t.end(); + var argv = parse(['--a.b', '22'], { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } }); + t.equal(argv.a.b, 22); + t.equal(argv.aa.bb, 22); + t.end(); }); test('dotted default', function (t) { - var argv = parse('', {default: {'a.b': 11}, alias: {'a.b': 'aa.bb'}}); - t.equal(argv.a.b, 11); - t.equal(argv.aa.bb, 11); - t.end(); + var argv = parse('', { default: { 'a.b': 11 }, alias: { 'a.b': 'aa.bb' } }); + t.equal(argv.a.b, 11); + t.equal(argv.aa.bb, 11); + t.end(); }); test('dotted default with no alias', function (t) { - var argv = parse('', {default: {'a.b': 11}}); - t.equal(argv.a.b, 11); - t.end(); + var argv = parse('', { default: { 'a.b': 11 } }); + t.equal(argv.a.b, 11); + t.end(); }); diff --git a/node_modules/minimist/test/kv_short.js b/node_modules/minimist/test/kv_short.js index f813b30..6d1b53a 100644 --- a/node_modules/minimist/test/kv_short.js +++ b/node_modules/minimist/test/kv_short.js @@ -1,16 +1,32 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); -test('short -k=v' , function (t) { - t.plan(1); - - var argv = parse([ '-b=123' ]); - t.deepEqual(argv, { b: 123, _: [] }); +test('short -k=v', function (t) { + t.plan(1); + + var argv = parse(['-b=123']); + t.deepEqual(argv, { b: 123, _: [] }); +}); + +test('multi short -k=v', function (t) { + t.plan(1); + + var argv = parse(['-a=whatever', '-b=robots']); + t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); }); -test('multi short -k=v' , function (t) { - t.plan(1); - - var argv = parse([ '-a=whatever', '-b=robots' ]); - t.deepEqual(argv, { a: 'whatever', b: 'robots', _: [] }); +test('short with embedded equals -k=a=b', function (t) { + t.plan(1); + + var argv = parse(['-k=a=b']); + t.deepEqual(argv, { k: 'a=b', _: [] }); +}); + +test('short with later equals like -ab=c', function (t) { + t.plan(1); + + var argv = parse(['-ab=c']); + t.deepEqual(argv, { a: true, b: 'c', _: [] }); }); diff --git a/node_modules/minimist/test/long.js b/node_modules/minimist/test/long.js index 5d3a1e0..9fef51f 100644 --- a/node_modules/minimist/test/long.js +++ b/node_modules/minimist/test/long.js @@ -1,31 +1,33 @@ +'use strict'; + var test = require('tape'); var parse = require('../'); test('long opts', function (t) { - t.deepEqual( - parse([ '--bool' ]), - { bool : true, _ : [] }, - 'long boolean' - ); - t.deepEqual( - parse([ '--pow', 'xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture sp' - ); - t.deepEqual( - parse([ '--pow=xixxle' ]), - { pow : 'xixxle', _ : [] }, - 'long capture eq' - ); - t.deepEqual( - parse([ '--host', 'localhost', '--port', '555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures sp' - ); - t.deepEqual( - parse([ '--host=localhost', '--port=555' ]), - { host : 'localhost', port : 555, _ : [] }, - 'long captures eq' - ); - t.end(); + t.deepEqual( + parse(['--bool']), + { bool: true, _: [] }, + 'long boolean' + ); + t.deepEqual( + parse(['--pow', 'xixxle']), + { pow: 'xixxle', _: [] }, + 'long capture sp' + ); + t.deepEqual( + parse(['--pow=xixxle']), + { pow: 'xixxle', _: [] }, + 'long capture eq' + ); + t.deepEqual( + parse(['--host', 'localhost', '--port', '555']), + { host: 'localhost', port: 555, _: [] }, + 'long captures sp' + ); + t.deepEqual( + parse(['--host=localhost', '--port=555']), + { host: 'localhost', port: 555, _: [] }, + 'long captures eq' + ); + t.end(); }); diff --git a/node_modules/minimist/test/num.js b/node_modules/minimist/test/num.js index 2cc77f4..074393e 100644 --- a/node_modules/minimist/test/num.js +++ b/node_modules/minimist/test/num.js @@ -1,36 +1,38 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('nums', function (t) { - var argv = parse([ - '-x', '1234', - '-y', '5.67', - '-z', '1e7', - '-w', '10f', - '--hex', '0xdeadbeef', - '789' - ]); - t.deepEqual(argv, { - x : 1234, - y : 5.67, - z : 1e7, - w : '10f', - hex : 0xdeadbeef, - _ : [ 789 ] - }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv.y, 'number'); - t.deepEqual(typeof argv.z, 'number'); - t.deepEqual(typeof argv.w, 'string'); - t.deepEqual(typeof argv.hex, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); + var argv = parse([ + '-x', '1234', + '-y', '5.67', + '-z', '1e7', + '-w', '10f', + '--hex', '0xdeadbeef', + '789', + ]); + t.deepEqual(argv, { + x: 1234, + y: 5.67, + z: 1e7, + w: '10f', + hex: 0xdeadbeef, + _: [789], + }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv.y, 'number'); + t.deepEqual(typeof argv.z, 'number'); + t.deepEqual(typeof argv.w, 'string'); + t.deepEqual(typeof argv.hex, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); }); test('already a number', function (t) { - var argv = parse([ '-x', 1234, 789 ]); - t.deepEqual(argv, { x : 1234, _ : [ 789 ] }); - t.deepEqual(typeof argv.x, 'number'); - t.deepEqual(typeof argv._[0], 'number'); - t.end(); + var argv = parse(['-x', 1234, 789]); + t.deepEqual(argv, { x: 1234, _: [789] }); + t.deepEqual(typeof argv.x, 'number'); + t.deepEqual(typeof argv._[0], 'number'); + t.end(); }); diff --git a/node_modules/minimist/test/parse.js b/node_modules/minimist/test/parse.js index 7b4a2a1..65d9d90 100644 --- a/node_modules/minimist/test/parse.js +++ b/node_modules/minimist/test/parse.js @@ -1,197 +1,209 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('parse args', function (t) { - t.deepEqual( - parse([ '--no-moo' ]), - { moo : false, _ : [] }, - 'no' - ); - t.deepEqual( - parse([ '-v', 'a', '-v', 'b', '-v', 'c' ]), - { v : ['a','b','c'], _ : [] }, - 'multi' - ); - t.end(); + t.deepEqual( + parse(['--no-moo']), + { moo: false, _: [] }, + 'no' + ); + t.deepEqual( + parse(['-v', 'a', '-v', 'b', '-v', 'c']), + { v: ['a', 'b', 'c'], _: [] }, + 'multi' + ); + t.end(); }); - + test('comprehensive', function (t) { - t.deepEqual( - parse([ - '--name=meowmers', 'bare', '-cats', 'woo', - '-h', 'awesome', '--multi=quux', - '--key', 'value', - '-b', '--bool', '--no-meep', '--multi=baz', - '--', '--not-a-flag', 'eek' - ]), - { - c : true, - a : true, - t : true, - s : 'woo', - h : 'awesome', - b : true, - bool : true, - key : 'value', - multi : [ 'quux', 'baz' ], - meep : false, - name : 'meowmers', - _ : [ 'bare', '--not-a-flag', 'eek' ] - } - ); - t.end(); + t.deepEqual( + parse([ + '--name=meowmers', 'bare', '-cats', 'woo', + '-h', 'awesome', '--multi=quux', + '--key', 'value', + '-b', '--bool', '--no-meep', '--multi=baz', + '--', '--not-a-flag', 'eek', + ]), + { + c: true, + a: true, + t: true, + s: 'woo', + h: 'awesome', + b: true, + bool: true, + key: 'value', + multi: ['quux', 'baz'], + meep: false, + name: 'meowmers', + _: ['bare', '--not-a-flag', 'eek'], + } + ); + t.end(); }); test('flag boolean', function (t) { - var argv = parse([ '-t', 'moo' ], { boolean: 't' }); - t.deepEqual(argv, { t : true, _ : [ 'moo' ] }); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); + var argv = parse(['-t', 'moo'], { boolean: 't' }); + t.deepEqual(argv, { t: true, _: ['moo'] }); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); }); test('flag boolean value', function (t) { - var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { - boolean: [ 't', 'verbose' ], - default: { verbose: true } - }); - - t.deepEqual(argv, { - verbose: false, - t: true, - _: ['moo'] - }); - - t.deepEqual(typeof argv.verbose, 'boolean'); - t.deepEqual(typeof argv.t, 'boolean'); - t.end(); + var argv = parse(['--verbose', 'false', 'moo', '-t', 'true'], { + boolean: ['t', 'verbose'], + default: { verbose: true }, + }); + + t.deepEqual(argv, { + verbose: false, + t: true, + _: ['moo'], + }); + + t.deepEqual(typeof argv.verbose, 'boolean'); + t.deepEqual(typeof argv.t, 'boolean'); + t.end(); }); -test('newlines in params' , function (t) { - var args = parse([ '-s', "X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - - // reproduce in bash: - // VALUE="new - // line" - // node program.js --s="$VALUE" - args = parse([ "--s=X\nX" ]) - t.deepEqual(args, { _ : [], s : "X\nX" }); - t.end(); +test('newlines in params', function (t) { + var args = parse(['-s', 'X\nX']); + t.deepEqual(args, { _: [], s: 'X\nX' }); + + // reproduce in bash: + // VALUE="new + // line" + // node program.js --s="$VALUE" + args = parse(['--s=X\nX']); + t.deepEqual(args, { _: [], s: 'X\nX' }); + t.end(); }); -test('strings' , function (t) { - var s = parse([ '-s', '0001234' ], { string: 's' }).s; - t.equal(s, '0001234'); - t.equal(typeof s, 'string'); - - var x = parse([ '-x', '56' ], { string: 'x' }).x; - t.equal(x, '56'); - t.equal(typeof x, 'string'); - t.end(); +test('strings', function (t) { + var s = parse(['-s', '0001234'], { string: 's' }).s; + t.equal(s, '0001234'); + t.equal(typeof s, 'string'); + + var x = parse(['-x', '56'], { string: 'x' }).x; + t.equal(x, '56'); + t.equal(typeof x, 'string'); + t.end(); }); test('stringArgs', function (t) { - var s = parse([ ' ', ' ' ], { string: '_' })._; - t.same(s.length, 2); - t.same(typeof s[0], 'string'); - t.same(s[0], ' '); - t.same(typeof s[1], 'string'); - t.same(s[1], ' '); - t.end(); + var s = parse([' ', ' '], { string: '_' })._; + t.same(s.length, 2); + t.same(typeof s[0], 'string'); + t.same(s[0], ' '); + t.same(typeof s[1], 'string'); + t.same(s[1], ' '); + t.end(); }); -test('empty strings', function(t) { - var s = parse([ '-s' ], { string: 's' }).s; - t.equal(s, ''); - t.equal(typeof s, 'string'); +test('empty strings', function (t) { + var s = parse(['-s'], { string: 's' }).s; + t.equal(s, ''); + t.equal(typeof s, 'string'); - var str = parse([ '--str' ], { string: 'str' }).str; - t.equal(str, ''); - t.equal(typeof str, 'string'); + var str = parse(['--str'], { string: 'str' }).str; + t.equal(str, ''); + t.equal(typeof str, 'string'); - var letters = parse([ '-art' ], { - string: [ 'a', 't' ] - }); + var letters = parse(['-art'], { + string: ['a', 't'], + }); - t.equal(letters.a, ''); - t.equal(letters.r, true); - t.equal(letters.t, ''); + t.equal(letters.a, ''); + t.equal(letters.r, true); + t.equal(letters.t, ''); - t.end(); + t.end(); }); - -test('string and alias', function(t) { - var x = parse([ '--str', '000123' ], { - string: 's', - alias: { s: 'str' } - }); - - t.equal(x.str, '000123'); - t.equal(typeof x.str, 'string'); - t.equal(x.s, '000123'); - t.equal(typeof x.s, 'string'); - - var y = parse([ '-s', '000123' ], { - string: 'str', - alias: { str: 's' } - }); - - t.equal(y.str, '000123'); - t.equal(typeof y.str, 'string'); - t.equal(y.s, '000123'); - t.equal(typeof y.s, 'string'); - t.end(); +test('string and alias', function (t) { + var x = parse(['--str', '000123'], { + string: 's', + alias: { s: 'str' }, + }); + + t.equal(x.str, '000123'); + t.equal(typeof x.str, 'string'); + t.equal(x.s, '000123'); + t.equal(typeof x.s, 'string'); + + var y = parse(['-s', '000123'], { + string: 'str', + alias: { str: 's' }, + }); + + t.equal(y.str, '000123'); + t.equal(typeof y.str, 'string'); + t.equal(y.s, '000123'); + t.equal(typeof y.s, 'string'); + + var z = parse(['-s123'], { + alias: { str: ['s', 'S'] }, + string: ['str'], + }); + + t.deepEqual( + z, + { _: [], s: '123', S: '123', str: '123' }, + 'opt.string works with multiple aliases' + ); + t.end(); }); test('slashBreak', function (t) { - t.same( - parse([ '-I/foo/bar/baz' ]), - { I : '/foo/bar/baz', _ : [] } - ); - t.same( - parse([ '-xyz/foo/bar/baz' ]), - { x : true, y : true, z : '/foo/bar/baz', _ : [] } - ); - t.end(); + t.same( + parse(['-I/foo/bar/baz']), + { I: '/foo/bar/baz', _: [] } + ); + t.same( + parse(['-xyz/foo/bar/baz']), + { x: true, y: true, z: '/foo/bar/baz', _: [] } + ); + t.end(); }); test('alias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: 'zoom' } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.f, 11); - t.end(); + var argv = parse(['-f', '11', '--zoom', '55'], { + alias: { z: 'zoom' }, + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.f, 11); + t.end(); }); test('multiAlias', function (t) { - var argv = parse([ '-f', '11', '--zoom', '55' ], { - alias: { z: [ 'zm', 'zoom' ] } - }); - t.equal(argv.zoom, 55); - t.equal(argv.z, argv.zoom); - t.equal(argv.z, argv.zm); - t.equal(argv.f, 11); - t.end(); + var argv = parse(['-f', '11', '--zoom', '55'], { + alias: { z: ['zm', 'zoom'] }, + }); + t.equal(argv.zoom, 55); + t.equal(argv.z, argv.zoom); + t.equal(argv.z, argv.zm); + t.equal(argv.f, 11); + t.end(); }); test('nested dotted objects', function (t) { - var argv = parse([ - '--foo.bar', '3', '--foo.baz', '4', - '--foo.quux.quibble', '5', '--foo.quux.o_O', - '--beep.boop' - ]); - - t.same(argv.foo, { - bar : 3, - baz : 4, - quux : { - quibble : 5, - o_O : true - } - }); - t.same(argv.beep, { boop : true }); - t.end(); + var argv = parse([ + '--foo.bar', '3', '--foo.baz', '4', + '--foo.quux.quibble', '5', '--foo.quux.o_O', + '--beep.boop', + ]); + + t.same(argv.foo, { + bar: 3, + baz: 4, + quux: { + quibble: 5, + o_O: true, + }, + }); + t.same(argv.beep, { boop: true }); + t.end(); }); diff --git a/node_modules/minimist/test/parse_modified.js b/node_modules/minimist/test/parse_modified.js index ab620dc..32965d1 100644 --- a/node_modules/minimist/test/parse_modified.js +++ b/node_modules/minimist/test/parse_modified.js @@ -1,9 +1,11 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); -test('parse with modifier functions' , function (t) { - t.plan(1); - - var argv = parse([ '-b', '123' ], { boolean: 'b' }); - t.deepEqual(argv, { b: true, _: [123] }); +test('parse with modifier functions', function (t) { + t.plan(1); + + var argv = parse(['-b', '123'], { boolean: 'b' }); + t.deepEqual(argv, { b: true, _: [123] }); }); diff --git a/node_modules/minimist/test/proto.js b/node_modules/minimist/test/proto.js index 8649107..6e629dd 100644 --- a/node_modules/minimist/test/proto.js +++ b/node_modules/minimist/test/proto.js @@ -1,44 +1,64 @@ +'use strict'; + +/* eslint no-proto: 0 */ + var parse = require('../'); var test = require('tape'); test('proto pollution', function (t) { - var argv = parse(['--__proto__.x','123']); - t.equal({}.x, undefined); - t.equal(argv.__proto__.x, undefined); - t.equal(argv.x, undefined); - t.end(); + var argv = parse(['--__proto__.x', '123']); + t.equal({}.x, undefined); + t.equal(argv.__proto__.x, undefined); + t.equal(argv.x, undefined); + t.end(); }); test('proto pollution (array)', function (t) { - var argv = parse(['--x','4','--x','5','--x.__proto__.z','789']); - t.equal({}.z, undefined); - t.deepEqual(argv.x, [4,5]); - t.equal(argv.x.z, undefined); - t.equal(argv.x.__proto__.z, undefined); - t.end(); + var argv = parse(['--x', '4', '--x', '5', '--x.__proto__.z', '789']); + t.equal({}.z, undefined); + t.deepEqual(argv.x, [4, 5]); + t.equal(argv.x.z, undefined); + t.equal(argv.x.__proto__.z, undefined); + t.end(); }); test('proto pollution (number)', function (t) { - var argv = parse(['--x','5','--x.__proto__.z','100']); - t.equal({}.z, undefined); - t.equal((4).z, undefined); - t.equal(argv.x, 5); - t.equal(argv.x.z, undefined); - t.end(); + var argv = parse(['--x', '5', '--x.__proto__.z', '100']); + t.equal({}.z, undefined); + t.equal((4).z, undefined); + t.equal(argv.x, 5); + t.equal(argv.x.z, undefined); + t.end(); }); test('proto pollution (string)', function (t) { - var argv = parse(['--x','abc','--x.__proto__.z','def']); - t.equal({}.z, undefined); - t.equal('...'.z, undefined); - t.equal(argv.x, 'abc'); - t.equal(argv.x.z, undefined); - t.end(); + var argv = parse(['--x', 'abc', '--x.__proto__.z', 'def']); + t.equal({}.z, undefined); + t.equal('...'.z, undefined); + t.equal(argv.x, 'abc'); + t.equal(argv.x.z, undefined); + t.end(); }); test('proto pollution (constructor)', function (t) { - var argv = parse(['--constructor.prototype.y','123']); - t.equal({}.y, undefined); - t.equal(argv.y, undefined); - t.end(); + var argv = parse(['--constructor.prototype.y', '123']); + t.equal({}.y, undefined); + t.equal(argv.y, undefined); + t.end(); +}); + +test('proto pollution (constructor function)', function (t) { + var argv = parse(['--_.concat.constructor.prototype.y', '123']); + function fnToBeTested() {} + t.equal(fnToBeTested.y, undefined); + t.equal(argv.y, undefined); + t.end(); +}); + +// powered by snyk - https://github.com/backstage/backstage/issues/10343 +test('proto pollution (constructor function) snyk', function (t) { + var argv = parse('--_.constructor.constructor.prototype.foo bar'.split(' ')); + t.equal(function () {}.foo, undefined); + t.equal(argv.y, undefined); + t.end(); }); diff --git a/node_modules/minimist/test/short.js b/node_modules/minimist/test/short.js index d513a1c..4a7b843 100644 --- a/node_modules/minimist/test/short.js +++ b/node_modules/minimist/test/short.js @@ -1,67 +1,69 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('numeric short args', function (t) { - t.plan(2); - t.deepEqual(parse([ '-n123' ]), { n: 123, _: [] }); - t.deepEqual( - parse([ '-123', '456' ]), - { 1: true, 2: true, 3: 456, _: [] } - ); + t.plan(2); + t.deepEqual(parse(['-n123']), { n: 123, _: [] }); + t.deepEqual( + parse(['-123', '456']), + { 1: true, 2: true, 3: 456, _: [] } + ); }); test('short', function (t) { - t.deepEqual( - parse([ '-b' ]), - { b : true, _ : [] }, - 'short boolean' - ); - t.deepEqual( - parse([ 'foo', 'bar', 'baz' ]), - { _ : [ 'foo', 'bar', 'baz' ] }, - 'bare' - ); - t.deepEqual( - parse([ '-cats' ]), - { c : true, a : true, t : true, s : true, _ : [] }, - 'group' - ); - t.deepEqual( - parse([ '-cats', 'meow' ]), - { c : true, a : true, t : true, s : 'meow', _ : [] }, - 'short group next' - ); - t.deepEqual( - parse([ '-h', 'localhost' ]), - { h : 'localhost', _ : [] }, - 'short capture' - ); - t.deepEqual( - parse([ '-h', 'localhost', '-p', '555' ]), - { h : 'localhost', p : 555, _ : [] }, - 'short captures' - ); - t.end(); + t.deepEqual( + parse(['-b']), + { b: true, _: [] }, + 'short boolean' + ); + t.deepEqual( + parse(['foo', 'bar', 'baz']), + { _: ['foo', 'bar', 'baz'] }, + 'bare' + ); + t.deepEqual( + parse(['-cats']), + { c: true, a: true, t: true, s: true, _: [] }, + 'group' + ); + t.deepEqual( + parse(['-cats', 'meow']), + { c: true, a: true, t: true, s: 'meow', _: [] }, + 'short group next' + ); + t.deepEqual( + parse(['-h', 'localhost']), + { h: 'localhost', _: [] }, + 'short capture' + ); + t.deepEqual( + parse(['-h', 'localhost', '-p', '555']), + { h: 'localhost', p: 555, _: [] }, + 'short captures' + ); + t.end(); }); - + test('mixed short bool and capture', function (t) { - t.same( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); + t.same( + parse(['-h', 'localhost', '-fp', '555', 'script.js']), + { + f: true, p: 555, h: 'localhost', + _: ['script.js'], + } + ); + t.end(); }); - + test('short and long', function (t) { - t.deepEqual( - parse([ '-h', 'localhost', '-fp', '555', 'script.js' ]), - { - f : true, p : 555, h : 'localhost', - _ : [ 'script.js' ] - } - ); - t.end(); + t.deepEqual( + parse(['-h', 'localhost', '-fp', '555', 'script.js']), + { + f: true, p: 555, h: 'localhost', + _: ['script.js'], + } + ); + t.end(); }); diff --git a/node_modules/minimist/test/stop_early.js b/node_modules/minimist/test/stop_early.js index bdf9fbc..52a6a91 100644 --- a/node_modules/minimist/test/stop_early.js +++ b/node_modules/minimist/test/stop_early.js @@ -1,15 +1,17 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('stops parsing on the first non-option when stopEarly is set', function (t) { - var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { - stopEarly: true - }); + var argv = parse(['--aaa', 'bbb', 'ccc', '--ddd'], { + stopEarly: true, + }); - t.deepEqual(argv, { - aaa: 'bbb', - _: ['ccc', '--ddd'] - }); + t.deepEqual(argv, { + aaa: 'bbb', + _: ['ccc', '--ddd'], + }); - t.end(); + t.end(); }); diff --git a/node_modules/minimist/test/unknown.js b/node_modules/minimist/test/unknown.js index 462a36b..4f2e0ca 100644 --- a/node_modules/minimist/test/unknown.js +++ b/node_modules/minimist/test/unknown.js @@ -1,102 +1,104 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); test('boolean and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'true', '--derp', 'true' ]; - var regular = [ '--herp', 'true', '-d', 'true' ]; - var opts = { - alias: { h: 'herp' }, - boolean: 'h', - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ['-h', 'true', '--derp', 'true']; + var regular = ['--herp', 'true', '-d', 'true']; + var opts = { + alias: { h: 'herp' }, + boolean: 'h', + unknown: unknownFn, + }; + parse(aliased, opts); + parse(regular, opts); - t.same(unknown, ['--derp', '-d']); - t.end(); + t.same(unknown, ['--derp', '-d']); + t.end(); }); test('flag boolean true any double hyphen argument is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { - boolean: true, - unknown: unknownFn - }); - t.same(unknown, ['--tacos=good', 'cow', '-p']); - t.same(argv, { - honk: true, - _: [] - }); - t.end(); + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var argv = parse(['--honk', '--tacos=good', 'cow', '-p', '55'], { + boolean: true, + unknown: unknownFn, + }); + t.same(unknown, ['--tacos=good', 'cow', '-p']); + t.same(argv, { + honk: true, + _: [], + }); + t.end(); }); test('string and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'hello', '--derp', 'goodbye' ]; - var regular = [ '--herp', 'hello', '-d', 'moon' ]; - var opts = { - alias: { h: 'herp' }, - string: 'h', - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ['-h', 'hello', '--derp', 'goodbye']; + var regular = ['--herp', 'hello', '-d', 'moon']; + var opts = { + alias: { h: 'herp' }, + string: 'h', + unknown: unknownFn, + }; + parse(aliased, opts); + parse(regular, opts); - t.same(unknown, ['--derp', '-d']); - t.end(); + t.same(unknown, ['--derp', '-d']); + t.end(); }); test('default and alias is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '-h', 'hello' ]; - var regular = [ '--herp', 'hello' ]; - var opts = { - default: { 'h': 'bar' }, - alias: { 'h': 'herp' }, - unknown: unknownFn - }; - var aliasedArgv = parse(aliased, opts); - var propertyArgv = parse(regular, opts); + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ['-h', 'hello']; + var regular = ['--herp', 'hello']; + var opts = { + default: { h: 'bar' }, + alias: { h: 'herp' }, + unknown: unknownFn, + }; + parse(aliased, opts); + parse(regular, opts); - t.same(unknown, []); - t.end(); - unknownFn(); // exercise fn for 100% coverage + t.same(unknown, []); + t.end(); + unknownFn(); // exercise fn for 100% coverage }); test('value following -- is not unknown', function (t) { - var unknown = []; - function unknownFn(arg) { - unknown.push(arg); - return false; - } - var aliased = [ '--bad', '--', 'good', 'arg' ]; - var opts = { - '--': true, - unknown: unknownFn - }; - var argv = parse(aliased, opts); + var unknown = []; + function unknownFn(arg) { + unknown.push(arg); + return false; + } + var aliased = ['--bad', '--', 'good', 'arg']; + var opts = { + '--': true, + unknown: unknownFn, + }; + var argv = parse(aliased, opts); - t.same(unknown, ['--bad']); - t.same(argv, { - '--': ['good', 'arg'], - '_': [] - }) - t.end(); + t.same(unknown, ['--bad']); + t.same(argv, { + '--': ['good', 'arg'], + _: [], + }); + t.end(); }); diff --git a/node_modules/minimist/test/whitespace.js b/node_modules/minimist/test/whitespace.js index 8a52a58..4fdaf1d 100644 --- a/node_modules/minimist/test/whitespace.js +++ b/node_modules/minimist/test/whitespace.js @@ -1,8 +1,10 @@ +'use strict'; + var parse = require('../'); var test = require('tape'); -test('whitespace should be whitespace' , function (t) { - t.plan(1); - var x = parse([ '-x', '\t' ]).x; - t.equal(x, '\t'); +test('whitespace should be whitespace', function (t) { + t.plan(1); + var x = parse(['-x', '\t']).x; + t.equal(x, '\t'); }); diff --git a/node_modules/object-inspect/.eslintignore b/node_modules/object-inspect/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/object-inspect/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/object-inspect/.eslintrc b/node_modules/object-inspect/.eslintrc index 8a2d30e..21f9039 100644 --- a/node_modules/object-inspect/.eslintrc +++ b/node_modules/object-inspect/.eslintrc @@ -12,25 +12,14 @@ "max-statements-per-line": [2, { "max": 2 }], "no-magic-numbers": 0, "no-param-reassign": 1, - "operator-linebreak": [2, "before"], "strict": 0, // TODO }, - "globals": { - "BigInt": false, - "WeakSet": false, - "WeakMap": false, - }, "overrides": [ { "files": ["test/**", "test-*", "example/**"], + "extends": "@ljharb/eslint-config/tests", "rules": { - "array-bracket-newline": 0, "id-length": 0, - "max-params": 0, - "max-statements": 0, - "max-statements-per-line": 0, - "object-curly-newline": 0, - "sort-keys": 0, }, }, { diff --git a/node_modules/object-inspect/CHANGELOG.md b/node_modules/object-inspect/CHANGELOG.md new file mode 100644 index 0000000..d42237c --- /dev/null +++ b/node_modules/object-inspect/CHANGELOG.md @@ -0,0 +1,370 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.12.3](https://github.com/inspect-js/object-inspect/compare/v1.12.2...v1.12.3) - 2023-01-12 + +### Commits + +- [Fix] in eg FF 24, collections lack forEach [`75fc226`](https://github.com/inspect-js/object-inspect/commit/75fc22673c82d45f28322b1946bb0eb41b672b7f) +- [actions] update rebase action to use reusable workflow [`250a277`](https://github.com/inspect-js/object-inspect/commit/250a277a095e9dacc029ab8454dcfc15de549dcd) +- [Dev Deps] update `aud`, `es-value-fixtures`, `tape` [`66a19b3`](https://github.com/inspect-js/object-inspect/commit/66a19b3209ccc3c5ef4b34c3cb0160e65d1ce9d5) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `error-cause` [`c43d332`](https://github.com/inspect-js/object-inspect/commit/c43d3324b48384a16fd3dc444e5fc589d785bef3) +- [Tests] add `@pkgjs/support` to `postlint` [`e2618d2`](https://github.com/inspect-js/object-inspect/commit/e2618d22a7a3fa361b6629b53c1752fddc9c4d80) + +## [v1.12.2](https://github.com/inspect-js/object-inspect/compare/v1.12.1...v1.12.2) - 2022-05-26 + +### Commits + +- [Fix] use `util.inspect` for a custom inspection symbol method [`e243bf2`](https://github.com/inspect-js/object-inspect/commit/e243bf2eda6c4403ac6f1146fddb14d12e9646c1) +- [meta] add support info [`ca20ba3`](https://github.com/inspect-js/object-inspect/commit/ca20ba35713c17068ca912a86c542f5e8acb656c) +- [Fix] ignore `cause` in node v16.9 and v16.10 where it has a bug [`86aa553`](https://github.com/inspect-js/object-inspect/commit/86aa553a4a455562c2c56f1540f0bf857b9d314b) + +## [v1.12.1](https://github.com/inspect-js/object-inspect/compare/v1.12.0...v1.12.1) - 2022-05-21 + +### Commits + +- [Tests] use `mock-property` [`4ec8893`](https://github.com/inspect-js/object-inspect/commit/4ec8893ea9bfd28065ca3638cf6762424bf44352) +- [meta] use `npmignore` to autogenerate an npmignore file [`07f868c`](https://github.com/inspect-js/object-inspect/commit/07f868c10bd25a9d18686528339bb749c211fc9a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`b05244b`](https://github.com/inspect-js/object-inspect/commit/b05244b4f331e00c43b3151bc498041be77ccc91) +- [Dev Deps] update `@ljharb/eslint-config`, `error-cause`, `es-value-fixtures`, `functions-have-names`, `tape` [`d037398`](https://github.com/inspect-js/object-inspect/commit/d037398dcc5d531532e4c19c4a711ed677f579c1) +- [Fix] properly handle callable regexes in older engines [`848fe48`](https://github.com/inspect-js/object-inspect/commit/848fe48bd6dd0064ba781ee6f3c5e54a94144c37) + +## [v1.12.0](https://github.com/inspect-js/object-inspect/compare/v1.11.1...v1.12.0) - 2021-12-18 + +### Commits + +- [New] add `numericSeparator` boolean option [`2d2d537`](https://github.com/inspect-js/object-inspect/commit/2d2d537f5359a4300ce1c10241369f8024f89e11) +- [Robustness] cache more prototype methods [`191533d`](https://github.com/inspect-js/object-inspect/commit/191533da8aec98a05eadd73a5a6e979c9c8653e8) +- [New] ensure an Error’s `cause` is displayed [`53bc2ce`](https://github.com/inspect-js/object-inspect/commit/53bc2cee4e5a9cc4986f3cafa22c0685f340715e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`bc164b6`](https://github.com/inspect-js/object-inspect/commit/bc164b6e2e7d36b263970f16f54de63048b84a36) +- [Robustness] cache `RegExp.prototype.test` [`a314ab8`](https://github.com/inspect-js/object-inspect/commit/a314ab8271b905cbabc594c82914d2485a8daf12) +- [meta] fix auto-changelog settings [`5ed0983`](https://github.com/inspect-js/object-inspect/commit/5ed0983be72f73e32e2559997517a95525c7e20d) + +## [v1.11.1](https://github.com/inspect-js/object-inspect/compare/v1.11.0...v1.11.1) - 2021-12-05 + +### Commits + +- [meta] add `auto-changelog` [`7dbdd22`](https://github.com/inspect-js/object-inspect/commit/7dbdd228401d6025d8b7391476d88aee9ea9bbdf) +- [actions] reuse common workflows [`c8823bc`](https://github.com/inspect-js/object-inspect/commit/c8823bc0a8790729680709d45fb6e652432e91aa) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`7532b12`](https://github.com/inspect-js/object-inspect/commit/7532b120598307497b712890f75af8056f6d37a6) +- [Refactor] use `has-tostringtag` to behave correctly in the presence of symbol shams [`94abb5d`](https://github.com/inspect-js/object-inspect/commit/94abb5d4e745bf33253942dea86b3e538d2ff6c6) +- [actions] update codecov uploader [`5ed5102`](https://github.com/inspect-js/object-inspect/commit/5ed51025267a00e53b1341357315490ac4eb0874) +- [Dev Deps] update `eslint`, `tape` [`37b2ad2`](https://github.com/inspect-js/object-inspect/commit/37b2ad26c08d94bfd01d5d07069a0b28ef4e2ad7) +- [meta] add `sideEffects` flag [`d341f90`](https://github.com/inspect-js/object-inspect/commit/d341f905ef8bffa6a694cda6ddc5ba343532cd4f) + +## [v1.11.0](https://github.com/inspect-js/object-inspect/compare/v1.10.3...v1.11.0) - 2021-07-12 + +### Commits + +- [New] `customInspect`: add `symbol` option, to mimic modern util.inspect behavior [`e973a6e`](https://github.com/inspect-js/object-inspect/commit/e973a6e21f8140c5837cf25e9d89bdde88dc3120) +- [Dev Deps] update `eslint` [`05f1cb3`](https://github.com/inspect-js/object-inspect/commit/05f1cb3cbcfe1f238e8b51cf9bc294305b7ed793) + +## [v1.10.3](https://github.com/inspect-js/object-inspect/compare/v1.10.2...v1.10.3) - 2021-05-07 + +### Commits + +- [Fix] handle core-js Symbol shams [`4acfc2c`](https://github.com/inspect-js/object-inspect/commit/4acfc2c4b503498759120eb517abad6d51c9c5d6) +- [readme] update badges [`95c323a`](https://github.com/inspect-js/object-inspect/commit/95c323ad909d6cbabb95dd6015c190ba6db9c1f2) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud` [`cb38f48`](https://github.com/inspect-js/object-inspect/commit/cb38f485de6ec7a95109b5a9bbd0a1deba2f6611) + +## [v1.10.2](https://github.com/inspect-js/object-inspect/compare/v1.10.1...v1.10.2) - 2021-04-17 + +### Commits + +- [Fix] use a robust check for a boxed Symbol [`87f12d6`](https://github.com/inspect-js/object-inspect/commit/87f12d6e69ce530be04659c81a4cd502943acac5) + +## [v1.10.1](https://github.com/inspect-js/object-inspect/compare/v1.10.0...v1.10.1) - 2021-04-17 + +### Commits + +- [Fix] use a robust check for a boxed bigint [`d5ca829`](https://github.com/inspect-js/object-inspect/commit/d5ca8298b6d2e5c7b9334a5b21b96ed95d225c91) + +## [v1.10.0](https://github.com/inspect-js/object-inspect/compare/v1.9.0...v1.10.0) - 2021-04-17 + +### Commits + +- [Tests] increase coverage [`d8abb8a`](https://github.com/inspect-js/object-inspect/commit/d8abb8a62c2f084919df994a433b346e0d87a227) +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`4bfec2e`](https://github.com/inspect-js/object-inspect/commit/4bfec2e30aaef6ddef6cbb1448306f9f8b9520b7) +- [New] respect `Symbol.toStringTag` on objects [`799b58f`](https://github.com/inspect-js/object-inspect/commit/799b58f536a45e4484633a8e9daeb0330835f175) +- [Fix] do not allow Symbol.toStringTag to masquerade as builtins [`d6c5b37`](https://github.com/inspect-js/object-inspect/commit/d6c5b37d7e94427796b82432fb0c8964f033a6ab) +- [New] add `WeakRef` support [`b6d898e`](https://github.com/inspect-js/object-inspect/commit/b6d898ee21868c780a7ee66b28532b5b34ed7f09) +- [meta] do not publish github action workflow files [`918cdfc`](https://github.com/inspect-js/object-inspect/commit/918cdfc4b6fe83f559ff6ef04fe66201e3ff5cbd) +- [meta] create `FUNDING.yml` [`0bb5fc5`](https://github.com/inspect-js/object-inspect/commit/0bb5fc516dbcd2cd728bd89cee0b580acc5ce301) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`22c8dc0`](https://github.com/inspect-js/object-inspect/commit/22c8dc0cac113d70f4781e49a950070923a671be) +- [meta] use `prepublishOnly` script for npm 7+ [`e52ee09`](https://github.com/inspect-js/object-inspect/commit/e52ee09e8050b8dbac94ef57f786675567728223) +- [Dev Deps] update `eslint` [`7c4e6fd`](https://github.com/inspect-js/object-inspect/commit/7c4e6fdedcd27cc980e13c9ad834d05a96f3d40c) + +## [v1.9.0](https://github.com/inspect-js/object-inspect/compare/v1.8.0...v1.9.0) - 2020-11-30 + +### Commits + +- [Tests] migrate tests to Github Actions [`d262251`](https://github.com/inspect-js/object-inspect/commit/d262251e13e16d3490b5473672f6b6d6ff86675d) +- [New] add enumerable own Symbols to plain object output [`ee60c03`](https://github.com/inspect-js/object-inspect/commit/ee60c033088cff9d33baa71e59a362a541b48284) +- [Tests] add passing tests [`01ac3e4`](https://github.com/inspect-js/object-inspect/commit/01ac3e4b5a30f97875a63dc9b1416b3bd626afc9) +- [actions] add "Require Allow Edits" action [`c2d7746`](https://github.com/inspect-js/object-inspect/commit/c2d774680cde4ca4af332d84d4121b26f798ba9e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `core-js` [`70058de`](https://github.com/inspect-js/object-inspect/commit/70058de1579fc54d1d15ed6c2dbe246637ce70ff) +- [Fix] hex characters in strings should be uppercased, to match node `assert` [`6ab8faa`](https://github.com/inspect-js/object-inspect/commit/6ab8faaa0abc08fe7a8e2afd8b39c6f1f0e00113) +- [Tests] run `nyc` on all tests [`4c47372`](https://github.com/inspect-js/object-inspect/commit/4c473727879ddc8e28b599202551ddaaf07b6210) +- [Tests] node 0.8 has an unpredictable property order; fix `groups` test by removing property [`f192069`](https://github.com/inspect-js/object-inspect/commit/f192069a978a3b60e6f0e0d45ac7df260ab9a778) +- [New] add enumerable properties to Function inspect result, per node’s `assert` [`fd38e1b`](https://github.com/inspect-js/object-inspect/commit/fd38e1bc3e2a1dc82091ce3e021917462eee64fc) +- [Tests] fix tests for node < 10, due to regex match `groups` [`2ac6462`](https://github.com/inspect-js/object-inspect/commit/2ac6462cc4f72eaa0b63a8cfee9aabe3008b2330) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` [`44b59e2`](https://github.com/inspect-js/object-inspect/commit/44b59e2676a7f825ef530dfd19dafb599e3b9456) +- [Robustness] cache `Symbol.prototype.toString` [`f3c2074`](https://github.com/inspect-js/object-inspect/commit/f3c2074d8f32faf8292587c07c9678ea931703dd) +- [Dev Deps] update `eslint` [`9411294`](https://github.com/inspect-js/object-inspect/commit/94112944b9245e3302e25453277876402d207e7f) +- [meta] `require-allow-edits` no longer requires an explicit github token [`36c0220`](https://github.com/inspect-js/object-inspect/commit/36c02205de3c2b0e84d53777c5c9fd54a36c48ab) +- [actions] update rebase checkout action to v2 [`55a39a6`](https://github.com/inspect-js/object-inspect/commit/55a39a64e944f19c6a7d8efddf3df27700f20d14) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`f59fd3c`](https://github.com/inspect-js/object-inspect/commit/f59fd3cf406c3a7c7ece140904a80bbc6bacfcca) +- [Dev Deps] update `eslint` [`a492bec`](https://github.com/inspect-js/object-inspect/commit/a492becec644b0155c9c4bc1caf6f9fac11fb2c7) + +## [v1.8.0](https://github.com/inspect-js/object-inspect/compare/v1.7.0...v1.8.0) - 2020-06-18 + +### Fixed + +- [New] add `indent` option [`#27`](https://github.com/inspect-js/object-inspect/issues/27) + +### Commits + +- [Tests] add codecov [`4324cbb`](https://github.com/inspect-js/object-inspect/commit/4324cbb1a2bd7710822a4151ff373570db22453e) +- [New] add `maxStringLength` option [`b3995cb`](https://github.com/inspect-js/object-inspect/commit/b3995cb71e15b5ee127a3094c43994df9d973502) +- [New] add `customInspect` option, to disable custom inspect methods [`28b9179`](https://github.com/inspect-js/object-inspect/commit/28b9179ee802bb3b90810100c11637db90c2fb6d) +- [Tests] add Date and RegExp tests [`3b28eca`](https://github.com/inspect-js/object-inspect/commit/3b28eca57b0367aeadffac604ea09e8bdae7d97b) +- [actions] add automatic rebasing / merge commit blocking [`0d9c6c0`](https://github.com/inspect-js/object-inspect/commit/0d9c6c044e83475ff0bfffb9d35b149834c83a2e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `tape`; add `aud` [`7c204f2`](https://github.com/inspect-js/object-inspect/commit/7c204f22b9e41bc97147f4d32d4cb045b17769a6) +- [readme] fix repo URLs, remove testling [`34ca9a0`](https://github.com/inspect-js/object-inspect/commit/34ca9a0dabfe75bd311f806a326fadad029909a3) +- [Fix] when truncating a deep array, note it as `[Array]` instead of just `[Object]` [`f74c82d`](https://github.com/inspect-js/object-inspect/commit/f74c82dd0b35386445510deb250f34c41be3ec0e) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`1a8a5ea`](https://github.com/inspect-js/object-inspect/commit/1a8a5ea069ea2bee89d77caedad83ffa23d35711) +- [Fix] do not be fooled by a function’s own `toString` method [`7cb5c65`](https://github.com/inspect-js/object-inspect/commit/7cb5c657a976f94715c19c10556a30f15bb7d5d7) +- [patch] indicate explicitly that anon functions are anonymous, to match node [`81ebdd4`](https://github.com/inspect-js/object-inspect/commit/81ebdd4215005144074bbdff3f6bafa01407910a) +- [Dev Deps] loosen the `core-js` dep [`e7472e8`](https://github.com/inspect-js/object-inspect/commit/e7472e8e242117670560bd995830c2a4d12080f5) +- [Dev Deps] update `tape` [`699827e`](https://github.com/inspect-js/object-inspect/commit/699827e6b37258b5203c33c78c009bf4b0e6a66d) +- [meta] add `safe-publish-latest` [`c5d2868`](https://github.com/inspect-js/object-inspect/commit/c5d2868d6eb33c472f37a20f89ceef2787046088) +- [Dev Deps] update `@ljharb/eslint-config` [`9199501`](https://github.com/inspect-js/object-inspect/commit/919950195d486114ccebacbdf9d74d7f382693b0) + +## [v1.7.0](https://github.com/inspect-js/object-inspect/compare/v1.6.0...v1.7.0) - 2019-11-10 + +### Commits + +- [Tests] use shared travis-ci configs [`19899ed`](https://github.com/inspect-js/object-inspect/commit/19899edbf31f4f8809acf745ce34ad1ce1bfa63b) +- [Tests] add linting [`a00f057`](https://github.com/inspect-js/object-inspect/commit/a00f057d917f66ea26dd37769c6b810ec4af97e8) +- [Tests] lint last file [`2698047`](https://github.com/inspect-js/object-inspect/commit/2698047b58af1e2e88061598ef37a75f228dddf6) +- [Tests] up to `node` `v12.7`, `v11.15`, `v10.16`, `v8.16`, `v6.17` [`589e87a`](https://github.com/inspect-js/object-inspect/commit/589e87a99cadcff4b600e6a303418e9d922836e8) +- [New] add support for `WeakMap` and `WeakSet` [`3ddb3e4`](https://github.com/inspect-js/object-inspect/commit/3ddb3e4e0c8287130c61a12e0ed9c104b1549306) +- [meta] clean up license so github can detect it properly [`27527bb`](https://github.com/inspect-js/object-inspect/commit/27527bb801520c9610c68cc3b55d6f20a2bee56d) +- [Tests] cover `util.inspect.custom` [`36d47b9`](https://github.com/inspect-js/object-inspect/commit/36d47b9c59056a57ef2f1491602c726359561800) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `core-js`, `tape` [`b614eaa`](https://github.com/inspect-js/object-inspect/commit/b614eaac901da0e5c69151f534671f990a94cace) +- [Tests] fix coverage thresholds [`7b7b176`](https://github.com/inspect-js/object-inspect/commit/7b7b176e15f8bd6e8b2f261ff5a493c2fe78d9c2) +- [Tests] bigint tests now can run on unflagged node [`063af31`](https://github.com/inspect-js/object-inspect/commit/063af31ce9cd13c202e3b67c07ba06dc9b7c0f81) +- [Refactor] add early bailout to `isMap` and `isSet` checks [`fc51047`](https://github.com/inspect-js/object-inspect/commit/fc5104714a3671d37e225813db79470d6335683b) +- [meta] add `funding` field [`7f9953a`](https://github.com/inspect-js/object-inspect/commit/7f9953a113eec7b064a6393cf9f90ba15f1d131b) +- [Tests] Fix invalid strict-mode syntax with hexadecimal [`a8b5425`](https://github.com/inspect-js/object-inspect/commit/a8b542503b4af1599a275209a1a99f5fdedb1ead) +- [Dev Deps] update `@ljharb/eslint-config` [`98df157`](https://github.com/inspect-js/object-inspect/commit/98df1577314d9188a3fc3f17fdcf2fba697ae1bd) +- add copyright to LICENSE [`bb69fd0`](https://github.com/inspect-js/object-inspect/commit/bb69fd017a062d299e44da1f9b2c7dcd67f621e6) +- [Tests] use `npx aud` in `posttest` [`4838353`](https://github.com/inspect-js/object-inspect/commit/4838353593974cf7f905b9ef04c03c094f0cdbe2) +- [Tests] move `0.6` to allowed failures, because it won‘t build on travis [`1bff32a`](https://github.com/inspect-js/object-inspect/commit/1bff32aa52e8aea687f0856b28ba754b3e43ebf7) + +## [v1.6.0](https://github.com/inspect-js/object-inspect/compare/v1.5.0...v1.6.0) - 2018-05-02 + +### Commits + +- [New] add support for boxed BigInt primitives [`356c66a`](https://github.com/inspect-js/object-inspect/commit/356c66a410e7aece7162c8319880a5ef647beaa9) +- [Tests] up to `node` `v10.0`, `v9.11`, `v8.11`, `v6.14`, `v4.9` [`c77b65b`](https://github.com/inspect-js/object-inspect/commit/c77b65bba593811b906b9ec57561c5cba92e2db3) +- [New] Add support for upcoming `BigInt` [`1ac548e`](https://github.com/inspect-js/object-inspect/commit/1ac548e4b27e26466c28c9a5e63e5d4e0591c31f) +- [Tests] run bigint tests in CI with --harmony-bigint flag [`d31b738`](https://github.com/inspect-js/object-inspect/commit/d31b73831880254b5c6cf5691cda9a149fbc5f04) +- [Dev Deps] update `core-js`, `tape` [`ff9eff6`](https://github.com/inspect-js/object-inspect/commit/ff9eff67113341ee1aaf80c1c22d683f43bfbccf) +- [Docs] fix example to use `safer-buffer` [`48cae12`](https://github.com/inspect-js/object-inspect/commit/48cae12a73ec6cacc955175bc56bbe6aee6a211f) + +## [v1.5.0](https://github.com/inspect-js/object-inspect/compare/v1.4.1...v1.5.0) - 2017-12-25 + +### Commits + +- [New] add `quoteStyle` option [`f5a72d2`](https://github.com/inspect-js/object-inspect/commit/f5a72d26edb3959b048f74c056ca7100a6b091e4) +- [Tests] add more test coverage [`30ebe4e`](https://github.com/inspect-js/object-inspect/commit/30ebe4e1fa943b99ecbb85be7614256d536e2759) +- [Tests] require 0.6 to pass [`99a008c`](https://github.com/inspect-js/object-inspect/commit/99a008ccace189a60fd7da18bf00e32c9572b980) + +## [v1.4.1](https://github.com/inspect-js/object-inspect/compare/v1.4.0...v1.4.1) - 2017-12-19 + +### Commits + +- [Tests] up to `node` `v9.3`, `v8.9`, `v6.12` [`6674476`](https://github.com/inspect-js/object-inspect/commit/6674476cc56acaac1bde96c84fed5ef631911906) +- [Fix] `inspect(Object(-0))` should be “Object(-0)”, not “Object(0)” [`d0a031f`](https://github.com/inspect-js/object-inspect/commit/d0a031f1cbb3024ee9982bfe364dd18a7e4d1bd3) + +## [v1.4.0](https://github.com/inspect-js/object-inspect/compare/v1.3.0...v1.4.0) - 2017-10-24 + +### Commits + +- [Tests] add `npm run coverage` [`3b48fb2`](https://github.com/inspect-js/object-inspect/commit/3b48fb25db037235eeb808f0b2830aad7aa36f70) +- [Tests] remove commented-out osx builds [`71e24db`](https://github.com/inspect-js/object-inspect/commit/71e24db8ad6ee3b9b381c5300b0475f2ba595a73) +- [New] add support for `util.inspect.custom`, in node only. [`20cca77`](https://github.com/inspect-js/object-inspect/commit/20cca7762d7e17f15b21a90793dff84acce155df) +- [Tests] up to `node` `v8.6`; use `nvm install-latest-npm` to ensure new npm doesn’t break old node [`252952d`](https://github.com/inspect-js/object-inspect/commit/252952d230d8065851dd3d4d5fe8398aae068529) +- [Tests] up to `node` `v8.8` [`4aa868d`](https://github.com/inspect-js/object-inspect/commit/4aa868d3a62914091d489dd6ec6eed194ee67cd3) +- [Dev Deps] update `core-js`, `tape` [`59483d1`](https://github.com/inspect-js/object-inspect/commit/59483d1df418f852f51fa0db7b24aa6b0209a27a) + +## [v1.3.0](https://github.com/inspect-js/object-inspect/compare/v1.2.2...v1.3.0) - 2017-07-31 + +### Fixed + +- [Fix] Map/Set: work around core-js bug < v2.5.0 [`#9`](https://github.com/inspect-js/object-inspect/issues/9) + +### Commits + +- [New] add support for arrays with additional object keys [`0d19937`](https://github.com/inspect-js/object-inspect/commit/0d199374ee37959e51539616666f420ccb29acb9) +- [Tests] up to `node` `v8.2`, `v7.10`, `v6.11`; fix new npm breaking on older nodes [`e24784a`](https://github.com/inspect-js/object-inspect/commit/e24784a90c49117787157a12a63897c49cf89bbb) +- Only apps should have lockfiles [`c6faebc`](https://github.com/inspect-js/object-inspect/commit/c6faebcb2ee486a889a4a1c4d78c0776c7576185) +- [Dev Deps] update `tape` [`7345a0a`](https://github.com/inspect-js/object-inspect/commit/7345a0aeba7e91b888a079c10004d17696a7f586) + +## [v1.2.2](https://github.com/inspect-js/object-inspect/compare/v1.2.1...v1.2.2) - 2017-03-24 + +### Commits + +- [Tests] up to `node` `v7.7`, `v6.10`, `v4.8`; improve test matrix [`a2ddc15`](https://github.com/inspect-js/object-inspect/commit/a2ddc15a1f2c65af18076eea1c0eb9cbceb478a0) +- [Tests] up to `node` `v7.0`, `v6.9`, `v5.12`, `v4.6`, `io.js` `v3.3`; improve test matrix [`a48949f`](https://github.com/inspect-js/object-inspect/commit/a48949f6b574b2d4d2298109d8e8d0eb3e7a83e7) +- [Performance] check for primitive types as early as possible. [`3b8092a`](https://github.com/inspect-js/object-inspect/commit/3b8092a2a4deffd0575f94334f00194e2d48dad3) +- [Refactor] remove unneeded `else`s. [`7255034`](https://github.com/inspect-js/object-inspect/commit/725503402e08de4f96f6bf2d8edef44ac36f26b6) +- [Refactor] avoid recreating `lowbyte` function every time. [`81edd34`](https://github.com/inspect-js/object-inspect/commit/81edd3475bd15bdd18e84de7472033dcf5004aaa) +- [Fix] differentiate -0 from 0 [`521d345`](https://github.com/inspect-js/object-inspect/commit/521d3456b009da7bf1c5785c8a9df5a9f8718264) +- [Refactor] move object key gathering into separate function [`aca6265`](https://github.com/inspect-js/object-inspect/commit/aca626536eaeef697196c6e9db3e90e7e0355b6a) +- [Refactor] consolidate wrapping logic for boxed primitives into a function. [`4e440cd`](https://github.com/inspect-js/object-inspect/commit/4e440cd9065df04802a2a1dead03f48c353ca301) +- [Robustness] use `typeof` instead of comparing to literal `undefined` [`5ca6f60`](https://github.com/inspect-js/object-inspect/commit/5ca6f601937506daff8ed2fcf686363b55807b69) +- [Refactor] consolidate Map/Set notations. [`4e576e5`](https://github.com/inspect-js/object-inspect/commit/4e576e5d7ed2f9ec3fb7f37a0d16732eb10758a9) +- [Tests] ensure that this function remains anonymous, despite ES6 name inference. [`7540ae5`](https://github.com/inspect-js/object-inspect/commit/7540ae591278756db614fa4def55ca413150e1a3) +- [Refactor] explicitly coerce Error objects to strings. [`7f4ca84`](https://github.com/inspect-js/object-inspect/commit/7f4ca8424ee8dc2c0ca5a422d94f7fac40327261) +- [Refactor] split up `var` declarations for debuggability [`6f2c11e`](https://github.com/inspect-js/object-inspect/commit/6f2c11e6a85418586a00292dcec5e97683f89bc3) +- [Robustness] cache `Object.prototype.toString` [`df44a20`](https://github.com/inspect-js/object-inspect/commit/df44a20adfccf31529d60d1df2079bfc3c836e27) +- [Dev Deps] update `tape` [`3ec714e`](https://github.com/inspect-js/object-inspect/commit/3ec714eba57bc3f58a6eb4fca1376f49e70d300a) +- [Dev Deps] update `tape` [`beb72d9`](https://github.com/inspect-js/object-inspect/commit/beb72d969653747d7cde300393c28755375329b0) + +## [v1.2.1](https://github.com/inspect-js/object-inspect/compare/v1.2.0...v1.2.1) - 2016-04-09 + +### Fixed + +- [Fix] fix Boolean `false` object inspection. [`#7`](https://github.com/substack/object-inspect/pull/7) + +## [v1.2.0](https://github.com/inspect-js/object-inspect/compare/v1.1.0...v1.2.0) - 2016-04-09 + +### Fixed + +- [New] add support for inspecting String/Number/Boolean objects. [`#6`](https://github.com/inspect-js/object-inspect/issues/6) + +### Commits + +- [Dev Deps] update `tape` [`742caa2`](https://github.com/inspect-js/object-inspect/commit/742caa262cf7af4c815d4821c8bd0129c1446432) + +## [v1.1.0](https://github.com/inspect-js/object-inspect/compare/1.0.2...v1.1.0) - 2015-12-14 + +### Merged + +- [New] add ES6 Map/Set support. [`#4`](https://github.com/inspect-js/object-inspect/pull/4) + +### Fixed + +- [New] add ES6 Map/Set support. [`#3`](https://github.com/inspect-js/object-inspect/issues/3) + +### Commits + +- Update `travis.yml` to test on bunches of `iojs` and `node` versions. [`4c1fd65`](https://github.com/inspect-js/object-inspect/commit/4c1fd65cc3bd95307e854d114b90478324287fd2) +- [Dev Deps] update `tape` [`88a907e`](https://github.com/inspect-js/object-inspect/commit/88a907e33afbe408e4b5d6e4e42a33143f88848c) + +## [1.0.2](https://github.com/inspect-js/object-inspect/compare/1.0.1...1.0.2) - 2015-08-07 + +### Commits + +- [Fix] Cache `Object.prototype.hasOwnProperty` in case it's deleted later. [`1d0075d`](https://github.com/inspect-js/object-inspect/commit/1d0075d3091dc82246feeb1f9871cb2b8ed227b3) +- [Dev Deps] Update `tape` [`ca8d5d7`](https://github.com/inspect-js/object-inspect/commit/ca8d5d75635ddbf76f944e628267581e04958457) +- gitignore node_modules since this is a reusable modules. [`ed41407`](https://github.com/inspect-js/object-inspect/commit/ed41407811743ca530cdeb28f982beb96026af82) + +## [1.0.1](https://github.com/inspect-js/object-inspect/compare/1.0.0...1.0.1) - 2015-07-19 + +### Commits + +- Make `inspect` work with symbol primitives and objects, including in node 0.11 and 0.12. [`ddf1b94`](https://github.com/inspect-js/object-inspect/commit/ddf1b94475ab951f1e3bccdc0a48e9073cfbfef4) +- bump tape [`103d674`](https://github.com/inspect-js/object-inspect/commit/103d67496b504bdcfdd765d303a773f87ec106e2) +- use newer travis config [`d497276`](https://github.com/inspect-js/object-inspect/commit/d497276c1da14234bb5098a59cf20de75fbc316a) + +## [1.0.0](https://github.com/inspect-js/object-inspect/compare/0.4.0...1.0.0) - 2014-08-05 + +### Commits + +- error inspect works properly [`260a22d`](https://github.com/inspect-js/object-inspect/commit/260a22d134d3a8a482c67d52091c6040c34f4299) +- seen coverage [`57269e8`](https://github.com/inspect-js/object-inspect/commit/57269e8baa992a7439047f47325111fdcbcb8417) +- htmlelement instance coverage [`397ffe1`](https://github.com/inspect-js/object-inspect/commit/397ffe10a1980350868043ef9de65686d438979f) +- more element coverage [`6905cc2`](https://github.com/inspect-js/object-inspect/commit/6905cc2f7df35600177e613b0642b4df5efd3eca) +- failing test for type errors [`385b615`](https://github.com/inspect-js/object-inspect/commit/385b6152e49b51b68449a662f410b084ed7c601a) +- fn name coverage [`edc906d`](https://github.com/inspect-js/object-inspect/commit/edc906d40fca6b9194d304062c037ee8e398c4c2) +- server-side element test [`362d1d3`](https://github.com/inspect-js/object-inspect/commit/362d1d3e86f187651c29feeb8478110afada385b) +- custom inspect fn [`e89b0f6`](https://github.com/inspect-js/object-inspect/commit/e89b0f6fe6d5e03681282af83732a509160435a6) +- fixed browser test [`b530882`](https://github.com/inspect-js/object-inspect/commit/b5308824a1c8471c5617e394766a03a6977102a9) +- depth test, matches node [`1cfd9e0`](https://github.com/inspect-js/object-inspect/commit/1cfd9e0285a4ae1dff44101ad482915d9bf47e48) +- exercise hasOwnProperty path [`8d753fb`](https://github.com/inspect-js/object-inspect/commit/8d753fb362a534fa1106e4d80f2ee9bea06a66d9) +- more cases covered for errors [`c5c46a5`](https://github.com/inspect-js/object-inspect/commit/c5c46a569ec4606583497e8550f0d8c7ad39a4a4) +- \W obj key test case [`b0eceee`](https://github.com/inspect-js/object-inspect/commit/b0eceeea6e0eb94d686c1046e99b9e25e5005f75) +- coverage for explicit depth param [`e12b91c`](https://github.com/inspect-js/object-inspect/commit/e12b91cd59683362f3a0e80f46481a0211e26c15) + +## [0.4.0](https://github.com/inspect-js/object-inspect/compare/0.3.1...0.4.0) - 2014-03-21 + +### Commits + +- passing lowbyte interpolation test [`b847511`](https://github.com/inspect-js/object-inspect/commit/b8475114f5def7e7961c5353d48d3d8d9a520985) +- lowbyte test [`4a2b0e1`](https://github.com/inspect-js/object-inspect/commit/4a2b0e142667fc933f195472759385ac08f3946c) + +## [0.3.1](https://github.com/inspect-js/object-inspect/compare/0.3.0...0.3.1) - 2014-03-04 + +### Commits + +- sort keys [`a07b19c`](https://github.com/inspect-js/object-inspect/commit/a07b19cc3b1521a82d4fafb6368b7a9775428a05) + +## [0.3.0](https://github.com/inspect-js/object-inspect/compare/0.2.0...0.3.0) - 2014-03-04 + +### Commits + +- [] and {} instead of [ ] and { } [`654c44b`](https://github.com/inspect-js/object-inspect/commit/654c44b2865811f3519e57bb8526e0821caf5c6b) + +## [0.2.0](https://github.com/inspect-js/object-inspect/compare/0.1.3...0.2.0) - 2014-03-04 + +### Commits + +- failing holes test [`99cdfad`](https://github.com/inspect-js/object-inspect/commit/99cdfad03c6474740275a75636fe6ca86c77737a) +- regex already work [`e324033`](https://github.com/inspect-js/object-inspect/commit/e324033267025995ec97d32ed0a65737c99477a6) +- failing undef/null test [`1f88a00`](https://github.com/inspect-js/object-inspect/commit/1f88a00265d3209719dda8117b7e6360b4c20943) +- holes in the all example [`7d345f3`](https://github.com/inspect-js/object-inspect/commit/7d345f3676dcbe980cff89a4f6c243269ebbb709) +- check for .inspect(), fixes Buffer use-case [`c3f7546`](https://github.com/inspect-js/object-inspect/commit/c3f75466dbca125347d49847c05262c292f12b79) +- fixes for holes [`ce25f73`](https://github.com/inspect-js/object-inspect/commit/ce25f736683de4b92ff27dc5471218415e2d78d8) +- weird null behavior [`405c1ea`](https://github.com/inspect-js/object-inspect/commit/405c1ea72cd5a8cf3b498c3eaa903d01b9fbcab5) +- tape is actually a devDependency, upgrade [`703b0ce`](https://github.com/inspect-js/object-inspect/commit/703b0ce6c5817b4245a082564bccd877e0bb6990) +- put date in the example [`a342219`](https://github.com/inspect-js/object-inspect/commit/a3422190eeaa013215f46df2d0d37b48595ac058) +- passing the null test [`4ab737e`](https://github.com/inspect-js/object-inspect/commit/4ab737ebf862a75d247ebe51e79307a34d6380d4) + +## [0.1.3](https://github.com/inspect-js/object-inspect/compare/0.1.1...0.1.3) - 2013-07-26 + +### Commits + +- special isElement() check [`882768a`](https://github.com/inspect-js/object-inspect/commit/882768a54035d30747be9de1baf14e5aa0daa128) +- oh right old IEs don't have indexOf either [`36d1275`](https://github.com/inspect-js/object-inspect/commit/36d12756c38b08a74370b0bb696c809e529913a5) + +## [0.1.1](https://github.com/inspect-js/object-inspect/compare/0.1.0...0.1.1) - 2013-07-26 + +### Commits + +- tests! [`4422fd9`](https://github.com/inspect-js/object-inspect/commit/4422fd95532c2745aa6c4f786f35f1090be29998) +- fix for ie<9, doesn't have hasOwnProperty [`6b7d611`](https://github.com/inspect-js/object-inspect/commit/6b7d61183050f6da801ea04473211da226482613) +- fix for all IEs: no f.name [`4e0c2f6`](https://github.com/inspect-js/object-inspect/commit/4e0c2f6dfd01c306d067d7163319acc97c94ee50) +- badges [`5ed0d88`](https://github.com/inspect-js/object-inspect/commit/5ed0d88e4e407f9cb327fa4a146c17921f9680f3) + +## [0.1.0](https://github.com/inspect-js/object-inspect/compare/0.0.0...0.1.0) - 2013-07-26 + +### Commits + +- [Function] for functions [`ad5c485`](https://github.com/inspect-js/object-inspect/commit/ad5c485098fc83352cb540a60b2548ca56820e0b) + +## 0.0.0 - 2013-07-26 + +### Commits + +- working browser example [`34be6b6`](https://github.com/inspect-js/object-inspect/commit/34be6b6548f9ce92bdc3c27572857ba0c4a1218d) +- package.json etc [`cad51f2`](https://github.com/inspect-js/object-inspect/commit/cad51f23fc6bcf1a456ed6abe16088256c2f632f) +- docs complete [`b80cce2`](https://github.com/inspect-js/object-inspect/commit/b80cce2490c4e7183a9ee11ea89071f0abec4446) +- circular example [`4b4a7b9`](https://github.com/inspect-js/object-inspect/commit/4b4a7b92209e4e6b4630976cb6bcd17d14165a59) +- string rep [`7afb479`](https://github.com/inspect-js/object-inspect/commit/7afb479baa798d27f09e0a178b72ea327f60f5c8) diff --git a/node_modules/object-inspect/index.js b/node_modules/object-inspect/index.js index 3af7e56..8496225 100644 --- a/node_modules/object-inspect/index.js +++ b/node_modules/object-inspect/index.js @@ -15,11 +15,24 @@ var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; var booleanValueOf = Boolean.prototype.valueOf; var objectToString = Object.prototype.toString; var functionToString = Function.prototype.toString; -var match = String.prototype.match; +var $match = String.prototype.match; +var $slice = String.prototype.slice; +var $replace = String.prototype.replace; +var $toUpperCase = String.prototype.toUpperCase; +var $toLowerCase = String.prototype.toLowerCase; +var $test = RegExp.prototype.test; +var $concat = Array.prototype.concat; +var $join = Array.prototype.join; +var $arrSlice = Array.prototype.slice; +var $floor = Math.floor; var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; var gOPS = Object.getOwnPropertySymbols; var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +// ie, `has-tostringtag/shams +var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol') + ? Symbol.toStringTag + : null; var isEnumerable = Object.prototype.propertyIsEnumerable; var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( @@ -30,9 +43,31 @@ var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPr : null ); -var inspectCustom = require('./util.inspect').custom; -var inspectSymbol = inspectCustom && isSymbol(inspectCustom) ? inspectCustom : null; -var toStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag !== 'undefined' ? Symbol.toStringTag : null; +function addNumericSeparator(num, str) { + if ( + num === Infinity + || num === -Infinity + || num !== num + || (num && num > -1000 && num < 1000) + || $test.call(/e/, str) + ) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === 'number') { + var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num) + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, ''); + } + } + return $replace.call(str, sepRegex, '$&_'); +} + +var utilInspect = require('./util.inspect'); +var inspectCustom = utilInspect.custom; +var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; module.exports = function inspect_(obj, options, depth, seen) { var opts = options || {}; @@ -59,8 +94,12 @@ module.exports = function inspect_(obj, options, depth, seen) { && opts.indent !== '\t' && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0) ) { - throw new TypeError('options "indent" must be "\\t", an integer > 0, or `null`'); + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); } + var numericSeparator = opts.numericSeparator; if (typeof obj === 'undefined') { return 'undefined'; @@ -79,10 +118,12 @@ module.exports = function inspect_(obj, options, depth, seen) { if (obj === 0) { return Infinity / obj > 0 ? '0' : '-0'; } - return String(obj); + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; } if (typeof obj === 'bigint') { - return String(obj) + 'n'; + var bigIntStr = String(obj) + 'n'; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; } var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth; @@ -101,7 +142,7 @@ module.exports = function inspect_(obj, options, depth, seen) { function inspect(value, from, noIndent) { if (from) { - seen = seen.slice(); + seen = $arrSlice.call(seen); seen.push(from); } if (noIndent) { @@ -116,24 +157,24 @@ module.exports = function inspect_(obj, options, depth, seen) { return inspect_(value, opts, depth + 1, seen); } - if (typeof obj === 'function') { + if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable var name = nameOf(obj); var keys = arrObjKeys(obj, inspect); - return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + keys.join(', ') + ' }' : ''); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : ''); } if (isSymbol(obj)) { - var symString = hasShammedSymbols ? String(obj).replace(/^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; } if (isElement(obj)) { - var s = '<' + String(obj.nodeName).toLowerCase(); + var s = '<' + $toLowerCase.call(String(obj.nodeName)); var attrs = obj.attributes || []; for (var i = 0; i < attrs.length; i++) { s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts); } s += '>'; if (obj.childNodes && obj.childNodes.length) { s += '...'; } - s += ''; + s += ''; return s; } if (isArray(obj)) { @@ -142,32 +183,39 @@ module.exports = function inspect_(obj, options, depth, seen) { if (indent && !singleLineValues(xs)) { return '[' + indentedJoin(xs, indent) + ']'; } - return '[ ' + xs.join(', ') + ' ]'; + return '[ ' + $join.call(xs, ', ') + ' ]'; } if (isError(obj)) { var parts = arrObjKeys(obj, inspect); + if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) { + return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }'; + } if (parts.length === 0) { return '[' + String(obj) + ']'; } - return '{ [' + String(obj) + '] ' + parts.join(', ') + ' }'; + return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }'; } if (typeof obj === 'object' && customInspect) { - if (inspectSymbol && typeof obj[inspectSymbol] === 'function') { - return obj[inspectSymbol](); + if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { return obj.inspect(); } } if (isMap(obj)) { var mapParts = []; - mapForEach.call(obj, function (value, key) { - mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); - }); + if (mapForEach) { + mapForEach.call(obj, function (value, key) { + mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); + }); + } return collectionOf('Map', mapSize.call(obj), mapParts, indent); } if (isSet(obj)) { var setParts = []; - setForEach.call(obj, function (value) { - setParts.push(inspect(value, obj)); - }); + if (setForEach) { + setForEach.call(obj, function (value) { + setParts.push(inspect(value, obj)); + }); + } return collectionOf('Set', setSize.call(obj), setParts, indent); } if (isWeakMap(obj)) { @@ -195,14 +243,14 @@ module.exports = function inspect_(obj, options, depth, seen) { var ys = arrObjKeys(obj, inspect); var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; var protoTag = obj instanceof Object ? '' : 'null prototype'; - var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? toStr(obj).slice(8, -1) : protoTag ? 'Object' : ''; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : ''; var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; - var tag = constructorTag + (stringTag || protoTag ? '[' + [].concat(stringTag || [], protoTag || []).join(': ') + '] ' : ''); + var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : ''); if (ys.length === 0) { return tag + '{}'; } if (indent) { return tag + '{' + indentedJoin(ys, indent) + '}'; } - return tag + '{ ' + ys.join(', ') + ' }'; + return tag + '{ ' + $join.call(ys, ', ') + ' }'; } return String(obj); }; @@ -213,7 +261,7 @@ function wrapQuotes(s, defaultStyle, opts) { } function quote(s) { - return String(s).replace(/"/g, '"'); + return $replace.call(String(s), /"/g, '"'); } function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } @@ -264,7 +312,7 @@ function toStr(obj) { function nameOf(f) { if (f.name) { return f.name; } - var m = match.call(functionToString.call(f), /^function\s*([\w$]+)/); + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); if (m) { return m[1]; } return null; } @@ -364,10 +412,10 @@ function inspectString(str, opts) { if (str.length > opts.maxStringLength) { var remaining = str.length - opts.maxStringLength; var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : ''); - return inspectString(str.slice(0, opts.maxStringLength), opts) + trailer; + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; } // eslint-disable-next-line no-control-regex - var s = str.replace(/(['\\])/g, '\\$1').replace(/[\x00-\x1f]/g, lowbyte); + var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte); return wrapQuotes(s, 'single', opts); } @@ -381,7 +429,7 @@ function lowbyte(c) { 13: 'r' }[n]; if (x) { return '\\' + x; } - return '\\x' + (n < 0x10 ? '0' : '') + n.toString(16).toUpperCase(); + return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16)); } function markBoxed(str) { @@ -393,7 +441,7 @@ function weakCollectionOf(type) { } function collectionOf(type, size, entries, indent) { - var joinedEntries = indent ? indentedJoin(entries, indent) : entries.join(', '); + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', '); return type + ' (' + size + ') {' + joinedEntries + '}'; } @@ -411,20 +459,20 @@ function getIndent(opts, depth) { if (opts.indent === '\t') { baseIndent = '\t'; } else if (typeof opts.indent === 'number' && opts.indent > 0) { - baseIndent = Array(opts.indent + 1).join(' '); + baseIndent = $join.call(Array(opts.indent + 1), ' '); } else { return null; } return { base: baseIndent, - prev: Array(depth + 1).join(baseIndent) + prev: $join.call(Array(depth + 1), baseIndent) }; } function indentedJoin(xs, indent) { if (xs.length === 0) { return ''; } var lineJoiner = '\n' + indent.prev + indent.base; - return lineJoiner + xs.join(',' + lineJoiner) + '\n' + indent.prev; + return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev; } function arrObjKeys(obj, inspect) { @@ -451,7 +499,7 @@ function arrObjKeys(obj, inspect) { if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section continue; // eslint-disable-line no-restricted-syntax, no-continue - } else if ((/[^\w$]/).test(key)) { + } else if ($test.call(/[^\w$]/, key)) { xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); } else { xs.push(key + ': ' + inspect(obj[key], obj)); diff --git a/node_modules/object-inspect/package-support.json b/node_modules/object-inspect/package-support.json new file mode 100644 index 0000000..5cc12d0 --- /dev/null +++ b/node_modules/object-inspect/package-support.json @@ -0,0 +1,20 @@ +{ + "versions": [ + { + "version": "*", + "target": { + "node": "all" + }, + "response": { + "type": "time-permitting" + }, + "backing": { + "npm-funding": true, + "donations": [ + "https://github.com/ljharb", + "https://tidelift.com/funding/github/npm/object-inspect" + ] + } + } + ] +} diff --git a/node_modules/object-inspect/package.json b/node_modules/object-inspect/package.json index f568287..5f6d5cf 100644 --- a/node_modules/object-inspect/package.json +++ b/node_modules/object-inspect/package.json @@ -1,30 +1,43 @@ { "name": "object-inspect", - "version": "1.11.0", + "version": "1.12.3", "description": "string representations of objects in node and the browser", "main": "index.js", + "sideEffects": false, "devDependencies": { - "@ljharb/eslint-config": "^17.6.0", - "aud": "^1.1.5", + "@ljharb/eslint-config": "^21.0.1", + "@pkgjs/support": "^0.0.6", + "aud": "^2.0.2", + "auto-changelog": "^2.4.0", "core-js": "^2.6.12", - "eslint": "^7.30.0", + "error-cause": "^1.0.5", + "es-value-fixtures": "^1.4.2", + "eslint": "=8.8.0", "for-each": "^0.3.3", - "functions-have-names": "^1.2.2", + "functions-have-names": "^1.2.3", + "has-tostringtag": "^1.0.0", + "in-publish": "^2.0.1", "make-arrow-function": "^1.2.0", + "mock-property": "^1.0.0", + "npmignore": "^0.3.0", "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", + "safe-publish-latest": "^2.0.0", "string.prototype.repeat": "^1.0.0", - "tape": "^5.2.2" + "tape": "^5.6.1" }, "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", "prepublish": "not-in-publish || npm run prepublishOnly", "prepublishOnly": "safe-publish-latest", "pretest": "npm run lint", - "lint": "eslint .", + "lint": "eslint --ext=js,mjs .", + "postlint": "npx @pkgjs/support validate", "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" + "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)\")\"" }, "testling": { "files": [ @@ -66,10 +79,19 @@ "browser": { "./util.inspect.js": false }, - "greenkeeper": { + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { "ignore": [ - "nyc", - "core-js" + ".github/workflows", + "./test-core-js.js" ] - } + }, + "support": true } diff --git a/node_modules/object-inspect/readme.markdown b/node_modules/object-inspect/readme.markdown index 4cbe08d..9ff6bec 100644 --- a/node_modules/object-inspect/readme.markdown +++ b/node_modules/object-inspect/readme.markdown @@ -55,6 +55,7 @@ Additional options: - `maxStringLength`: must be `0`, a positive integer, `Infinity`, or `null`, if present. Default `Infinity`. - `customInspect`: When `true`, a custom inspect method function will be invoked (either undere the `util.inspect.custom` symbol, or the `inspect` property). When the string `'symbol'`, only the symbol method will be invoked. Default `true`. - `indent`: must be "\t", `null`, or a positive integer. Default `null`. + - `numericSeparator`: must be a boolean, if present. Default `false`. If `true`, all numbers will be printed with numeric separators (eg, `1234.5678` will be printed as `'1_234.567_8'`) # install diff --git a/node_modules/object-inspect/test/bigint.js b/node_modules/object-inspect/test/bigint.js index 9056435..4ecc31d 100644 --- a/node_modules/object-inspect/test/bigint.js +++ b/node_modules/object-inspect/test/bigint.js @@ -2,7 +2,7 @@ var inspect = require('../'); var test = require('tape'); -var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = require('has-tostringtag/shams')(); test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { t.test('primitives', function (st) { @@ -30,7 +30,7 @@ test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { st.equal(inspect(Function('return 256n')()), '256n'); }); - t.test('toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (st) { + t.test('toStringTag', { skip: !hasToStringTag }, function (st) { st.plan(1); var faker = {}; @@ -42,5 +42,17 @@ test('bigint', { skip: typeof BigInt === 'undefined' }, function (t) { ); }); + t.test('numericSeparator', function (st) { + st.equal(inspect(BigInt(0), { numericSeparator: false }), '0n', '0n, numericSeparator false'); + st.equal(inspect(BigInt(0), { numericSeparator: true }), '0n', '0n, numericSeparator true'); + + st.equal(inspect(BigInt(1234), { numericSeparator: false }), '1234n', '1234n, numericSeparator false'); + st.equal(inspect(BigInt(1234), { numericSeparator: true }), '1_234n', '1234n, numericSeparator true'); + st.equal(inspect(BigInt(-1234), { numericSeparator: false }), '-1234n', '1234n, numericSeparator false'); + st.equal(inspect(BigInt(-1234), { numericSeparator: true }), '-1_234n', '1234n, numericSeparator true'); + + st.end(); + }); + t.end(); }); diff --git a/node_modules/object-inspect/test/err.js b/node_modules/object-inspect/test/err.js index db96338..cc1d884 100644 --- a/node_modules/object-inspect/test/err.js +++ b/node_modules/object-inspect/test/err.js @@ -1,5 +1,7 @@ -var inspect = require('../'); var test = require('tape'); +var ErrorWithCause = require('error-cause/Error'); + +var inspect = require('../'); test('type error', function (t) { t.plan(1); @@ -14,18 +16,33 @@ test('type error', function (t) { cerr.message = 'whoa'; cerr['a-b'] = 5; + var withCause = new ErrorWithCause('foo', { cause: 'bar' }); + var withCausePlus = new ErrorWithCause('foo', { cause: 'bar' }); + withCausePlus.foo = 'bar'; + var withUndefinedCause = new ErrorWithCause('foo', { cause: undefined }); + var withEnumerableCause = new Error('foo'); + withEnumerableCause.cause = 'bar'; + var obj = [ new TypeError(), new TypeError('xxx'), aerr, berr, - cerr + cerr, + withCause, + withCausePlus, + withUndefinedCause, + withEnumerableCause ]; t.equal(inspect(obj), '[ ' + [ '[TypeError]', '[TypeError: xxx]', '{ [TypeError] foo: 555, bar: [ 1, 2, 3 ] }', '{ [TypeError: tuv] baz: 555 }', - '{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }' + '{ [SyntaxError: whoa] message: \'whoa\', \'a-b\': 5 }', + 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: \'bar\' }', + '{ [Error: foo] ' + ('cause' in Error.prototype ? '' : '[cause]: \'bar\', ') + 'foo: \'bar\' }', + 'cause' in Error.prototype ? '[Error: foo]' : '{ [Error: foo] [cause]: undefined }', + '{ [Error: foo] cause: \'bar\' }' ].join(', ') + ' ]'); }); diff --git a/node_modules/object-inspect/test/fakes.js b/node_modules/object-inspect/test/fakes.js index 17225e2..a65c08c 100644 --- a/node_modules/object-inspect/test/fakes.js +++ b/node_modules/object-inspect/test/fakes.js @@ -2,10 +2,10 @@ var inspect = require('../'); var test = require('tape'); -var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = require('has-tostringtag/shams')(); var forEach = require('for-each'); -test('fakes', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (t) { +test('fakes', { skip: !hasToStringTag }, function (t) { forEach([ 'Array', 'Boolean', diff --git a/node_modules/object-inspect/test/has.js b/node_modules/object-inspect/test/has.js index 026d6d5..01800de 100644 --- a/node_modules/object-inspect/test/has.js +++ b/node_modules/object-inspect/test/has.js @@ -1,34 +1,15 @@ +'use strict'; + var inspect = require('../'); var test = require('tape'); - -function withoutProperty(object, property, fn) { - var original; - if (Object.getOwnPropertyDescriptor) { - original = Object.getOwnPropertyDescriptor(object, property); - } else { - original = object[property]; - } - delete object[property]; - try { - fn(); - } finally { - if (Object.getOwnPropertyDescriptor) { - Object.defineProperty(object, property, original); - } else { - object[property] = original; - } - } -} +var mockProperty = require('mock-property'); test('when Object#hasOwnProperty is deleted', function (t) { t.plan(1); var arr = [1, , 3]; // eslint-disable-line no-sparse-arrays - // eslint-disable-next-line no-extend-native - Array.prototype[1] = 2; // this is needed to account for "in" vs "hasOwnProperty" + t.teardown(mockProperty(Array.prototype, 1, { value: 2 })); // this is needed to account for "in" vs "hasOwnProperty" + t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); - withoutProperty(Object.prototype, 'hasOwnProperty', function () { - t.equal(inspect(arr), '[ 1, , 3 ]'); - }); - delete Array.prototype[1]; + t.equal(inspect(arr), '[ 1, , 3 ]'); }); diff --git a/node_modules/object-inspect/test/inspect.js b/node_modules/object-inspect/test/inspect.js index bcf264e..1abf81b 100644 --- a/node_modules/object-inspect/test/inspect.js +++ b/node_modules/object-inspect/test/inspect.js @@ -100,3 +100,40 @@ test('maxStringLength', function (t) { t.end(); }); + +test('inspect options', { skip: !utilInspect.custom }, function (t) { + var obj = {}; + obj[utilInspect.custom] = function () { + return JSON.stringify(arguments); + }; + t.equal( + inspect(obj), + utilInspect(obj, { depth: 5 }), + 'custom symbols will use node\'s inspect' + ); + t.equal( + inspect(obj, { depth: 2 }), + utilInspect(obj, { depth: 2 }), + 'a reduced depth will be passed to node\'s inspect' + ); + t.equal( + inspect({ d1: obj }, { depth: 3 }), + '{ d1: ' + utilInspect(obj, { depth: 2 }) + ' }', + 'deep objects will receive a reduced depth' + ); + t.equal( + inspect({ d1: obj }, { depth: 1 }), + '{ d1: [Object] }', + 'unlike nodejs inspect, customInspect will not be used once the depth is exceeded.' + ); + t.end(); +}); + +test('inspect URL', { skip: typeof URL === 'undefined' }, function (t) { + t.match( + inspect(new URL('https://nodejs.org')), + /nodejs\.org/, // Different environments stringify it differently + 'url can be inspected' + ); + t.end(); +}); diff --git a/node_modules/object-inspect/test/number.js b/node_modules/object-inspect/test/number.js index 448304e..8f287e8 100644 --- a/node_modules/object-inspect/test/number.js +++ b/node_modules/object-inspect/test/number.js @@ -1,5 +1,8 @@ -var inspect = require('../'); var test = require('tape'); +var v = require('es-value-fixtures'); +var forEach = require('for-each'); + +var inspect = require('../'); test('negative zero', function (t) { t.equal(inspect(0), '0', 'inspect(0) === "0"'); @@ -10,3 +13,46 @@ test('negative zero', function (t) { t.end(); }); + +test('numericSeparator', function (t) { + forEach(v.nonBooleans, function (nonBoolean) { + t['throws']( + function () { inspect(true, { numericSeparator: nonBoolean }); }, + TypeError, + inspect(nonBoolean) + ' is not a boolean' + ); + }); + + t.test('3 digit numbers', function (st) { + var failed = false; + for (var i = -999; i < 1000; i += 1) { + var actual = inspect(i); + var actualSepNo = inspect(i, { numericSeparator: false }); + var actualSepYes = inspect(i, { numericSeparator: true }); + var expected = String(i); + if (actual !== expected || actualSepNo !== expected || actualSepYes !== expected) { + failed = true; + t.equal(actual, expected); + t.equal(actualSepNo, expected); + t.equal(actualSepYes, expected); + } + } + + st.notOk(failed, 'all 3 digit numbers passed'); + + st.end(); + }); + + t.equal(inspect(1e3), '1000', '1000'); + t.equal(inspect(1e3, { numericSeparator: false }), '1000', '1000, numericSeparator false'); + t.equal(inspect(1e3, { numericSeparator: true }), '1_000', '1000, numericSeparator true'); + t.equal(inspect(-1e3), '-1000', '-1000'); + t.equal(inspect(-1e3, { numericSeparator: false }), '-1000', '-1000, numericSeparator false'); + t.equal(inspect(-1e3, { numericSeparator: true }), '-1_000', '-1000, numericSeparator true'); + + t.equal(inspect(1234.5678, { numericSeparator: true }), '1_234.567_8', 'fractional numbers get separators'); + t.equal(inspect(1234.56789, { numericSeparator: true }), '1_234.567_89', 'fractional numbers get separators'); + t.equal(inspect(1234.567891, { numericSeparator: true }), '1_234.567_891', 'fractional numbers get separators'); + + t.end(); +}); diff --git a/node_modules/object-inspect/test/toStringTag.js b/node_modules/object-inspect/test/toStringTag.js index b7ddad3..95f8270 100644 --- a/node_modules/object-inspect/test/toStringTag.js +++ b/node_modules/object-inspect/test/toStringTag.js @@ -1,11 +1,11 @@ 'use strict'; var test = require('tape'); -var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = require('has-tostringtag/shams')(); var inspect = require('../'); -test('Symbol.toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (t) { +test('Symbol.toStringTag', { skip: !hasToStringTag }, function (t) { t.plan(4); var obj = { a: 1 }; diff --git a/node_modules/object-inspect/test/values.js b/node_modules/object-inspect/test/values.js index ee64681..4832b9f 100644 --- a/node_modules/object-inspect/test/values.js +++ b/node_modules/object-inspect/test/values.js @@ -2,7 +2,9 @@ var inspect = require('../'); var test = require('tape'); +var mockProperty = require('mock-property'); var hasSymbols = require('has-symbols/shams')(); +var hasToStringTag = require('has-tostringtag/shams')(); test('values', function (t) { t.plan(1); @@ -22,10 +24,9 @@ test('arrays with properties', function (t) { test('has', function (t) { t.plan(1); - var has = Object.prototype.hasOwnProperty; - delete Object.prototype.hasOwnProperty; + t.teardown(mockProperty(Object.prototype, 'hasOwnProperty', { 'delete': true })); + t.equal(inspect({ a: 1, b: 2 }), '{ a: 1, b: 2 }'); - Object.prototype.hasOwnProperty = has; // eslint-disable-line no-extend-native }); test('indexOf seen', function (t) { @@ -76,7 +77,7 @@ test('symbols', { skip: !hasSymbols }, function (t) { t.equal(inspect(Object(sym)), 'Object(Symbol(foo))', 'Object(Symbol("foo")) should be "Object(Symbol(foo))"'); } - t.test('toStringTag', { skip: !hasSymbols || typeof Symbol.toStringTag === 'undefined' }, function (st) { + t.test('toStringTag', { skip: !hasToStringTag }, function (st) { st.plan(1); var faker = {}; diff --git a/node_modules/object-keys/.editorconfig b/node_modules/object-keys/.editorconfig deleted file mode 100644 index eaa2141..0000000 --- a/node_modules/object-keys/.editorconfig +++ /dev/null @@ -1,13 +0,0 @@ -root = true - -[*] -indent_style = tab; -insert_final_newline = true; -quote_type = auto; -space_after_anonymous_functions = true; -space_after_control_statements = true; -spaces_around_operators = true; -trim_trailing_whitespace = true; -spaces_in_brackets = false; -end_of_line = lf; - diff --git a/node_modules/object-keys/.eslintrc b/node_modules/object-keys/.eslintrc deleted file mode 100644 index 9a8d5b0..0000000 --- a/node_modules/object-keys/.eslintrc +++ /dev/null @@ -1,17 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 23], - "id-length": [2, { "min": 1, "max": 40 }], - "max-params": [2, 3], - "max-statements": [2, 23], - "max-statements-per-line": [2, { "max": 2 }], - "no-extra-parens": [1], - "no-invalid-this": [1], - "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "LabeledStatement", "WithStatement"], - "operator-linebreak": [2, "after"] - } -} diff --git a/node_modules/object-keys/.travis.yml b/node_modules/object-keys/.travis.yml deleted file mode 100644 index 94a6ce4..0000000 --- a/node_modules/object-keys/.travis.yml +++ /dev/null @@ -1,277 +0,0 @@ -language: node_js -os: - - linux -node_js: - - "11.8" - - "10.15" - - "9.11" - - "8.15" - - "7.10" - - "6.16" - - "5.12" - - "4.9" - - "iojs-v3.3" - - "iojs-v2.5" - - "iojs-v1.8" - - "0.12" - - "0.10" - - "0.8" -before_install: - - 'case "${TRAVIS_NODE_VERSION}" in 0.*) export NPM_CONFIG_STRICT_SSL=false ;; esac' - - 'nvm install-latest-npm' -install: - - 'if [ "${TRAVIS_NODE_VERSION}" = "0.6" ] || [ "${TRAVIS_NODE_VERSION}" = "0.9" ]; then nvm install --latest-npm 0.8 && npm install && nvm use "${TRAVIS_NODE_VERSION}"; else npm install; fi;' -script: - - 'if [ -n "${PRETEST-}" ]; then npm run pretest ; fi' - - 'if [ -n "${POSTTEST-}" ]; then npm run posttest ; fi' - - 'if [ -n "${COVERAGE-}" ]; then npm run coverage ; fi' - - 'if [ -n "${TEST-}" ]; then npm run tests-only ; fi' -sudo: false -env: - - TEST=true -matrix: - fast_finish: true - include: - - node_js: "lts/*" - env: PRETEST=true - - node_js: "lts/*" - env: POSTTEST=true - - node_js: "4" - env: COVERAGE=true - - node_js: "11.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "11.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "10.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "9.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "8.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "7.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.15" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.14" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.13" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.12" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "6.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.10" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "5.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.8" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "4.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v3.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v2.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.7" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.5" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.4" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.3" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.2" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.1" - env: TEST=true ALLOW_FAILURE=true - - node_js: "iojs-v1.0" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.11" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.9" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.6" - env: TEST=true ALLOW_FAILURE=true - - node_js: "0.4" - env: TEST=true ALLOW_FAILURE=true - allow_failures: - - os: osx - - env: TEST=true ALLOW_FAILURE=true - - env: COVERAGE=true - - env: POSTTEST=true diff --git a/node_modules/object-keys/CHANGELOG.md b/node_modules/object-keys/CHANGELOG.md deleted file mode 100644 index b7d92df..0000000 --- a/node_modules/object-keys/CHANGELOG.md +++ /dev/null @@ -1,232 +0,0 @@ -1.1.1 / 2019-04-06 -================= - * [Fix] exclude deprecated Firefox keys (#53) - -1.1.0 / 2019-02-10 -================= - * [New] [Refactor] move full implementation to `implementation` entry point - * [Refactor] only evaluate the implementation if `Object.keys` is not present - * [Tests] up to `node` `v11.8`, `v10.15`, `v8.15`, `v6.16` - * [Tests] remove jscs - * [Tests] switch to `npm audit` from `nsp` - -1.0.12 / 2018-06-18 -================= - * [Fix] avoid accessing `window.applicationCache`, to avoid issues with latest Chrome on HTTP (#46) - -1.0.11 / 2016-07-05 -================= - * [Fix] exclude keys regarding the style (eg. `pageYOffset`) on `window` to avoid reflow (#32) - -1.0.10 / 2016-07-04 -================= - * [Fix] exclude `height` and `width` keys on `window` to avoid reflow (#31) - * [Fix] In IE 6, `window.external` makes `Object.keys` throw - * [Tests] up to `node` `v6.2`, `v5.10`, `v4.4` - * [Tests] use pretest/posttest for linting/security - * [Dev Deps] update `tape`, `jscs`, `nsp`, `eslint`, `@ljharb/eslint-config` - * [Dev Deps] remove unused eccheck script + dep - -1.0.9 / 2015-10-19 -================= - * [Fix] Blacklist 'frame' property on window (#16, #17) - * [Dev Deps] update `jscs`, `eslint`, `@ljharb/eslint-config` - -1.0.8 / 2015-10-14 -================= - * [Fix] wrap automation equality bug checking in try/catch, per [es5-shim#327](https://github.com/es-shims/es5-shim/issues/327) - * [Fix] Blacklist 'window.frameElement' per [es5-shim#322](https://github.com/es-shims/es5-shim/issues/322) - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - * [Tests] up to `io.js` `v3.3`, `node` `v4.2` - * [Dev Deps] update `eslint`, `tape`, `@ljharb/eslint-config`, `jscs` - -1.0.7 / 2015-07-18 -================= - * [Fix] A proper fix for 176f03335e90d5c8d0d8125a99f27819c9b9cdad / https://github.com/es-shims/es5-shim/issues/275 that doesn't break dontEnum/constructor fixes in IE 8. - * [Fix] Remove deprecation message in Chrome by touching deprecated window properties (#15) - * [Tests] Improve test output for automation equality bugfix - * [Tests] Test on `io.js` `v2.4` - -1.0.6 / 2015-07-09 -================= - * [Fix] Use an object lookup rather than ES5's `indexOf` (#14) - * [Tests] ES3 browsers don't have `Array.isArray` - * [Tests] Fix `no-shadow` rule, as well as an IE 8 bug caused by engine NFE shadowing bugs. - -1.0.5 / 2015-07-03 -================= - * [Fix] Fix a flabbergasting IE 8 bug where `localStorage.constructor.prototype === localStorage` throws - * [Tests] Test up to `io.js` `v2.3` - * [Dev Deps] Update `nsp`, `eslint` - -1.0.4 / 2015-05-23 -================= - * Fix a Safari 5.0 bug with `Object.keys` not working with `arguments` - * Test on latest `node` and `io.js` - * Update `jscs`, `tape`, `eslint`, `nsp`, `is`, `editorconfig-tools`, `covert` - -1.0.3 / 2015-01-06 -================= - * Revert "Make `object-keys` more robust against later environment tampering" to maintain ES3 compliance - -1.0.2 / 2014-12-28 -================= - * Update lots of dev dependencies - * Tweaks to README - * Make `object-keys` more robust against later environment tampering - -1.0.1 / 2014-09-03 -================= - * Update URLs and badges in README - -1.0.0 / 2014-08-26 -================= - * v1.0.0 - -0.6.1 / 2014-08-25 -================= - * v0.6.1 - * Updating dependencies (tape, covert, is) - * Update badges in readme - * Use separate var statements - -0.6.0 / 2014-04-23 -================= - * v0.6.0 - * Updating dependencies (tape, covert) - * Make sure boxed primitives, and arguments objects, work properly in ES3 browsers - * Improve test matrix: test all node versions, but only latest two stables are a failure - * Remove internal foreach shim. - -0.5.1 / 2014-03-09 -================= - * 0.5.1 - * Updating dependencies (tape, covert, is) - * Removing forEach from the module (but keeping it in tests) - -0.5.0 / 2014-01-30 -================= - * 0.5.0 - * Explicitly returning the shim, instead of returning native Object.keys when present - * Adding a changelog. - * Cleaning up IIFE wrapping - * Testing on node 0.4 through 0.11 - -0.4.0 / 2013-08-14 -================== - - * v0.4.0 - * In Chrome 4-10 and Safari 4, typeof (new RegExp) === 'function' - * If it's a string, make sure to use charAt instead of brackets. - * Only use Function#call if necessary. - * Making sure the context tests actually run. - * Better function detection - * Adding the android browser - * Fixing testling files - * Updating tape - * Removing the "is" dependency. - * Making an isArguments shim. - * Adding a local forEach shim and tests. - * Updating paths. - * Moving the shim test. - * v0.3.0 - -0.3.0 / 2013-05-18 -================== - - * README tweak. - * Fixing constructor enum issue. Fixes [#5](https://github.com/ljharb/object-keys/issues/5). - * Adding a test for [#5](https://github.com/ljharb/object-keys/issues/5) - * Updating readme. - * Updating dependencies. - * Giving credit to lodash. - * Make sure that a prototype's constructor property is not enumerable. Fixes [#3](https://github.com/ljharb/object-keys/issues/3). - * Adding additional tests to handle arguments objects, and to skip "prototype" in functions. Fixes [#2](https://github.com/ljharb/object-keys/issues/2). - * Fixing a typo on this test for [#3](https://github.com/ljharb/object-keys/issues/3). - * Adding node 0.10 to travis. - * Adding an IE < 9 test per [#3](https://github.com/ljharb/object-keys/issues/3) - * Adding an iOS 5 mobile Safari test per [#2](https://github.com/ljharb/object-keys/issues/2) - * Moving "indexof" and "is" to be dev dependencies. - * Making sure the shim works with functions. - * Flattening the tests. - -0.2.0 / 2013-05-10 -================== - - * v0.2.0 - * Object.keys should work with arrays. - -0.1.8 / 2013-05-10 -================== - - * v0.1.8 - * Upgrading dependencies. - * Using a simpler check. - * Fixing a bug in hasDontEnumBug browsers. - * Using the newest tape! - * Fixing this error test. - * "undefined" is probably a reserved word in ES3. - * Better test message. - -0.1.7 / 2013-04-17 -================== - - * Upgrading "is" once more. - * The key "null" is breaking some browsers. - -0.1.6 / 2013-04-17 -================== - - * v0.1.6 - * Upgrading "is" - -0.1.5 / 2013-04-14 -================== - - * Bumping version. - * Adding more testling browsers. - * Updating "is" - -0.1.4 / 2013-04-08 -================== - - * Using "is" instead of "is-extended". - -0.1.3 / 2013-04-07 -================== - - * Using "foreach" instead of my own shim. - * Removing "tap"; I'll just wait for "tape" to fix its node 0.10 bug. - -0.1.2 / 2013-04-03 -================== - - * Adding dependency status; moving links to an index at the bottom. - * Upgrading is-extended; version 0.1.2 - * Adding an npm version badge. - -0.1.1 / 2013-04-01 -================== - - * Adding Travis CI. - * Bumping the version. - * Adding indexOf since IE sucks. - * Adding a forEach shim since older browsers don't have Array#forEach. - * Upgrading tape - 0.3.2 uses Array#map - * Using explicit end instead of plan. - * Can't test with Array.isArray in older browsers. - * Using is-extended. - * Fixing testling files. - * JSHint/JSLint-ing. - * Removing an unused object. - * Using strict mode. - -0.1.0 / 2013-03-30 -================== - - * Changing the exports should have meant a higher version bump. - * Oops, fixing the repo URL. - * Adding more tests. - * 0.0.2 - * Merge branch 'export_one_thing'; closes [#1](https://github.com/ljharb/object-keys/issues/1) - * Move shim export to a separate file. diff --git a/node_modules/object-keys/LICENSE b/node_modules/object-keys/LICENSE deleted file mode 100644 index 28553fd..0000000 --- a/node_modules/object-keys/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (C) 2013 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/node_modules/object-keys/README.md b/node_modules/object-keys/README.md deleted file mode 100644 index ed4c277..0000000 --- a/node_modules/object-keys/README.md +++ /dev/null @@ -1,76 +0,0 @@ -#object-keys [![Version Badge][npm-version-svg]][package-url] - -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -[![browser support][testling-svg]][testling-url] - -An Object.keys shim. Invoke its "shim" method to shim Object.keys if it is unavailable. - -Most common usage: -```js -var keys = Object.keys || require('object-keys'); -``` - -## Example - -```js -var keys = require('object-keys'); -var assert = require('assert'); -var obj = { - a: true, - b: true, - c: true -}; - -assert.deepEqual(keys(obj), ['a', 'b', 'c']); -``` - -```js -var keys = require('object-keys'); -var assert = require('assert'); -/* when Object.keys is not present */ -delete Object.keys; -var shimmedKeys = keys.shim(); -assert.equal(shimmedKeys, keys); -assert.deepEqual(Object.keys(obj), keys(obj)); -``` - -```js -var keys = require('object-keys'); -var assert = require('assert'); -/* when Object.keys is present */ -var shimmedKeys = keys.shim(); -assert.equal(shimmedKeys, Object.keys); -assert.deepEqual(Object.keys(obj), keys(obj)); -``` - -## Source -Implementation taken directly from [es5-shim][es5-shim-url], with modifications, including from [lodash][lodash-url]. - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.org/package/object-keys -[npm-version-svg]: http://versionbadg.es/ljharb/object-keys.svg -[travis-svg]: https://travis-ci.org/ljharb/object-keys.svg -[travis-url]: https://travis-ci.org/ljharb/object-keys -[deps-svg]: https://david-dm.org/ljharb/object-keys.svg -[deps-url]: https://david-dm.org/ljharb/object-keys -[dev-deps-svg]: https://david-dm.org/ljharb/object-keys/dev-status.svg -[dev-deps-url]: https://david-dm.org/ljharb/object-keys#info=devDependencies -[testling-svg]: https://ci.testling.com/ljharb/object-keys.png -[testling-url]: https://ci.testling.com/ljharb/object-keys -[es5-shim-url]: https://github.com/es-shims/es5-shim/blob/master/es5-shim.js#L542-589 -[lodash-url]: https://github.com/lodash/lodash -[npm-badge-png]: https://nodei.co/npm/object-keys.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/object-keys.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/object-keys.svg -[downloads-url]: http://npm-stat.com/charts.html?package=object-keys - diff --git a/node_modules/object-keys/implementation.js b/node_modules/object-keys/implementation.js deleted file mode 100644 index 5b32986..0000000 --- a/node_modules/object-keys/implementation.js +++ /dev/null @@ -1,122 +0,0 @@ -'use strict'; - -var keysShim; -if (!Object.keys) { - // modified from https://github.com/es-shims/es5-shim - var has = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var isArgs = require('./isArguments'); // eslint-disable-line global-require - var isEnumerable = Object.prototype.propertyIsEnumerable; - var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); - var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var excludedKeys = { - $applicationCache: true, - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $onmozfullscreenchange: true, - $onmozfullscreenerror: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true - }; - var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } - }; - - keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; - }; -} -module.exports = keysShim; diff --git a/node_modules/object-keys/index.js b/node_modules/object-keys/index.js deleted file mode 100644 index a43807d..0000000 --- a/node_modules/object-keys/index.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -var slice = Array.prototype.slice; -var isArgs = require('./isArguments'); - -var origKeys = Object.keys; -var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation'); - -var originalKeys = Object.keys; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - var args = Object.keys(arguments); - return args && args.length === arguments.length; - }(1, 2)); - if (!keysWorksWithArguments) { - Object.keys = function keys(object) { // eslint-disable-line func-name-matching - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } - return originalKeys(object); - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; diff --git a/node_modules/object-keys/isArguments.js b/node_modules/object-keys/isArguments.js deleted file mode 100644 index f2a2a90..0000000 --- a/node_modules/object-keys/isArguments.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; diff --git a/node_modules/object-keys/package.json b/node_modules/object-keys/package.json deleted file mode 100644 index 99ea923..0000000 --- a/node_modules/object-keys/package.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/object-keys/test/index.js b/node_modules/object-keys/test/index.js deleted file mode 100644 index 5402465..0000000 --- a/node_modules/object-keys/test/index.js +++ /dev/null @@ -1,5 +0,0 @@ -'use strict'; - -require('./isArguments'); - -require('./shim'); diff --git a/node_modules/object.assign/.editorconfig b/node_modules/object.assign/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/object.assign/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/object.assign/.eslintignore b/node_modules/object.assign/.eslintignore deleted file mode 100644 index 849ddff..0000000 --- a/node_modules/object.assign/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -dist/ diff --git a/node_modules/object.assign/.eslintrc b/node_modules/object.assign/.eslintrc deleted file mode 100644 index 6d4cafd..0000000 --- a/node_modules/object.assign/.eslintrc +++ /dev/null @@ -1,26 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "complexity": [2, 19], - "id-length": [2, { "min": 1, "max": 30 }], - "max-statements": [2, 33], - "max-statements-per-line": [2, { "max": 2 }], - "no-magic-numbers": [1, { "ignore": [0] }], - "no-restricted-syntax": [2, "BreakStatement", "ContinueStatement", "DebuggerStatement", "LabeledStatement", "WithStatement"], - }, - - "overrides": [ - { - "files": "test/**", - "rules": { - "no-invalid-this": 1, - "max-lines-per-function": 0, - "max-statements-per-line": [2, { "max": 3 }], - "no-magic-numbers": 0, - }, - }, - ], -} diff --git a/node_modules/object.assign/.github/FUNDING.yml b/node_modules/object.assign/.github/FUNDING.yml deleted file mode 100644 index ef7fdbf..0000000 --- a/node_modules/object.assign/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/object.assign -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/object.assign/.github/workflows/rebase.yml b/node_modules/object.assign/.github/workflows/rebase.yml deleted file mode 100644 index 0c2ad39..0000000 --- a/node_modules/object.assign/.github/workflows/rebase.yml +++ /dev/null @@ -1,15 +0,0 @@ -name: Automatic Rebase - -on: [pull_request_target] - -jobs: - _: - name: "Automatic Rebase" - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - uses: ljharb/rebase@master - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/object.assign/.github/workflows/require-allow-edits.yml b/node_modules/object.assign/.github/workflows/require-allow-edits.yml deleted file mode 100644 index aac42d3..0000000 --- a/node_modules/object.assign/.github/workflows/require-allow-edits.yml +++ /dev/null @@ -1,14 +0,0 @@ -name: Require “Allow Edits” - -on: [pull_request_target] - -jobs: - _: - name: "Require “Allow Edits”" - - runs-on: ubuntu-latest - - steps: - - uses: ljharb/require-allow-edits@main - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/node_modules/object.assign/.nycrc b/node_modules/object.assign/.nycrc deleted file mode 100644 index d316b4d..0000000 --- a/node_modules/object.assign/.nycrc +++ /dev/null @@ -1,14 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "operations", - "test" - ] -} diff --git a/node_modules/object.assign/CHANGELOG.md b/node_modules/object.assign/CHANGELOG.md deleted file mode 100644 index ac543d5..0000000 --- a/node_modules/object.assign/CHANGELOG.md +++ /dev/null @@ -1,201 +0,0 @@ -4.1.2 / 2020-10-30 -================== - * [Refactor] use extracted `call-bind` instead of full `es-abstract` - * [Dev Deps] update `eslint`, `ses`, `browserify` - * [Tests] run tests in SES - * [Tests] ses-compat: show error stacks - -4.1.1 / 2020-09-11 -================== - * [Fix] avoid mutating `Object.assign` in modern engines - * [Refactor] use `callBind` from `es-abstract` instead of `function-bind` - * [Deps] update `has-symbols`, `object-keys`, `define-properties` - * [meta] add `funding` field, FUNDING.yml - * [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `@es-shims/api`, `browserify`, `covert`, `for-each`, `is`, `tape`, `functions-have-names`; add `aud`, `safe-publish-latest`; remove `jscs` - * [actions] add Require Allow Edits workflow - * [actions] add automatic rebasing / merge commit blocking - * [Tests] ses-compat - add test to ensure package initializes correctly after ses lockdown (#77) - * [Tests] Add passing test for a source of `window.location` (#68) - * [Tests] use shared travis-ci config - * [Tests] use `npx aud` instead of `npm audit` with hoops or `nsp` - * [Tests] use `functions-have-names` - -4.1.0 / 2017-12-21 -================== - * [New] add `auto` entry point (#52) - * [Refactor] Use `has-symbols` module - * [Deps] update `function-bind`, `object-keys` - * [Dev Deps] update `@es-shims/api`, `browserify`, `nsp`, `eslint`, `@ljharb/eslint-config`, `is` - * [Tests] up to `node` `v9.3`, `v8.9`, `v6.12`; use `nvm install-latest-npm`; pin included builds to LTS - -4.0.4 / 2016-07-04 -================== - * [Fix] Cache original `getOwnPropertySymbols`, and use that when `Object.getOwnPropertySymbols` is unavailable - * [Deps] update `object-keys` - * [Dev Deps] update `eslint`, `get-own-property-symbols`, `core-js`, `jscs`, `nsp`, `browserify`, `@ljharb/eslint-config`, `tape`, `@es-shims/api` - * [Tests] up to `node` `v6.2`, `v5.10`, `v4.4` - * [Tests] run sham tests on node 0.10 - * [Tests] use pretest/posttest for linting/security - -4.0.3 / 2015-10-21 -================== - * [Fix] Support core-js's Symbol sham (#17) - * [Fix] Ensure that properties removed or made non-enumerable during enumeration are not assigned (#16) - * [Fix] Avoid looking up keys and values more than once - * [Tests] Avoid using `reduce` so `npm run test:shams:corejs` passes in `node` `v0.8` ([core-js#122](https://github.com/zloirock/core-js/issues/122)) - * [Tests] Refactor to use my conventional structure that separates shimmed, implementation, and common tests - * [Tests] Create `npm run test:shams` and better organize tests for symbol shams - * [Tests] Remove `nsp` in favor of `requiresafe` - -4.0.2 / 2015-10-20 -================== - * [Fix] Ensure correct property enumeration order, particularly in v8 (#15) - * [Deps] update `object-keys`, `define-properties` - * [Dev Deps] update `browserify`, `is`, `tape`, `jscs`, `eslint`, `@ljharb/eslint-config` - * [Tests] up to `io.js` `v3.3`, `node` `v4.2` - -4.0.1 / 2015-08-16 -================== - * [Docs] Add `Symbol` note to readme - -4.0.0 / 2015-08-15 -================== - * [Breaking] Implement the [es-shim API](es-shims/api). - * [Robustness] Make implementation robust against later modification of environment methods. - * [Refactor] Move implementation to `implementation.js` - * [Docs] Switch from vb.teelaun.ch to versionbadg.es for the npm version badge SVG - * [Deps] update `object-keys`, `define-properties` - * [Dev Deps] update `browserify`, `tape`, `eslint`, `jscs`, `browserify` - * [Tests] Add `npm run tests-only` - * [Tests] use my personal shared `eslint` config. - * [Tests] up to `io.js` `v3.0` - -3.0.1 / 2015-06-28 -================== - * Cache `Object` and `Array#push` to make the shim more robust. - * [Fix] Remove use of `Array#filter`, which isn't in ES3. - * [Deps] Update `object-keys`, `define-properties` - * [Dev Deps] Update `get-own-property-symbols`, `browserify`, `eslint`, `nsp` - * [Tests] Test up to `io.js` `v2.3` - * [Tests] Adding `Object.assign` tests for non-object targets, per https://github.com/paulmillr/es6-shim/issues/348 - -3.0.0 / 2015-05-20 -================== - * Attempt to feature-detect Symbols, even if `typeof Symbol() !== 'symbol'` (#12) - * Make a separate `hasSymbols` internal module - * Update `browserify`, `eslint` - -2.0.3 / 2015-06-28 -================== - * Cache `Object` and `Array#push` to make the shim more robust. - * [Fix] Remove use of `Array#filter`, which isn't in ES3 - * [Deps] Update `object-keys`, `define-properties` - * [Dev Deps] Update `browserify`, `nsp`, `eslint` - * [Tests] Test up to `io.js` `v2.3` - -2.0.2 / 2015-05-20 -================== - * Make sure `.shim` is non-enumerable. - * Refactor `.shim` implementation to use `define-properties` predicates, rather than `delete`ing the original. - * Update docs to match spec/implementation. (#11) - * Add `npm run eslint` - * Test up to `io.js` `v2.0` - * Update `jscs`, `browserify`, `covert` - -2.0.1 / 2015-04-12 -================== - * Make sure non-enumerable Symbols are excluded. - -2.0.0 / 2015-04-12 -================== - * Make sure the shim function overwrites a broken implementation with pending exceptions. - * Ensure shim is not enumerable using `define-properties` - * Ensure `Object.assign` includes symbols. - * All grade A-supported `node`/`iojs` versions now ship with an `npm` that understands `^`. - * Run `travis-ci` tests on `iojs` and `node` v0.12; speed up builds; allow 0.8 failures. - * Add `npm run security` via `nsp` - * Update `browserify`, `jscs`, `tape`, `object-keys`, `is` - -1.1.1 / 2014-12-14 -================== - * Actually include the browser build in `npm` - -1.1.0 / 2014-12-14 -================== - * Add `npm run build`, and build an automatic-shimming browser distribution as part of the npm publish process. - * Update `is`, `jscs` - -1.0.3 / 2014-11-29 -================== - * Revert "optimize --production installs" - -1.0.2 / 2014-11-27 -================== - * Update `jscs`, `is`, `object-keys`, `tape` - * Add badges to README - * Name URLs in README - * Lock `covert` to `v1.0.0` - * Optimize --production installs - -1.0.1 / 2014-08-26 -================== - * Update `is`, `covert` - -1.0.0 / 2014-08-07 -================== - * Update `object-keys`, `tape` - -0.5.0 / 2014-07-31 -================== - * Object.assign no longer throws on null or undefined sources, per https://bugs.ecmascript.org/show_bug.cgi?id=3096 - -0.4.3 / 2014-07-30 -================== - * Don’t modify vars in the function signature, since it deoptimizes v8 - -0.4.2 / 2014-07-30 -================== - * Fixing the version number: v0.4.2 - -0.4.1 / 2014-07-19 -================== - * Revert "Use the native Object.keys if it’s available." - -0.4.0 / 2014-07-19 -================== - * Use the native Object.keys if it’s available. - * Fixes [#2](https://github.com/ljharb/object.assign/issues/2). - * Adding failing tests for [#2](https://github.com/ljharb/object.assign/issues/2). - * Fix indentation. - * Adding `npm run lint` - * Update `tape`, `covert` - * README: Use SVG badge for Travis [#1](https://github.com/ljharb/object.assign/issues/1) from mathiasbynens/patch-1 - -0.3.1 / 2014-04-10 -================== - * Object.assign does partially modify objects if it throws, per https://twitter.com/awbjs/status/454320863093862400 - -0.3.0 / 2014-04-10 -================== - * Update with newest ES6 behavior - Object.assign now takes a variable number of source objects. - * Update `tape` - * Make sure old and unstable nodes don’t fail Travis - -0.2.1 / 2014-03-16 -================== - * Let object-keys handle the fallback - * Update dependency badges - * Adding bower.json - -0.2.0 / 2014-03-16 -================== - * Use a for loop, because ES3 browsers don’t have "reduce" - -0.1.1 / 2014-03-14 -================== - * Updating readme - -0.1.0 / 2014-03-14 -================== - * Initial release. - diff --git a/node_modules/object.assign/LICENSE b/node_modules/object.assign/LICENSE deleted file mode 100644 index ab29cbd..0000000 --- a/node_modules/object.assign/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) 2014 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/node_modules/object.assign/README.md b/node_modules/object.assign/README.md deleted file mode 100644 index 70b6ac4..0000000 --- a/node_modules/object.assign/README.md +++ /dev/null @@ -1,135 +0,0 @@ -#object.assign [![Version Badge][npm-version-svg]][npm-url] - -[![Build Status][travis-svg]][travis-url] -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][npm-url] - -[![browser support][testling-png]][testling-url] - -An Object.assign shim. Invoke its "shim" method to shim Object.assign if it is unavailable. - -This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](http://www.ecma-international.org/ecma-262/6.0/#sec-object.assign). In an ES6 environment, it will also work properly with `Symbol`s. - -Takes a minimum of 2 arguments: `target` and `source`. -Takes a variable sized list of source arguments - at least 1, as many as you want. -Throws a TypeError if the `target` argument is `null` or `undefined`. - -Most common usage: -```js -var assign = require('object.assign').getPolyfill(); // returns native method if compliant - /* or */ -var assign = require('object.assign/polyfill')(); // returns native method if compliant -``` - -## Example - -```js -var assert = require('assert'); - -// Multiple sources! -var target = { a: true }; -var source1 = { b: true }; -var source2 = { c: true }; -var sourceN = { n: true }; - -var expected = { - a: true, - b: true, - c: true, - n: true -}; - -assign(target, source1, source2, sourceN); -assert.deepEqual(target, expected); // AWESOME! -``` - -```js -var target = { - a: true, - b: true, - c: true -}; -var source1 = { - c: false, - d: false -}; -var sourceN = { - e: false -}; - -var assigned = assign(target, source1, sourceN); -assert.equal(target, assigned); // returns the target object -assert.deepEqual(assigned, { - a: true, - b: true, - c: false, - d: false, - e: false -}); -``` - -```js -/* when Object.assign is not present */ -delete Object.assign; -var shimmedAssign = require('object.assign').shim(); - /* or */ -var shimmedAssign = require('object.assign/shim')(); - -assert.equal(shimmedAssign, assign); - -var target = { - a: true, - b: true, - c: true -}; -var source = { - c: false, - d: false, - e: false -}; - -var assigned = assign(target, source); -assert.deepEqual(Object.assign(target, source), assign(target, source)); -``` - -```js -/* when Object.assign is present */ -var shimmedAssign = require('object.assign').shim(); -assert.equal(shimmedAssign, Object.assign); - -var target = { - a: true, - b: true, - c: true -}; -var source = { - c: false, - d: false, - e: false -}; - -assert.deepEqual(Object.assign(target, source), assign(target, source)); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[npm-url]: https://npmjs.org/package/object.assign -[npm-version-svg]: http://versionbadg.es/ljharb/object.assign.svg -[travis-svg]: https://travis-ci.org/ljharb/object.assign.svg -[travis-url]: https://travis-ci.org/ljharb/object.assign -[deps-svg]: https://david-dm.org/ljharb/object.assign.svg?theme=shields.io -[deps-url]: https://david-dm.org/ljharb/object.assign -[dev-deps-svg]: https://david-dm.org/ljharb/object.assign/dev-status.svg?theme=shields.io -[dev-deps-url]: https://david-dm.org/ljharb/object.assign#info=devDependencies -[testling-png]: https://ci.testling.com/ljharb/object.assign.png -[testling-url]: https://ci.testling.com/ljharb/object.assign -[npm-badge-png]: https://nodei.co/npm/object.assign.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/object.assign.svg -[license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/object.assign.svg -[downloads-url]: http://npm-stat.com/charts.html?package=object.assign diff --git a/node_modules/object.assign/auto.js b/node_modules/object.assign/auto.js deleted file mode 100644 index 8ebf606..0000000 --- a/node_modules/object.assign/auto.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -require('./shim')(); diff --git a/node_modules/object.assign/dist/browser.js b/node_modules/object.assign/dist/browser.js deleted file mode 100644 index 15f0e20..0000000 --- a/node_modules/object.assign/dist/browser.js +++ /dev/null @@ -1,865 +0,0 @@ -(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i -1) { - return callBind(intrinsic); - } - return intrinsic; -}; - -},{"./":5,"get-intrinsic":9}],5:[function(require,module,exports){ -'use strict'; - -var bind = require('function-bind'); -var GetIntrinsic = require('get-intrinsic'); - -var $apply = GetIntrinsic('%Function.prototype.apply%'); -var $call = GetIntrinsic('%Function.prototype.call%'); -var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); - -var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); - -if ($defineProperty) { - try { - $defineProperty({}, 'a', { value: 1 }); - } catch (e) { - // IE 8 has a broken defineProperty - $defineProperty = null; - } -} - -module.exports = function callBind() { - return $reflectApply(bind, $call, arguments); -}; - -var applyBind = function applyBind() { - return $reflectApply(bind, $apply, arguments); -}; - -if ($defineProperty) { - $defineProperty(module.exports, 'apply', { value: applyBind }); -} else { - module.exports.apply = applyBind; -} - -},{"function-bind":8,"get-intrinsic":9}],6:[function(require,module,exports){ -'use strict'; - -var keys = require('object-keys'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; - -var toStr = Object.prototype.toString; -var concat = Array.prototype.concat; -var origDefineProperty = Object.defineProperty; - -var isFunction = function (fn) { - return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; -}; - -var arePropertyDescriptorsSupported = function () { - var obj = {}; - try { - origDefineProperty(obj, 'x', { enumerable: false, value: obj }); - // eslint-disable-next-line no-unused-vars, no-restricted-syntax - for (var _ in obj) { // jscs:ignore disallowUnusedVariables - return false; - } - return obj.x === obj; - } catch (e) { /* this is IE 8. */ - return false; - } -}; -var supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported(); - -var defineProperty = function (object, name, value, predicate) { - if (name in object && (!isFunction(predicate) || !predicate())) { - return; - } - if (supportsDescriptors) { - origDefineProperty(object, name, { - configurable: true, - enumerable: false, - value: value, - writable: true - }); - } else { - object[name] = value; - } -}; - -var defineProperties = function (object, map) { - var predicates = arguments.length > 2 ? arguments[2] : {}; - var props = keys(map); - if (hasSymbols) { - props = concat.call(props, Object.getOwnPropertySymbols(map)); - } - for (var i = 0; i < props.length; i += 1) { - defineProperty(object, props[i], map[props[i]], predicates[props[i]]); - } -}; - -defineProperties.supportsDescriptors = !!supportsDescriptors; - -module.exports = defineProperties; - -},{"object-keys":14}],7:[function(require,module,exports){ -'use strict'; - -/* eslint no-invalid-this: 1 */ - -var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; -var slice = Array.prototype.slice; -var toStr = Object.prototype.toString; -var funcType = '[object Function]'; - -module.exports = function bind(that) { - var target = this; - if (typeof target !== 'function' || toStr.call(target) !== funcType) { - throw new TypeError(ERROR_MESSAGE + target); - } - var args = slice.call(arguments, 1); - - var bound; - var binder = function () { - if (this instanceof bound) { - var result = target.apply( - this, - args.concat(slice.call(arguments)) - ); - if (Object(result) === result) { - return result; - } - return this; - } else { - return target.apply( - that, - args.concat(slice.call(arguments)) - ); - } - }; - - var boundLength = Math.max(0, target.length - args.length); - var boundArgs = []; - for (var i = 0; i < boundLength; i++) { - boundArgs.push('$' + i); - } - - bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); - - if (target.prototype) { - var Empty = function Empty() {}; - Empty.prototype = target.prototype; - bound.prototype = new Empty(); - Empty.prototype = null; - } - - return bound; -}; - -},{}],8:[function(require,module,exports){ -'use strict'; - -var implementation = require('./implementation'); - -module.exports = Function.prototype.bind || implementation; - -},{"./implementation":7}],9:[function(require,module,exports){ -'use strict'; - -/* globals - AggregateError, - Atomics, - FinalizationRegistry, - SharedArrayBuffer, - WeakRef, -*/ - -var undefined; - -var $SyntaxError = SyntaxError; -var $Function = Function; -var $TypeError = TypeError; - -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - // eslint-disable-next-line no-new-func - return Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; - -var $gOPD = Object.getOwnPropertyDescriptor; -if ($gOPD) { - try { - $gOPD({}, ''); - } catch (e) { - $gOPD = null; // this is IE 8, which has a broken gOPD - } -} - -var throwTypeError = function () { - throw new $TypeError(); -}; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = require('has-symbols')(); - -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto - -var asyncGenFunction = getEvalledConstructor('async function* () {}'); -var asyncGenFunctionPrototype = asyncGenFunction ? asyncGenFunction.prototype : undefined; -var asyncGenPrototype = asyncGenFunctionPrototype ? asyncGenFunctionPrototype.prototype : undefined; - -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': getEvalledConstructor('async function () {}'), - '%AsyncGenerator%': asyncGenFunctionPrototype, - '%AsyncGeneratorFunction%': asyncGenFunction, - '%AsyncIteratorPrototype%': asyncGenPrototype ? getProto(asyncGenPrototype) : undefined, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': EvalError, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': getEvalledConstructor('function* () {}'), - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': Object, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': RangeError, - '%ReferenceError%': ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet -}; - -var LEGACY_ALIASES = { - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; - -var bind = require('function-bind'); -var hasOwn = require('has'); -var $concat = bind.call(Function.call, Array.prototype.concat); -var $spliceApply = bind.call(Function.apply, Array.prototype.splice); -var $replace = bind.call(Function.call, String.prototype.replace); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ - -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } - - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } - - return { - alias: alias, - name: intrinsicName, - value: value - }; - } - - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; - -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } - - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; - - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; - - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } - - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } - - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; - - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - if (!allowMissing && !(part in value)) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - // By convention, when a data property is converted to an accessor - // property to emulate a data property that does not suffer from - // the override mistake, that accessor's getter is marked with - // an `originalValue` property. Here, when we detect this, we - // uphold the illusion by pretending to see that original data - // property, i.e., returning the value rather than the getter - // itself. - if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { - value = desc.get; - } else { - value = value[part]; - } - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; - -},{"function-bind":8,"has":12,"has-symbols":10}],10:[function(require,module,exports){ -(function (global){(function (){ -'use strict'; - -var origSymbol = global.Symbol; -var hasSymbolSham = require('./shams'); - -module.exports = function hasNativeSymbols() { - if (typeof origSymbol !== 'function') { return false; } - if (typeof Symbol !== 'function') { return false; } - if (typeof origSymbol('foo') !== 'symbol') { return false; } - if (typeof Symbol('bar') !== 'symbol') { return false; } - - return hasSymbolSham(); -}; - -}).call(this)}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {}) -},{"./shams":11}],11:[function(require,module,exports){ -'use strict'; - -/* eslint complexity: [2, 18], max-statements: [2, 33] */ -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - // temp disabled per https://github.com/ljharb/object.assign/issues/17 - // if (sym instanceof Symbol) { return false; } - // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - // if (!(symObj instanceof Symbol)) { return false; } - - // if (typeof Symbol.prototype.toString !== 'function') { return false; } - // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } - - var symVal = 42; - obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - var descriptor = Object.getOwnPropertyDescriptor(obj, sym); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; - -},{}],12:[function(require,module,exports){ -'use strict'; - -var bind = require('function-bind'); - -module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); - -},{"function-bind":8}],13:[function(require,module,exports){ -'use strict'; - -var keysShim; -if (!Object.keys) { - // modified from https://github.com/es-shims/es5-shim - var has = Object.prototype.hasOwnProperty; - var toStr = Object.prototype.toString; - var isArgs = require('./isArguments'); // eslint-disable-line global-require - var isEnumerable = Object.prototype.propertyIsEnumerable; - var hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString'); - var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype'); - var dontEnums = [ - 'toString', - 'toLocaleString', - 'valueOf', - 'hasOwnProperty', - 'isPrototypeOf', - 'propertyIsEnumerable', - 'constructor' - ]; - var equalsConstructorPrototype = function (o) { - var ctor = o.constructor; - return ctor && ctor.prototype === o; - }; - var excludedKeys = { - $applicationCache: true, - $console: true, - $external: true, - $frame: true, - $frameElement: true, - $frames: true, - $innerHeight: true, - $innerWidth: true, - $onmozfullscreenchange: true, - $onmozfullscreenerror: true, - $outerHeight: true, - $outerWidth: true, - $pageXOffset: true, - $pageYOffset: true, - $parent: true, - $scrollLeft: true, - $scrollTop: true, - $scrollX: true, - $scrollY: true, - $self: true, - $webkitIndexedDB: true, - $webkitStorageInfo: true, - $window: true - }; - var hasAutomationEqualityBug = (function () { - /* global window */ - if (typeof window === 'undefined') { return false; } - for (var k in window) { - try { - if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') { - try { - equalsConstructorPrototype(window[k]); - } catch (e) { - return true; - } - } - } catch (e) { - return true; - } - } - return false; - }()); - var equalsConstructorPrototypeIfNotBuggy = function (o) { - /* global window */ - if (typeof window === 'undefined' || !hasAutomationEqualityBug) { - return equalsConstructorPrototype(o); - } - try { - return equalsConstructorPrototype(o); - } catch (e) { - return false; - } - }; - - keysShim = function keys(object) { - var isObject = object !== null && typeof object === 'object'; - var isFunction = toStr.call(object) === '[object Function]'; - var isArguments = isArgs(object); - var isString = isObject && toStr.call(object) === '[object String]'; - var theKeys = []; - - if (!isObject && !isFunction && !isArguments) { - throw new TypeError('Object.keys called on a non-object'); - } - - var skipProto = hasProtoEnumBug && isFunction; - if (isString && object.length > 0 && !has.call(object, 0)) { - for (var i = 0; i < object.length; ++i) { - theKeys.push(String(i)); - } - } - - if (isArguments && object.length > 0) { - for (var j = 0; j < object.length; ++j) { - theKeys.push(String(j)); - } - } else { - for (var name in object) { - if (!(skipProto && name === 'prototype') && has.call(object, name)) { - theKeys.push(String(name)); - } - } - } - - if (hasDontEnumBug) { - var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object); - - for (var k = 0; k < dontEnums.length; ++k) { - if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) { - theKeys.push(dontEnums[k]); - } - } - } - return theKeys; - }; -} -module.exports = keysShim; - -},{"./isArguments":15}],14:[function(require,module,exports){ -'use strict'; - -var slice = Array.prototype.slice; -var isArgs = require('./isArguments'); - -var origKeys = Object.keys; -var keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation'); - -var originalKeys = Object.keys; - -keysShim.shim = function shimObjectKeys() { - if (Object.keys) { - var keysWorksWithArguments = (function () { - // Safari 5.0 bug - var args = Object.keys(arguments); - return args && args.length === arguments.length; - }(1, 2)); - if (!keysWorksWithArguments) { - Object.keys = function keys(object) { // eslint-disable-line func-name-matching - if (isArgs(object)) { - return originalKeys(slice.call(object)); - } - return originalKeys(object); - }; - } - } else { - Object.keys = keysShim; - } - return Object.keys || keysShim; -}; - -module.exports = keysShim; - -},{"./implementation":13,"./isArguments":15}],15:[function(require,module,exports){ -'use strict'; - -var toStr = Object.prototype.toString; - -module.exports = function isArguments(value) { - var str = toStr.call(value); - var isArgs = str === '[object Arguments]'; - if (!isArgs) { - isArgs = str !== '[object Array]' && - value !== null && - typeof value === 'object' && - typeof value.length === 'number' && - value.length >= 0 && - toStr.call(value.callee) === '[object Function]'; - } - return isArgs; -}; - -},{}],16:[function(require,module,exports){ -'use strict'; - -var implementation = require('./implementation'); - -var lacksProperEnumerationOrder = function () { - if (!Object.assign) { - return false; - } - /* - * v8, specifically in node 4.x, has a bug with incorrect property enumeration order - * note: this does not detect the bug unless there's 20 characters - */ - var str = 'abcdefghijklmnopqrst'; - var letters = str.split(''); - var map = {}; - for (var i = 0; i < letters.length; ++i) { - map[letters[i]] = letters[i]; - } - var obj = Object.assign({}, map); - var actual = ''; - for (var k in obj) { - actual += k; - } - return str !== actual; -}; - -var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - /* - * Firefox 37 still has "pending exception" logic in its Object.assign implementation, - * which is 72% slower than our shim, and Firefox 40's native implementation. - */ - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - return false; -}; - -module.exports = function getPolyfill() { - if (!Object.assign) { - return implementation; - } - if (lacksProperEnumerationOrder()) { - return implementation; - } - if (assignHasPendingExceptions()) { - return implementation; - } - return Object.assign; -}; - -},{"./implementation":2}],17:[function(require,module,exports){ -'use strict'; - -var define = require('define-properties'); -var getPolyfill = require('./polyfill'); - -module.exports = function shimAssign() { - var polyfill = getPolyfill(); - define( - Object, - { assign: polyfill }, - { assign: function () { return Object.assign !== polyfill; } } - ); - return polyfill; -}; - -},{"./polyfill":16,"define-properties":6}]},{},[1]); diff --git a/node_modules/object.assign/hasSymbols.js b/node_modules/object.assign/hasSymbols.js deleted file mode 100644 index 34841e0..0000000 --- a/node_modules/object.assign/hasSymbols.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; - -var keys = require('object-keys'); - -module.exports = function hasSymbols() { - if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } - if (typeof Symbol.iterator === 'symbol') { return true; } - - var obj = {}; - var sym = Symbol('test'); - var symObj = Object(sym); - if (typeof sym === 'string') { return false; } - - if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } - if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } - - /* - * temp disabled per https://github.com/ljharb/object.assign/issues/17 - * if (sym instanceof Symbol) { return false; } - * temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 - * if (!(symObj instanceof Symbol)) { return false; } - */ - - var symVal = 42; - obj[sym] = symVal; - for (sym in obj) { return false; } // eslint-disable-line no-unreachable-loop - if (keys(obj).length !== 0) { return false; } - if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } - - if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } - - var syms = Object.getOwnPropertySymbols(obj); - if (syms.length !== 1 || syms[0] !== sym) { return false; } - - if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } - - if (typeof Object.getOwnPropertyDescriptor === 'function') { - var descriptor = Object.getOwnPropertyDescriptor(obj, sym); - if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } - } - - return true; -}; diff --git a/node_modules/object.assign/implementation.js b/node_modules/object.assign/implementation.js deleted file mode 100644 index 567efe9..0000000 --- a/node_modules/object.assign/implementation.js +++ /dev/null @@ -1,42 +0,0 @@ -'use strict'; - -// modified from https://github.com/es-shims/es6-shim -var keys = require('object-keys'); -var canBeObject = function (obj) { - return typeof obj !== 'undefined' && obj !== null; -}; -var hasSymbols = require('has-symbols/shams')(); -var callBound = require('call-bind/callBound'); -var toObject = Object; -var $push = callBound('Array.prototype.push'); -var $propIsEnumerable = callBound('Object.prototype.propertyIsEnumerable'); -var originalGetSymbols = hasSymbols ? Object.getOwnPropertySymbols : null; - -// eslint-disable-next-line no-unused-vars -module.exports = function assign(target, source1) { - if (!canBeObject(target)) { throw new TypeError('target must be an object'); } - var objTarget = toObject(target); - var s, source, i, props, syms, value, key; - for (s = 1; s < arguments.length; ++s) { - source = toObject(arguments[s]); - props = keys(source); - var getSymbols = hasSymbols && (Object.getOwnPropertySymbols || originalGetSymbols); - if (getSymbols) { - syms = getSymbols(source); - for (i = 0; i < syms.length; ++i) { - key = syms[i]; - if ($propIsEnumerable(source, key)) { - $push(props, key); - } - } - } - for (i = 0; i < props.length; ++i) { - key = props[i]; - value = source[key]; - if ($propIsEnumerable(source, key)) { - objTarget[key] = value; - } - } - } - return objTarget; -}; diff --git a/node_modules/object.assign/index.js b/node_modules/object.assign/index.js deleted file mode 100644 index 9b50603..0000000 --- a/node_modules/object.assign/index.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -var defineProperties = require('define-properties'); -var callBind = require('call-bind'); - -var implementation = require('./implementation'); -var getPolyfill = require('./polyfill'); -var shim = require('./shim'); - -var polyfill = callBind.apply(getPolyfill()); -// eslint-disable-next-line no-unused-vars -var bound = function assign(target, source1) { - return polyfill(Object, arguments); -}; - -defineProperties(bound, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = bound; diff --git a/node_modules/object.assign/package.json b/node_modules/object.assign/package.json deleted file mode 100644 index 25247a8..0000000 --- a/node_modules/object.assign/package.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/object.assign/polyfill.js b/node_modules/object.assign/polyfill.js deleted file mode 100644 index ca94aea..0000000 --- a/node_modules/object.assign/polyfill.js +++ /dev/null @@ -1,55 +0,0 @@ -'use strict'; - -var implementation = require('./implementation'); - -var lacksProperEnumerationOrder = function () { - if (!Object.assign) { - return false; - } - /* - * v8, specifically in node 4.x, has a bug with incorrect property enumeration order - * note: this does not detect the bug unless there's 20 characters - */ - var str = 'abcdefghijklmnopqrst'; - var letters = str.split(''); - var map = {}; - for (var i = 0; i < letters.length; ++i) { - map[letters[i]] = letters[i]; - } - var obj = Object.assign({}, map); - var actual = ''; - for (var k in obj) { - actual += k; - } - return str !== actual; -}; - -var assignHasPendingExceptions = function () { - if (!Object.assign || !Object.preventExtensions) { - return false; - } - /* - * Firefox 37 still has "pending exception" logic in its Object.assign implementation, - * which is 72% slower than our shim, and Firefox 40's native implementation. - */ - var thrower = Object.preventExtensions({ 1: 2 }); - try { - Object.assign(thrower, 'xy'); - } catch (e) { - return thrower[1] === 'y'; - } - return false; -}; - -module.exports = function getPolyfill() { - if (!Object.assign) { - return implementation; - } - if (lacksProperEnumerationOrder()) { - return implementation; - } - if (assignHasPendingExceptions()) { - return implementation; - } - return Object.assign; -}; diff --git a/node_modules/object.assign/shim.js b/node_modules/object.assign/shim.js deleted file mode 100644 index 9f896ae..0000000 --- a/node_modules/object.assign/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var define = require('define-properties'); -var getPolyfill = require('./polyfill'); - -module.exports = function shimAssign() { - var polyfill = getPolyfill(); - define( - Object, - { assign: polyfill }, - { assign: function () { return Object.assign !== polyfill; } } - ); - return polyfill; -}; diff --git a/node_modules/object.assign/test/index.js b/node_modules/object.assign/test/index.js deleted file mode 100644 index 776b2b3..0000000 --- a/node_modules/object.assign/test/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var assign = require('../'); -var test = require('tape'); -var runTests = require('./tests'); - -test('as a function', function (t) { - t.test('bad array/this value', function (st) { - st['throws'](function () { assign(undefined); }, TypeError, 'undefined is not an object'); - st['throws'](function () { assign(null); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(assign, t); - - t.end(); -}); diff --git a/node_modules/object.assign/test/native.js b/node_modules/object.assign/test/native.js deleted file mode 100644 index 49a70f7..0000000 --- a/node_modules/object.assign/test/native.js +++ /dev/null @@ -1,49 +0,0 @@ -'use strict'; - -var test = require('tape'); -var defineProperties = require('define-properties'); -var isEnumerable = Object.prototype.propertyIsEnumerable; -var functionsHaveNames = require('functions-have-names')(); - -var runTests = require('./tests'); - -test('native', function (t) { - t.equal(Object.assign.length, 2, 'Object.assign has a length of 2'); - t.test('Function name', { skip: !functionsHaveNames }, function (st) { - st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"'); - st.end(); - }); - - t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) { - et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable'); - et.end(); - }); - - var supportsStrictMode = (function () { return typeof this === 'undefined'; }()); - - t.test('bad object value', { skip: !supportsStrictMode }, function (st) { - st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object'); - st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object'); - st.end(); - }); - - // v8 in node 0.8 and 0.10 have non-enumerable string properties - var stringCharsAreEnumerable = isEnumerable.call('xy', 0); - t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) { - /* - * Firefox 37 still has "pending exception" logic in its Object.assign implementation, - * which is 72% slower than our shim, and Firefox 40's native implementation. - */ - var thrower = Object.preventExtensions({ 1: '2' }); - var error; - try { Object.assign(thrower, 'xy'); } catch (e) { error = e; } - st.equal(error instanceof TypeError, true, 'error is TypeError'); - st.equal(thrower[1], '2', 'thrower[1] === "2"'); - - st.end(); - }); - - runTests(Object.assign, t); - - t.end(); -}); diff --git a/node_modules/object.assign/test/ses-compat.js b/node_modules/object.assign/test/ses-compat.js deleted file mode 100644 index 9669eb9..0000000 --- a/node_modules/object.assign/test/ses-compat.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -/* globals lockdown */ - -// requiring ses exposes "lockdown" on the global -require('ses'); - -// lockdown freezes the primordials -lockdown({ errorTaming: 'unsafe' }); - -// initialize the module -require('./'); diff --git a/node_modules/object.assign/test/shimmed.js b/node_modules/object.assign/test/shimmed.js deleted file mode 100644 index ee57758..0000000 --- a/node_modules/object.assign/test/shimmed.js +++ /dev/null @@ -1,52 +0,0 @@ -'use strict'; - -var assign = require('../'); -assign.shim(); - -var test = require('tape'); -var defineProperties = require('define-properties'); -var isEnumerable = Object.prototype.propertyIsEnumerable; -var functionsHaveNames = require('functions-have-names')(); - -var runTests = require('./tests'); - -test('shimmed', function (t) { - t.equal(Object.assign.length, 2, 'Object.assign has a length of 2'); - t.test('Function name', { skip: !functionsHaveNames }, function (st) { - st.equal(Object.assign.name, 'assign', 'Object.assign has name "assign"'); - st.end(); - }); - - t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) { - et.equal(false, isEnumerable.call(Object, 'assign'), 'Object.assign is not enumerable'); - et.end(); - }); - - var supportsStrictMode = (function () { return typeof this === 'undefined'; }()); - - t.test('bad object value', { skip: !supportsStrictMode }, function (st) { - st['throws'](function () { return Object.assign(undefined); }, TypeError, 'undefined is not an object'); - st['throws'](function () { return Object.assign(null); }, TypeError, 'null is not an object'); - st.end(); - }); - - // v8 in node 0.8 and 0.10 have non-enumerable string properties - var stringCharsAreEnumerable = isEnumerable.call('xy', 0); - t.test('when Object.assign is present and has pending exceptions', { skip: !stringCharsAreEnumerable || !Object.preventExtensions }, function (st) { - /* - * Firefox 37 still has "pending exception" logic in its Object.assign implementation, - * which is 72% slower than our shim, and Firefox 40's native implementation. - */ - var thrower = Object.preventExtensions({ 1: '2' }); - var error; - try { Object.assign(thrower, 'xy'); } catch (e) { error = e; } - st.equal(error instanceof TypeError, true, 'error is TypeError'); - st.equal(thrower[1], '2', 'thrower[1] === "2"'); - - st.end(); - }); - - runTests(Object.assign, t); - - t.end(); -}); diff --git a/node_modules/object.assign/test/tests.js b/node_modules/object.assign/test/tests.js deleted file mode 100644 index 81b1326..0000000 --- a/node_modules/object.assign/test/tests.js +++ /dev/null @@ -1,237 +0,0 @@ -'use strict'; - -var hasSymbols = require('has-symbols/shams')(); -var forEach = require('for-each'); -var has = require('has'); - -module.exports = function (assign, t) { - t.test('error cases', function (st) { - st['throws'](function () { assign(null); }, TypeError, 'target must be an object'); - st['throws'](function () { assign(undefined); }, TypeError, 'target must be an object'); - st['throws'](function () { assign(null, {}); }, TypeError, 'target must be an object'); - st['throws'](function () { assign(undefined, {}); }, TypeError, 'target must be an object'); - st.end(); - }); - - t.test('non-object target, no sources', function (st) { - var bool = assign(true); - st.equal(typeof bool, 'object', 'bool is object'); - st.equal(Boolean.prototype.valueOf.call(bool), true, 'bool coerces to `true`'); - - var number = assign(1); - st.equal(typeof number, 'object', 'number is object'); - st.equal(Number.prototype.valueOf.call(number), 1, 'number coerces to `1`'); - - var string = assign('1'); - st.equal(typeof string, 'object', 'number is object'); - st.equal(String.prototype.valueOf.call(string), '1', 'number coerces to `"1"`'); - - st.end(); - }); - - t.test('non-object target, with sources', function (st) { - var signal = {}; - - st.test('boolean', function (st2) { - var bool = assign(true, { a: signal }); - st2.equal(typeof bool, 'object', 'bool is object'); - st2.equal(Boolean.prototype.valueOf.call(bool), true, 'bool coerces to `true`'); - st2.equal(bool.a, signal, 'source properties copied'); - st2.end(); - }); - - st.test('number', function (st2) { - var number = assign(1, { a: signal }); - st2.equal(typeof number, 'object', 'number is object'); - st2.equal(Number.prototype.valueOf.call(number), 1, 'number coerces to `1`'); - st2.equal(number.a, signal, 'source properties copied'); - st2.end(); - }); - - st.test('string', function (st2) { - var string = assign('1', { a: signal }); - st2.equal(typeof string, 'object', 'number is object'); - st2.equal(String.prototype.valueOf.call(string), '1', 'number coerces to `"1"`'); - st2.equal(string.a, signal, 'source properties copied'); - st2.end(); - }); - - st.end(); - }); - - t.test('non-object sources', function (st) { - st.deepEqual(assign({ a: 1 }, null, { b: 2 }), { a: 1, b: 2 }, 'ignores null source'); - st.deepEqual(assign({ a: 1 }, { b: 2 }, undefined), { a: 1, b: 2 }, 'ignores undefined source'); - st.end(); - }); - - t.test('returns the modified target object', function (st) { - var target = {}; - var returned = assign(target, { a: 1 }); - st.equal(returned, target, 'returned object is the same reference as the target object'); - st.end(); - }); - - t.test('has the right length', function (st) { - st.equal(assign.length, 2, 'length is 2 => 2 required arguments'); - st.end(); - }); - - t.test('merge two objects', function (st) { - var target = { a: 1 }; - var returned = assign(target, { b: 2 }); - st.deepEqual(returned, { a: 1, b: 2 }, 'returned object has properties from both'); - st.end(); - }); - - t.test('works with functions', function (st) { - var target = function () {}; - target.a = 1; - var returned = assign(target, { b: 2 }); - st.equal(target, returned, 'returned object is target'); - st.equal(returned.a, 1); - st.equal(returned.b, 2); - st.end(); - }); - - t.test('works with primitives', function (st) { - var target = 2; - var source = { b: 42 }; - var returned = assign(target, source); - st.equal(Object.prototype.toString.call(returned), '[object Number]', 'returned is object form of number primitive'); - st.equal(Number(returned), target, 'returned and target have same valueOf'); - st.equal(returned.b, source.b); - st.end(); - }); - - /* globals window */ - t.test('works with window.location', { skip: typeof window === 'undefined' }, function (st) { - var target = {}; - assign(target, window.location); - for (var prop in window.location) { - if (has(window.location, prop)) { - st.deepEqual(target[prop], window.location[prop], prop + ' is copied'); - } - } - st.end(); - }); - - t.test('merge N objects', function (st) { - var target = { a: 1 }; - var source1 = { b: 2 }; - var source2 = { c: 3 }; - var returned = assign(target, source1, source2); - st.deepEqual(returned, { a: 1, b: 2, c: 3 }, 'returned object has properties from all sources'); - st.end(); - }); - - t.test('only iterates over own keys', function (st) { - var Foo = function () {}; - Foo.prototype.bar = true; - var foo = new Foo(); - foo.baz = true; - var target = { a: 1 }; - var returned = assign(target, foo); - st.equal(returned, target, 'returned object is the same reference as the target object'); - st.deepEqual(target, { a: 1, baz: true }, 'returned object has only own properties from both'); - st.end(); - }); - - t.test('includes enumerable symbols, after keys', { skip: !hasSymbols }, function (st) { - var visited = []; - var obj = {}; - Object.defineProperty(obj, 'a', { enumerable: true, get: function () { visited.push('a'); return 42; } }); - var symbol = Symbol('enumerable'); - Object.defineProperty(obj, symbol, { - enumerable: true, - get: function () { visited.push(symbol); return Infinity; } - }); - var nonEnumSymbol = Symbol('non-enumerable'); - Object.defineProperty(obj, nonEnumSymbol, { - enumerable: false, - get: function () { visited.push(nonEnumSymbol); return -Infinity; } - }); - var target = assign({}, obj); - st.deepEqual(visited, ['a', symbol], 'key is visited first, then symbol'); - st.equal(target.a, 42, 'target.a is 42'); - st.equal(target[symbol], Infinity, 'target[symbol] is Infinity'); - st.notEqual(target[nonEnumSymbol], -Infinity, 'target[nonEnumSymbol] is not -Infinity'); - st.end(); - }); - - t.test('does not fail when symbols are not present', { skip: !Object.isFrozen || Object.isFrozen(Object) }, function (st) { - var getSyms; - if (hasSymbols) { - getSyms = Object.getOwnPropertySymbols; - delete Object.getOwnPropertySymbols; - } - - var visited = []; - var obj = {}; - Object.defineProperty(obj, 'a', { enumerable: true, get: function () { visited.push('a'); return 42; } }); - var keys = ['a']; - if (hasSymbols) { - var symbol = Symbol('sym'); - Object.defineProperty(obj, symbol, { - enumerable: true, - get: function () { visited.push(symbol); return Infinity; } - }); - keys.push(symbol); - } - var target = assign({}, obj); - st.deepEqual(visited, keys, 'assign visits expected keys'); - st.equal(target.a, 42, 'target.a is 42'); - - if (hasSymbols) { - st.equal(target[symbol], Infinity); - - Object.getOwnPropertySymbols = getSyms; - } - st.end(); - }); - - t.test('preserves correct property enumeration order', function (st) { - var str = 'abcdefghijklmnopqrst'; - var letters = {}; - forEach(str.split(''), function (letter) { - letters[letter] = letter; - }); - - var n = 5; - st.comment('run the next test ' + n + ' times'); - var object = assign({}, letters); - var actual = ''; - for (var k in object) { - actual += k; - } - for (var i = 0; i < n; ++i) { - st.equal(actual, str, 'property enumeration order should be followed'); - } - st.end(); - }); - - t.test('checks enumerability and existence, in case of modification during [[Get]]', { skip: !Object.defineProperty }, function (st) { - var targetBvalue = {}; - var targetCvalue = {}; - var target = { b: targetBvalue, c: targetCvalue }; - var source = {}; - Object.defineProperty(source, 'a', { - enumerable: true, - get: function () { - delete this.b; - Object.defineProperty(this, 'c', { enumerable: false }); - return 'a'; - } - }); - var sourceBvalue = {}; - var sourceCvalue = {}; - source.b = sourceBvalue; - source.c = sourceCvalue; - var result = assign(target, source); - st.equal(result, target, 'sanity check: result is === target'); - st.equal(result.b, targetBvalue, 'target key not overwritten by deleted source key'); - st.equal(result.c, targetCvalue, 'target key not overwritten by non-enumerable source key'); - - st.end(); - }); -}; diff --git a/node_modules/querystring/.History.md.un~ b/node_modules/querystring/.History.md.un~ deleted file mode 100644 index c96a7dd..0000000 Binary files a/node_modules/querystring/.History.md.un~ and /dev/null differ diff --git a/node_modules/querystring/.Readme.md.un~ b/node_modules/querystring/.Readme.md.un~ deleted file mode 100644 index 71613b5..0000000 Binary files a/node_modules/querystring/.Readme.md.un~ and /dev/null differ diff --git a/node_modules/querystring/.package.json.un~ b/node_modules/querystring/.package.json.un~ deleted file mode 100644 index d86fe31..0000000 Binary files a/node_modules/querystring/.package.json.un~ and /dev/null differ diff --git a/node_modules/querystring/.travis.yml b/node_modules/querystring/.travis.yml deleted file mode 100644 index 895dbd3..0000000 --- a/node_modules/querystring/.travis.yml +++ /dev/null @@ -1,4 +0,0 @@ -language: node_js -node_js: - - 0.6 - - 0.8 diff --git a/node_modules/querystring/History.md b/node_modules/querystring/History.md deleted file mode 100644 index 4fddbaf..0000000 --- a/node_modules/querystring/History.md +++ /dev/null @@ -1,20 +0,0 @@ -# 0.2.0 / 2013-02-21 - - - Refactor into function per-module idiomatic style. - - Improved test coverage. - -# 0.1.0 / 2011-12-13 - - - Minor project reorganization - -# 0.0.3 / 2011-04-16 - - Support for AMD module loaders - -# 0.0.2 / 2011-04-16 - - - Ported unit tests - - Removed functionality that depended on Buffers - -# 0.0.1 / 2011-04-15 - - - Initial release diff --git a/node_modules/querystring/License.md b/node_modules/querystring/License.md deleted file mode 100644 index fc80e85..0000000 --- a/node_modules/querystring/License.md +++ /dev/null @@ -1,19 +0,0 @@ - -Copyright 2012 Irakli Gozalishvili. All rights reserved. -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to -deal in the Software without restriction, including without limitation the -rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -sell copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -IN THE SOFTWARE. diff --git a/node_modules/querystring/Readme.md b/node_modules/querystring/Readme.md deleted file mode 100644 index a4fe252..0000000 --- a/node_modules/querystring/Readme.md +++ /dev/null @@ -1,15 +0,0 @@ -# querystring - -[![Build Status](https://secure.travis-ci.org/Gozala/querystring.png)](http://travis-ci.org/Gozala/querystring) - - -[![Browser support](http://ci.testling.com/Gozala/querystring.png)](http://ci.testling.com/Gozala/querystring) - - - -Node's querystring module for all engines. - -## Install ## - - npm install querystring - diff --git a/node_modules/querystring/decode.js b/node_modules/querystring/decode.js deleted file mode 100644 index a6518b8..0000000 --- a/node_modules/querystring/decode.js +++ /dev/null @@ -1,80 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -// If obj.hasOwnProperty has been overridden, then calling -// obj.hasOwnProperty(prop) will break. -// See: https://github.com/joyent/node/issues/1707 -function hasOwnProperty(obj, prop) { - return Object.prototype.hasOwnProperty.call(obj, prop); -} - -module.exports = function(qs, sep, eq, options) { - sep = sep || '&'; - eq = eq || '='; - var obj = {}; - - if (typeof qs !== 'string' || qs.length === 0) { - return obj; - } - - var regexp = /\+/g; - qs = qs.split(sep); - - var maxKeys = 1000; - if (options && typeof options.maxKeys === 'number') { - maxKeys = options.maxKeys; - } - - var len = qs.length; - // maxKeys <= 0 means that we should not limit keys count - if (maxKeys > 0 && len > maxKeys) { - len = maxKeys; - } - - for (var i = 0; i < len; ++i) { - var x = qs[i].replace(regexp, '%20'), - idx = x.indexOf(eq), - kstr, vstr, k, v; - - if (idx >= 0) { - kstr = x.substr(0, idx); - vstr = x.substr(idx + 1); - } else { - kstr = x; - vstr = ''; - } - - k = decodeURIComponent(kstr); - v = decodeURIComponent(vstr); - - if (!hasOwnProperty(obj, k)) { - obj[k] = v; - } else if (Array.isArray(obj[k])) { - obj[k].push(v); - } else { - obj[k] = [obj[k], v]; - } - } - - return obj; -}; diff --git a/node_modules/querystring/encode.js b/node_modules/querystring/encode.js deleted file mode 100644 index 4f2b561..0000000 --- a/node_modules/querystring/encode.js +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -'use strict'; - -var stringifyPrimitive = function(v) { - switch (typeof v) { - case 'string': - return v; - - case 'boolean': - return v ? 'true' : 'false'; - - case 'number': - return isFinite(v) ? v : ''; - - default: - return ''; - } -}; - -module.exports = function(obj, sep, eq, name) { - sep = sep || '&'; - eq = eq || '='; - if (obj === null) { - obj = undefined; - } - - if (typeof obj === 'object') { - return Object.keys(obj).map(function(k) { - var ks = encodeURIComponent(stringifyPrimitive(k)) + eq; - if (Array.isArray(obj[k])) { - return obj[k].map(function(v) { - return ks + encodeURIComponent(stringifyPrimitive(v)); - }).join(sep); - } else { - return ks + encodeURIComponent(stringifyPrimitive(obj[k])); - } - }).join(sep); - - } - - if (!name) return ''; - return encodeURIComponent(stringifyPrimitive(name)) + eq + - encodeURIComponent(stringifyPrimitive(obj)); -}; diff --git a/node_modules/querystring/index.js b/node_modules/querystring/index.js deleted file mode 100644 index 99826ea..0000000 --- a/node_modules/querystring/index.js +++ /dev/null @@ -1,4 +0,0 @@ -'use strict'; - -exports.decode = exports.parse = require('./decode'); -exports.encode = exports.stringify = require('./encode'); diff --git a/node_modules/querystring/package.json b/node_modules/querystring/package.json deleted file mode 100644 index bdbc970..0000000 --- a/node_modules/querystring/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "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" - }, - "bugs": { - "url": "http://github.com/Gozala/querystring/issues/" - }, - "devDependencies": { - "test": "~0.x.0", - "phantomify": "~0.x.0", - "retape": "~0.x.0", - "tape": "~0.1.5" - }, - "engines": { - "node": ">=0.4.x" - }, - "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", - "test-node": "node ./test/common-index.js", - "test-tap": "node ./test/tap-index.js" - }, - "testling": { - "files": "test/tap-index.js", - "browsers": { - "iexplore": [ - 9, - 10 - ], - "chrome": [ - 16, - 20, - 25, - "canary" - ], - "firefox": [ - 10, - 15, - 16, - 17, - 18, - "nightly" - ], - "safari": [ - 5, - 6 - ], - "opera": [ - 12 - ] - } - }, - "licenses": [{ - "type" : "MIT", - "url" : "https://github.com/Gozala/enchain/License.md" - }] -} diff --git a/node_modules/querystring/test/.index.js.un~ b/node_modules/querystring/test/.index.js.un~ deleted file mode 100644 index 898eced..0000000 Binary files a/node_modules/querystring/test/.index.js.un~ and /dev/null differ diff --git a/node_modules/querystring/test/common-index.js b/node_modules/querystring/test/common-index.js deleted file mode 100644 index f356f98..0000000 --- a/node_modules/querystring/test/common-index.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; - -require("test").run(require("./index")) \ No newline at end of file diff --git a/node_modules/querystring/test/index.js b/node_modules/querystring/test/index.js deleted file mode 100644 index 62eb2ac..0000000 --- a/node_modules/querystring/test/index.js +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -"use strict"; - -// test using assert -var qs = require('../'); - -// folding block, commented to pass gjslint -// {{{ -// [ wonkyQS, canonicalQS, obj ] -var qsTestCases = [ - ['foo=918854443121279438895193', - 'foo=918854443121279438895193', - {'foo': '918854443121279438895193'}], - ['foo=bar', 'foo=bar', {'foo': 'bar'}], - ['foo=bar&foo=quux', 'foo=bar&foo=quux', {'foo': ['bar', 'quux']}], - ['foo=1&bar=2', 'foo=1&bar=2', {'foo': '1', 'bar': '2'}], - ['my+weird+field=q1%212%22%27w%245%267%2Fz8%29%3F', - 'my%20weird%20field=q1!2%22\'w%245%267%2Fz8)%3F', - {'my weird field': 'q1!2"\'w$5&7/z8)?' }], - ['foo%3Dbaz=bar', 'foo%3Dbaz=bar', {'foo=baz': 'bar'}], - ['foo=baz=bar', 'foo=baz%3Dbar', {'foo': 'baz=bar'}], - ['str=foo&arr=1&arr=2&arr=3&somenull=&undef=', - 'str=foo&arr=1&arr=2&arr=3&somenull=&undef=', - { 'str': 'foo', - 'arr': ['1', '2', '3'], - 'somenull': '', - 'undef': ''}], - [' foo = bar ', '%20foo%20=%20bar%20', {' foo ': ' bar '}], - // disable test that fails ['foo=%zx', 'foo=%25zx', {'foo': '%zx'}], - ['foo=%EF%BF%BD', 'foo=%EF%BF%BD', {'foo': '\ufffd' }], - // See: https://github.com/joyent/node/issues/1707 - ['hasOwnProperty=x&toString=foo&valueOf=bar&__defineGetter__=baz', - 'hasOwnProperty=x&toString=foo&valueOf=bar&__defineGetter__=baz', - { hasOwnProperty: 'x', - toString: 'foo', - valueOf: 'bar', - __defineGetter__: 'baz' }], - // See: https://github.com/joyent/node/issues/3058 - ['foo&bar=baz', 'foo=&bar=baz', { foo: '', bar: 'baz' }] -]; - -// [ wonkyQS, canonicalQS, obj ] -var qsColonTestCases = [ - ['foo:bar', 'foo:bar', {'foo': 'bar'}], - ['foo:bar;foo:quux', 'foo:bar;foo:quux', {'foo': ['bar', 'quux']}], - ['foo:1&bar:2;baz:quux', - 'foo:1%26bar%3A2;baz:quux', - {'foo': '1&bar:2', 'baz': 'quux'}], - ['foo%3Abaz:bar', 'foo%3Abaz:bar', {'foo:baz': 'bar'}], - ['foo:baz:bar', 'foo:baz%3Abar', {'foo': 'baz:bar'}] -]; - -// [wonkyObj, qs, canonicalObj] -var extendedFunction = function() {}; -extendedFunction.prototype = {a: 'b'}; -var qsWeirdObjects = [ - [{regexp: /./g}, 'regexp=', {'regexp': ''}], - [{regexp: new RegExp('.', 'g')}, 'regexp=', {'regexp': ''}], - [{fn: function() {}}, 'fn=', {'fn': ''}], - [{fn: new Function('')}, 'fn=', {'fn': ''}], - [{math: Math}, 'math=', {'math': ''}], - [{e: extendedFunction}, 'e=', {'e': ''}], - [{d: new Date()}, 'd=', {'d': ''}], - [{d: Date}, 'd=', {'d': ''}], - [{f: new Boolean(false), t: new Boolean(true)}, 'f=&t=', {'f': '', 't': ''}], - [{f: false, t: true}, 'f=false&t=true', {'f': 'false', 't': 'true'}], - [{n: null}, 'n=', {'n': ''}], - [{nan: NaN}, 'nan=', {'nan': ''}], - [{inf: Infinity}, 'inf=', {'inf': ''}] -]; -// }}} - -var qsNoMungeTestCases = [ - ['', {}], - ['foo=bar&foo=baz', {'foo': ['bar', 'baz']}], - ['blah=burp', {'blah': 'burp'}], - ['gragh=1&gragh=3&goo=2', {'gragh': ['1', '3'], 'goo': '2'}], - ['frappucino=muffin&goat%5B%5D=scone&pond=moose', - {'frappucino': 'muffin', 'goat[]': 'scone', 'pond': 'moose'}], - ['trololol=yes&lololo=no', {'trololol': 'yes', 'lololo': 'no'}] -]; - -exports['test basic'] = function(assert) { - assert.strictEqual('918854443121279438895193', - qs.parse('id=918854443121279438895193').id, - 'prase id=918854443121279438895193'); -}; - -exports['test that the canonical qs is parsed properly'] = function(assert) { - qsTestCases.forEach(function(testCase) { - assert.deepEqual(testCase[2], qs.parse(testCase[0]), - 'parse ' + testCase[0]); - }); -}; - - -exports['test that the colon test cases can do the same'] = function(assert) { - qsColonTestCases.forEach(function(testCase) { - assert.deepEqual(testCase[2], qs.parse(testCase[0], ';', ':'), - 'parse ' + testCase[0] + ' -> ; :'); - }); -}; - -exports['test the weird objects, that they get parsed properly'] = function(assert) { - qsWeirdObjects.forEach(function(testCase) { - assert.deepEqual(testCase[2], qs.parse(testCase[1]), - 'parse ' + testCase[1]); - }); -}; - -exports['test non munge test cases'] = function(assert) { - qsNoMungeTestCases.forEach(function(testCase) { - assert.deepEqual(testCase[0], qs.stringify(testCase[1], '&', '=', false), - 'stringify ' + JSON.stringify(testCase[1]) + ' -> & ='); - }); -}; - -exports['test the nested qs-in-qs case'] = function(assert) { - var f = qs.parse('a=b&q=x%3Dy%26y%3Dz'); - f.q = qs.parse(f.q); - assert.deepEqual(f, { a: 'b', q: { x: 'y', y: 'z' } }, - 'parse a=b&q=x%3Dy%26y%3Dz'); -}; - -exports['test nested in colon'] = function(assert) { - var f = qs.parse('a:b;q:x%3Ay%3By%3Az', ';', ':'); - f.q = qs.parse(f.q, ';', ':'); - assert.deepEqual(f, { a: 'b', q: { x: 'y', y: 'z' } }, - 'parse a:b;q:x%3Ay%3By%3Az -> ; :'); -}; - -exports['test stringifying'] = function(assert) { - qsTestCases.forEach(function(testCase) { - assert.equal(testCase[1], qs.stringify(testCase[2]), - 'stringify ' + JSON.stringify(testCase[2])); - }); - - qsColonTestCases.forEach(function(testCase) { - assert.equal(testCase[1], qs.stringify(testCase[2], ';', ':'), - 'stringify ' + JSON.stringify(testCase[2]) + ' -> ; :'); - }); - - qsWeirdObjects.forEach(function(testCase) { - assert.equal(testCase[1], qs.stringify(testCase[0]), - 'stringify ' + JSON.stringify(testCase[0])); - }); -}; - -exports['test stringifying nested'] = function(assert) { - var f = qs.stringify({ - a: 'b', - q: qs.stringify({ - x: 'y', - y: 'z' - }) - }); - assert.equal(f, 'a=b&q=x%3Dy%26y%3Dz', - JSON.stringify({ - a: 'b', - 'qs.stringify -> q': { - x: 'y', - y: 'z' - } - })); - - var threw = false; - try { qs.parse(undefined); } catch(error) { threw = true; } - assert.ok(!threw, "does not throws on undefined"); -}; - -exports['test nested in colon'] = function(assert) { - var f = qs.stringify({ - a: 'b', - q: qs.stringify({ - x: 'y', - y: 'z' - }, ';', ':') - }, ';', ':'); - assert.equal(f, 'a:b;q:x%3Ay%3By%3Az', - 'stringify ' + JSON.stringify({ - a: 'b', - 'qs.stringify -> q': { - x: 'y', - y: 'z' - } - }) + ' -> ; : '); - - - assert.deepEqual({}, qs.parse(), 'parse undefined'); -}; diff --git a/node_modules/querystring/test/tap-index.js b/node_modules/querystring/test/tap-index.js deleted file mode 100644 index 70679b3..0000000 --- a/node_modules/querystring/test/tap-index.js +++ /dev/null @@ -1,3 +0,0 @@ -"use strict"; - -require("retape")(require("./index")) \ No newline at end of file diff --git a/node_modules/readable-stream/README.md b/node_modules/readable-stream/README.md index 23fe3f3..f1c5a93 100644 --- a/node_modules/readable-stream/README.md +++ b/node_modules/readable-stream/README.md @@ -1,6 +1,6 @@ # readable-stream -***Node-core v8.11.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) +***Node-core v8.17.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream) [![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/) @@ -18,7 +18,7 @@ npm install --save readable-stream This package is a mirror of the Streams2 and Streams3 implementations in Node-core. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.11.1/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v8.17.0/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/readable-stream/lib/_stream_readable.js index 0f80764..3af95cb 100644 --- a/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/readable-stream/lib/_stream_readable.js @@ -53,7 +53,7 @@ var Stream = require('./internal/streams/stream'); /**/ var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } @@ -623,8 +623,8 @@ Readable.prototype.pipe = function (dest, pipeOpts) { // also returned false. // => Check whether `dest` is still a piping destination. if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) { - debug('false write response, pause', src._readableState.awaitDrain); - src._readableState.awaitDrain++; + debug('false write response, pause', state.awaitDrain); + state.awaitDrain++; increasedAwaitDrain = true; } src.pause(); @@ -718,7 +718,7 @@ Readable.prototype.unpipe = function (dest) { state.flowing = false; for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, unpipeInfo); + dests[i].emit('unpipe', this, { hasUnpiped: false }); }return this; } diff --git a/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/readable-stream/lib/_stream_writable.js index b0b0220..e1e897f 100644 --- a/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/readable-stream/lib/_stream_writable.js @@ -81,7 +81,7 @@ var Stream = require('./internal/streams/stream'); /**/ var Buffer = require('safe-buffer').Buffer; -var OurUint8Array = global.Uint8Array || function () {}; +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } @@ -349,7 +349,7 @@ Writable.prototype.uncork = function () { if (state.corked) { state.corked--; - if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); + if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; @@ -591,7 +591,7 @@ Writable.prototype.end = function (chunk, encoding, cb) { } // ignore unnecessary end() calls. - if (!state.ending && !state.finished) endWritable(this, state, cb); + if (!state.ending) endWritable(this, state, cb); }; function needFinish(state) { @@ -652,11 +652,9 @@ function onCorkedFinish(corkReq, state, err) { cb(err); entry = entry.next; } - if (state.corkedRequestsFree) { - state.corkedRequestsFree.next = corkReq; - } else { - state.corkedRequestsFree = corkReq; - } + + // reuse the free corkReq. + state.corkedRequestsFree.next = corkReq; } Object.defineProperty(Writable.prototype, 'destroyed', { diff --git a/node_modules/readable-stream/lib/internal/streams/BufferList.js b/node_modules/readable-stream/lib/internal/streams/BufferList.js index aefc68b..5e08097 100644 --- a/node_modules/readable-stream/lib/internal/streams/BufferList.js +++ b/node_modules/readable-stream/lib/internal/streams/BufferList.js @@ -56,7 +56,6 @@ module.exports = function () { BufferList.prototype.concat = function concat(n) { if (this.length === 0) return Buffer.alloc(0); - if (this.length === 1) return this.head.data; var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; diff --git a/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/readable-stream/lib/internal/streams/destroy.js index 5a0a0d8..85a8214 100644 --- a/node_modules/readable-stream/lib/internal/streams/destroy.js +++ b/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -15,9 +15,15 @@ function destroy(err, cb) { if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); - } else if (err && (!this._writableState || !this._writableState.errorEmitted)) { - pna.nextTick(emitErrorNT, this, err); + } else if (err) { + if (!this._writableState) { + pna.nextTick(emitErrorNT, this, err); + } else if (!this._writableState.errorEmitted) { + this._writableState.errorEmitted = true; + pna.nextTick(emitErrorNT, this, err); + } } + return this; } @@ -35,9 +41,11 @@ function destroy(err, cb) { this._destroy(err || null, function (err) { if (!cb && err) { - pna.nextTick(emitErrorNT, _this, err); - if (_this._writableState) { + if (!_this._writableState) { + pna.nextTick(emitErrorNT, _this, err); + } else if (!_this._writableState.errorEmitted) { _this._writableState.errorEmitted = true; + pna.nextTick(emitErrorNT, _this, err); } } else if (cb) { cb(err); @@ -59,6 +67,8 @@ function undestroy() { this._writableState.destroyed = false; this._writableState.ended = false; this._writableState.ending = false; + this._writableState.finalCalled = false; + this._writableState.prefinished = false; this._writableState.finished = false; this._writableState.errorEmitted = false; } diff --git a/node_modules/readable-stream/package.json b/node_modules/readable-stream/package.json index 2afa6fb..514c178 100644 --- a/node_modules/readable-stream/package.json +++ b/node_modules/readable-stream/package.json @@ -1,6 +1,6 @@ { "name": "readable-stream", - "version": "2.3.7", + "version": "2.3.8", "description": "Streams3, a user-land copy of the stream library from Node.js", "main": "readable.js", "dependencies": { diff --git a/node_modules/resolve/.eslintignore b/node_modules/resolve/.eslintignore deleted file mode 100644 index 3c3629e..0000000 --- a/node_modules/resolve/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -node_modules diff --git a/node_modules/resolve/.eslintrc b/node_modules/resolve/.eslintrc index a22863c..ce1be6e 100644 --- a/node_modules/resolve/.eslintrc +++ b/node_modules/resolve/.eslintrc @@ -1,9 +1,9 @@ { - "extends": "@ljharb", "root": true, + + "extends": "@ljharb", + "rules": { - "array-bracket-newline": 0, - "array-element-newline": 0, "indent": [2, 4], "strict": 0, "complexity": 0, @@ -12,28 +12,54 @@ "dot-notation": [2, { "allowKeywords": true }], "func-name-matching": 0, "func-style": 0, - "global-require": 0, + "global-require": 1, "id-length": [2, { "min": 1, "max": 30 }], + "max-lines": [2, 350], "max-lines-per-function": 0, "max-nested-callbacks": 0, "max-params": 0, "max-statements-per-line": [2, { "max": 2 }], "max-statements": 0, "no-magic-numbers": 0, - "no-console": 0, "no-shadow": 0, - "no-unused-vars": [2, { "vars": "all", "args": "none" }], "no-use-before-define": 0, - "object-curly-newline": 0, - "operator-linebreak": [2, "before"], "sort-keys": 0, }, "overrides": [ + { + "files": "bin/**", + "rules": { + "no-process-exit": "off", + }, + }, + { + "files": "example/**", + "rules": { + "no-console": 0, + }, + }, { "files": "test/resolver/nested_symlinks/mylib/*.js", "rules": { "no-throw-literal": 0, }, }, + { + "files": "test/**", + "parserOptions": { + "ecmaVersion": 5, + "allowReserved": false, + }, + "rules": { + "dot-notation": [2, { "allowPattern": "throws" }], + "max-lines": 0, + "max-lines-per-function": 0, + "no-unused-vars": [2, { "vars": "all", "args": "none" }], + }, + }, + ], + + "ignorePatterns": [ + "./test/resolver/malformed_package_json/package.json", ], } diff --git a/node_modules/resolve/.github/FUNDING.yml b/node_modules/resolve/.github/FUNDING.yml new file mode 100644 index 0000000..d9c0595 --- /dev/null +++ b/node_modules/resolve/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/resolve +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/resolve/appveyor.yml b/node_modules/resolve/appveyor.yml deleted file mode 100644 index 747fbdb..0000000 --- a/node_modules/resolve/appveyor.yml +++ /dev/null @@ -1,74 +0,0 @@ -version: 1.0.{build} -skip_branch_with_pr: true -build: off - -environment: - matrix: - #- nodejs_version: "15" - - nodejs_version: "14" - - nodejs_version: "13" - - nodejs_version: "12" - - nodejs_version: "11" - - nodejs_version: "10" - - nodejs_version: "9" - - nodejs_version: "8" - - nodejs_version: "7" - - nodejs_version: "6" - - nodejs_version: "5" - - nodejs_version: "4" - - nodejs_version: "3" - - nodejs_version: "2" - - nodejs_version: "1" - - nodejs_version: "0.12" - - nodejs_version: "0.10" - - nodejs_version: "0.8" - - nodejs_version: "0.6" -matrix: - # fast_finish: true - allow_failures: - - nodejs_version: "5" # due to windows npm bug, registry-side - - nodejs_version: "0.8" - # platform: x86 # x64 has started failing on the registry side, around early November 2020 - - nodejs_version: "0.6" - -platform: - - x86 - - x64 - -# Install scripts. (runs after repo cloning) -install: - # Fix symlinks in working copy (see https://github.com/appveyor/ci/issues/650#issuecomment-186592582) / https://github.com/charleskorn/batect/commit/d08986802ec43086902958c4ee7e57ff3e71dbef - - git config core.symlinks true - - git reset --hard - # Get the latest stable version of Node.js or io.js - - ps: if ($env:nodejs_version -ne '0.6') { Install-Product node $env:nodejs_version $env:platform } - - ps: Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) $env:platform - - IF %nodejs_version% EQU 0.6 npm config set strict-ssl false && npm -g install npm@1.3 - - IF %nodejs_version% EQU 0.8 npm config set strict-ssl false && npm -g install npm@1.4.28 && npm install -g npm@4.5 - - IF %nodejs_version% EQU 1 npm -g install npm@2.9 - - IF %nodejs_version% EQU 2 npm -g install npm@4 - - IF %nodejs_version% EQU 3 npm -g install npm@4 - - IF %nodejs_version% EQU 4 npm -g install npm@5.3 - - IF %nodejs_version% EQU 5 npm -g install npm@5.3 - - IF %nodejs_version% EQU 6 npm -g install npm@6.9 - - IF %nodejs_version% EQU 7 npm -g install npm@6 - - IF %nodejs_version% EQU 8 npm -g install npm@6 - - IF %nodejs_version% EQU 9 npm -g install npm@6.9 - - IF %nodejs_version% EQU 10 npm -g install npm@7 - - IF %nodejs_version% EQU 11 npm -g install npm@7 - - IF %nodejs_version% EQU 12 npm -g install npm@7 - - IF %nodejs_version% EQU 13 npm -g install npm@7 - - IF %nodejs_version% EQU 14 npm -g install npm@7 - - IF %nodejs_version% EQU 15 npm -g install npm@7 - - set PATH=%APPDATA%\npm;%PATH% - #- IF %nodejs_version% NEQ 0.6 AND %nodejs_version% NEQ 0.8 npm -g install npm - # install modules - - npm install - -# Post-install test scripts. -test_script: - # Output useful info for debugging. - - node --version - - npm --version - # run tests - - npm run tests-only diff --git a/node_modules/resolve/async.js b/node_modules/resolve/async.js new file mode 100644 index 0000000..f38c581 --- /dev/null +++ b/node_modules/resolve/async.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./lib/async'); diff --git a/node_modules/resolve/bin/resolve b/node_modules/resolve/bin/resolve new file mode 100644 index 0000000..5ee329a --- /dev/null +++ b/node_modules/resolve/bin/resolve @@ -0,0 +1,50 @@ +#!/usr/bin/env node + +'use strict'; + +var path = require('path'); +var fs = require('fs'); + +if ( + String(process.env.npm_lifecycle_script).slice(0, 8) !== 'resolve ' + && ( + !process.argv + || process.argv.length < 2 + || (process.argv[1] !== __filename && fs.statSync(process.argv[1]).ino !== fs.statSync(__filename).ino) + || (process.env._ && path.resolve(process.env._) !== __filename) + ) +) { + console.error('Error: `resolve` must be run directly as an executable'); + process.exit(1); +} + +var supportsPreserveSymlinkFlag = require('supports-preserve-symlinks-flag'); + +var preserveSymlinks = false; +for (var i = 2; i < process.argv.length; i += 1) { + if (process.argv[i].slice(0, 2) === '--') { + if (supportsPreserveSymlinkFlag && process.argv[i] === '--preserve-symlinks') { + preserveSymlinks = true; + } else if (process.argv[i].length > 2) { + console.error('Unknown argument ' + process.argv[i].replace(/[=].*$/, '')); + process.exit(2); + } + process.argv.splice(i, 1); + i -= 1; + if (process.argv[i] === '--') { break; } // eslint-disable-line no-restricted-syntax + } +} + +if (process.argv.length < 3) { + console.error('Error: `resolve` expects a specifier'); + process.exit(2); +} + +var resolve = require('../'); + +var result = resolve.sync(process.argv[2], { + basedir: process.cwd(), + preserveSymlinks: preserveSymlinks +}); + +console.log(result); diff --git a/node_modules/resolve/lib/async.js b/node_modules/resolve/lib/async.js index 02e80ac..60d2555 100644 --- a/node_modules/resolve/lib/async.js +++ b/node_modules/resolve/lib/async.js @@ -1,11 +1,20 @@ var fs = require('fs'); +var getHomedir = require('./homedir'); var path = require('path'); var caller = require('./caller'); var nodeModulesPaths = require('./node-modules-paths'); var normalizeOptions = require('./normalize-options'); var isCore = require('is-core-module'); -var realpathFS = fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; +var realpathFS = process.platform !== 'win32' && fs.realpath && typeof fs.realpath.native === 'function' ? fs.realpath.native : fs.realpath; + +var homedir = getHomedir(); +var defaultPaths = function () { + return [ + path.join(homedir, '.node_modules'), + path.join(homedir, '.node_libraries') + ]; +}; var defaultIsFile = function isFile(file, cb) { fs.stat(file, function (err, stat) { @@ -98,7 +107,7 @@ module.exports = function resolve(x, options, callback) { var basedir = opts.basedir || path.dirname(caller()); var parent = opts.filename || basedir; - opts.paths = opts.paths || []; + opts.paths = opts.paths || defaultPaths(); // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory var absoluteStart = path.resolve(basedir); diff --git a/node_modules/resolve/lib/core.js b/node_modules/resolve/lib/core.js index c417d23..57b048f 100644 --- a/node_modules/resolve/lib/core.js +++ b/node_modules/resolve/lib/core.js @@ -1,53 +1,12 @@ -var current = (process.versions && process.versions.node && process.versions.node.split('.')) || []; - -function specifierIncluded(specifier) { - var parts = specifier.split(' '); - var op = parts.length > 1 ? parts[0] : '='; - var versionParts = (parts.length > 1 ? parts[1] : parts[0]).split('.'); - - for (var i = 0; i < 3; ++i) { - var cur = parseInt(current[i] || 0, 10); - var ver = parseInt(versionParts[i] || 0, 10); - if (cur === ver) { - continue; // eslint-disable-line no-restricted-syntax, no-continue - } - if (op === '<') { - return cur < ver; - } else if (op === '>=') { - return cur >= ver; - } else { - return false; - } - } - return op === '>='; -} - -function matchesRange(range) { - var specifiers = range.split(/ ?&& ?/); - if (specifiers.length === 0) { return false; } - for (var i = 0; i < specifiers.length; ++i) { - if (!specifierIncluded(specifiers[i])) { return false; } - } - return true; -} - -function versionIncluded(specifierValue) { - if (typeof specifierValue === 'boolean') { return specifierValue; } - if (specifierValue && typeof specifierValue === 'object') { - for (var i = 0; i < specifierValue.length; ++i) { - if (matchesRange(specifierValue[i])) { return true; } - } - return false; - } - return matchesRange(specifierValue); -} +'use strict'; +var isCoreModule = require('is-core-module'); var data = require('./core.json'); var core = {}; for (var mod in data) { // eslint-disable-line no-restricted-syntax if (Object.prototype.hasOwnProperty.call(data, mod)) { - core[mod] = versionIncluded(data[mod]); + core[mod] = isCoreModule(mod); } } module.exports = core; diff --git a/node_modules/resolve/lib/core.json b/node_modules/resolve/lib/core.json index 0238b61..3cda693 100644 --- a/node_modules/resolve/lib/core.json +++ b/node_modules/resolve/lib/core.json @@ -1,83 +1,158 @@ { "assert": true, + "node:assert": [">= 14.18 && < 15", ">= 16"], "assert/strict": ">= 15", + "node:assert/strict": ">= 16", "async_hooks": ">= 8", - "buffer_ieee754": "< 0.9.7", + "node:async_hooks": [">= 14.18 && < 15", ">= 16"], + "buffer_ieee754": ">= 0.5 && < 0.9.7", "buffer": true, + "node:buffer": [">= 14.18 && < 15", ">= 16"], "child_process": true, - "cluster": true, + "node:child_process": [">= 14.18 && < 15", ">= 16"], + "cluster": ">= 0.5", + "node:cluster": [">= 14.18 && < 15", ">= 16"], "console": true, + "node:console": [">= 14.18 && < 15", ">= 16"], "constants": true, + "node:constants": [">= 14.18 && < 15", ">= 16"], "crypto": true, + "node:crypto": [">= 14.18 && < 15", ">= 16"], "_debug_agent": ">= 1 && < 8", "_debugger": "< 8", "dgram": true, - "diagnostics_channel": ">= 15.1", + "node:dgram": [">= 14.18 && < 15", ">= 16"], + "diagnostics_channel": [">= 14.17 && < 15", ">= 15.1"], + "node:diagnostics_channel": [">= 14.18 && < 15", ">= 16"], "dns": true, + "node:dns": [">= 14.18 && < 15", ">= 16"], "dns/promises": ">= 15", + "node:dns/promises": ">= 16", "domain": ">= 0.7.12", + "node:domain": [">= 14.18 && < 15", ">= 16"], "events": true, + "node:events": [">= 14.18 && < 15", ">= 16"], "freelist": "< 6", "fs": true, + "node:fs": [">= 14.18 && < 15", ">= 16"], "fs/promises": [">= 10 && < 10.1", ">= 14"], + "node:fs/promises": [">= 14.18 && < 15", ">= 16"], "_http_agent": ">= 0.11.1", + "node:_http_agent": [">= 14.18 && < 15", ">= 16"], "_http_client": ">= 0.11.1", + "node:_http_client": [">= 14.18 && < 15", ">= 16"], "_http_common": ">= 0.11.1", + "node:_http_common": [">= 14.18 && < 15", ">= 16"], "_http_incoming": ">= 0.11.1", + "node:_http_incoming": [">= 14.18 && < 15", ">= 16"], "_http_outgoing": ">= 0.11.1", + "node:_http_outgoing": [">= 14.18 && < 15", ">= 16"], "_http_server": ">= 0.11.1", + "node:_http_server": [">= 14.18 && < 15", ">= 16"], "http": true, + "node:http": [">= 14.18 && < 15", ">= 16"], "http2": ">= 8.8", + "node:http2": [">= 14.18 && < 15", ">= 16"], "https": true, - "inspector": ">= 8.0.0", + "node:https": [">= 14.18 && < 15", ">= 16"], + "inspector": ">= 8", + "node:inspector": [">= 14.18 && < 15", ">= 16"], + "inspector/promises": [">= 19"], + "node:inspector/promises": [">= 19"], "_linklist": "< 8", "module": true, + "node:module": [">= 14.18 && < 15", ">= 16"], "net": true, - "node-inspect/lib/_inspect": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_client": ">= 7.6.0 && < 12", - "node-inspect/lib/internal/inspect_repl": ">= 7.6.0 && < 12", + "node:net": [">= 14.18 && < 15", ">= 16"], + "node-inspect/lib/_inspect": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_client": ">= 7.6 && < 12", + "node-inspect/lib/internal/inspect_repl": ">= 7.6 && < 12", "os": true, + "node:os": [">= 14.18 && < 15", ">= 16"], "path": true, + "node:path": [">= 14.18 && < 15", ">= 16"], "path/posix": ">= 15.3", + "node:path/posix": ">= 16", "path/win32": ">= 15.3", + "node:path/win32": ">= 16", "perf_hooks": ">= 8.5", + "node:perf_hooks": [">= 14.18 && < 15", ">= 16"], "process": ">= 1", - "punycode": true, + "node:process": [">= 14.18 && < 15", ">= 16"], + "punycode": ">= 0.5", + "node:punycode": [">= 14.18 && < 15", ">= 16"], "querystring": true, + "node:querystring": [">= 14.18 && < 15", ">= 16"], "readline": true, + "node:readline": [">= 14.18 && < 15", ">= 16"], + "readline/promises": ">= 17", + "node:readline/promises": ">= 17", "repl": true, + "node:repl": [">= 14.18 && < 15", ">= 16"], "smalloc": ">= 0.11.5 && < 3", "_stream_duplex": ">= 0.9.4", + "node:_stream_duplex": [">= 14.18 && < 15", ">= 16"], "_stream_transform": ">= 0.9.4", + "node:_stream_transform": [">= 14.18 && < 15", ">= 16"], "_stream_wrap": ">= 1.4.1", + "node:_stream_wrap": [">= 14.18 && < 15", ">= 16"], "_stream_passthrough": ">= 0.9.4", + "node:_stream_passthrough": [">= 14.18 && < 15", ">= 16"], "_stream_readable": ">= 0.9.4", + "node:_stream_readable": [">= 14.18 && < 15", ">= 16"], "_stream_writable": ">= 0.9.4", + "node:_stream_writable": [">= 14.18 && < 15", ">= 16"], "stream": true, + "node:stream": [">= 14.18 && < 15", ">= 16"], + "stream/consumers": ">= 16.7", + "node:stream/consumers": ">= 16.7", "stream/promises": ">= 15", + "node:stream/promises": ">= 16", + "stream/web": ">= 16.5", + "node:stream/web": ">= 16.5", "string_decoder": true, - "sys": [">= 0.6 && < 0.7", ">= 0.8"], + "node:string_decoder": [">= 14.18 && < 15", ">= 16"], + "sys": [">= 0.4 && < 0.7", ">= 0.8"], + "node:sys": [">= 14.18 && < 15", ">= 16"], + "test/reporters": ">= 19.9 && < 20.2", + "node:test/reporters": [">= 18.17 && < 19", ">= 19.9", ">= 20"], + "node:test": [">= 16.17 && < 17", ">= 18"], "timers": true, + "node:timers": [">= 14.18 && < 15", ">= 16"], "timers/promises": ">= 15", + "node:timers/promises": ">= 16", "_tls_common": ">= 0.11.13", + "node:_tls_common": [">= 14.18 && < 15", ">= 16"], "_tls_legacy": ">= 0.11.3 && < 10", "_tls_wrap": ">= 0.11.3", + "node:_tls_wrap": [">= 14.18 && < 15", ">= 16"], "tls": true, + "node:tls": [">= 14.18 && < 15", ">= 16"], "trace_events": ">= 10", + "node:trace_events": [">= 14.18 && < 15", ">= 16"], "tty": true, + "node:tty": [">= 14.18 && < 15", ">= 16"], "url": true, + "node:url": [">= 14.18 && < 15", ">= 16"], "util": true, + "node:util": [">= 14.18 && < 15", ">= 16"], "util/types": ">= 15.3", + "node:util/types": ">= 16", "v8/tools/arguments": ">= 10 && < 12", - "v8/tools/codemap": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/consarray": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/csvparser": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/logreader": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/profile_view": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], - "v8/tools/splaytree": [">= 4.4.0 && < 5", ">= 5.2.0 && < 12"], + "v8/tools/codemap": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/consarray": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/csvparser": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/logreader": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/profile_view": [">= 4.4 && < 5", ">= 5.2 && < 12"], + "v8/tools/splaytree": [">= 4.4 && < 5", ">= 5.2 && < 12"], "v8": ">= 1", + "node:v8": [">= 14.18 && < 15", ">= 16"], "vm": true, - "wasi": ">= 13.4 && < 13.5", + "node:vm": [">= 14.18 && < 15", ">= 16"], + "wasi": [">= 13.4 && < 13.5", ">= 18.17 && < 19", ">= 20"], + "node:wasi": [">= 18.17 && < 19", ">= 20"], "worker_threads": ">= 11.7", - "zlib": true + "node:worker_threads": [">= 14.18 && < 15", ">= 16"], + "zlib": ">= 0.5", + "node:zlib": [">= 14.18 && < 15", ">= 16"] } diff --git a/node_modules/resolve/lib/homedir.js b/node_modules/resolve/lib/homedir.js new file mode 100644 index 0000000..5ffdf73 --- /dev/null +++ b/node_modules/resolve/lib/homedir.js @@ -0,0 +1,24 @@ +'use strict'; + +var os = require('os'); + +// adapted from https://github.com/sindresorhus/os-homedir/blob/11e089f4754db38bb535e5a8416320c4446e8cfd/index.js + +module.exports = os.homedir || function homedir() { + var home = process.env.HOME; + var user = process.env.LOGNAME || process.env.USER || process.env.LNAME || process.env.USERNAME; + + if (process.platform === 'win32') { + return process.env.USERPROFILE || process.env.HOMEDRIVE + process.env.HOMEPATH || home || null; + } + + if (process.platform === 'darwin') { + return home || (user ? '/Users/' + user : null); + } + + if (process.platform === 'linux') { + return home || (process.getuid() === 0 ? '/root' : (user ? '/home/' + user : null)); // eslint-disable-line no-extra-parens + } + + return home || null; +}; diff --git a/node_modules/resolve/lib/node-modules-paths.js b/node_modules/resolve/lib/node-modules-paths.js index 2b43813..1cff010 100644 --- a/node_modules/resolve/lib/node-modules-paths.js +++ b/node_modules/resolve/lib/node-modules-paths.js @@ -1,5 +1,5 @@ var path = require('path'); -var parse = path.parse || require('path-parse'); +var parse = path.parse || require('path-parse'); // eslint-disable-line global-require var getNodeModulesDirs = function getNodeModulesDirs(absoluteStart, modules) { var prefix = '/'; diff --git a/node_modules/resolve/lib/sync.js b/node_modules/resolve/lib/sync.js index ef9bd80..0b6cd58 100644 --- a/node_modules/resolve/lib/sync.js +++ b/node_modules/resolve/lib/sync.js @@ -1,30 +1,39 @@ var isCore = require('is-core-module'); var fs = require('fs'); var path = require('path'); +var getHomedir = require('./homedir'); var caller = require('./caller'); var nodeModulesPaths = require('./node-modules-paths'); var normalizeOptions = require('./normalize-options'); -var realpathFS = fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; +var realpathFS = process.platform !== 'win32' && fs.realpathSync && typeof fs.realpathSync.native === 'function' ? fs.realpathSync.native : fs.realpathSync; + +var homedir = getHomedir(); +var defaultPaths = function () { + return [ + path.join(homedir, '.node_modules'), + path.join(homedir, '.node_libraries') + ]; +}; var defaultIsFile = function isFile(file) { try { - var stat = fs.statSync(file); + var stat = fs.statSync(file, { throwIfNoEntry: false }); } catch (e) { if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; throw e; } - return stat.isFile() || stat.isFIFO(); + return !!stat && (stat.isFile() || stat.isFIFO()); }; var defaultIsDir = function isDirectory(dir) { try { - var stat = fs.statSync(dir); + var stat = fs.statSync(dir, { throwIfNoEntry: false }); } catch (e) { if (e && (e.code === 'ENOENT' || e.code === 'ENOTDIR')) return false; throw e; } - return stat.isDirectory(); + return !!stat && stat.isDirectory(); }; var defaultRealpathSync = function realpathSync(x) { @@ -82,7 +91,7 @@ module.exports = function resolveSync(x, options) { var basedir = opts.basedir || path.dirname(caller()); var parent = opts.filename || basedir; - opts.paths = opts.paths || []; + opts.paths = opts.paths || defaultPaths(); // ensure that `basedir` is an absolute path at this point, resolving against the process' current working directory var absoluteStart = maybeRealpathSync(realpathSync, path.resolve(basedir), opts); diff --git a/node_modules/resolve/package.json b/node_modules/resolve/package.json index 52a78a2..281db1c 100644 --- a/node_modules/resolve/package.json +++ b/node_modules/resolve/package.json @@ -1,11 +1,14 @@ { "name": "resolve", "description": "resolve like require.resolve() on behalf of files asynchronously and synchronously", - "version": "1.20.0", + "version": "1.22.4", "repository": { "type": "git", "url": "git://github.com/browserify/resolve.git" }, + "bin": { + "resolve": "./bin/resolve" + }, "main": "index.js", "keywords": [ "resolve", @@ -14,9 +17,11 @@ "module" ], "scripts": { - "prepublish": "safe-publish-latest && cp node_modules/is-core-module/core.json ./lib/ ||:", - "prelint": "eclint check '**/*'", - "lint": "eslint --ext=js,mjs .", + "prepack": "npmignore --auto --commentLines=autogenerated && cp node_modules/is-core-module/core.json ./lib/ ||:", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prelint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git')", + "lint": "eslint --ext=js,mjs --no-eslintrc -c .eslintrc . 'bin/**'", "pretests-only": "cd ./test/resolver/nested_symlinks && node mylib/sync && node mylib/async", "tests-only": "tape test/*.js", "pretest": "npm run lint", @@ -25,15 +30,23 @@ "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", + "@ljharb/eslint-config": "^21.1.0", + "array.prototype.map": "^1.0.5", + "aud": "^2.0.3", + "copy-dir": "^1.3.0", "eclint": "^2.8.1", - "eslint": "^7.19.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "mkdirp": "^0.5.5", + "mv": "^2.1.1", + "npmignore": "^0.3.0", "object-keys": "^1.1.1", - "safe-publish-latest": "^1.1.4", + "rimraf": "^2.7.1", + "safe-publish-latest": "^2.0.0", + "semver": "^6.3.1", "tap": "0.4.13", - "tape": "^5.1.1" + "tape": "^5.6.6", + "tmp": "^0.0.31" }, "license": "MIT", "author": { @@ -45,7 +58,14 @@ "url": "https://github.com/sponsors/ljharb" }, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "publishConfig": { + "ignore": [ + ".github/workflows", + "appveyor.yml" + ] } } diff --git a/node_modules/resolve/readme.markdown b/node_modules/resolve/readme.markdown index 7c9f2dc..ad34d60 100644 --- a/node_modules/resolve/readme.markdown +++ b/node_modules/resolve/readme.markdown @@ -1,18 +1,22 @@ -# resolve +# resolve [![Version Badge][2]][1] -implements the [node `require.resolve()` -algorithm](https://nodejs.org/api/modules.html#modules_all_together) -such that you can `require.resolve()` on behalf of a file asynchronously and -synchronously +implements the [node `require.resolve()` algorithm](https://nodejs.org/api/modules.html#modules_all_together) such that you can `require.resolve()` on behalf of a file asynchronously and synchronously -[![build status](https://secure.travis-ci.org/browserify/resolve.png)](http://travis-ci.org/browserify/resolve) +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][5]][6] +[![dev dependency status][7]][8] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][11]][1] # example asynchronously resolve: ```js -var resolve = require('resolve'); +var resolve = require('resolve/async'); // or, require('resolve') resolve('tap', { basedir: __dirname }, function (err, res) { if (err) console.error(err); else console.log(res); @@ -27,8 +31,8 @@ $ node example/async.js synchronously resolve: ```js -var resolve = require('resolve'); -var res = resolve.sync('tap', { basedir: __dirname }); +var resolve = require('resolve/sync'); // or, `require('resolve').sync +var res = resolve('tap', { basedir: __dirname }); console.log(res); ``` @@ -41,6 +45,8 @@ $ node example/sync.js ```js var resolve = require('resolve'); +var async = require('resolve/async'); +var sync = require('resolve/sync'); ``` For both the synchronous and asynchronous methods, errors may have any of the following `err.code` values: @@ -67,7 +73,7 @@ options are: * opts.isFile - function to asynchronously test whether a file exists -* opts.isDirectory - function to asynchronously test whether a directory exists +* opts.isDirectory - function to asynchronously test whether a file exists and is a directory * opts.realpath - function to asynchronously resolve a potential symlink to its real path @@ -79,7 +85,7 @@ options are: * `opts.packageFilter(pkg, pkgfile, dir)` - transform the parsed package.json contents before looking at the "main" field * pkg - package data * pkgfile - path to package.json - * dir - directory for package.json + * dir - directory that contains package.json * `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package * pkg - package data @@ -177,7 +183,7 @@ options are: * opts.isFile - function to synchronously test whether a file exists -* opts.isDirectory - function to synchronously test whether a directory exists +* opts.isDirectory - function to synchronously test whether a file exists and is a directory * opts.realpathSync - function to synchronously resolve a potential symlink to its real path @@ -187,7 +193,7 @@ options are: * `opts.packageFilter(pkg, dir)` - transform the parsed package.json contents before looking at the "main" field * pkg - package data - * dir - directory for package.json (Note: the second argument will change to "pkgfile" in v2) + * dir - directory that contains package.json (Note: the second argument will change to "pkgfile" in v2) * `opts.pathFilter(pkg, path, relativePath)` - transform a path within a package * pkg - package data @@ -277,3 +283,19 @@ npm install resolve # license MIT + +[1]: https://npmjs.org/package/resolve +[2]: https://versionbadg.es/browserify/resolve.svg +[5]: https://david-dm.org/browserify/resolve.svg +[6]: https://david-dm.org/browserify/resolve +[7]: https://david-dm.org/browserify/resolve/dev-status.svg +[8]: https://david-dm.org/browserify/resolve#info=devDependencies +[11]: https://nodei.co/npm/resolve.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/resolve.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/resolve.svg +[downloads-url]: https://npm-stat.com/charts.html?package=resolve +[codecov-image]: https://codecov.io/gh/browserify/resolve/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/browserify/resolve/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/browserify/resolve +[actions-url]: https://github.com/browserify/resolve/actions diff --git a/node_modules/resolve/sync.js b/node_modules/resolve/sync.js new file mode 100644 index 0000000..cd0ee04 --- /dev/null +++ b/node_modules/resolve/sync.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./lib/sync'); diff --git a/node_modules/resolve/test/.eslintrc b/node_modules/resolve/test/.eslintrc deleted file mode 100644 index ddd262d..0000000 --- a/node_modules/resolve/test/.eslintrc +++ /dev/null @@ -1,5 +0,0 @@ -{ - "rules": { - "max-lines": 0 - } -} diff --git a/node_modules/resolve/test/core.js b/node_modules/resolve/test/core.js index 7a3ccb1..a477adc 100644 --- a/node_modules/resolve/test/core.js +++ b/node_modules/resolve/test/core.js @@ -1,7 +1,11 @@ var test = require('tape'); var keys = require('object-keys'); +var semver = require('semver'); + var resolve = require('../'); +var brokenNode = semver.satisfies(process.version, '11.11 - 11.13'); + test('core modules', function (t) { t.test('isCore()', function (st) { st.ok(resolve.isCore('fs')); @@ -22,10 +26,13 @@ test('core modules', function (t) { for (var i = 0; i < cores.length; ++i) { var mod = cores[i]; + // note: this must be require, not require.resolve, due to https://github.com/nodejs/node/issues/43274 var requireFunc = function () { require(mod); }; // eslint-disable-line no-loop-func - console.log(mod, resolve.core, resolve.core[mod]); + t.comment(mod + ': ' + resolve.core[mod]); if (resolve.core[mod]) { st.doesNotThrow(requireFunc, mod + ' supported; requiring does not throw'); + } else if (brokenNode) { + st.ok(true, 'this version of node is broken: attempting to require things that fail to resolve breaks "home_paths" tests'); } else { st.throws(requireFunc, mod + ' not supported; requiring throws'); } diff --git a/node_modules/resolve/test/home_paths.js b/node_modules/resolve/test/home_paths.js new file mode 100644 index 0000000..3b8c9b3 --- /dev/null +++ b/node_modules/resolve/test/home_paths.js @@ -0,0 +1,127 @@ +'use strict'; + +var fs = require('fs'); +var homedir = require('../lib/homedir'); +var path = require('path'); + +var test = require('tape'); +var mkdirp = require('mkdirp'); +var rimraf = require('rimraf'); +var mv = require('mv'); +var copyDir = require('copy-dir'); +var tmp = require('tmp'); + +var HOME = homedir(); + +var hnm = path.join(HOME, '.node_modules'); +var hnl = path.join(HOME, '.node_libraries'); + +var resolve = require('../async'); + +function makeDir(t, dir, cb) { + mkdirp(dir, function (err) { + if (err) { + cb(err); + } else { + t.teardown(function cleanup() { + rimraf.sync(dir); + }); + cb(); + } + }); +} + +function makeTempDir(t, dir, cb) { + if (fs.existsSync(dir)) { + var tmpResult = tmp.dirSync(); + t.teardown(tmpResult.removeCallback); + var backup = path.join(tmpResult.name, path.basename(dir)); + mv(dir, backup, function (err) { + if (err) { + cb(err); + } else { + t.teardown(function () { + mv(backup, dir, cb); + }); + makeDir(t, dir, cb); + } + }); + } else { + makeDir(t, dir, cb); + } +} + +test('homedir module paths', function (t) { + t.plan(7); + + makeTempDir(t, hnm, function (err) { + t.error(err, 'no error with HNM temp dir'); + if (err) { + return t.end(); + } + + var bazHNMDir = path.join(hnm, 'baz'); + var dotMainDir = path.join(hnm, 'dot_main'); + copyDir.sync(path.join(__dirname, 'resolver/baz'), bazHNMDir); + copyDir.sync(path.join(__dirname, 'resolver/dot_main'), dotMainDir); + + var bazPkg = { name: 'baz', main: 'quux.js' }; + var dotMainPkg = { main: 'index' }; + + var bazHNMmain = path.join(bazHNMDir, 'quux.js'); + t.equal(require.resolve('baz'), bazHNMmain, 'sanity check: require.resolve finds HNM `baz`'); + var dotMainMain = path.join(dotMainDir, 'index.js'); + t.equal(require.resolve('dot_main'), dotMainMain, 'sanity check: require.resolve finds `dot_main`'); + + makeTempDir(t, hnl, function (err) { + t.error(err, 'no error with HNL temp dir'); + if (err) { + return t.end(); + } + var bazHNLDir = path.join(hnl, 'baz'); + copyDir.sync(path.join(__dirname, 'resolver/baz'), bazHNLDir); + + var dotSlashMainDir = path.join(hnl, 'dot_slash_main'); + var dotSlashMainMain = path.join(dotSlashMainDir, 'index.js'); + var dotSlashMainPkg = { main: 'index' }; + copyDir.sync(path.join(__dirname, 'resolver/dot_slash_main'), dotSlashMainDir); + + t.equal(require.resolve('baz'), bazHNMmain, 'sanity check: require.resolve finds HNM `baz`'); + t.equal(require.resolve('dot_slash_main'), dotSlashMainMain, 'sanity check: require.resolve finds HNL `dot_slash_main`'); + + t.test('with temp dirs', function (st) { + st.plan(3); + + st.test('just in `$HOME/.node_modules`', function (s2t) { + s2t.plan(3); + + resolve('dot_main', function (err, res, pkg) { + s2t.error(err, 'no error resolving `dot_main`'); + s2t.equal(res, dotMainMain, '`dot_main` resolves in `$HOME/.node_modules`'); + s2t.deepEqual(pkg, dotMainPkg); + }); + }); + + st.test('just in `$HOME/.node_libraries`', function (s2t) { + s2t.plan(3); + + resolve('dot_slash_main', function (err, res, pkg) { + s2t.error(err, 'no error resolving `dot_slash_main`'); + s2t.equal(res, dotSlashMainMain, '`dot_slash_main` resolves in `$HOME/.node_libraries`'); + s2t.deepEqual(pkg, dotSlashMainPkg); + }); + }); + + st.test('in `$HOME/.node_libraries` and `$HOME/.node_modules`', function (s2t) { + s2t.plan(3); + + resolve('baz', function (err, res, pkg) { + s2t.error(err, 'no error resolving `baz`'); + s2t.equal(res, bazHNMmain, '`baz` resolves in `$HOME/.node_modules` when in both'); + s2t.deepEqual(pkg, bazPkg); + }); + }); + }); + }); + }); +}); diff --git a/node_modules/resolve/test/home_paths_sync.js b/node_modules/resolve/test/home_paths_sync.js new file mode 100644 index 0000000..5d2c56f --- /dev/null +++ b/node_modules/resolve/test/home_paths_sync.js @@ -0,0 +1,114 @@ +'use strict'; + +var fs = require('fs'); +var homedir = require('../lib/homedir'); +var path = require('path'); + +var test = require('tape'); +var mkdirp = require('mkdirp'); +var rimraf = require('rimraf'); +var mv = require('mv'); +var copyDir = require('copy-dir'); +var tmp = require('tmp'); + +var HOME = homedir(); + +var hnm = path.join(HOME, '.node_modules'); +var hnl = path.join(HOME, '.node_libraries'); + +var resolve = require('../sync'); + +function makeDir(t, dir, cb) { + mkdirp(dir, function (err) { + if (err) { + cb(err); + } else { + t.teardown(function cleanup() { + rimraf.sync(dir); + }); + cb(); + } + }); +} + +function makeTempDir(t, dir, cb) { + if (fs.existsSync(dir)) { + var tmpResult = tmp.dirSync(); + t.teardown(tmpResult.removeCallback); + var backup = path.join(tmpResult.name, path.basename(dir)); + mv(dir, backup, function (err) { + if (err) { + cb(err); + } else { + t.teardown(function () { + mv(backup, dir, cb); + }); + makeDir(t, dir, cb); + } + }); + } else { + makeDir(t, dir, cb); + } +} + +test('homedir module paths', function (t) { + t.plan(7); + + makeTempDir(t, hnm, function (err) { + t.error(err, 'no error with HNM temp dir'); + if (err) { + return t.end(); + } + + var bazHNMDir = path.join(hnm, 'baz'); + var dotMainDir = path.join(hnm, 'dot_main'); + copyDir.sync(path.join(__dirname, 'resolver/baz'), bazHNMDir); + copyDir.sync(path.join(__dirname, 'resolver/dot_main'), dotMainDir); + + var bazHNMmain = path.join(bazHNMDir, 'quux.js'); + t.equal(require.resolve('baz'), bazHNMmain, 'sanity check: require.resolve finds HNM `baz`'); + var dotMainMain = path.join(dotMainDir, 'index.js'); + t.equal(require.resolve('dot_main'), dotMainMain, 'sanity check: require.resolve finds `dot_main`'); + + makeTempDir(t, hnl, function (err) { + t.error(err, 'no error with HNL temp dir'); + if (err) { + return t.end(); + } + var bazHNLDir = path.join(hnl, 'baz'); + copyDir.sync(path.join(__dirname, 'resolver/baz'), bazHNLDir); + + var dotSlashMainDir = path.join(hnl, 'dot_slash_main'); + var dotSlashMainMain = path.join(dotSlashMainDir, 'index.js'); + copyDir.sync(path.join(__dirname, 'resolver/dot_slash_main'), dotSlashMainDir); + + t.equal(require.resolve('baz'), bazHNMmain, 'sanity check: require.resolve finds HNM `baz`'); + t.equal(require.resolve('dot_slash_main'), dotSlashMainMain, 'sanity check: require.resolve finds HNL `dot_slash_main`'); + + t.test('with temp dirs', function (st) { + st.plan(3); + + st.test('just in `$HOME/.node_modules`', function (s2t) { + s2t.plan(1); + + var res = resolve('dot_main'); + s2t.equal(res, dotMainMain, '`dot_main` resolves in `$HOME/.node_modules`'); + }); + + st.test('just in `$HOME/.node_libraries`', function (s2t) { + s2t.plan(1); + + var res = resolve('dot_slash_main'); + s2t.equal(res, dotSlashMainMain, '`dot_slash_main` resolves in `$HOME/.node_libraries`'); + }); + + st.test('in `$HOME/.node_libraries` and `$HOME/.node_modules`', function (s2t) { + s2t.plan(1); + + var res = resolve('baz'); + s2t.equal(res, bazHNMmain, '`baz` resolves in `$HOME/.node_modules` when in both'); + }); + }); + }); + }); +}); diff --git a/node_modules/resolve/test/mock_sync.js b/node_modules/resolve/test/mock_sync.js index 0e3a60d..c5a7e2a 100644 --- a/node_modules/resolve/test/mock_sync.js +++ b/node_modules/resolve/test/mock_sync.js @@ -122,9 +122,8 @@ test('symlinked', function (t) { var dir = path.dirname(resolved); var base = path.basename(resolved); return path.join(dir, 'symlinked', base); - } else { - return path.join(resolved, 'symlinked'); } + return path.join(resolved, 'symlinked'); } }; } @@ -183,9 +182,8 @@ test('readPackageSync', function (t) { var readPackageSync = function (readFileSync, file) { if (file.indexOf(path.join('bar', 'package.json')) >= 0) { return { main: './something-else.js' }; - } else { - return JSON.parse(files[path.resolve(file)]); } + return JSON.parse(files[path.resolve(file)]); }; t.test('with readPackage', function (st) { diff --git a/node_modules/resolve/test/node_path.js b/node_modules/resolve/test/node_path.js index d06aa4e..e463d6c 100644 --- a/node_modules/resolve/test/node_path.js +++ b/node_modules/resolve/test/node_path.js @@ -63,7 +63,7 @@ test('$NODE_PATH', function (t) { basedir: path.join(__dirname, 'node_path/x'), isDirectory: isDir }, function (err, res) { - var root = require('tap/package.json').main; + var root = require('tap/package.json').main; // eslint-disable-line global-require t.error(err); t.equal(res, path.resolve(__dirname, '..', 'node_modules/tap', root), 'tap resolves'); }); diff --git a/node_modules/resolve/test/resolver.js b/node_modules/resolve/test/resolver.js index aa36ee1..4903165 100644 --- a/node_modules/resolve/test/resolver.js +++ b/node_modules/resolve/test/resolver.js @@ -1,6 +1,12 @@ var path = require('path'); var test = require('tape'); var resolve = require('../'); +var async = require('../async'); + +test('`./async` entry point', function (t) { + t.equal(resolve, async, '`./async` entry point is the same as `main`'); + t.end(); +}); test('async foo', function (t) { t.plan(12); @@ -284,11 +290,60 @@ test('incorrect main', function (t) { }); }); +test('missing index', function (t) { + t.plan(2); + + var resolverDir = path.join(__dirname, 'resolver'); + resolve('./missing_index', { basedir: resolverDir }, function (err, res, pkg) { + t.ok(err instanceof Error); + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + }); +}); + +test('missing main', function (t) { + t.plan(1); + + var resolverDir = path.join(__dirname, 'resolver'); + + resolve('./missing_main', { basedir: resolverDir }, function (err, res, pkg) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + }); +}); + +test('null main', function (t) { + t.plan(1); + + var resolverDir = path.join(__dirname, 'resolver'); + + resolve('./null_main', { basedir: resolverDir }, function (err, res, pkg) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + }); +}); + +test('main: false', function (t) { + t.plan(2); + + var basedir = path.join(__dirname, 'resolver'); + var dir = path.join(basedir, 'false_main'); + resolve('./false_main', { basedir: basedir }, function (err, res, pkg) { + if (err) t.fail(err); + t.equal( + res, + path.join(dir, 'index.js'), + '`"main": false`: resolves to `index.js`' + ); + t.deepEqual(pkg, { + name: 'false_main', + main: false + }); + }); +}); + test('without basedir', function (t) { t.plan(1); var dir = path.join(__dirname, 'resolver/without_basedir'); - var tester = require(path.join(dir, 'main.js')); + var tester = require(path.join(dir, 'main.js')); // eslint-disable-line global-require tester(t, function (err, res, pkg) { if (err) { @@ -404,7 +459,7 @@ test('non-string "main" field in package.json', function (t) { var dir = path.join(__dirname, 'resolver'); resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.message, 'package “invalid_main” `main` must be a string'); t.equal(err.code, 'INVALID_PACKAGE_MAIN'); t.equal(res, undefined, 'res is undefined'); t.equal(pkg, undefined, 'pkg is undefined'); @@ -417,7 +472,7 @@ test('non-string "main" field in package.json', function (t) { var dir = path.join(__dirname, 'resolver'); resolve('./invalid_main', { basedir: dir }, function (err, res, pkg) { t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.message, 'package “invalid_main” `main` must be a string'); t.equal(err.code, 'INVALID_PACKAGE_MAIN'); t.equal(res, undefined, 'res is undefined'); t.equal(pkg, undefined, 'pkg is undefined'); @@ -448,3 +503,93 @@ test('browser field in package.json', function (t) { } ); }); + +test('absolute paths', function (t) { + t.plan(4); + + var extensionless = __filename.slice(0, -path.extname(__filename).length); + + resolve(__filename, function (err, res) { + t.equal( + res, + __filename, + 'absolute path to this file resolves' + ); + }); + resolve(extensionless, function (err, res) { + t.equal( + res, + __filename, + 'extensionless absolute path to this file resolves' + ); + }); + resolve(__filename, { basedir: process.cwd() }, function (err, res) { + t.equal( + res, + __filename, + 'absolute path to this file with a basedir resolves' + ); + }); + resolve(extensionless, { basedir: process.cwd() }, function (err, res) { + t.equal( + res, + __filename, + 'extensionless absolute path to this file with a basedir resolves' + ); + }); +}); + +test('malformed package.json', function (t) { + /* eslint operator-linebreak: ["error", "before"], function-paren-newline: "off" */ + t.plan( + (3 * 3) // 3 sets of 3 assertions in the final callback + + 2 // 1 readPackage call with malformed package.json + ); + + var basedir = path.join(__dirname, 'resolver/malformed_package_json'); + var expected = path.join(basedir, 'index.js'); + + resolve('./index.js', { basedir: basedir }, function (err, res, pkg) { + t.error(err, 'no error'); + t.equal(res, expected, 'malformed package.json is silently ignored'); + t.equal(pkg, undefined, 'malformed package.json gives an undefined `pkg` argument'); + }); + + resolve( + './index.js', + { + basedir: basedir, + packageFilter: function (pkg, pkgfile, dir) { + t.fail('should not reach here'); + } + }, + function (err, res, pkg) { + t.error(err, 'with packageFilter: no error'); + t.equal(res, expected, 'with packageFilter: malformed package.json is silently ignored'); + t.equal(pkg, undefined, 'with packageFilter: malformed package.json gives an undefined `pkg` argument'); + } + ); + + resolve( + './index.js', + { + basedir: basedir, + readPackage: function (readFile, pkgfile, cb) { + t.equal(pkgfile, path.join(basedir, 'package.json'), 'readPackageSync: `pkgfile` is package.json path'); + readFile(pkgfile, function (err, result) { + try { + cb(null, JSON.parse(result)); + } catch (e) { + t.ok(e instanceof SyntaxError, 'readPackage: malformed package.json parses as a syntax error'); + cb(null); + } + }); + } + }, + function (err, res, pkg) { + t.error(err, 'with readPackage: no error'); + t.equal(res, expected, 'with readPackage: malformed package.json is silently ignored'); + t.equal(pkg, undefined, 'with readPackage: malformed package.json gives an undefined `pkg` argument'); + } + ); +}); diff --git a/node_modules/resolve/test/resolver/false_main/index.js b/node_modules/resolve/test/resolver/false_main/index.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/resolve/test/resolver/false_main/package.json b/node_modules/resolve/test/resolver/false_main/package.json new file mode 100644 index 0000000..a7416c0 --- /dev/null +++ b/node_modules/resolve/test/resolver/false_main/package.json @@ -0,0 +1,4 @@ +{ + "name": "false_main", + "main": false +} diff --git a/node_modules/resolve/test/resolver/invalid_main/package.json b/node_modules/resolve/test/resolver/invalid_main/package.json index 0cf8279..0590748 100644 --- a/node_modules/resolve/test/resolver/invalid_main/package.json +++ b/node_modules/resolve/test/resolver/invalid_main/package.json @@ -1,5 +1,5 @@ { - "name": "invalid main", + "name": "invalid_main", "main": [ "why is this a thing", "srsly omg wtf" diff --git a/node_modules/resolve/test/resolver/malformed_package_json/index.js b/node_modules/resolve/test/resolver/malformed_package_json/index.js new file mode 100644 index 0000000..e69de29 diff --git a/node_modules/resolve/test/resolver/malformed_package_json/package.json b/node_modules/resolve/test/resolver/malformed_package_json/package.json new file mode 100644 index 0000000..98232c6 --- /dev/null +++ b/node_modules/resolve/test/resolver/malformed_package_json/package.json @@ -0,0 +1 @@ +{ diff --git a/node_modules/resolve/test/resolver_sync.js b/node_modules/resolve/test/resolver_sync.js index 3082c96..53453d6 100644 --- a/node_modules/resolve/test/resolver_sync.js +++ b/node_modules/resolve/test/resolver_sync.js @@ -1,19 +1,46 @@ var path = require('path'); +var fs = require('fs'); var test = require('tape'); + var resolve = require('../'); +var sync = require('../sync'); + +var requireResolveSupportsPaths = require.resolve.length > 1 + && !(/^v12\.[012]\./).test(process.version); // broken in v12.0-12.2, see https://github.com/nodejs/node/issues/27794 + +test('`./sync` entry point', function (t) { + t.equal(resolve.sync, sync, '`./sync` entry point is the same as `.sync` on `main`'); + t.end(); +}); test('foo', function (t) { var dir = path.join(__dirname, 'resolver'); t.equal( resolve.sync('./foo', { basedir: dir }), - path.join(dir, 'foo.js') + path.join(dir, 'foo.js'), + './foo' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./foo', { basedir: dir }), + require.resolve('./foo', { paths: [dir] }), + './foo: resolve.sync === require.resolve' + ); + } t.equal( resolve.sync('./foo.js', { basedir: dir }), - path.join(dir, 'foo.js') + path.join(dir, 'foo.js'), + './foo.js' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./foo.js', { basedir: dir }), + require.resolve('./foo.js', { paths: [dir] }), + './foo.js: resolve.sync === require.resolve' + ); + } t.equal( resolve.sync('./foo.js', { basedir: dir, filename: path.join(dir, 'bar.js') }), @@ -41,10 +68,21 @@ test('foo', function (t) { test('bar', function (t) { var dir = path.join(__dirname, 'resolver'); + var basedir = path.join(dir, 'bar'); + t.equal( - resolve.sync('foo', { basedir: path.join(dir, 'bar') }), - path.join(dir, 'bar/node_modules/foo/index.js') + resolve.sync('foo', { basedir: basedir }), + path.join(dir, 'bar/node_modules/foo/index.js'), + 'foo in bar' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('foo', { basedir: basedir }), + require.resolve('foo', { paths: [basedir] }), + 'foo in bar: resolve.sync === require.resolve' + ); + } + t.end(); }); @@ -53,52 +91,98 @@ test('baz', function (t) { t.equal( resolve.sync('./baz', { basedir: dir }), - path.join(dir, 'baz/quux.js') + path.join(dir, 'baz/quux.js'), + './baz' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./baz', { basedir: dir }), + require.resolve('./baz', { paths: [dir] }), + './baz: resolve.sync === require.resolve' + ); + } + t.end(); }); test('biz', function (t) { var dir = path.join(__dirname, 'resolver/biz/node_modules'); + t.equal( resolve.sync('./grux', { basedir: dir }), path.join(dir, 'grux/index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./grux', { basedir: dir }), + require.resolve('./grux', { paths: [dir] }), + './grux: resolve.sync === require.resolve' + ); + } + var tivDir = path.join(dir, 'grux'); t.equal( - resolve.sync('tiv', { basedir: path.join(dir, 'grux') }), + resolve.sync('tiv', { basedir: tivDir }), path.join(dir, 'tiv/index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('tiv', { basedir: tivDir }), + require.resolve('tiv', { paths: [tivDir] }), + 'tiv: resolve.sync === require.resolve' + ); + } + var gruxDir = path.join(dir, 'tiv'); t.equal( - resolve.sync('grux', { basedir: path.join(dir, 'tiv') }), + resolve.sync('grux', { basedir: gruxDir }), path.join(dir, 'grux/index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('grux', { basedir: gruxDir }), + require.resolve('grux', { paths: [gruxDir] }), + 'grux: resolve.sync === require.resolve' + ); + } + t.end(); }); test('normalize', function (t) { var dir = path.join(__dirname, 'resolver/biz/node_modules/grux'); + t.equal( resolve.sync('../grux', { basedir: dir }), path.join(dir, 'index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('../grux', { basedir: dir }), + require.resolve('../grux', { paths: [dir] }), + '../grux: resolve.sync === require.resolve' + ); + } + t.end(); }); test('cup', function (t) { var dir = path.join(__dirname, 'resolver'); + t.equal( resolve.sync('./cup', { basedir: dir, extensions: ['.js', '.coffee'] }), - path.join(dir, 'cup.coffee') + path.join(dir, 'cup.coffee'), + './cup -> ./cup.coffee' ); t.equal( resolve.sync('./cup.coffee', { basedir: dir }), - path.join(dir, 'cup.coffee') + path.join(dir, 'cup.coffee'), + './cup.coffee' ); t.throws(function () { @@ -108,22 +192,40 @@ test('cup', function (t) { }); }); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./cup.coffee', { basedir: dir, extensions: ['.js', '.coffee'] }), + require.resolve('./cup.coffee', { paths: [dir] }), + './cup.coffee: resolve.sync === require.resolve' + ); + } + t.end(); }); test('mug', function (t) { var dir = path.join(__dirname, 'resolver'); + t.equal( resolve.sync('./mug', { basedir: dir }), - path.join(dir, 'mug.js') + path.join(dir, 'mug.js'), + './mug -> ./mug.js' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./mug', { basedir: dir }), + require.resolve('./mug', { paths: [dir] }), + './mug: resolve.sync === require.resolve' + ); + } t.equal( resolve.sync('./mug', { basedir: dir, extensions: ['.coffee', '.js'] }), - path.join(dir, 'mug.coffee') + path.join(dir, 'mug.coffee'), + './mug -> ./mug.coffee' ); t.equal( @@ -131,7 +233,8 @@ test('mug', function (t) { basedir: dir, extensions: ['.js', '.coffee'] }), - path.join(dir, 'mug.js') + path.join(dir, 'mug.js'), + './mug -> ./mug.js' ); t.end(); @@ -195,12 +298,99 @@ test('incorrect main', function (t) { resolve.sync('./incorrect_main', { basedir: resolverDir }), path.join(dir, 'index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./incorrect_main', { basedir: resolverDir }), + require.resolve('./incorrect_main', { paths: [resolverDir] }), + './incorrect_main: resolve.sync === require.resolve' + ); + } + + t.end(); +}); + +test('missing index', function (t) { + t.plan(requireResolveSupportsPaths ? 2 : 1); + + var resolverDir = path.join(__dirname, 'resolver'); + try { + resolve.sync('./missing_index', { basedir: resolverDir }); + t.fail('did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + if (requireResolveSupportsPaths) { + try { + require.resolve('./missing_index', { basedir: resolverDir }); + t.fail('require.resolve did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + } +}); + +test('missing main', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + + try { + resolve.sync('./missing_main', { basedir: resolverDir }); + t.fail('require.resolve did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + if (requireResolveSupportsPaths) { + try { + resolve.sync('./missing_main', { basedir: resolverDir }); + t.fail('require.resolve did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + } + + t.end(); +}); + +test('null main', function (t) { + var resolverDir = path.join(__dirname, 'resolver'); + + try { + resolve.sync('./null_main', { basedir: resolverDir }); + t.fail('require.resolve did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + if (requireResolveSupportsPaths) { + try { + resolve.sync('./null_main', { basedir: resolverDir }); + t.fail('require.resolve did not fail'); + } catch (err) { + t.equal(err && err.code, 'MODULE_NOT_FOUND', 'error has correct error code'); + } + } + + t.end(); +}); + +test('main: false', function (t) { + var basedir = path.join(__dirname, 'resolver'); + var dir = path.join(basedir, 'false_main'); + t.equal( + resolve.sync('./false_main', { basedir: basedir }), + path.join(dir, 'index.js'), + '`"main": false`: resolves to `index.js`' + ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./false_main', { basedir: basedir }), + require.resolve('./false_main', { paths: [basedir] }), + '`"main": false`: resolve.sync === require.resolve' + ); + } t.end(); }); var stubStatSync = function stubStatSync(fn) { - var fs = require('fs'); var statSync = fs.statSync; try { fs.statSync = function () { @@ -226,29 +416,66 @@ test('#79 - re-throw non ENOENT errors from stat', function (t) { test('#52 - incorrectly resolves module-paths like "./someFolder/" when there is a file of the same name', function (t) { var dir = path.join(__dirname, 'resolver'); + var basedir = path.join(dir, 'same_names'); t.equal( - resolve.sync('./foo', { basedir: path.join(dir, 'same_names') }), + resolve.sync('./foo', { basedir: basedir }), path.join(dir, 'same_names/foo.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./foo', { basedir: basedir }), + require.resolve('./foo', { paths: [basedir] }), + './foo: resolve.sync === require.resolve' + ); + } + t.equal( - resolve.sync('./foo/', { basedir: path.join(dir, 'same_names') }), + resolve.sync('./foo/', { basedir: basedir }), path.join(dir, 'same_names/foo/index.js') ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./foo/', { basedir: basedir }), + require.resolve('./foo/', { paths: [basedir] }), + './foo/: resolve.sync === require.resolve' + ); + } + t.end(); }); test('#211 - incorrectly resolves module-paths like "." when from inside a folder with a sibling file of the same name', function (t) { var dir = path.join(__dirname, 'resolver'); + var basedir = path.join(dir, 'same_names/foo'); t.equal( - resolve.sync('./', { basedir: path.join(dir, 'same_names/foo') }), - path.join(dir, 'same_names/foo/index.js') + resolve.sync('./', { basedir: basedir }), + path.join(dir, 'same_names/foo/index.js'), + './' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./', { basedir: basedir }), + require.resolve('./', { paths: [basedir] }), + './: resolve.sync === require.resolve' + ); + } + t.equal( - resolve.sync('.', { basedir: path.join(dir, 'same_names/foo') }), - path.join(dir, 'same_names/foo/index.js') + resolve.sync('.', { basedir: basedir }), + path.join(dir, 'same_names/foo/index.js'), + '.' ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('.', { basedir: basedir }), + require.resolve('.', { paths: [basedir] }), + '.: resolve.sync === require.resolve', + { todo: true } + ); + } + t.end(); }); @@ -261,6 +488,12 @@ test('sync: #121 - treating an existing file as a dir when no basedir', function __filename, 'sanity check' ); + st.equal( + resolve.sync('./' + testFile), + require.resolve('./' + testFile), + 'sanity check: resolve.sync === require.resolve' + ); + st.end(); }); @@ -288,15 +521,38 @@ test('sync: #121 - treating an existing file as a dir when no basedir', function test('sync dot main', function (t) { var start = new Date(); - t.equal(resolve.sync('./resolver/dot_main'), path.join(__dirname, 'resolver/dot_main/index.js')); + + t.equal( + resolve.sync('./resolver/dot_main'), + path.join(__dirname, 'resolver/dot_main/index.js'), + './resolver/dot_main' + ); + t.equal( + resolve.sync('./resolver/dot_main'), + require.resolve('./resolver/dot_main'), + './resolver/dot_main: resolve.sync === require.resolve' + ); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); }); test('sync dot slash main', function (t) { var start = new Date(); - t.equal(resolve.sync('./resolver/dot_slash_main'), path.join(__dirname, 'resolver/dot_slash_main/index.js')); + + t.equal( + resolve.sync('./resolver/dot_slash_main'), + path.join(__dirname, 'resolver/dot_slash_main/index.js') + ); + t.equal( + resolve.sync('./resolver/dot_slash_main'), + require.resolve('./resolver/dot_slash_main'), + './resolver/dot_slash_main: resolve.sync === require.resolve' + ); + t.ok(new Date() - start < 50, 'resolve.sync timedout'); + t.end(); }); @@ -321,7 +577,7 @@ test('non-string "main" field in package.json', function (t) { t.fail('should not get here'); } catch (err) { t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.message, 'package “invalid_main” `main` must be a string'); t.equal(err.code, 'INVALID_PACKAGE_MAIN'); } t.end(); @@ -335,7 +591,7 @@ test('non-string "main" field in package.json', function (t) { t.fail('should not get here'); } catch (err) { t.ok(err, 'errors on non-string main'); - t.equal(err.message, 'package “invalid main” `main` must be a string'); + t.equal(err.message, 'package “invalid_main” `main` must be a string'); t.equal(err.code, 'INVALID_PACKAGE_MAIN'); } t.end(); @@ -356,3 +612,115 @@ test('browser field in package.json', function (t) { t.equal(res, path.join(dir, 'browser_field', 'b.js')); t.end(); }); + +test('absolute paths', function (t) { + var extensionless = __filename.slice(0, -path.extname(__filename).length); + + t.equal( + resolve.sync(__filename), + __filename, + 'absolute path to this file resolves' + ); + t.equal( + resolve.sync(__filename), + require.resolve(__filename), + 'absolute path to this file: resolve.sync === require.resolve' + ); + + t.equal( + resolve.sync(extensionless), + __filename, + 'extensionless absolute path to this file resolves' + ); + t.equal( + resolve.sync(__filename), + require.resolve(__filename), + 'absolute path to this file: resolve.sync === require.resolve' + ); + + t.equal( + resolve.sync(__filename, { basedir: process.cwd() }), + __filename, + 'absolute path to this file with a basedir resolves' + ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync(__filename, { basedir: process.cwd() }), + require.resolve(__filename, { paths: [process.cwd()] }), + 'absolute path to this file + basedir: resolve.sync === require.resolve' + ); + } + + t.equal( + resolve.sync(extensionless, { basedir: process.cwd() }), + __filename, + 'extensionless absolute path to this file with a basedir resolves' + ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync(extensionless, { basedir: process.cwd() }), + require.resolve(extensionless, { paths: [process.cwd()] }), + 'extensionless absolute path to this file + basedir: resolve.sync === require.resolve' + ); + } + + t.end(); +}); + +test('malformed package.json', function (t) { + t.plan(5 + (requireResolveSupportsPaths ? 1 : 0)); + + var basedir = path.join(__dirname, 'resolver/malformed_package_json'); + var expected = path.join(basedir, 'index.js'); + + t.equal( + resolve.sync('./index.js', { basedir: basedir }), + expected, + 'malformed package.json is silently ignored' + ); + if (requireResolveSupportsPaths) { + t.equal( + resolve.sync('./index.js', { basedir: basedir }), + require.resolve('./index.js', { paths: [basedir] }), + 'malformed package.json: resolve.sync === require.resolve' + ); + } + + var res1 = resolve.sync( + './index.js', + { + basedir: basedir, + packageFilter: function (pkg, pkgfile, dir) { + t.fail('should not reach here'); + } + } + ); + + t.equal( + res1, + expected, + 'with packageFilter: malformed package.json is silently ignored' + ); + + var res2 = resolve.sync( + './index.js', + { + basedir: basedir, + readPackageSync: function (readFileSync, pkgfile) { + t.equal(pkgfile, path.join(basedir, 'package.json'), 'readPackageSync: `pkgfile` is package.json path'); + var result = String(readFileSync(pkgfile)); + try { + return JSON.parse(result); + } catch (e) { + t.ok(e instanceof SyntaxError, 'readPackageSync: malformed package.json parses as a syntax error'); + } + } + } + ); + + t.equal( + res2, + expected, + 'with readPackageSync: malformed package.json is silently ignored' + ); +}); diff --git a/node_modules/shell-quote/.eslintrc b/node_modules/shell-quote/.eslintrc new file mode 100644 index 0000000..9569d51 --- /dev/null +++ b/node_modules/shell-quote/.eslintrc @@ -0,0 +1,30 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "array-bracket-newline": 0, + "complexity": 0, + "eqeqeq": 1, + "func-style": [2, "declaration"], + "max-depth": 0, + "max-lines-per-function": 0, + "max-statements": 0, + "multiline-comment-style": 0, + "no-negated-condition": 1, + "no-param-reassign": 1, + "no-lonely-if": 1, + "no-shadow": 1, + "no-template-curly-in-string": 0, + }, + + "overrides": [ + { + "files": "example/**", + "rules": { + "no-console": 0, + }, + }, + ], +} diff --git a/node_modules/shell-quote/.github/FUNDING.yml b/node_modules/shell-quote/.github/FUNDING.yml new file mode 100644 index 0000000..0b6b6b4 --- /dev/null +++ b/node_modules/shell-quote/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/shell-quote +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/shell-quote/.nycrc b/node_modules/shell-quote/.nycrc new file mode 100644 index 0000000..55c3d29 --- /dev/null +++ b/node_modules/shell-quote/.nycrc @@ -0,0 +1,14 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "example", + "test" + ] +} diff --git a/node_modules/shell-quote/.travis.yml b/node_modules/shell-quote/.travis.yml deleted file mode 100644 index 72a6882..0000000 --- a/node_modules/shell-quote/.travis.yml +++ /dev/null @@ -1,27 +0,0 @@ -language: node_js -os: - - linux - - osx - - windows -node_js: - - "0.8" - - "0.10" - - "0.12" - - "iojs" - - "4" - - "5" - - "6" - - "7" - - "8" - - "9" - - "10" - - "11" - - "12" -matrix: - exclude: - - os: windows - node_js: "0.8" - - os: windows - node_js: "iojs" -before_install: - - 'if [ $TRAVIS_NODE_VERSION == 0.8 ]; then nvm install-latest-npm; fi' diff --git a/node_modules/shell-quote/CHANGELOG.md b/node_modules/shell-quote/CHANGELOG.md index b045252..324c195 100644 --- a/node_modules/shell-quote/CHANGELOG.md +++ b/node_modules/shell-quote/CHANGELOG.md @@ -1,21 +1,279 @@ -# acorn-node change log +# Changelog All notable changes to this project will be documented in this file. -This project adheres to [Semantic Versioning](http://semver.org/). +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.8.1](https://github.com/ljharb/shell-quote/compare/v1.8.0...v1.8.1) - 2023-04-07 + +### Fixed + +- [Fix] `parse`: preserve whitespace in comments [`#6`](https://github.com/ljharb/shell-quote/issues/6) +- [Fix] properly support the `escape` option [`#5`](https://github.com/ljharb/shell-quote/issues/5) + +### Commits + +- [Refactor] `parse`: hoist `getVar` to module level [`b42ac73`](https://github.com/ljharb/shell-quote/commit/b42ac73e39e566cfc355a4addc4bd2df2652556c) +- [Refactor] hoist some vars to module level [`8f0c5c3`](https://github.com/ljharb/shell-quote/commit/8f0c5c3c9df3a10e32f1972636675af6fffef998) +- [Refactor] `parse`: use `slice` over `substr`, cache some values [`fcb2e1a`](https://github.com/ljharb/shell-quote/commit/fcb2e1acd5312a1a1a4e6c66ec688aab383023b5) +- [Refactor] `parse`: a bit of cleanup [`6780ec5`](https://github.com/ljharb/shell-quote/commit/6780ec5194e36e2a696bfbaaf85169682a333321) +- [Refactor] `parse`: tweak the regex to not match nothing [`227d474`](https://github.com/ljharb/shell-quote/commit/227d4742a006e81ec3fde1eee103731a6f7ea920) +- [Tests] increase coverage [`a66de94`](https://github.com/ljharb/shell-quote/commit/a66de943555e49fbb1b657cbe3c5b2c703ae507d) +- [Refactor] `parse`: avoid shadowing a function arg [`1d58679`](https://github.com/ljharb/shell-quote/commit/1d5867907ecbf553556fe6ad790b6d6658aedba3) + +## [v1.8.0](https://github.com/ljharb/shell-quote/compare/v1.7.4...v1.8.0) - 2023-01-30 + +### Commits + +- [New] extract `parse` and `quote` to their own deep imports [`553fdfc`](https://github.com/ljharb/shell-quote/commit/553fdfc32cc41b4c2f77e061b6957703958ca575) +- [Tests] add `nyc` coverage [`fd7ddcd`](https://github.com/ljharb/shell-quote/commit/fd7ddcdd84bfef064c6d9a06b055a95531b26897) +- [New] Add support for here strings (`<<<`) [`9802fb3`](https://github.com/ljharb/shell-quote/commit/9802fb37c7946e18c672b81122520dc296bde271) +- [New] `parse`: Add syntax support for duplicating input file descriptors [`216b198`](https://github.com/ljharb/shell-quote/commit/216b19894f76b14d164c4c5a68f05a51b06336c4) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`85f8e31`](https://github.com/ljharb/shell-quote/commit/85f8e31dd80e1dde63d58204b653e497a53857e6) +- [Tests] add `evalmd` [`c5549fc`](https://github.com/ljharb/shell-quote/commit/c5549fcd82d70046bdc2b1c34184ae9f9d0191f9) +- [actions] update checkout action [`62e9b49`](https://github.com/ljharb/shell-quote/commit/62e9b4958cfa2f9009b7069076612fe33528c1fb) + +## [v1.7.4](https://github.com/ljharb/shell-quote/compare/1.7.3...v1.7.4) - 2022-10-12 + +### Merged + +- Add node_modules to .gitignore [`#48`](https://github.com/ljharb/shell-quote/pull/48) + +### Commits + +- [eslint] fix indentation and whitespace [`aaa9d1f`](https://github.com/ljharb/shell-quote/commit/aaa9d1f65bf3445e6af1efaa4a8f8c13a21aa593) +- [eslint] additional cleanup [`397cb62`](https://github.com/ljharb/shell-quote/commit/397cb628f3d96e4e47763147c0d6074997a13880) +- [meta] add `auto-changelog` [`497fca5`](https://github.com/ljharb/shell-quote/commit/497fca509af3b7d6daaba459bad1f45ac0af3ff1) +- [actions] add reusable workflows [`4763c36`](https://github.com/ljharb/shell-quote/commit/4763c36274c5881a2d141ce9f2b17b7d1d95e8cd) +- [eslint] add eslint [`6ee1437`](https://github.com/ljharb/shell-quote/commit/6ee1437df1b10a79bdf2aaa04f2bacc9f420dc15) +- [readme] rename, add badges [`7eb5134`](https://github.com/ljharb/shell-quote/commit/7eb513483d931602452ec572ed456714148acd2b) +- [meta] update URLs [`67381b6`](https://github.com/ljharb/shell-quote/commit/67381b61fa95e57819333463f491428747893186) +- [meta] create FUNDING.yml; add `funding` in package.json [`8641572`](https://github.com/ljharb/shell-quote/commit/86415722d875578adf1f95f9e649ba42c805bc32) +- [meta] use `npmignore` to autogenerate an npmignore file [`2e2007a`](https://github.com/ljharb/shell-quote/commit/2e2007a393f90bf079fc556a921120b3508c4fc3) +- Only apps should have lockfiles [`f97411e`](https://github.com/ljharb/shell-quote/commit/f97411ef4d2f183200fc8a28beca9faf9b08a640) +- [Dev Deps] update `tape` [`051f608`](https://github.com/ljharb/shell-quote/commit/051f60857ad5035280208abdc348bf5ba42a6254) +- [meta] add `safe-publish-latest` [`18cadf9`](https://github.com/ljharb/shell-quote/commit/18cadf95357392fcd78ea8619956fd41eed62649) +- [Tests] add `aud` in `posttest` [`dc1cc12`](https://github.com/ljharb/shell-quote/commit/dc1cc12b956ccd93d58aaaad263bee7d50576d27) + + + +## 1.7.3 +* Fix a security issue where the regex for windows drive letters allowed some shell meta-characters +to escape the quoting rules. (CVE-2021-42740) ## 1.7.2 -* Fix a regression introduced in 1.6.3. This reverts the Windows path quoting fix. ([144e1c2](https://github.com/substack/node-shell-quote/commit/144e1c20cd57549a414c827fb3032e60b7b8721c)) +* Fix a regression introduced in 1.6.3. This reverts the Windows path quoting fix. ([144e1c2](https://github.com/ljharb/shell-quote/commit/144e1c20cd57549a414c827fb3032e60b7b8721c)) ## 1.7.1 -* Fix `$` being removed when not part of an environment variable name. ([@Adman](https://github.com/Admin) in [#32](https://github.com/substack/node-shell-quote/pull/32)) +* Fix `$` being removed when not part of an environment variable name. ([@Adman](https://github.com/Admin) in [#32](https://github.com/ljharb/shell-quote/pull/32)) ## 1.7.0 -* Add support for parsing `>>` and `>&` redirection operators. ([@forivall](https://github.com/forivall) in [#16](https://github.com/substack/node-shell-quote/pull/16)) -* Add support for parsing `<(` process substitution operator. ([@cuonglm](https://github.com/cuonglm) in [#15](https://github.com/substack/node-shell-quote/pull/15)) +* Add support for parsing `>>` and `>&` redirection operators. ([@forivall](https://github.com/forivall) in [#16](https://github.com/ljharb/shell-quote/pull/16)) +* Add support for parsing `<(` process substitution operator. ([@cuonglm](https://github.com/cuonglm) in [#15](https://github.com/ljharb/shell-quote/pull/15)) ## 1.6.3 -* Fix Windows path quoting problems. ([@dy](https://github.com/dy) in [#34](https://github.com/substack/node-shell-quote/pull/34)) +* Fix Windows path quoting problems. ([@dy](https://github.com/dy) in [#34](https://github.com/ljharb/shell-quote/pull/34)) + +## [v1.6.2](https://github.com/ljharb/shell-quote/compare/1.6.1...v1.6.2) - 2019-08-13 + +### Merged + +- Use native JSON and Array methods [`#21`](https://github.com/ljharb/shell-quote/pull/21) + +### Commits + +- fix whitespace [`72fb5a8`](https://github.com/ljharb/shell-quote/commit/72fb5a8ce29b4f67f28302af33c217b58f92e260) +- Disable package-lock.json [`d450577`](https://github.com/ljharb/shell-quote/commit/d4505770b2a4251af2da8e177385c5e0456a83b6) + +## [1.6.1](https://github.com/ljharb/shell-quote/compare/1.6.0...1.6.1) - 2016-06-17 + +### Commits + +- Fix some more escaping for .quote() [`ace52f4`](https://github.com/ljharb/shell-quote/commit/ace52f4c8717b370b301a3db3a4727db26e309ad) +- Fix escaping for greater than and less than [`70e9eb2`](https://github.com/ljharb/shell-quote/commit/70e9eb2a854eb56a3dfa255be12610a722bbe080) + +## [1.6.0](https://github.com/ljharb/shell-quote/compare/1.5.0...1.6.0) - 2016-04-23 + +### Commits + +- add comment parsing feature [`b8b5c31`](https://github.com/ljharb/shell-quote/commit/b8b5c31c16a15aa4ab26c8f23d362a24b9fa57c4) + +## [1.5.0](https://github.com/ljharb/shell-quote/compare/1.4.3...1.5.0) - 2016-03-16 + +### Commits + +- add escape option to .parse [`4d400e7`](https://github.com/ljharb/shell-quote/commit/4d400e773be448c320b6dc9b2eb1323d7a3461ca) + +## [1.4.3](https://github.com/ljharb/shell-quote/compare/1.4.2...1.4.3) - 2015-03-07 + +### Commits + +- Fix quote() with special chars [`811b5a0`](https://github.com/ljharb/shell-quote/commit/811b5a0aff79f347db245edcf88750977c111844) + +## [1.4.2](https://github.com/ljharb/shell-quote/compare/1.4.1...1.4.2) - 2014-07-20 + +### Commits + +- Handle non-strings when quoting [`d435827`](https://github.com/ljharb/shell-quote/commit/d43582741c5599807249c28722487aa86bb16f06) +- falseys ok [`22dbd94`](https://github.com/ljharb/shell-quote/commit/22dbd9492c372038d439d6ec08c6288ca5fa3c10) +- all the falseys test [`c99dca5`](https://github.com/ljharb/shell-quote/commit/c99dca59dca64743877a0411d299ce669f0a2d1d) + +## [1.4.1](https://github.com/ljharb/shell-quote/compare/1.4.0...1.4.1) - 2013-12-24 + +### Commits + +- es5 shims [`00dc6ab`](https://github.com/ljharb/shell-quote/commit/00dc6abfdd2f3ff2908616dbe7b6584bbf1b0e24) +- separate shim file to get the coverage up [`e29a216`](https://github.com/ljharb/shell-quote/commit/e29a2167319913af3f26603bc33938bb9be1d74d) +- use array-{filter,map,reduce} [`97a2fc9`](https://github.com/ljharb/shell-quote/commit/97a2fc9c92917343a33662b3705860e4f2044730) +- add testling badge [`44c98b1`](https://github.com/ljharb/shell-quote/commit/44c98b1e341d348ce9b5b4d78bb4d26345e868ea) +- upgrade tape [`3fc22d3`](https://github.com/ljharb/shell-quote/commit/3fc22d3d38592e6fc3b3308cc73a282d641bad34) + +## [1.4.0](https://github.com/ljharb/shell-quote/compare/1.3.3...1.4.0) - 2013-10-17 + +### Merged + +- Add MIT LICENSE file [`#6`](https://github.com/ljharb/shell-quote/pull/6) + +### Commits + +- Rewrite parser as a character based scanner [`c7ca9a2`](https://github.com/ljharb/shell-quote/commit/c7ca9a200350c02fb86c4222b63f15b54a0a0226) +- Add tests for glob patterns [`3418892`](https://github.com/ljharb/shell-quote/commit/3418892031b126197302eb57cc92a729b740fac6) +- Update algo description [`e1442cf`](https://github.com/ljharb/shell-quote/commit/e1442cfe0521497b59a8204eb1e4d6c4202d42b9) +- Fix test case for backslash in double quotes [`89bc550`](https://github.com/ljharb/shell-quote/commit/89bc5500711643e87fe93dd1bde0e8745c34d733) +- Add failing tests for crazy quoting tricks [`58a5e48`](https://github.com/ljharb/shell-quote/commit/58a5e4800a62fdc3e980feae1e6c6b15c812f0cb) + +## [1.3.3](https://github.com/ljharb/shell-quote/compare/1.3.2...1.3.3) - 2013-06-24 + +### Commits + +- failing set test with an env cb [`9fb2096`](https://github.com/ljharb/shell-quote/commit/9fb20968b407c590745a982d2a562960e952142d) +- remove the broken special case [`f9a0ee5`](https://github.com/ljharb/shell-quote/commit/f9a0ee574f9d5e5d5b382f55da960c23eb7d44c5) + +## [1.3.2](https://github.com/ljharb/shell-quote/compare/1.3.1...1.3.2) - 2013-06-24 + +### Commits + +- tests for setting env vars [`f44b039`](https://github.com/ljharb/shell-quote/commit/f44b03906c60598470676edcabea79c4f7488407) +- fixed the parse test, broke the op tests [`74d6686`](https://github.com/ljharb/shell-quote/commit/74d66863615a60fcb222d2279991cff3a89ff015) +- factored out single and double quote regex [`de9e0a5`](https://github.com/ljharb/shell-quote/commit/de9e0a5081156e5483b5df24878c7414f90ec67e) +- updated set env test, already passes [`7d5636b`](https://github.com/ljharb/shell-quote/commit/7d5636bec5e76ff542712e07643b09c597d20b21) +- ops fixed [`2b4e1b1`](https://github.com/ljharb/shell-quote/commit/2b4e1b1fb63519456c7850d365e1ffe5fa5972b2) +- passing all tests [`44177e3`](https://github.com/ljharb/shell-quote/commit/44177e3dcbd96dfa331483eba0abbfb0291c130f) +- backreferences in negated capture groups don't actually work [`e189d9d`](https://github.com/ljharb/shell-quote/commit/e189d9d5910c6ecc7d564309ca9e110062f9589e) +- another crazy ridiculous passing parse test [`d1beb6b`](https://github.com/ljharb/shell-quote/commit/d1beb6b32ec7ad8752b305834a21c800cae74a95) +- failing test for quoted whitespace and nested quotes [`9a4c11c`](https://github.com/ljharb/shell-quote/commit/9a4c11cba0f61762aaa7887591d78fe7e965cf65) +- failing test for quotes embedded inside barewords [`d997384`](https://github.com/ljharb/shell-quote/commit/d997384018ce107ab8e12aa5b8d8359c2f77128b) + +## [1.3.1](https://github.com/ljharb/shell-quote/compare/1.3.0...1.3.1) - 2013-05-13 + +### Commits + +- pass objects through [`f9c0514`](https://github.com/ljharb/shell-quote/commit/f9c0514abbdf8ba16fafb68736863d14b39015ef) + +## [1.3.0](https://github.com/ljharb/shell-quote/compare/1.2.0...1.3.0) - 2013-05-13 + +### Commits + +- hacky tokenizer is much simpler [`7e91b18`](https://github.com/ljharb/shell-quote/commit/7e91b18d1cf3fffd6a9c5f69d785f200c0c81b66) +- nearly passing with a clunky state env parser, array issues [`d6d6416`](https://github.com/ljharb/shell-quote/commit/d6d64160f2fc8a23018410ffe84ab7f1b0c4fa02) +- test for functional env expansion [`666395f`](https://github.com/ljharb/shell-quote/commit/666395f9f195241c6077f242dc4f2851bed95f8d) +- upgrade travis versions, tape [`f6f8bd6`](https://github.com/ljharb/shell-quote/commit/f6f8bd6026375d44d40c7f2e1fead43d006be211) +- 1.3.0, document env() lookups [`041c5da`](https://github.com/ljharb/shell-quote/commit/041c5da88800b4e15f0ed023049050b11b623a23) +- first half of functional env() works [`7a0cf79`](https://github.com/ljharb/shell-quote/commit/7a0cf79987fbdcc00d8f36c6dc164d22db963d23) +- env() objects even work inside quote strings [`16139f5`](https://github.com/ljharb/shell-quote/commit/16139f52bf7a2beb7e1ca9b61b93a9ea598b0f1a) +- another check just to make sure env() works [`914a1a9`](https://github.com/ljharb/shell-quote/commit/914a1a9ec55cd76bedfed4086c35866733128036) + +## [1.2.0](https://github.com/ljharb/shell-quote/compare/1.1.0...1.2.0) - 2013-05-13 + +### Commits + +- failing test for special shell parameter env vars [`728862a`](https://github.com/ljharb/shell-quote/commit/728862a6ff246754083da5cf22322caf914ae990) +- add the special vars to the replace regex but the chunker breaks on them [`d1ff82a`](https://github.com/ljharb/shell-quote/commit/d1ff82a07c44cb53ab909b61833296f38257eabd) +- fixed the env test, everything is fine [`a45897f`](https://github.com/ljharb/shell-quote/commit/a45897f53ba184a77bc762c63777b95590a83962) + +## [1.1.0](https://github.com/ljharb/shell-quote/compare/1.0.0...1.1.0) - 2013-05-13 + +### Commits + +- quote all ops objects [`ac7be63`](https://github.com/ljharb/shell-quote/commit/ac7be63574e1da48bc6f495aee363d31863222c3) +- test for parsed ops objects in quote() [`59fb71b`](https://github.com/ljharb/shell-quote/commit/59fb71b39c53b83306d015bec62fc93667745f75) +- another test for op object quoting [`5819a31`](https://github.com/ljharb/shell-quote/commit/5819a31a19c34967dcb7bd1719250ed2aa480583) + +## [1.0.0](https://github.com/ljharb/shell-quote/compare/0.1.1...1.0.0) - 2013-05-13 + +### Commits + +- document ops, op example [`a6381e6`](https://github.com/ljharb/shell-quote/commit/a6381e612361148a8433c6ec4891aabc4649cb40) +- some more passing double-char op tests [`fbc6e5c`](https://github.com/ljharb/shell-quote/commit/fbc6e5c40858ef4ea4d69651ac8fdf6c0c780eed) +- failing test for | and & ops [`d817736`](https://github.com/ljharb/shell-quote/commit/d81773643cbc2e25576884d606165dc87e8bbfac) +- labeled regex states [`8c008b2`](https://github.com/ljharb/shell-quote/commit/8c008b223e6174d6bec098251527053e5cc1f30c) +- refactored the chunker regex into a string [`0331c7f`](https://github.com/ljharb/shell-quote/commit/0331c7f63077fda116b3c73540b71880538a4391) +- simple failing double-char op test [`e51fa90`](https://github.com/ljharb/shell-quote/commit/e51fa90f854063a408e8c1645b385c1ed42c72c6) +- failing expanded single-op tests for ; and () [`710bb24`](https://github.com/ljharb/shell-quote/commit/710bb243f23d4a55158688b71cb56b67f66ea99f) +- now passing all the single-char op tests [`e3e9ac1`](https://github.com/ljharb/shell-quote/commit/e3e9ac17ef02300bad7f4faefee5c7a993b3bc97) +- using the control ops directly from the docs [`f535987`](https://github.com/ljharb/shell-quote/commit/f53598732ba606c7bca66fd7d55d809544c452cf) +- first part of op parsing works [`e6f9199`](https://github.com/ljharb/shell-quote/commit/e6f91991fe437eae6b7e4f571843b3d48c746aeb) +- failing redirect tests [`cb94c10`](https://github.com/ljharb/shell-quote/commit/cb94c105a4e32fac2d356b956f53aff999ae88e8) +- another double-char op test just to be sure [`5cf1bf2`](https://github.com/ljharb/shell-quote/commit/5cf1bf29e3324a6cc1e40c01c4529b28ca0b47a5) +- 1.0.0 for ops [`17a40ed`](https://github.com/ljharb/shell-quote/commit/17a40edb3cd7a0f1c44be2be5ddd412c8ca2b7ca) +- adding redirect <> ops to CONTROL makes the tests pass [`48b1eb9`](https://github.com/ljharb/shell-quote/commit/48b1eb97cfa306659de66bd29615051a3644b9ce) +- double-char op test now passing [`3998b0f`](https://github.com/ljharb/shell-quote/commit/3998b0f9ecb32883f8eb3be31110a84d276ac764) +- using the meta chars directly from the docs [`b009ef6`](https://github.com/ljharb/shell-quote/commit/b009ef6d04eb1cc57d66cf3670d24e03fa0fc6bd) +- the spec says tabs are also allowed [`2adb373`](https://github.com/ljharb/shell-quote/commit/2adb37366bdfae198ce61e4658e513d3e0bc98fa) +- op test completely passing [`20a0147`](https://github.com/ljharb/shell-quote/commit/20a01475741d9fba801bbd2b0c1a5f215dc9cec4) + +## [0.1.1](https://github.com/ljharb/shell-quote/compare/0.1.0...0.1.1) - 2013-04-17 + +### Commits + +- Return empty list when parsing an empty (or whitespace-only) string [`1475717`](https://github.com/ljharb/shell-quote/commit/14757177ead209f5ae3c9d4a3020fba9f522725f) + +## [0.1.0](https://github.com/ljharb/shell-quote/compare/0.0.1...0.1.0) - 2013-04-14 + +### Commits + +- externalize the regex declaration [`37d6058`](https://github.com/ljharb/shell-quote/commit/37d60580a4a4656ff836c4a2ecdd7282705ffd27) +- modernize the readme [`24106f5`](https://github.com/ljharb/shell-quote/commit/24106f5c81ab83bddb2bf735cad60e99e1494dcf) +- factor out interpolation [`1b21b01`](https://github.com/ljharb/shell-quote/commit/1b21b018e01392d2c74e53136f8fa0ca838d7643) +- half the env tests are working with basic interpolation [`5891471`](https://github.com/ljharb/shell-quote/commit/589147176be93834bad7fcee83bd255e35c14adc) +- env parse example [`5757c42`](https://github.com/ljharb/shell-quote/commit/5757c4256a4cbaeaabd3d8cd91c7e19109329067) +- failing tests for unimplemented env interpolation [`590534a`](https://github.com/ljharb/shell-quote/commit/590534ae8eced91974a4be8f2b6bc7dcb53e3211) +- denormalize the interpolate logic to make room for special cases [`c669d2e`](https://github.com/ljharb/shell-quote/commit/c669d2e8b84e0eb0dde1798eae7c37a21dc5b7a1) +- cleaner implementation recursing on the double quote case [`adae66f`](https://github.com/ljharb/shell-quote/commit/adae66f47cf11bb7a686c98059436f496d881955) +- one test was wrong, checking for pre escapes [`42b5f83`](https://github.com/ljharb/shell-quote/commit/42b5f8355196d5f2a2c40178576a5d37167e8cb2) +- finally passing all the tests [`efa4084`](https://github.com/ljharb/shell-quote/commit/efa408481db33993fce2a1dd3c15ffac0203fe4c) +- one more test passing with quote recursion [`e9537b9`](https://github.com/ljharb/shell-quote/commit/e9537b943d89535b38c0777c210b5aa9780349b2) +- use tape everywhere [`ed0c1c6`](https://github.com/ljharb/shell-quote/commit/ed0c1c6ae383998874002ae9aa452505c266d630) +- some extra metacharacter tests just to be sure [`a6782ae`](https://github.com/ljharb/shell-quote/commit/a6782aeb931221a459f9cebc371c2311ad680992) +- minor fix to an env test [`601b340`](https://github.com/ljharb/shell-quote/commit/601b3406e7012da97771b0ed538288ddb12d9af8) +- document parse env [`cc0efba`](https://github.com/ljharb/shell-quote/commit/cc0efba0bce75aaab1ead72e81470154a71ec525) +- better parse recursion to capture the containing quotes [`8467961`](https://github.com/ljharb/shell-quote/commit/84679611fd5843777d3d94f157a7b6efe11097ca) +- now just 2 tests failing with a subtle regex reordering [`5448a02`](https://github.com/ljharb/shell-quote/commit/5448a02d356722ec8ef57db2e075e10566e2dcdb) +- pass another test by using "" as the undefined [`46e6cf4`](https://github.com/ljharb/shell-quote/commit/46e6cf4b974e1cec0601e81a0dc2820dc849f775) +- fixed a failing env test [`17d1fda`](https://github.com/ljharb/shell-quote/commit/17d1fdac759e7a94ffc6edc26af27769d30e53bb) +- actually the test was wrong, module works fine [`9d7b727`](https://github.com/ljharb/shell-quote/commit/9d7b727f2911692cffe03e7792b5defad3dd75d2) +- another test to be even more sure [`5afd47b`](https://github.com/ljharb/shell-quote/commit/5afd47ba563d4c1bb7966695e100f63da4b65915) +- failing test for: echo "foo = \"foo\"" [`8dbb280`](https://github.com/ljharb/shell-quote/commit/8dbb2803136a2f7643e7e66b2d6b95f9adfbfd41) + +## [0.0.1](https://github.com/ljharb/shell-quote/compare/0.0.0...0.0.1) - 2012-05-18 + +### Commits + +- fixed unescaped metachars and bump [`5ce339f`](https://github.com/ljharb/shell-quote/commit/5ce339feeaf971a5172fe58faa3ac5f90bdfe8b5) +- failing test for unescaped metachars [`a315125`](https://github.com/ljharb/shell-quote/commit/a315125a0742b01799c89469efd20821540694f6) +- fix for escaped spaces [`669b616`](https://github.com/ljharb/shell-quote/commit/669b61610aad3e6f47e8c043e1635dcc4b5ce375) +- failing test for escaped space [`c6ff3dc`](https://github.com/ljharb/shell-quote/commit/c6ff3dc6811816a667e55a69ec09bffa52f5ee0a) + +## 0.0.0 - 2012-05-18 + +### Commits -## 1.6.2 -* Remove dependencies in favour of native methods. ([@zertosh](https://github.com/zertosh) in [#21](https://github.com/substack/node-shell-quote/pull/21)) +- readme with examples [`6373c0f`](https://github.com/ljharb/shell-quote/commit/6373c0f56de87702a61063ffae354e2bb989de91) +- package.json [`bc27efa`](https://github.com/ljharb/shell-quote/commit/bc27efa033709ede8483bb6ec0f182dcb2b87061) +- passing the parse test [`69c0f85`](https://github.com/ljharb/shell-quote/commit/69c0f8529825d3fdc700e81d32b75378cef47994) +- crazy initial thing [`d6469c9`](https://github.com/ljharb/shell-quote/commit/d6469c95adf0172adc65c4adab04910486368ee7) +- passing quote tests [`e1d6695`](https://github.com/ljharb/shell-quote/commit/e1d669503f0f159068deb45f14ba3a4bf77e90f0) +- failing parse test [`980aa58`](https://github.com/ljharb/shell-quote/commit/980aa585937d049b152b5e7b08c1e068faaaf378) +- using travis [`1c72261`](https://github.com/ljharb/shell-quote/commit/1c72261f45002744fac3fecec3f0395924d66717) +- expand more escape sequences in parse() [`8b2224c`](https://github.com/ljharb/shell-quote/commit/8b2224c465ef70d2320985c57dc0b8ee1c0a3664) diff --git a/node_modules/shell-quote/README.md b/node_modules/shell-quote/README.md new file mode 100644 index 0000000..6b545c5 --- /dev/null +++ b/node_modules/shell-quote/README.md @@ -0,0 +1,161 @@ +# shell-quote [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Parse and quote shell commands. + +# example + +## quote + +``` js +var quote = require('shell-quote/quote'); +var s = quote([ 'a', 'b c d', '$f', '"g"' ]); +console.log(s); +``` + +output + +``` +a 'b c d' \$f '"g"' +``` + +## parse + +``` js +var parse = require('shell-quote/parse'); +var xs = parse('a "b c" \\$def \'it\\\'s great\''); +console.dir(xs); +``` + +output + +``` +[ 'a', 'b c', '\\$def', 'it\'s great' ] +``` + +## parse with an environment variable + +``` js +var parse = require('shell-quote/parse'); +var xs = parse('beep --boop="$PWD"', { PWD: '/home/robot' }); +console.dir(xs); +``` + +output + +``` +[ 'beep', '--boop=/home/robot' ] +``` + +## parse with custom escape character + +``` js +var parse = require('shell-quote/parse'); +var xs = parse('beep ^--boop="$PWD"', { PWD: '/home/robot' }, { escape: '^' }); +console.dir(xs); +``` + +output + +``` +[ 'beep --boop=/home/robot' ] +``` + +## parsing shell operators + +``` js +var parse = require('shell-quote/parse'); +var xs = parse('beep || boop > /byte'); +console.dir(xs); +``` + +output: + +``` +[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ] +``` + +## parsing shell comment + +``` js +var parse = require('shell-quote/parse'); +var xs = parse('beep > boop # > kaboom'); +console.dir(xs); +``` + +output: + +``` +[ 'beep', { op: '>' }, 'boop', { comment: '> kaboom' } ] +``` + +# methods + +``` js +var quote = require('shell-quote/quote'); +var parse = require('shell-quote/parse'); +``` + +## quote(args) + +Return a quoted string for the array `args` suitable for using in shell +commands. + +## parse(cmd, env={}) + +Return an array of arguments from the quoted string `cmd`. + +Interpolate embedded bash-style `$VARNAME` and `${VARNAME}` variables with +the `env` object which like bash will replace undefined variables with `""`. + +`env` is usually an object but it can also be a function to perform lookups. +When `env(key)` returns a string, its result will be output just like `env[key]` +would. When `env(key)` returns an object, it will be inserted into the result +array like the operator objects. + +When a bash operator is encountered, the element in the array with be an object +with an `"op"` key set to the operator string. For example: + +``` +'beep || boop > /byte' +``` + +parses as: + +``` +[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ] +``` + +# install + +With [npm](http://npmjs.org) do: + +``` +npm install shell-quote +``` + +# license + +MIT + +[package-url]: https://npmjs.org/package/shell-quote +[npm-version-svg]: https://versionbadg.es/ljharb/shell-quote.svg +[deps-svg]: https://david-dm.org/ljharb/shell-quote.svg +[deps-url]: https://david-dm.org/ljharb/shell-quote +[dev-deps-svg]: https://david-dm.org/ljharb/shell-quote/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/shell-quote#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/shell-quote.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/shell-quote.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/shell-quote.svg +[downloads-url]: https://npm-stat.com/charts.html?package=shell-quote +[codecov-image]: https://codecov.io/gh/ljharb/shell-quote/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/shell-quote/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/shell-quote +[actions-url]: https://github.com/ljharb/shell-quote/actions diff --git a/node_modules/shell-quote/example/env.js b/node_modules/shell-quote/example/env.js index 3608a58..1493afc 100644 --- a/node_modules/shell-quote/example/env.js +++ b/node_modules/shell-quote/example/env.js @@ -1,3 +1,5 @@ +'use strict'; + var parse = require('../').parse; var xs = parse('beep --boop="$PWD"', { PWD: '/home/robot' }); console.dir(xs); diff --git a/node_modules/shell-quote/example/op.js b/node_modules/shell-quote/example/op.js index d8d9064..82ebf65 100644 --- a/node_modules/shell-quote/example/op.js +++ b/node_modules/shell-quote/example/op.js @@ -1,3 +1,5 @@ +'use strict'; + var parse = require('../').parse; var xs = parse('beep || boop > /byte'); console.dir(xs); diff --git a/node_modules/shell-quote/example/parse.js b/node_modules/shell-quote/example/parse.js index 4b3be5f..36e6758 100644 --- a/node_modules/shell-quote/example/parse.js +++ b/node_modules/shell-quote/example/parse.js @@ -1,3 +1,5 @@ +'use strict'; + var parse = require('../').parse; var xs = parse('a "b c" \\$def \'it\\\'s great\''); console.dir(xs); diff --git a/node_modules/shell-quote/example/quote.js b/node_modules/shell-quote/example/quote.js index 434bf8a..91c3d20 100644 --- a/node_modules/shell-quote/example/quote.js +++ b/node_modules/shell-quote/example/quote.js @@ -1,3 +1,5 @@ +'use strict'; + var quote = require('../').quote; -var s = quote([ 'a', 'b c d', '$f', '"g"' ]); +var s = quote(['a', 'b c d', '$f', '"g"']); console.log(s); diff --git a/node_modules/shell-quote/index.js b/node_modules/shell-quote/index.js index fac79be..28fb42d 100644 --- a/node_modules/shell-quote/index.js +++ b/node_modules/shell-quote/index.js @@ -1,199 +1,4 @@ -exports.quote = function (xs) { - return xs.map(function (s) { - if (s && typeof s === 'object') { - return s.op.replace(/(.)/g, '\\$1'); - } - else if (/["\s]/.test(s) && !/'/.test(s)) { - return "'" + s.replace(/(['\\])/g, '\\$1') + "'"; - } - else if (/["'\s]/.test(s)) { - return '"' + s.replace(/(["\\$`!])/g, '\\$1') + '"'; - } - else { - return String(s).replace(/([A-z]:)?([#!"$&'()*,:;<=>?@\[\\\]^`{|}])/g, '$1\\$2'); - } - }).join(' '); -}; +'use strict'; -// '<(' is process substitution operator and -// can be parsed the same as control operator -var CONTROL = '(?:' + [ - '\\|\\|', '\\&\\&', ';;', '\\|\\&', '\\<\\(', '>>', '>\\&', '[&;()|<>]' -].join('|') + ')'; -var META = '|&;()<> \\t'; -var BAREWORD = '(\\\\[\'"' + META + ']|[^\\s\'"' + META + '])+'; -var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"'; -var DOUBLE_QUOTE = '\'((\\\\\'|[^\'])*?)\''; - -var TOKEN = ''; -for (var i = 0; i < 4; i++) { - TOKEN += (Math.pow(16,8)*Math.random()).toString(16); -} - -exports.parse = function (s, env, opts) { - var mapped = parse(s, env, opts); - if (typeof env !== 'function') return mapped; - return mapped.reduce(function (acc, s) { - if (typeof s === 'object') return acc.concat(s); - var xs = s.split(RegExp('(' + TOKEN + '.*?' + TOKEN + ')', 'g')); - if (xs.length === 1) return acc.concat(xs[0]); - return acc.concat(xs.filter(Boolean).map(function (x) { - if (RegExp('^' + TOKEN).test(x)) { - return JSON.parse(x.split(TOKEN)[1]); - } - else return x; - })); - }, []); -}; - -function parse (s, env, opts) { - var chunker = new RegExp([ - '(' + CONTROL + ')', // control chars - '(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')*' - ].join('|'), 'g'); - var match = s.match(chunker).filter(Boolean); - var commented = false; - - if (!match) return []; - if (!env) env = {}; - if (!opts) opts = {}; - return match.map(function (s, j) { - if (commented) { - return; - } - if (RegExp('^' + CONTROL + '$').test(s)) { - return { op: s }; - } - - // Hand-written scanner/parser for Bash quoting rules: - // - // 1. inside single quotes, all characters are printed literally. - // 2. inside double quotes, all characters are printed literally - // except variables prefixed by '$' and backslashes followed by - // either a double quote or another backslash. - // 3. outside of any quotes, backslashes are treated as escape - // characters and not printed (unless they are themselves escaped) - // 4. quote context can switch mid-token if there is no whitespace - // between the two quote contexts (e.g. all'one'"token" parses as - // "allonetoken") - var SQ = "'"; - var DQ = '"'; - var DS = '$'; - var BS = opts.escape || '\\'; - var quote = false; - var esc = false; - var out = ''; - var isGlob = false; - - for (var i = 0, len = s.length; i < len; i++) { - var c = s.charAt(i); - isGlob = isGlob || (!quote && (c === '*' || c === '?')); - if (esc) { - out += c; - esc = false; - } - else if (quote) { - if (c === quote) { - quote = false; - } - else if (quote == SQ) { - out += c; - } - else { // Double quote - if (c === BS) { - i += 1; - c = s.charAt(i); - if (c === DQ || c === BS || c === DS) { - out += c; - } else { - out += BS + c; - } - } - else if (c === DS) { - out += parseEnvVar(); - } - else { - out += c; - } - } - } - else if (c === DQ || c === SQ) { - quote = c; - } - else if (RegExp('^' + CONTROL + '$').test(c)) { - return { op: s }; - } - else if (RegExp('^#$').test(c)) { - commented = true; - if (out.length){ - return [out, { comment: s.slice(i+1) + match.slice(j+1).join(' ') }]; - } - return [{ comment: s.slice(i+1) + match.slice(j+1).join(' ') }]; - } - else if (c === BS) { - esc = true; - } - else if (c === DS) { - out += parseEnvVar(); - } - else out += c; - } - - if (isGlob) return {op: 'glob', pattern: out}; - - return out; - - function parseEnvVar() { - i += 1; - var varend, varname; - //debugger - if (s.charAt(i) === '{') { - i += 1; - if (s.charAt(i) === '}') { - throw new Error("Bad substitution: " + s.substr(i - 2, 3)); - } - varend = s.indexOf('}', i); - if (varend < 0) { - throw new Error("Bad substitution: " + s.substr(i)); - } - varname = s.substr(i, varend - i); - i = varend; - } - else if (/[*@#?$!_\-]/.test(s.charAt(i))) { - varname = s.charAt(i); - i += 1; - } - else { - varend = s.substr(i).match(/[^\w\d_]/); - if (!varend) { - varname = s.substr(i); - i = s.length; - } else { - varname = s.substr(i, varend.index); - i += varend.index - 1; - } - } - return getVar(null, '', varname); - } - }) - // finalize parsed aruments - .reduce(function(prev, arg){ - if (arg === undefined){ - return prev; - } - return prev.concat(arg); - },[]); - - function getVar (_, pre, key) { - var r = typeof env === 'function' ? env(key) : env[key]; - if (r === undefined && key != '') - r = ''; - else if (r === undefined) - r = '$'; - - if (typeof r === 'object') { - return pre + TOKEN + JSON.stringify(r) + TOKEN; - } - else return pre + r; - } -} +exports.quote = require('./quote'); +exports.parse = require('./parse'); diff --git a/node_modules/shell-quote/package.json b/node_modules/shell-quote/package.json index a8eb0b2..641127e 100644 --- a/node_modules/shell-quote/package.json +++ b/node_modules/shell-quote/package.json @@ -1,30 +1,66 @@ { - "name": "shell-quote", - "description": "quote and parse shell commands", - "version": "1.7.2", - "author": { - "name": "James Halliday", - "email": "mail@substack.net", - "url": "http://substack.net" - }, - "bugs": "https://github.com/substack/node-shell-quote/issues", - "devDependencies": { - "tape": "4" - }, - "homepage": "https://github.com/substack/node-shell-quote", - "keywords": [ - "command", - "parse", - "quote", - "shell" - ], - "license": "MIT", - "main": "index.js", - "repository": { - "type": "git", - "url": "http://github.com/substack/node-shell-quote.git" - }, - "scripts": { - "test": "tape test/*.js" - } + "name": "shell-quote", + "description": "quote and parse shell commands", + "version": "1.8.1", + "author": { + "name": "James Halliday", + "email": "mail@substack.net", + "url": "http://substack.net" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "bugs": "https://github.com/ljharb/shell-quote/issues", + "devDependencies": { + "@ljharb/eslint-config": "^21.0.1", + "aud": "^2.0.2", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "in-publish": "^2.0.1", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.3" + }, + "homepage": "https://github.com/ljharb/shell-quote", + "keywords": [ + "command", + "parse", + "quote", + "shell" + ], + "license": "MIT", + "main": "index.js", + "repository": { + "type": "git", + "url": "http://github.com/ljharb/shell-quote.git" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublish": "not-in-publish || npm run prepublishOnly", + "prepublishOnly": "safe-publish-latest", + "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)\")\"" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true, + "startingVersion": "1.7.4" + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] + } } diff --git a/node_modules/shell-quote/parse.js b/node_modules/shell-quote/parse.js new file mode 100644 index 0000000..71d2eea --- /dev/null +++ b/node_modules/shell-quote/parse.js @@ -0,0 +1,226 @@ +'use strict'; + +// '<(' is process substitution operator and +// can be parsed the same as control operator +var CONTROL = '(?:' + [ + '\\|\\|', + '\\&\\&', + ';;', + '\\|\\&', + '\\<\\(', + '\\<\\<\\<', + '>>', + '>\\&', + '<\\&', + '[&;()|<>]' +].join('|') + ')'; +var controlRE = new RegExp('^' + CONTROL + '$'); +var META = '|&;()<> \\t'; +var SINGLE_QUOTE = '"((\\\\"|[^"])*?)"'; +var DOUBLE_QUOTE = '\'((\\\\\'|[^\'])*?)\''; +var hash = /^#$/; + +var SQ = "'"; +var DQ = '"'; +var DS = '$'; + +var TOKEN = ''; +var mult = 0x100000000; // Math.pow(16, 8); +for (var i = 0; i < 4; i++) { + TOKEN += (mult * Math.random()).toString(16); +} +var startsWithToken = new RegExp('^' + TOKEN); + +function matchAll(s, r) { + var origIndex = r.lastIndex; + + var matches = []; + var matchObj; + + while ((matchObj = r.exec(s))) { + matches.push(matchObj); + if (r.lastIndex === matchObj.index) { + r.lastIndex += 1; + } + } + + r.lastIndex = origIndex; + + return matches; +} + +function getVar(env, pre, key) { + var r = typeof env === 'function' ? env(key) : env[key]; + if (typeof r === 'undefined' && key != '') { + r = ''; + } else if (typeof r === 'undefined') { + r = '$'; + } + + if (typeof r === 'object') { + return pre + TOKEN + JSON.stringify(r) + TOKEN; + } + return pre + r; +} + +function parseInternal(string, env, opts) { + if (!opts) { + opts = {}; + } + var BS = opts.escape || '\\'; + var BAREWORD = '(\\' + BS + '[\'"' + META + ']|[^\\s\'"' + META + '])+'; + + var chunker = new RegExp([ + '(' + CONTROL + ')', // control chars + '(' + BAREWORD + '|' + SINGLE_QUOTE + '|' + DOUBLE_QUOTE + ')+' + ].join('|'), 'g'); + + var matches = matchAll(string, chunker); + + if (matches.length === 0) { + return []; + } + if (!env) { + env = {}; + } + + var commented = false; + + return matches.map(function (match) { + var s = match[0]; + if (!s || commented) { + return void undefined; + } + if (controlRE.test(s)) { + return { op: s }; + } + + // Hand-written scanner/parser for Bash quoting rules: + // + // 1. inside single quotes, all characters are printed literally. + // 2. inside double quotes, all characters are printed literally + // except variables prefixed by '$' and backslashes followed by + // either a double quote or another backslash. + // 3. outside of any quotes, backslashes are treated as escape + // characters and not printed (unless they are themselves escaped) + // 4. quote context can switch mid-token if there is no whitespace + // between the two quote contexts (e.g. all'one'"token" parses as + // "allonetoken") + var quote = false; + var esc = false; + var out = ''; + var isGlob = false; + var i; + + function parseEnvVar() { + i += 1; + var varend; + var varname; + var char = s.charAt(i); + + if (char === '{') { + i += 1; + if (s.charAt(i) === '}') { + throw new Error('Bad substitution: ' + s.slice(i - 2, i + 1)); + } + varend = s.indexOf('}', i); + if (varend < 0) { + throw new Error('Bad substitution: ' + s.slice(i)); + } + varname = s.slice(i, varend); + i = varend; + } else if ((/[*@#?$!_-]/).test(char)) { + varname = char; + i += 1; + } else { + var slicedFromI = s.slice(i); + varend = slicedFromI.match(/[^\w\d_]/); + if (!varend) { + varname = slicedFromI; + i = s.length; + } else { + varname = slicedFromI.slice(0, varend.index); + i += varend.index - 1; + } + } + return getVar(env, '', varname); + } + + for (i = 0; i < s.length; i++) { + var c = s.charAt(i); + isGlob = isGlob || (!quote && (c === '*' || c === '?')); + if (esc) { + out += c; + esc = false; + } else if (quote) { + if (c === quote) { + quote = false; + } else if (quote == SQ) { + out += c; + } else { // Double quote + if (c === BS) { + i += 1; + c = s.charAt(i); + if (c === DQ || c === BS || c === DS) { + out += c; + } else { + out += BS + c; + } + } else if (c === DS) { + out += parseEnvVar(); + } else { + out += c; + } + } + } else if (c === DQ || c === SQ) { + quote = c; + } else if (controlRE.test(c)) { + return { op: s }; + } else if (hash.test(c)) { + commented = true; + var commentObj = { comment: string.slice(match.index + i + 1) }; + if (out.length) { + return [out, commentObj]; + } + return [commentObj]; + } else if (c === BS) { + esc = true; + } else if (c === DS) { + out += parseEnvVar(); + } else { + out += c; + } + } + + if (isGlob) { + return { op: 'glob', pattern: out }; + } + + return out; + }).reduce(function (prev, arg) { // finalize parsed arguments + // TODO: replace this whole reduce with a concat + return typeof arg === 'undefined' ? prev : prev.concat(arg); + }, []); +} + +module.exports = function parse(s, env, opts) { + var mapped = parseInternal(s, env, opts); + if (typeof env !== 'function') { + return mapped; + } + return mapped.reduce(function (acc, s) { + if (typeof s === 'object') { + return acc.concat(s); + } + var xs = s.split(RegExp('(' + TOKEN + '.*?' + TOKEN + ')', 'g')); + if (xs.length === 1) { + return acc.concat(xs[0]); + } + return acc.concat(xs.filter(Boolean).map(function (x) { + if (startsWithToken.test(x)) { + return JSON.parse(x.split(TOKEN)[1]); + } + return x; + })); + }, []); +}; diff --git a/node_modules/shell-quote/quote.js b/node_modules/shell-quote/quote.js new file mode 100644 index 0000000..afbccf0 --- /dev/null +++ b/node_modules/shell-quote/quote.js @@ -0,0 +1,16 @@ +'use strict'; + +module.exports = function quote(xs) { + return xs.map(function (s) { + if (s && typeof s === 'object') { + return s.op.replace(/(.)/g, '\\$1'); + } + if ((/["\s]/).test(s) && !(/'/).test(s)) { + return "'" + s.replace(/(['\\])/g, '\\$1') + "'"; + } + if ((/["'\s]/).test(s)) { + return '"' + s.replace(/(["\\$`!])/g, '\\$1') + '"'; + } + return String(s).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@[\\\]^`{|}])/g, '$1\\$2'); + }).join(' '); +}; diff --git a/node_modules/shell-quote/readme.markdown b/node_modules/shell-quote/readme.markdown deleted file mode 100644 index 85d9439..0000000 --- a/node_modules/shell-quote/readme.markdown +++ /dev/null @@ -1,138 +0,0 @@ -# shell-quote - -Parse and quote shell commands. - -# example - -## quote - -``` js -var quote = require('shell-quote').quote; -var s = quote([ 'a', 'b c d', '$f', '"g"' ]); -console.log(s); -``` - -output - -``` -a 'b c d' \$f '"g"' -``` - -## parse - -``` js -var parse = require('shell-quote').parse; -var xs = parse('a "b c" \\$def \'it\\\'s great\''); -console.dir(xs); -``` - -output - -``` -[ 'a', 'b c', '\\$def', 'it\'s great' ] -``` - -## parse with an environment variable - -``` js -var parse = require('shell-quote').parse; -var xs = parse('beep --boop="$PWD"', { PWD: '/home/robot' }); -console.dir(xs); -``` - -output - -``` -[ 'beep', '--boop=/home/robot' ] -``` - -## parse with custom escape charcter - -``` js -var parse = require('shell-quote').parse; -var xs = parse('beep --boop="$PWD"', { PWD: '/home/robot' }, { escape: '^' }); -console.dir(xs); -``` - -output - -``` -[ 'beep', '--boop=/home/robot' ] -``` - -## parsing shell operators - -``` js -var parse = require('shell-quote').parse; -var xs = parse('beep || boop > /byte'); -console.dir(xs); -``` - -output: - -``` -[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ] -``` - -## parsing shell comment - -``` js -var parse = require('shell-quote').parse; -var xs = parse('beep > boop # > kaboom'); -console.dir(xs); -``` - -output: - -``` -[ 'beep', { op: '>' }, 'boop', { comment: '> kaboom' } ] -``` - -# methods - -``` js -var quote = require('shell-quote').quote; -var parse = require('shell-quote').parse; -``` - -## quote(args) - -Return a quoted string for the array `args` suitable for using in shell -commands. - -## parse(cmd, env={}) - -Return an array of arguments from the quoted string `cmd`. - -Interpolate embedded bash-style `$VARNAME` and `${VARNAME}` variables with -the `env` object which like bash will replace undefined variables with `""`. - -`env` is usually an object but it can also be a function to perform lookups. -When `env(key)` returns a string, its result will be output just like `env[key]` -would. When `env(key)` returns an object, it will be inserted into the result -array like the operator objects. - -When a bash operator is encountered, the element in the array with be an object -with an `"op"` key set to the operator string. For example: - -``` -'beep || boop > /byte' -``` - -parses as: - -``` -[ 'beep', { op: '||' }, 'boop', { op: '>' }, '/byte' ] -``` - -# install - -With [npm](http://npmjs.org) do: - -``` -npm install shell-quote -``` - -# license - -MIT diff --git a/node_modules/shell-quote/security.md b/node_modules/shell-quote/security.md new file mode 100644 index 0000000..dc86413 --- /dev/null +++ b/node_modules/shell-quote/security.md @@ -0,0 +1,11 @@ +# Security Policy + +## Supported Versions + +Only the latest major version is supported at any given time. + +## Reporting a Vulnerability + +To report a security vulnerability, please use the +[Tidelift security contact](https://tidelift.com/security). +Tidelift will coordinate the fix and disclosure. diff --git a/node_modules/shell-quote/test/comment.js b/node_modules/shell-quote/test/comment.js index bc6fbf2..fb15d5c 100644 --- a/node_modules/shell-quote/test/comment.js +++ b/node_modules/shell-quote/test/comment.js @@ -1,14 +1,16 @@ +'use strict'; + var test = require('tape'); var parse = require('../').parse; test('comment', function (t) { - t.same(parse('beep#boop'), [ 'beep', { comment: 'boop' } ]); - t.same(parse('beep #boop'), [ 'beep', { comment: 'boop' } ]); - t.same(parse('beep # boop'), [ 'beep', { comment: 'boop' } ]); - t.same(parse('beep # > boop'), [ 'beep', { comment: '> boop' } ]); - t.same(parse('beep # "> boop"'), [ 'beep', { comment: '"> boop"' } ]); - t.same(parse('beep "#"'), [ 'beep', '#' ]); - t.same(parse('beep #"#"#'), [ 'beep', { comment: '"#"#' } ]); - t.same(parse('beep > boop # > foo'), [ 'beep', {op: '>'}, 'boop', { comment: '> foo' } ]); - t.end(); + t.same(parse('beep#boop'), ['beep', { comment: 'boop' }]); + t.same(parse('beep #boop'), ['beep', { comment: 'boop' }]); + t.same(parse('beep # boop'), ['beep', { comment: ' boop' }]); + t.same(parse('beep # > boop'), ['beep', { comment: ' > boop' }]); + t.same(parse('beep # "> boop"'), ['beep', { comment: ' "> boop"' }]); + t.same(parse('beep "#"'), ['beep', '#']); + t.same(parse('beep #"#"#'), ['beep', { comment: '"#"#' }]); + t.same(parse('beep > boop # > foo'), ['beep', { op: '>' }, 'boop', { comment: ' > foo' }]); + t.end(); }); diff --git a/node_modules/shell-quote/test/env.js b/node_modules/shell-quote/test/env.js index b3faeb0..4cc0a51 100644 --- a/node_modules/shell-quote/test/env.js +++ b/node_modules/shell-quote/test/env.js @@ -1,41 +1,52 @@ +'use strict'; + var test = require('tape'); var parse = require('../').parse; test('expand environment variables', function (t) { - t.same(parse('a $XYZ c', { XYZ: 'b' }), [ 'a', 'b', 'c' ]); - t.same(parse('a${XYZ}c', { XYZ: 'b' }), [ 'abc' ]); - t.same(parse('a${XYZ}c $XYZ', { XYZ: 'b' }), [ 'abc', 'b' ]); - t.same(parse('"-$X-$Y-"', { X: 'a', Y: 'b' }), [ '-a-b-' ]); - t.same(parse("'-$X-$Y-'", { X: 'a', Y: 'b' }), [ '-$X-$Y-' ]); - t.same(parse('qrs"$zzz"wxy', { zzz: 'tuv' }), [ 'qrstuvwxy' ]); - t.same(parse("qrs'$zzz'wxy", { zzz: 'tuv' }), [ 'qrs$zzzwxy' ]); - t.same(parse("qrs${zzz}wxy"), [ 'qrswxy' ]); - t.same(parse("qrs$wxy $"), [ 'qrs', '$' ]); - t.same(parse('grep "xy$"'), [ 'grep', 'xy$' ]); - t.same(parse("ab$x", { x: 'c' }), [ 'abc' ]); - t.same(parse("ab\\$x", { x: 'c' }), [ 'ab$x' ]); - t.same(parse("ab${x}def", { x: 'c' }), [ 'abcdef' ]); - t.same(parse("ab\\${x}def", { x: 'c' }), [ 'ab${x}def' ]); - t.same(parse('"ab\\${x}def"', { x: 'c' }), [ 'ab${x}def' ]); - - t.end(); + t.same(parse('a $XYZ c', { XYZ: 'b' }), ['a', 'b', 'c']); + t.same(parse('a${XYZ}c', { XYZ: 'b' }), ['abc']); + t.same(parse('a${XYZ}c $XYZ', { XYZ: 'b' }), ['abc', 'b']); + t.same(parse('"-$X-$Y-"', { X: 'a', Y: 'b' }), ['-a-b-']); + t.same(parse("'-$X-$Y-'", { X: 'a', Y: 'b' }), ['-$X-$Y-']); + t.same(parse('qrs"$zzz"wxy', { zzz: 'tuv' }), ['qrstuvwxy']); + t.same(parse("qrs'$zzz'wxy", { zzz: 'tuv' }), ['qrs$zzzwxy']); + t.same(parse('qrs${zzz}wxy'), ['qrswxy']); + t.same(parse('qrs$wxy $'), ['qrs', '$']); + t.same(parse('grep "xy$"'), ['grep', 'xy$']); + t.same(parse('ab$x', { x: 'c' }), ['abc']); + t.same(parse('ab\\$x', { x: 'c' }), ['ab$x']); + t.same(parse('ab${x}def', { x: 'c' }), ['abcdef']); + t.same(parse('ab\\${x}def', { x: 'c' }), ['ab${x}def']); + t.same(parse('"ab\\${x}def"', { x: 'c' }), ['ab${x}def']); + + t.end(); +}); + +test('expand environment variables within here-strings', function (t) { + t.same(parse('a <<< $x', { x: 'Joe' }), ['a', { op: '<<<' }, 'Joe']); + t.same(parse('a <<< ${x}', { x: 'Joe' }), ['a', { op: '<<<' }, 'Joe']); + t.same(parse('a <<< "$x"', { x: 'Joe' }), ['a', { op: '<<<' }, 'Joe']); + t.same(parse('a <<< "${x}"', { x: 'Joe' }), ['a', { op: '<<<' }, 'Joe']); + + t.end(); }); test('environment variables with metacharacters', function (t) { - t.same(parse('a $XYZ c', { XYZ: '"b"' }), [ 'a', '"b"', 'c' ]); - t.same(parse('a $XYZ c', { XYZ: '$X', X: 5 }), [ 'a', '$X', 'c' ]); - t.same(parse('a"$XYZ"c', { XYZ: "'xyz'" }), [ "a'xyz'c" ]); - - t.end(); + t.same(parse('a $XYZ c', { XYZ: '"b"' }), ['a', '"b"', 'c']); + t.same(parse('a $XYZ c', { XYZ: '$X', X: 5 }), ['a', '$X', 'c']); + t.same(parse('a"$XYZ"c', { XYZ: "'xyz'" }), ["a'xyz'c"]); + + t.end(); }); test('special shell parameters', function (t) { - var chars = '*@#?-$!0_'.split(''); - t.plan(chars.length); - - chars.forEach(function (c) { - var env = {}; - env[c] = 'xxx'; - t.same(parse('a $' + c + ' c', env), [ 'a', 'xxx', 'c' ]); - }); + var chars = '*@#?-$!0_'.split(''); + t.plan(chars.length); + + chars.forEach(function (c) { + var env = {}; + env[c] = 'xxx'; + t.same(parse('a $' + c + ' c', env), ['a', 'xxx', 'c']); + }); }); diff --git a/node_modules/shell-quote/test/env_fn.js b/node_modules/shell-quote/test/env_fn.js index b9f3c20..968e912 100644 --- a/node_modules/shell-quote/test/env_fn.js +++ b/node_modules/shell-quote/test/env_fn.js @@ -1,19 +1,21 @@ +'use strict'; + var test = require('tape'); var parse = require('../').parse; +function getEnv() { + return 'xxx'; +} + +function getEnvObj() { + return { op: '@@' }; +} + test('functional env expansion', function (t) { - t.plan(4); - - t.same(parse('a $XYZ c', getEnv), [ 'a', 'xxx', 'c' ]); - t.same(parse('a $XYZ c', getEnvObj), [ 'a', { op: '@@' }, 'c' ]); - t.same(parse('a${XYZ}c', getEnvObj), [ 'a', { op: '@@' }, 'c' ]); - t.same(parse('"a $XYZ c"', getEnvObj), [ 'a ', { op: '@@' }, ' c' ]); - - function getEnv (key) { - return 'xxx'; - } - - function getEnvObj (key) { - return { op: '@@' }; - } + t.plan(4); + + t.same(parse('a $XYZ c', getEnv), ['a', 'xxx', 'c']); + t.same(parse('a $XYZ c', getEnvObj), ['a', { op: '@@' }, 'c']); + t.same(parse('a${XYZ}c', getEnvObj), ['a', { op: '@@' }, 'c']); + t.same(parse('"a $XYZ c"', getEnvObj), ['a ', { op: '@@' }, ' c']); }); diff --git a/node_modules/shell-quote/test/op.js b/node_modules/shell-quote/test/op.js index 7aa9b49..38d3757 100644 --- a/node_modules/shell-quote/test/op.js +++ b/node_modules/shell-quote/test/op.js @@ -1,78 +1,102 @@ +'use strict'; + var test = require('tape'); var parse = require('../').parse; test('single operators', function (t) { - t.same(parse('beep | boop'), [ 'beep', { op: '|' }, 'boop' ]); - t.same(parse('beep|boop'), [ 'beep', { op: '|' }, 'boop' ]); - t.same(parse('beep \\| boop'), [ 'beep', '|', 'boop' ]); - t.same(parse('beep "|boop"'), [ 'beep', '|boop' ]); - - t.same(parse('echo zing &'), [ 'echo', 'zing', { op: '&' } ]); - t.same(parse('echo zing&'), [ 'echo', 'zing', { op: '&' } ]); - t.same(parse('echo zing\\&'), [ 'echo', 'zing&' ]); - t.same(parse('echo "zing\\&"'), [ 'echo', 'zing\\&' ]); - - t.same(parse('beep;boop'), [ 'beep', { op: ';' }, 'boop' ]); - t.same(parse('(beep;boop)'), [ - { op: '(' }, 'beep', { op: ';' }, 'boop', { op: ')' } - ]); - - t.same(parse('beep>boop'), [ 'beep', { op: '>' }, 'boop' ]); - t.same(parse('beep 2>boop'), [ 'beep', '2', { op: '>' }, 'boop' ]); - t.same(parse('beepboop'), ['beep', { op: '>' }, 'boop']); + t.same(parse('beep 2>boop'), ['beep', '2', { op: '>' }, 'boop']); + t.same(parse('beep>blip'), - [ 'beep', { op: ';;' }, 'boop', { op: '|&' }, 'byte', { op: '>>' }, 'blip' ] - ); - - t.same(parse('beep 2>&1'), [ 'beep', '2', { op: '>&' }, '1' ]); - - t.same( - parse('beep<(boop)'), - [ 'beep', { op: '<(' }, 'boop', { op: ')' } ] - ); - t.same( - parse('beep<<(boop)'), - [ 'beep', { op: '<' }, { op: '<(' }, 'boop', { op: ')' } ] - ); - - t.end(); + t.same(parse('beep || boop'), ['beep', { op: '||' }, 'boop']); + t.same(parse('beep||boop'), ['beep', { op: '||' }, 'boop']); + t.same(parse('beep ||boop'), ['beep', { op: '||' }, 'boop']); + t.same(parse('beep|| boop'), ['beep', { op: '||' }, 'boop']); + t.same(parse('beep || boop'), ['beep', { op: '||' }, 'boop']); + + t.same(parse('beep && boop'), ['beep', { op: '&&' }, 'boop']); + t.same( + parse('beep && boop || byte'), + ['beep', { op: '&&' }, 'boop', { op: '||' }, 'byte'] + ); + t.same( + parse('beep&&boop||byte'), + ['beep', { op: '&&' }, 'boop', { op: '||' }, 'byte'] + ); + t.same( + parse('beep\\&\\&boop||byte'), + ['beep&&boop', { op: '||' }, 'byte'] + ); + t.same( + parse('beep\\&&boop||byte'), + ['beep&', { op: '&' }, 'boop', { op: '||' }, 'byte'] + ); + t.same( + parse('beep;;boop|&byte>>blip'), + ['beep', { op: ';;' }, 'boop', { op: '|&' }, 'byte', { op: '>>' }, 'blip'] + ); + + t.same(parse('beep 2>&1'), ['beep', '2', { op: '>&' }, '1']); + + t.same( + parse('beep<(boop)'), + ['beep', { op: '<(' }, 'boop', { op: ')' }] + ); + t.same( + parse('beep<<(boop)'), + ['beep', { op: '<' }, { op: '<(' }, 'boop', { op: ')' }] + ); + + t.end(); +}); + +test('duplicating input file descriptors', function (t) { + // duplicating stdout to file descriptor 3 + t.same(parse('beep 3<&1'), ['beep', '3', { op: '<&' }, '1']); + + // duplicating stdout to file descriptor 0, i.e. stdin + t.same(parse('beep <&1'), ['beep', { op: '<&' }, '1']); + + // closes stdin + t.same(parse('beep <&-'), ['beep', { op: '<&' }, '-']); + + t.end(); +}); + +test('here strings', function (t) { + t.same(parse('cat <<< "hello world"'), ['cat', { op: '<<<' }, 'hello world']); + t.same(parse('cat <<< hello'), ['cat', { op: '<<<' }, 'hello']); + t.same(parse('cat<<<;{}']), '\\>\\<\\;\\{\\}'); - t.equal(quote([ 'a', 1, true, false ]), 'a 1 true false'); - t.equal(quote([ 'a', 1, null, undefined ]), 'a 1 null undefined'); - t.equal(quote([ 'a\\x' ]), 'a\\\\x'); - t.end(); + t.equal(quote(['a', 'b', 'c d']), 'a b \'c d\''); + t.equal( + quote(['a', 'b', "it's a \"neat thing\""]), + 'a b "it\'s a \\"neat thing\\""' + ); + t.equal( + quote(['$', '`', '\'']), + '\\$ \\` "\'"' + ); + t.equal(quote([]), ''); + t.equal(quote(['a\nb']), "'a\nb'"); + t.equal(quote([' #(){}*|][!']), "' #(){}*|][!'"); + t.equal(quote(["'#(){}*|][!"]), '"\'#(){}*|][\\!"'); + t.equal(quote(['X#(){}*|][!']), 'X\\#\\(\\)\\{\\}\\*\\|\\]\\[\\!'); + t.equal(quote(['a\n#\nb']), "'a\n#\nb'"); + t.equal(quote(['><;{}']), '\\>\\<\\;\\{\\}'); + t.equal(quote(['a', 1, true, false]), 'a 1 true false'); + t.equal(quote(['a', 1, null, undefined]), 'a 1 null undefined'); + t.equal(quote(['a\\x']), 'a\\\\x'); + t.end(); }); test('quote ops', function (t) { - t.equal(quote([ 'a', { op: '|' }, 'b' ]), 'a \\| b'); - t.equal( - quote([ 'a', { op: '&&' }, 'b', { op: ';' }, 'c' ]), - 'a \\&\\& b \\; c' - ); - t.end(); + t.equal(quote(['a', { op: '|' }, 'b']), 'a \\| b'); + t.equal( + quote(['a', { op: '&&' }, 'b', { op: ';' }, 'c']), + 'a \\&\\& b \\; c' + ); + t.end(); }); test('quote windows paths', { skip: 'breaking change, disabled until 2.x' }, function (t) { - var path = 'C:\\projects\\node-shell-quote\\index.js' + var path = 'C:\\projects\\node-shell-quote\\index.js'; + + t.equal(quote([path, 'b', 'c d']), 'C:\\projects\\node-shell-quote\\index.js b \'c d\''); - t.equal(quote([path, 'b', 'c d']), 'C:\\projects\\node-shell-quote\\index.js b \'c d\'') + t.end(); +}); - t.end() -}) +test("chars for windows paths don't break out", function (t) { + var x = '`:\\a\\b'; + t.equal(quote([x]), '\\`\\:\\\\a\\\\b'); + t.end(); +}); diff --git a/node_modules/shell-quote/test/set.js b/node_modules/shell-quote/test/set.js index ac45cf1..9694538 100644 --- a/node_modules/shell-quote/test/set.js +++ b/node_modules/shell-quote/test/set.js @@ -1,29 +1,31 @@ +'use strict'; + var test = require('tape'); var parse = require('../').parse; test('set env vars', function (t) { - t.same( - parse('ABC=444 x y z'), - [ 'ABC=444', 'x', 'y', 'z' ] - ); - t.same( - parse('ABC=3\\ 4\\ 5 x y z'), - [ 'ABC=3 4 5', 'x', 'y', 'z' ] - ); - t.same( - parse('X="7 8 9" printx'), - [ 'X=7 8 9', 'printx' ] - ); - t.same( - parse('X="7 8 9"; printx'), - [ 'X=7 8 9', { op: ';' }, 'printx' ] - ); - t.same( - parse('X="7 8 9"; printx', function (key) { - t.fail('should not have matched any keys'); - }), - [ 'X=7 8 9', { op: ';' }, 'printx' ] - ); - - t.end(); + t.same( + parse('ABC=444 x y z'), + ['ABC=444', 'x', 'y', 'z'] + ); + t.same( + parse('ABC=3\\ 4\\ 5 x y z'), + ['ABC=3 4 5', 'x', 'y', 'z'] + ); + t.same( + parse('X="7 8 9" printx'), + ['X=7 8 9', 'printx'] + ); + t.same( + parse('X="7 8 9"; printx'), + ['X=7 8 9', { op: ';' }, 'printx'] + ); + t.same( + parse('X="7 8 9"; printx', function () { + t.fail('should not have matched any keys'); + }), + ['X=7 8 9', { op: ';' }, 'printx'] + ); + + t.end(); }); diff --git a/node_modules/es-abstract/.eslintignore b/node_modules/side-channel/.eslintignore similarity index 100% rename from node_modules/es-abstract/.eslintignore rename to node_modules/side-channel/.eslintignore diff --git a/node_modules/side-channel/.eslintrc b/node_modules/side-channel/.eslintrc new file mode 100644 index 0000000..850ac1f --- /dev/null +++ b/node_modules/side-channel/.eslintrc @@ -0,0 +1,11 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "max-lines-per-function": 0, + "max-params": 0, + "new-cap": [2, { "capIsNewExceptions": ["GetIntrinsic"] }], + }, +} diff --git a/node_modules/side-channel/.github/FUNDING.yml b/node_modules/side-channel/.github/FUNDING.yml new file mode 100644 index 0000000..2a94840 --- /dev/null +++ b/node_modules/side-channel/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/side-channel +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/has-bigints/.nycrc b/node_modules/side-channel/.nycrc similarity index 100% rename from node_modules/has-bigints/.nycrc rename to node_modules/side-channel/.nycrc diff --git a/node_modules/side-channel/CHANGELOG.md b/node_modules/side-channel/CHANGELOG.md new file mode 100644 index 0000000..a3d161f --- /dev/null +++ b/node_modules/side-channel/CHANGELOG.md @@ -0,0 +1,65 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [v1.0.4](https://github.com/ljharb/side-channel/compare/v1.0.3...v1.0.4) - 2020-12-29 + +### Commits + +- [Tests] migrate tests to Github Actions [`10909cb`](https://github.com/ljharb/side-channel/commit/10909cbf8ce9c0bf96f604cf13d7ffd5a22c2d40) +- [Refactor] Use a linked list rather than an array, and move accessed nodes to the beginning [`195613f`](https://github.com/ljharb/side-channel/commit/195613f28b5c1e6072ef0b61b5beebaf2b6a304e) +- [meta] do not publish github action workflow files [`290ec29`](https://github.com/ljharb/side-channel/commit/290ec29cd21a60585145b4a7237ec55228c52c27) +- [Tests] run `nyc` on all tests; use `tape` runner [`ea6d030`](https://github.com/ljharb/side-channel/commit/ea6d030ff3fe6be2eca39e859d644c51ecd88869) +- [actions] add "Allow Edits" workflow [`d464d8f`](https://github.com/ljharb/side-channel/commit/d464d8fe52b5eddf1504a0ed97f0941a90f32c15) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog` [`02daca8`](https://github.com/ljharb/side-channel/commit/02daca87c6809821c97be468d1afa2f5ef447383) +- [Refactor] use `call-bind` and `get-intrinsic` instead of `es-abstract` [`e09d481`](https://github.com/ljharb/side-channel/commit/e09d481528452ebafa5cdeae1af665c35aa2deee) +- [Deps] update `object.assign` [`ee83aa8`](https://github.com/ljharb/side-channel/commit/ee83aa81df313b5e46319a63adb05cf0c179079a) +- [actions] update rebase action to use checkout v2 [`7726b0b`](https://github.com/ljharb/side-channel/commit/7726b0b058b632fccea709f58960871defaaa9d7) + +## [v1.0.3](https://github.com/ljharb/side-channel/compare/v1.0.2...v1.0.3) - 2020-08-23 + +### Commits + +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`1f10561`](https://github.com/ljharb/side-channel/commit/1f105611ef3acf32dec8032ae5c0baa5e56bb868) +- [Deps] update `es-abstract`, `object-inspect` [`bc20159`](https://github.com/ljharb/side-channel/commit/bc201597949a505e37cef9eaf24c7010831e6f03) +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`b9b2b22`](https://github.com/ljharb/side-channel/commit/b9b2b225f9e0ea72a6ec2b89348f0bd690bc9ed1) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`7055ab4`](https://github.com/ljharb/side-channel/commit/7055ab4de0860606efd2003674a74f1fe6ebc07e) +- [Dev Deps] update `auto-changelog`; add `aud` [`d278c37`](https://github.com/ljharb/side-channel/commit/d278c37d08227be4f84aa769fcd919e73feeba40) +- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`3bcf982`](https://github.com/ljharb/side-channel/commit/3bcf982faa122745b39c33ce83d32fdf003741c6) +- [Tests] only audit prod deps [`18d01c4`](https://github.com/ljharb/side-channel/commit/18d01c4015b82a3d75044c4d5ba7917b2eac01ec) +- [Deps] update `es-abstract` [`6ab096d`](https://github.com/ljharb/side-channel/commit/6ab096d9de2b482cf5e0717e34e212f5b2b9bc9a) +- [Dev Deps] update `tape` [`9dc174c`](https://github.com/ljharb/side-channel/commit/9dc174cc651dfd300b4b72da936a0a7eda5f9452) +- [Deps] update `es-abstract` [`431d0f0`](https://github.com/ljharb/side-channel/commit/431d0f0ff11fbd2ae6f3115582a356d3a1cfce82) +- [Deps] update `es-abstract` [`49869fd`](https://github.com/ljharb/side-channel/commit/49869fd323bf4453f0ba515c0fb265cf5ab7b932) +- [meta] Add package.json to package's exports [`77d9cdc`](https://github.com/ljharb/side-channel/commit/77d9cdceb2a9e47700074f2ae0c0a202e7dac0d4) + +## [v1.0.2](https://github.com/ljharb/side-channel/compare/v1.0.1...v1.0.2) - 2019-12-20 + +### Commits + +- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`4a526df`](https://github.com/ljharb/side-channel/commit/4a526df44e4701566ed001ec78546193f818b082) +- [Deps] update `es-abstract` [`d4f6e62`](https://github.com/ljharb/side-channel/commit/d4f6e629b6fb93a07415db7f30d3c90fd7f264fe) + +## [v1.0.1](https://github.com/ljharb/side-channel/compare/v1.0.0...v1.0.1) - 2019-12-01 + +### Commits + +- [Fix] add missing "exports" [`d212907`](https://github.com/ljharb/side-channel/commit/d2129073abf0701a5343bf28aa2145617604dc2e) + +## v1.0.0 - 2019-12-01 + +### Commits + +- Initial implementation [`dbebd3a`](https://github.com/ljharb/side-channel/commit/dbebd3a4b5ed64242f9a6810efe7c4214cd8cde4) +- Initial tests [`73bdefe`](https://github.com/ljharb/side-channel/commit/73bdefe568c9076cf8c0b8719bc2141aec0e19b8) +- Initial commit [`43c03e1`](https://github.com/ljharb/side-channel/commit/43c03e1c2849ec50a87b7a5cd76238a62b0b8770) +- npm init [`5c090a7`](https://github.com/ljharb/side-channel/commit/5c090a765d66a5527d9889b89aeff78dee91348c) +- [meta] add `auto-changelog` [`a5c4e56`](https://github.com/ljharb/side-channel/commit/a5c4e5675ec02d5eb4d84b4243aeea2a1d38fbec) +- [actions] add automatic rebasing / merge commit blocking [`bab1683`](https://github.com/ljharb/side-channel/commit/bab1683d8f9754b086e94397699fdc645e0d7077) +- [meta] add `funding` field; create FUNDING.yml [`63d7aea`](https://github.com/ljharb/side-channel/commit/63d7aeaf34f5650650ae97ca4b9fae685bd0937c) +- [Tests] add `npm run lint` [`46a5a81`](https://github.com/ljharb/side-channel/commit/46a5a81705cd2664f83df232c01dbbf2ee952885) +- Only apps should have lockfiles [`8b16b03`](https://github.com/ljharb/side-channel/commit/8b16b0305f00895d90c4e2e5773c854cfea0e448) +- [meta] add `safe-publish-latest` [`2f098ef`](https://github.com/ljharb/side-channel/commit/2f098ef092a39399cfe548b19a1fc03c2fd2f490) diff --git a/node_modules/has-bigints/LICENSE b/node_modules/side-channel/LICENSE similarity index 100% rename from node_modules/has-bigints/LICENSE rename to node_modules/side-channel/LICENSE diff --git a/node_modules/side-channel/README.md b/node_modules/side-channel/README.md new file mode 100644 index 0000000..7fa4f06 --- /dev/null +++ b/node_modules/side-channel/README.md @@ -0,0 +1,2 @@ +# side-channel +Store information about any JS value in a side channel. Uses WeakMap if available. diff --git a/node_modules/side-channel/index.js b/node_modules/side-channel/index.js new file mode 100644 index 0000000..f1c4826 --- /dev/null +++ b/node_modules/side-channel/index.js @@ -0,0 +1,124 @@ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bind/callBound'); +var inspect = require('object-inspect'); + +var $TypeError = GetIntrinsic('%TypeError%'); +var $WeakMap = GetIntrinsic('%WeakMap%', true); +var $Map = GetIntrinsic('%Map%', true); + +var $weakMapGet = callBound('WeakMap.prototype.get', true); +var $weakMapSet = callBound('WeakMap.prototype.set', true); +var $weakMapHas = callBound('WeakMap.prototype.has', true); +var $mapGet = callBound('Map.prototype.get', true); +var $mapSet = callBound('Map.prototype.set', true); +var $mapHas = callBound('Map.prototype.has', true); + +/* + * This function traverses the list returning the node corresponding to the + * given key. + * + * That node is also moved to the head of the list, so that if it's accessed + * again we don't need to traverse the whole list. By doing so, all the recently + * used nodes can be accessed relatively quickly. + */ +var listGetNode = function (list, key) { // eslint-disable-line consistent-return + for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + curr.next = list.next; + list.next = curr; // eslint-disable-line no-param-reassign + return curr; + } + } +}; + +var listGet = function (objects, key) { + var node = listGetNode(objects, key); + return node && node.value; +}; +var listSet = function (objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + // Prepend the new node to the beginning of the list + objects.next = { // eslint-disable-line no-param-reassign + key: key, + next: objects.next, + value: value + }; + } +}; +var listHas = function (objects, key) { + return !!listGetNode(objects, key); +}; + +module.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + get: function (key) { // eslint-disable-line consistent-return + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapGet($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listGet($o, key); + } + } + }, + has: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapHas($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listHas($o, key); + } + } + return false; + }, + set: function (key, value) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + } else { + if (!$o) { + /* + * Initialize the linked list as an empty node, so that we don't have + * to special-case handling of the first node: we can always refer to + * it as (previous node).next, instead of something like (list).head + */ + $o = { key: {}, next: null }; + } + listSet($o, key, value); + } + } + }; + return channel; +}; diff --git a/node_modules/side-channel/package.json b/node_modules/side-channel/package.json new file mode 100644 index 0000000..a3e33f6 --- /dev/null +++ b/node_modules/side-channel/package.json @@ -0,0 +1,67 @@ +{ + "name": "side-channel", + "version": "1.0.4", + "description": "Store information about any JS value in a side channel. Uses WeakMap if available.", + "main": "index.js", + "exports": { + "./package.json": "./package.json", + ".": [ + { + "default": "./index.js" + }, + "./index.js" + ] + }, + "scripts": { + "prepublish": "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/side-channel.git" + }, + "keywords": [ + "weakmap", + "map", + "side", + "channel", + "metadata" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/ljharb/side-channel/issues" + }, + "homepage": "https://github.com/ljharb/side-channel#readme", + "devDependencies": { + "@ljharb/eslint-config": "^17.3.0", + "aud": "^1.1.3", + "auto-changelog": "^2.2.1", + "eslint": "^7.16.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^1.1.4", + "tape": "^5.0.1" + }, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} diff --git a/node_modules/side-channel/test/index.js b/node_modules/side-channel/test/index.js new file mode 100644 index 0000000..3b92ef7 --- /dev/null +++ b/node_modules/side-channel/test/index.js @@ -0,0 +1,78 @@ +'use strict'; + +var test = require('tape'); + +var getSideChannel = require('../'); + +test('export', function (t) { + t.equal(typeof getSideChannel, 'function', 'is a function'); + t.equal(getSideChannel.length, 0, 'takes no arguments'); + + var channel = getSideChannel(); + t.ok(channel, 'is truthy'); + t.equal(typeof channel, 'object', 'is an object'); + + t.end(); +}); + +test('assert', function (t) { + var channel = getSideChannel(); + t['throws']( + function () { channel.assert({}); }, + TypeError, + 'nonexistent value throws' + ); + + var o = {}; + channel.set(o, 'data'); + t.doesNotThrow(function () { channel.assert(o); }, 'existent value noops'); + + t.end(); +}); + +test('has', function (t) { + var channel = getSideChannel(); + var o = []; + + t.equal(channel.has(o), false, 'nonexistent value yields false'); + + channel.set(o, 'foo'); + t.equal(channel.has(o), true, 'existent value yields true'); + + t.end(); +}); + +test('get', function (t) { + var channel = getSideChannel(); + var o = {}; + t.equal(channel.get(o), undefined, 'nonexistent value yields undefined'); + + var data = {}; + channel.set(o, data); + t.equal(channel.get(o), data, '"get" yields data set by "set"'); + + t.end(); +}); + +test('set', function (t) { + var channel = getSideChannel(); + var o = function () {}; + t.equal(channel.get(o), undefined, 'value not set'); + + channel.set(o, 42); + t.equal(channel.get(o), 42, 'value was set'); + + channel.set(o, Infinity); + t.equal(channel.get(o), Infinity, 'value was set again'); + + var o2 = {}; + channel.set(o2, 17); + t.equal(channel.get(o), Infinity, 'o is not modified'); + t.equal(channel.get(o2), 17, 'o2 is set'); + + channel.set(o, 14); + t.equal(channel.get(o), 14, 'o is modified'); + t.equal(channel.get(o2), 17, 'o2 is not modified'); + + t.end(); +}); diff --git a/node_modules/sshpk/package.json b/node_modules/sshpk/package.json index 4a159a0..cc78787 100644 --- a/node_modules/sshpk/package.json +++ b/node_modules/sshpk/package.json @@ -1,39 +1,16 @@ { - "_from": "sshpk@^1.7.0", - "_id": "sshpk@1.16.1", - "_inBundle": false, - "_integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "_location": "/sshpk", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "sshpk@^1.7.0", - "name": "sshpk", - "escapedName": "sshpk", - "rawSpec": "^1.7.0", - "saveSpec": null, - "fetchSpec": "^1.7.0" - }, - "_requiredBy": [ - "/http-signature" - ], - "_resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "_shasum": "fb661c0bef29b39db40769ee39fa70093d6f6877", - "_spec": "sshpk@^1.7.0", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/http-signature", - "author": { - "name": "Joyent, Inc" - }, - "bin": { - "sshpk-conv": "bin/sshpk-conv", - "sshpk-sign": "bin/sshpk-sign", - "sshpk-verify": "bin/sshpk-verify" + "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" }, - "bugs": { - "url": "https://github.com/arekinath/node-sshpk/issues" + "repository": { + "type": "git", + "url": "git+https://github.com/joyent/node-sshpk.git" }, - "bundleDependencies": false, + "author": "Joyent, Inc", "contributors": [ { "name": "Dave Eddy", @@ -48,49 +25,36 @@ "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", - "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "jsbn": "~0.1.0", + "tweetnacl": "~0.14.0", + "ecc-jsbn": "~0.1.1", + "bcrypt-pbkdf": "^1.0.0" + }, + "optionalDependencies": { }, - "deprecated": false, - "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": [ - "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/sshpk/man/man1/sshpk-conv.1", - "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/sshpk/man/man1/sshpk-sign.1", - "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/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/node_modules/stream-browserify/node_modules/readable-stream/README.md b/node_modules/stream-browserify/node_modules/readable-stream/README.md index 6f035ab..19117c1 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/README.md +++ b/node_modules/stream-browserify/node_modules/readable-stream/README.md @@ -15,7 +15,7 @@ npm install --save readable-stream This package is a mirror of the streams implementations in Node.js. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.19.0/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.18.1/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js index 6752519..19abfa6 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js @@ -18,60 +18,48 @@ // 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. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. + 'use strict'; -/**/ +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; - - for (var key in obj) { - keys.push(key); - } - + for (var key in obj) keys.push(key); return keys; }; /**/ - module.exports = Duplex; - var Readable = require('./_stream_readable'); - var Writable = require('./_stream_writable'); - require('inherits')(Duplex, Readable); - { // Allow the keys array to be GC'ed. var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } - function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); this.allowHalfOpen = true; - if (options) { if (options.readable === false) this.readable = false; if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { this.allowHalfOpen = false; this.once('end', onend); } } } - Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -98,20 +86,20 @@ Object.defineProperty(Duplex.prototype, 'writableLength', { get: function get() { return this._writableState.length; } -}); // the no-half-open enforcer +}); +// the no-half-open enforcer function onend() { // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. + if (this._writableState.ended) return; + // no more data can be written. + // But allow more writes to happen in this tick. process.nextTick(onEndNT, this); } - function onEndNT(self) { self.end(); } - Object.defineProperty(Duplex.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -121,7 +109,6 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { if (this._readableState === undefined || this._writableState === undefined) { return false; } - return this._readableState.destroyed && this._writableState.destroyed; }, set: function set(value) { @@ -129,10 +116,10 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js index 32e7414..24a6bdd 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js @@ -18,22 +18,20 @@ // 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. + // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. + 'use strict'; module.exports = PassThrough; - var Transform = require('./_stream_transform'); - require('inherits')(PassThrough, Transform); - function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js index 192d451..df1f608 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js @@ -18,49 +18,40 @@ // 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. + 'use strict'; module.exports = Readable; -/**/ +/**/ var Duplex; /**/ Readable.ReadableState = ReadableState; -/**/ +/**/ var EE = require('events').EventEmitter; - var EElistenerCount = function EElistenerCount(emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ - - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } -/**/ - +/**/ var debugUtil = require('util'); - var debug; - if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { @@ -68,60 +59,57 @@ if (debugUtil && debugUtil.debuglog) { } /**/ - var BufferList = require('./internal/streams/buffer_list'); - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; +// Lazy loaded to improve the startup performance. var StringDecoder; var createReadableStreamAsyncIterator; var from; - require('inherits')(Readable, Stream); - var errorOrDestroy = destroyImpl.errorOrDestroy; var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } - function ReadableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() - this.buffer = new BufferList(); this.length = 0; this.pipes = null; @@ -129,61 +117,66 @@ function ReadableState(options, stream, isDuplex) { this.flowing = null; this.ended = false; this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. + this.sync = true; - this.sync = true; // whenever we return null, then we set a flag to say + // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. - this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. + this.paused = true; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.autoDestroy = !!options.autoDestroy; // has it been destroyed + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; - if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } - function Readable(options) { Duplex = Duplex || require('./_stream_duplex'); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 + if (!(this instanceof Readable)) return new Readable(options); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy + this._readableState = new ReadableState(options, this, isDuplex); + // legacy this.readable = true; - if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } - Stream.call(this); } - Object.defineProperty(Readable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -193,7 +186,6 @@ Object.defineProperty(Readable.prototype, 'destroyed', { if (this._readableState === undefined) { return false; } - return this._readableState.destroyed; }, set: function set(value) { @@ -201,69 +193,60 @@ Object.defineProperty(Readable.prototype, 'destroyed', { // has not been initialized yet if (!this._readableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; - Readable.prototype._destroy = function (err, cb) { cb(err); -}; // Manually shove something into the read() buffer. +}; + +// Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. - - Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; - if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } - skipChunkCheck = true; } } else { skipChunkCheck = true; } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - +}; +// Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { debug('readableAddChunk', chunk); var state = stream._readableState; - if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { errorOrDestroy(stream, er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } - if (addToFront) { if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); } else if (state.ended) { @@ -272,7 +255,6 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { return false; } else { state.reading = false; - if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); @@ -284,14 +266,13 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { state.reading = false; maybeReadMore(stream, state); } - } // We can push more data if we are below the highWaterMark. + } + + // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. - - return !state.ended && (state.length < state.highWaterMark || state.length === 0); } - function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { state.awaitDrain = 0; @@ -302,50 +283,42 @@ function addChunk(stream, state, chunk, addToFront) { if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } - maybeReadMore(stream, state); } - function chunkInvalid(state, chunk) { var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } - return er; } - Readable.prototype.isPaused = function () { return this._readableState.flowing === false; -}; // backwards compatibility. - +}; +// backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + // Iterate over current buffer to convert already stored Buffers: var p = this._readableState.buffer.head; var content = ''; - while (p !== null) { content += decoder.write(p.data); p = p.next; } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); this._readableState.length = content.length; return this; -}; // Don't raise the hwm > 1GB - +}; +// Don't raise the hwm > 1GB var MAX_HWM = 0x40000000; - function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. @@ -361,55 +334,54 @@ function computeNewHighWaterMark(n) { n |= n >>> 16; n++; } - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. - +} +// This function is designed to be inlinable, so please take care when making +// changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; - if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. - - + } + // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough - + if (n <= state.length) return n; + // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } - return state.length; -} // you can override either this method, or the async _read(n) below. - +} +// you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } + n = howMuchToRead(n, state); - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - + // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; - } // All the actual chunk generation logic needs to be + } + + // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change @@ -430,40 +402,37 @@ Readable.prototype.read = function (n) { // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. - + // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + debug('need readable', doRead); + // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - + } + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - - if (state.length === 0) state.needReadable = true; // call internal read method - + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method this._read(state.highWaterMark); - - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); } - var ret; if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { state.needReadable = state.length <= state.highWaterMark; n = 0; @@ -471,34 +440,28 @@ Readable.prototype.read = function (n) { state.length -= n; state.awaitDrain = 0; } - if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + if (!state.ended) state.needReadable = true; + // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } - if (ret !== null) this.emit('data', ret); return ret; }; - function onEofChunk(stream, state) { debug('onEofChunk'); if (state.ended) return; - if (state.decoder) { var chunk = state.decoder.end(); - if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } - state.ended = true; - if (state.sync) { // if we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() @@ -507,61 +470,56 @@ function onEofChunk(stream, state) { } else { // emit 'readable' now to make sure it gets picked up. state.needReadable = false; - if (!state.emittedReadable) { state.emittedReadable = true; emitReadable_(stream); } } -} // Don't emit readable right away in sync mode, because this can trigger +} + +// Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. - - function emitReadable(stream) { var state = stream._readableState; debug('emitReadable', state.needReadable, state.emittedReadable); state.needReadable = false; - if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; process.nextTick(emitReadable_, stream); } } - function emitReadable_(stream) { var state = stream._readableState; debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { stream.emit('readable'); state.emittedReadable = false; - } // The stream needs another readable event if + } + + // The stream needs another readable event if // 1. It is not flowing, as the flow mechanism will take // care of it. // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. - - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; flow(stream); -} // at this point, the user has presumably seen the 'readable' event, +} + +// at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. - - function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; process.nextTick(maybeReadMore_, stream, state); } } - function maybeReadMore_(stream, state) { // Attempt to read more data if we should. // @@ -590,49 +548,42 @@ function maybeReadMore_(stream, state) { var len = state.length; debug('maybeReadMore read 0'); stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. + if (len === state.length) + // didn't get any data, stop spinning. break; } - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. +} + +// abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. - - Readable.prototype._read = function (n) { errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; - Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; - switch (state.pipesCount) { case 0: state.pipes = dest; break; - case 1: state.pipes = [state.pipes, dest]; break; - default: state.pipes.push(dest); break; } - state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { debug('onunpipe'); - if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -640,23 +591,21 @@ Readable.prototype.pipe = function (dest, pipeOpts) { } } } - function onend() { debug('onend'); dest.end(); - } // when the dest drains, it reduces the awaitDrain counter + } + + // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. - - var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken - + debug('cleanup'); + // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); @@ -665,22 +614,20 @@ Readable.prototype.pipe = function (dest, pipeOpts) { src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this + cleanedUp = true; + + // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } - src.on('data', ondata); - function ondata(chunk) { debug('ondata'); var ret = dest.write(chunk); debug('dest.write', ret); - if (ret === false) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write @@ -690,87 +637,84 @@ Readable.prototype.pipe = function (dest, pipeOpts) { debug('false write response, pause', state.awaitDrain); state.awaitDrain++; } - src.pause(); } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - + } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. - + } - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } - dest.once('close', onclose); - function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } - dest.once('finish', onfinish); - function unpipe() { debug('unpipe'); src.unpipe(dest); - } // tell the dest that it's being piped to - + } - dest.emit('pipe', src); // start the flow if it hasn't been started already. + // tell the dest that it's being piped to + dest.emit('pipe', src); + // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } - return dest; }; - function pipeOnDrain(src) { return function pipeOnDrainFunctionResult() { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } - Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + }; - if (state.pipesCount === 0) return this; // just one destination. most common case. + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. + if (!dest) dest = state.pipes; + // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; - } // slow case. multiple pipe destinations. + } + // slow case. multiple pipe destinations. if (!dest) { // remove all. @@ -779,17 +723,13 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } - + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); return this; - } // try to find the right one. - + } + // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); @@ -797,19 +737,19 @@ Readable.prototype.unpipe = function (dest) { if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something - +}; +// set up data events if they are asked for +// Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); var state = this._readableState; - if (ev === 'data') { // update readableListening so that resume() may be a no-op // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + state.readableListening = this.listenerCount('readable') > 0; + // Try start flowing on next tick if stream isn't explicitly paused if (state.flowing !== false) this.resume(); } else if (ev === 'readable') { if (!state.endEmitted && !state.readableListening) { @@ -817,7 +757,6 @@ Readable.prototype.on = function (ev, fn) { state.flowing = false; state.emittedReadable = false; debug('on readable', state.length, state.reading); - if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -825,15 +764,11 @@ Readable.prototype.on = function (ev, fn) { } } } - return res; }; - Readable.prototype.addListener = Readable.prototype.on; - Readable.prototype.removeListener = function (ev, fn) { var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -843,13 +778,10 @@ Readable.prototype.removeListener = function (ev, fn) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - Readable.prototype.removeAllListeners = function (ev) { var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -859,121 +791,103 @@ Readable.prototype.removeAllListeners = function (ev) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - function updateReadableListening(self) { var state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { // flowing needs to be set to true now, otherwise // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume + state.flowing = true; + + // crude way to check if we should resume } else if (self.listenerCount('data') > 0) { self.resume(); } } - function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. - +} +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening + debug('resume'); + // we flow only if there is no one listening // for readable, but we still have to call // resume() - state.flowing = !state.readableListening; resume(this, state); } - state.paused = false; return this; }; - function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; process.nextTick(resume_, stream, state); } } - function resume_(stream, state) { debug('resume', state.reading); - if (!state.reading) { stream.read(0); } - state.resumeScheduled = false; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } - Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } - this._readableState.paused = true; return this; }; - function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. +// wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. - - Readable.prototype.wrap = function (stream) { var _this = this; - var state = this._readableState; var paused = false; stream.on('end', function () { debug('wrapped end'); - if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) _this.push(chunk); } - _this.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + if (state.decoder) chunk = state.decoder.write(chunk); + // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { paused = true; stream.pause(); } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + }); + // proxy all the other methods. + // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function methodWrap(method) { @@ -982,37 +896,32 @@ Readable.prototype.wrap = function (stream) { }; }(i); } - } // proxy certain important events. - + } + // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. - + } + // when we try to consume some more bytes, simply unpause the + // underlying stream. this._read = function (n) { debug('wrapped _read', n); - if (paused) { paused = false; stream.resume(); } }; - return this; }; - if (typeof Symbol === 'function') { Readable.prototype[Symbol.asyncIterator] = function () { if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('./internal/streams/async_iterator'); } - return createReadableStreamAsyncIterator(this); }; } - Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -1044,8 +953,9 @@ Object.defineProperty(Readable.prototype, 'readableFlowing', { this._readableState.flowing = state; } } -}); // exposed for testing purposes only. +}); +// exposed for testing purposes only. Readable._fromList = fromList; Object.defineProperty(Readable.prototype, 'readableLength', { // making it explicit this property is not enumerable @@ -1055,11 +965,12 @@ Object.defineProperty(Readable.prototype, 'readableLength', { get: function get() { return this._readableState.length; } -}); // Pluck off n bytes from an array of buffers. +}); + +// Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. - function fromList(n, state) { // nothing buffered if (state.length === 0) return null; @@ -1074,51 +985,43 @@ function fromList(n, state) { } return ret; } - function endReadable(stream) { var state = stream._readableState; debug('endReadable', state.endEmitted); - if (!state.endEmitted) { state.ended = true; process.nextTick(endReadableNT, state, stream); } } - function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. + debug('endReadableNT', state.endEmitted, state.length); + // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the writable side is ready for autoDestroy as well var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { stream.destroy(); } } } } - if (typeof Symbol === 'function') { Readable.from = function (iterable, opts) { if (from === undefined) { from = require('./internal/streams/from'); } - return from(Readable, iterable, opts); }; } - function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } - return -1; } \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js index 41a738c..1ccb715 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js @@ -18,6 +18,7 @@ // 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. + // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where @@ -59,42 +60,36 @@ // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. + 'use strict'; module.exports = Transform; - var _require$codes = require('../errors').codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; - + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; var Duplex = require('./_stream_duplex'); - require('inherits')(Transform, Duplex); - function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; - if (cb === null) { return this.emit('error', new ERR_MULTIPLE_CALLBACK()); } - ts.writechunk = null; ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` + if (data != null) + // single equals check for both `null` and `undefined` this.push(data); cb(er); var rs = this._readableState; rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { this._read(rs.highWaterMark); } } - function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); @@ -105,26 +100,25 @@ function Transform(options) { writecb: null, writechunk: null, writeencoding: null - }; // start out asking for a readable event once data is transformed. + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. - this._readableState.sync = false; - if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. - + } + // When the writable side finishes, then flush out anything remaining. this.on('prefinish', prefinish); } - function prefinish() { var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { this._flush(function (er, data) { done(_this, er, data); @@ -133,11 +127,12 @@ function prefinish() { done(this, null, null); } } - Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! +}; + +// This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // @@ -147,33 +142,27 @@ Transform.prototype.push = function (chunk, encoding) { // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. - - Transform.prototype._transform = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); }; - Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; - if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } -}; // Doesn't matter what the args are here. +}; + +// Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. - - Transform.prototype._read = function (n) { var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in @@ -181,20 +170,20 @@ Transform.prototype._read = function (n) { ts.needTransform = true; } }; - Transform.prototype._destroy = function (err, cb) { Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); }); }; - function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); return stream.push(null); diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js index a2634d7..292415e 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js @@ -18,29 +18,29 @@ // 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. + // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. + 'use strict'; module.exports = Writable; -/* */ +/* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream - +} +// It seems a linked list but it is not +// there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; - this.next = null; this.entry = null; - this.finish = function () { onCorkedFinish(_this, state); }; @@ -48,155 +48,159 @@ function CorkedRequest(state) { /* */ /**/ - - var Duplex; /**/ Writable.WritableState = WritableState; -/**/ +/**/ var internalUtil = { deprecate: require('util-deprecate') }; /**/ /**/ - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; var errorOrDestroy = destroyImpl.errorOrDestroy; - require('inherits')(Writable, Stream); - function nop() {} - function WritableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream, // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // object stream flag to indicate whether or not this stream // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called + // if _final has been called + this.finalCalled = false; - this.finalCalled = false; // drain event flag. + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - this.needDrain = false; // at the start of calling end() + // has it been destroyed + this.destroyed = false; - this.ending = false; // when end() has been called, and returned - - this.ended = false; // when 'finish' is emitted - - this.finished = false; // has it been destroyed - - this.destroyed = false; // should we decode strings into buffers before passing to _write? + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. + this.length = 0; - this.length = 0; // a flag to see when we're in the middle of a write. + // a flag to see when we're in the middle of a write. + this.writing = false; - this.writing = false; // when true all writes will be buffered until .uncork() call + // when true all writes will be buffered until .uncork() call + this.corked = 0; - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. + this.sync = true; - this.sync = true; // a flag to know if we're processing previously buffered items, which + // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) - + // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) - + }; - this.writecb = null; // the amount that is being written when _write is called. + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams + this.prefinished = false; - this.prefinished = false; // True if the error was already emitted and should not be thrown again + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - this.autoDestroy = !!options.autoDestroy; // count buffered requests + // count buffered requests + this.bufferedRequestCount = 0; - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); } - WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; - while (current) { out.push(current); current = current.next; } - return out; }; - (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { @@ -205,12 +209,11 @@ WritableState.prototype.getBuffer = function getBuffer() { }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. - +})(); +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { @@ -225,81 +228,73 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot return object instanceof this; }; } - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. + this._writableState = new WritableState(options, this, isDuplex); + // legacy. this.writable = true; - if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. - +} +// Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; - function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb - + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb errorOrDestroy(stream, er); process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular +} + +// Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. - - function validChunk(stream, state, chunk, cb) { var er; - if (chunk === null) { er = new ERR_STREAM_NULL_VALUES(); } else if (typeof chunk !== 'string' && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - if (er) { errorOrDestroy(stream, er); process.nextTick(cb, er); return false; } - return true; } - Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } - if (typeof encoding === 'function') { cb = encoding; encoding = null; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { @@ -308,20 +303,16 @@ Writable.prototype.write = function (chunk, encoding, cb) { } return ret; }; - Writable.prototype.cork = function () { this._writableState.corked++; }; - Writable.prototype.uncork = function () { var state = this._writableState; - if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); @@ -329,7 +320,6 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { this._writableState.defaultEncoding = encoding; return this; }; - Object.defineProperty(Writable.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -339,15 +329,12 @@ Object.defineProperty(Writable.prototype, 'writableBuffer', { return this._writableState && this._writableState.getBuffer(); } }); - function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } - return chunk; } - Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -356,27 +343,25 @@ Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { get: function get() { return this._writableState.highWaterMark; } -}); // if we're already writing something, then just put this +}); + +// if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } - var len = state.objectMode ? 1 : chunk.length; state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. - + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; - if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { @@ -386,21 +371,17 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { callback: cb, next: null }; - if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } - state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } - return ret; } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; @@ -409,16 +390,14 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } - function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen + process.nextTick(cb, er); + // this can emit finish, and it will always happen // after error - process.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; errorOrDestroy(stream, er); @@ -427,20 +406,18 @@ function onwriteError(stream, state, sync, er, cb) { // it is async cb(er); stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must + errorOrDestroy(stream, er); + // this can emit finish, but finish must // always follow error - finishMaybe(stream, state); } } - function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } - function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; @@ -450,11 +427,9 @@ function onwrite(stream, er) { if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } - if (sync) { process.nextTick(afterWrite, stream, state, finished, cb); } else { @@ -462,29 +437,27 @@ function onwrite(stream, er) { } } } - function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't +} + +// Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. - - function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } -} // if there's something in the buffer waiting, then process it - +} +// if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; @@ -493,28 +466,25 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; var allBuffers = true; - while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; - if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } - state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one @@ -525,32 +495,26 @@ function clearBuffer(stream, state) { var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. - if (state.writing) { break; } } - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; state.bufferProcessing = false; } - Writable.prototype._write = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); }; - Writable.prototype._writev = null; - Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; - if (typeof chunk === 'function') { cb = chunk; chunk = null; @@ -559,19 +523,18 @@ Writable.prototype.end = function (chunk, encoding, cb) { cb = encoding; encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks - + // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); - } // ignore unnecessary end() calls. - + } + // ignore unnecessary end() calls. if (!state.ending) endWritable(this, state, cb); return this; }; - Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -581,25 +544,20 @@ Object.defineProperty(Writable.prototype, 'writableLength', { return this._writableState.length; } }); - function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; - if (err) { errorOrDestroy(stream, err); } - state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } - function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function' && !state.destroyed) { @@ -612,59 +570,47 @@ function prefinish(stream, state) { } } } - function finishMaybe(stream, state) { var need = needFinish(state); - if (need) { prefinish(stream, state); - if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the readable side is ready for autoDestroy as well var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { stream.destroy(); } } } } - return need; } - function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); - if (cb) { if (state.finished) process.nextTick(cb);else stream.once('finish', cb); } - state.ended = true; stream.writable = false; } - function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; - while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; - } // reuse the free corkReq. - + } + // reuse the free corkReq. state.corkedRequestsFree.next = corkReq; } - Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -674,7 +620,6 @@ Object.defineProperty(Writable.prototype, 'destroyed', { if (this._writableState === undefined) { return false; } - return this._writableState.destroyed; }, set: function set(value) { @@ -682,16 +627,15 @@ Object.defineProperty(Writable.prototype, 'destroyed', { // has not been initialized yet if (!this._writableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; - Writable.prototype._destroy = function (err, cb) { cb(err); }; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js index 9fb615a..742c5a4 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js @@ -1,11 +1,10 @@ 'use strict'; var _Object$setPrototypeO; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var finished = require('./end-of-stream'); - var kLastResolve = Symbol('lastResolve'); var kLastReject = Symbol('lastReject'); var kError = Symbol('error'); @@ -13,22 +12,19 @@ var kEnded = Symbol('ended'); var kLastPromise = Symbol('lastPromise'); var kHandlePromise = Symbol('handlePromise'); var kStream = Symbol('stream'); - function createIterResult(value, done) { return { value: value, done: done }; } - function readAndResolve(iter) { var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null + var data = iter[kStream].read(); + // we defer if data is null // we can be expecting either 'end' or // 'error' - if (data !== null) { iter[kLastPromise] = null; iter[kLastResolve] = null; @@ -37,13 +33,11 @@ function readAndResolve(iter) { } } } - function onReadable(iter) { // we wait for the next tick, because it might // emit an error with process.nextTick process.nextTick(readAndResolve, iter); } - function wrapForNext(lastPromise, iter) { return function (resolve, reject) { lastPromise.then(function () { @@ -51,33 +45,26 @@ function wrapForNext(lastPromise, iter) { resolve(createIterResult(undefined, true)); return; } - iter[kHandlePromise](resolve, reject); }, reject); }; } - var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { get stream() { return this[kStream]; }, - next: function next() { var _this = this; - // if we have detected an error in the meanwhile // reject straight away var error = this[kError]; - if (error !== null) { return Promise.reject(error); } - if (this[kEnded]) { return Promise.resolve(createIterResult(undefined, true)); } - if (this[kStream].destroyed) { // We need to defer via nextTick because if .destroy(err) is // called, the error will be emitted via nextTick, and @@ -92,29 +79,25 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro } }); }); - } // if we have multiple next() calls + } + + // if we have multiple next() calls // we will wait for the previous Promise to finish // this logic is optimized to support for await loops, // where next() is only called once at a time - - var lastPromise = this[kLastPromise]; var promise; - if (lastPromise) { promise = new Promise(wrapForNext(lastPromise, this)); } else { // fast path needed to support multiple this.push() // without triggering the next() queue var data = this[kStream].read(); - if (data !== null) { return Promise.resolve(createIterResult(data, false)); } - promise = new Promise(this[kHandlePromise]); } - this[kLastPromise] = promise; return promise; } @@ -122,7 +105,6 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro return this; }), _defineProperty(_Object$setPrototypeO, "return", function _return() { var _this2 = this; - // destroy(err, cb) is a private API // we can guarantee we have that here, because we control the // Readable class this is attached to @@ -132,15 +114,12 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro reject(err); return; } - resolve(createIterResult(undefined, true)); }); }); }), _Object$setPrototypeO), AsyncIteratorPrototype); - var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { value: stream, writable: true @@ -159,7 +138,6 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat }), _defineProperty(_Object$create, kHandlePromise, { value: function value(resolve, reject) { var data = iterator[kStream].read(); - if (data) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; @@ -175,33 +153,28 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat iterator[kLastPromise] = null; finished(stream, function (err) { if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise // returned by next() and store the error - if (reject !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; reject(err); } - iterator[kError] = err; return; } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(undefined, true)); } - iterator[kEnded] = true; }); stream.on('readable', onReadable.bind(null, iterator)); return iterator; }; - module.exports = createReadableStreamAsyncIterator; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js index cdea425..69bda49 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js @@ -1,40 +1,28 @@ 'use strict'; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var _require = require('buffer'), - Buffer = _require.Buffer; - + Buffer = _require.Buffer; var _require2 = require('util'), - inspect = _require2.inspect; - + inspect = _require2.inspect; var custom = inspect && inspect.custom || 'inspect'; - function copyBuffer(src, target, offset) { Buffer.prototype.copy.call(src, target, offset); } - -module.exports = -/*#__PURE__*/ -function () { +module.exports = /*#__PURE__*/function () { function BufferList() { _classCallCheck(this, BufferList); - this.head = null; this.tail = null; this.length = 0; } - _createClass(BufferList, [{ key: "push", value: function push(v) { @@ -78,11 +66,7 @@ function () { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; - - while (p = p.next) { - ret += s + p.data; - } - + while (p = p.next) ret += s + p.data; return ret; } }, { @@ -92,21 +76,19 @@ function () { var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; - while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. + } + // Consumes a specified amount of bytes or characters from the buffered data. }, { key: "consume", value: function consume(n, hasStrings) { var ret; - if (n < this.head.data.length) { // `slice` is the same for buffers and strings. ret = this.head.data.slice(0, n); @@ -118,15 +100,15 @@ function () { // Result spans more than one buffer. ret = hasStrings ? this._getString(n) : this._getBuffer(n); } - return ret; } }, { key: "first", value: function first() { return this.head.data; - } // Consumes a specified amount of characters from the buffered data. + } + // Consumes a specified amount of characters from the buffered data. }, { key: "_getString", value: function _getString(n) { @@ -134,13 +116,11 @@ function () { var c = 1; var ret = p.data; n -= ret.length; - while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; - if (n === 0) { if (nb === str.length) { ++c; @@ -149,17 +129,15 @@ function () { this.head = p; p.data = str.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Consumes a specified amount of bytes from the buffered data. + } + // Consumes a specified amount of bytes from the buffered data. }, { key: "_getBuffer", value: function _getBuffer(n) { @@ -168,13 +146,11 @@ function () { var c = 1; p.data.copy(ret); n -= p.data.length; - while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; - if (n === 0) { if (nb === buf.length) { ++c; @@ -183,21 +159,19 @@ function () { this.head = p; p.data = buf.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Make sure the linked list only shows the minimal necessary information. + } + // Make sure the linked list only shows the minimal necessary information. }, { key: custom, value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { // Only inspect one level. depth: 0, // It should not recurse. @@ -205,6 +179,5 @@ function () { })); } }]); - return BufferList; }(); \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js index 3268a16..31a17c4 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -1,11 +1,10 @@ -'use strict'; // undocumented cb() API, needed for core, not for public API +'use strict'; +// undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); @@ -17,21 +16,20 @@ function destroy(err, cb) { process.nextTick(emitErrorNT, this, err); } } - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks + } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well - + } + // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } - this._destroy(err || null, function (err) { if (!cb && err) { if (!_this._writableState) { @@ -49,21 +47,17 @@ function destroy(err, cb) { process.nextTick(emitCloseNT, _this); } }); - return this; } - function emitErrorAndCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } - function emitCloseNT(self) { if (self._writableState && !self._writableState.emitClose) return; if (self._readableState && !self._readableState.emitClose) return; self.emit('close'); } - function undestroy() { if (this._readableState) { this._readableState.destroyed = false; @@ -71,7 +65,6 @@ function undestroy() { this._readableState.ended = false; this._readableState.endEmitted = false; } - if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; @@ -82,22 +75,20 @@ function undestroy() { this._writableState.errorEmitted = false; } } - function emitErrorNT(self, err) { self.emit('error', err); } - function errorOrDestroy(stream, err) { // We have tests that rely on errors being emitted // in the same tick, so changing this is semver major. // For now when you opt-in to autoDestroy we allow // the error to be emitted nextTick. In a future // semver major update we should change the default to this. + var rState = stream._readableState; var wState = stream._writableState; if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); } - module.exports = { destroy: destroy, undestroy: undestroy, diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js index 831f286..59c671b 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js @@ -1,78 +1,62 @@ // Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE; - function once(callback) { var called = false; return function () { if (called) return; called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - callback.apply(this, args); }; } - function noop() {} - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function eos(stream, opts, callback) { if (typeof opts === 'function') return eos(stream, null, opts); if (!opts) opts = {}; callback = once(callback || noop); var readable = opts.readable || opts.readable !== false && stream.readable; var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { if (!stream.writable) onfinish(); }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { writable = false; writableEnded = true; if (!readable) callback.call(stream); }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { readable = false; readableEnded = true; if (!writable) callback.call(stream); }; - var onerror = function onerror(err) { callback.call(stream, err); }; - var onclose = function onclose() { var err; - if (readable && !readableEnded) { if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } - if (writable && !writableEnded) { if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } }; - var onrequest = function onrequest() { stream.req.on('finish', onfinish); }; - if (isRequest(stream)) { stream.on('complete', onfinish); stream.on('abort', onclose); @@ -82,7 +66,6 @@ function eos(stream, opts, callback) { stream.on('end', onlegacyfinish); stream.on('close', onlegacyfinish); } - stream.on('end', onend); stream.on('finish', onfinish); if (opts.error !== false) stream.on('error', onerror); @@ -100,5 +83,4 @@ function eos(stream, opts, callback) { stream.removeListener('close', onclose); }; } - module.exports = eos; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from.js index 6c41284..0a34ee9 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from.js @@ -1,52 +1,42 @@ 'use strict'; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE; - function from(Readable, iterable, opts) { var iterator; - if (iterable && typeof iterable.next === 'function') { iterator = iterable; } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ objectMode: true - }, opts)); // Reading boolean to protect against _read + }, opts)); + // Reading boolean to protect against _read // being called before last iteration completion. - var reading = false; - readable._read = function () { if (!reading) { reading = true; next(); } }; - function next() { return _next2.apply(this, arguments); } - function _next2() { _next2 = _asyncToGenerator(function* () { try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; - + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; if (done) { readable.push(null); - } else if (readable.push((yield value))) { + } else if (readable.push(yield value)) { next(); } else { reading = false; @@ -57,8 +47,6 @@ function from(Readable, iterable, opts) { }); return _next2.apply(this, arguments); } - return readable; } - -module.exports = from; \ No newline at end of file +module.exports = from; diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js index 6589909..e6f3924 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js @@ -1,9 +1,9 @@ // Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var eos; - function once(callback) { var called = false; return function () { @@ -12,20 +12,16 @@ function once(callback) { callback.apply(void 0, arguments); }; } - var _require$codes = require('../../../errors').codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; - + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { // Rethrow the error if it exists to avoid swallowing it if (err) throw err; } - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function destroyer(stream, reading, writing, callback) { callback = once(callback); var closed = false; @@ -45,40 +41,34 @@ function destroyer(stream, reading, writing, callback) { return function (err) { if (closed) return; if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want + destroyed = true; + // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); if (typeof stream.destroy === 'function') return stream.destroy(); callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } - function call(fn) { fn(); } - function pipe(from, to) { return from.pipe(to); } - function popCallback(streams) { if (!streams.length) return noop; if (typeof streams[streams.length - 1] !== 'function') return noop; return streams.pop(); } - function pipeline() { for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { streams[_key] = arguments[_key]; } - var callback = popCallback(streams); if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { throw new ERR_MISSING_ARGS('streams'); } - var error; var destroys = streams.map(function (stream, i) { var reading = i < streams.length - 1; @@ -93,5 +83,4 @@ function pipeline() { }); return streams.reduce(pipe); } - module.exports = pipeline; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js index 19887eb..3fbf892 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js +++ b/node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js @@ -1,27 +1,22 @@ 'use strict'; var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE; - function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } - function getHighWaterMark(state, options, duplexKey, isDuplex) { var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { var name = isDuplex ? duplexKey : 'highWaterMark'; throw new ERR_INVALID_OPT_VALUE(name, hwm); } - return Math.floor(hwm); - } // Default value - + } + // Default value return state.objectMode ? 16 : 16 * 1024; } - module.exports = { getHighWaterMark: getHighWaterMark }; \ No newline at end of file diff --git a/node_modules/stream-browserify/node_modules/readable-stream/package.json b/node_modules/stream-browserify/node_modules/readable-stream/package.json index 0b0c4bd..ade59e7 100644 --- a/node_modules/stream-browserify/node_modules/readable-stream/package.json +++ b/node_modules/stream-browserify/node_modules/readable-stream/package.json @@ -1,6 +1,6 @@ { "name": "readable-stream", - "version": "3.6.0", + "version": "3.6.2", "description": "Streams3, a user-land copy of the stream library from Node.js", "main": "readable.js", "engines": { diff --git a/node_modules/stream-http/node_modules/readable-stream/README.md b/node_modules/stream-http/node_modules/readable-stream/README.md index 6f035ab..19117c1 100644 --- a/node_modules/stream-http/node_modules/readable-stream/README.md +++ b/node_modules/stream-http/node_modules/readable-stream/README.md @@ -15,7 +15,7 @@ npm install --save readable-stream This package is a mirror of the streams implementations in Node.js. -Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.19.0/docs/api/stream.html). +Full documentation may be found on the [Node.js website](https://nodejs.org/dist/v10.18.1/docs/api/stream.html). If you want to guarantee a stable streams base, regardless of what version of Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html). diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js index 6752519..19abfa6 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js @@ -18,60 +18,48 @@ // 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. + // a duplex stream is just a stream that is both readable and writable. // Since JS doesn't have multiple prototypal inheritance, this class // prototypally inherits from Readable, and then parasitically from // Writable. + 'use strict'; -/**/ +/**/ var objectKeys = Object.keys || function (obj) { var keys = []; - - for (var key in obj) { - keys.push(key); - } - + for (var key in obj) keys.push(key); return keys; }; /**/ - module.exports = Duplex; - var Readable = require('./_stream_readable'); - var Writable = require('./_stream_writable'); - require('inherits')(Duplex, Readable); - { // Allow the keys array to be GC'ed. var keys = objectKeys(Writable.prototype); - for (var v = 0; v < keys.length; v++) { var method = keys[v]; if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method]; } } - function Duplex(options) { if (!(this instanceof Duplex)) return new Duplex(options); Readable.call(this, options); Writable.call(this, options); this.allowHalfOpen = true; - if (options) { if (options.readable === false) this.readable = false; if (options.writable === false) this.writable = false; - if (options.allowHalfOpen === false) { this.allowHalfOpen = false; this.once('end', onend); } } } - Object.defineProperty(Duplex.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -98,20 +86,20 @@ Object.defineProperty(Duplex.prototype, 'writableLength', { get: function get() { return this._writableState.length; } -}); // the no-half-open enforcer +}); +// the no-half-open enforcer function onend() { // If the writable side ended, then we're ok. - if (this._writableState.ended) return; // no more data can be written. - // But allow more writes to happen in this tick. + if (this._writableState.ended) return; + // no more data can be written. + // But allow more writes to happen in this tick. process.nextTick(onEndNT, this); } - function onEndNT(self) { self.end(); } - Object.defineProperty(Duplex.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -121,7 +109,6 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { if (this._readableState === undefined || this._writableState === undefined) { return false; } - return this._readableState.destroyed && this._writableState.destroyed; }, set: function set(value) { @@ -129,10 +116,10 @@ Object.defineProperty(Duplex.prototype, 'destroyed', { // has not been initialized yet if (this._readableState === undefined || this._writableState === undefined) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; this._writableState.destroyed = value; } diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js index 32e7414..24a6bdd 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js @@ -18,22 +18,20 @@ // 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. + // a passthrough stream. // basically just the most minimal sort of Transform stream. // Every written chunk gets output as-is. + 'use strict'; module.exports = PassThrough; - var Transform = require('./_stream_transform'); - require('inherits')(PassThrough, Transform); - function PassThrough(options) { if (!(this instanceof PassThrough)) return new PassThrough(options); Transform.call(this, options); } - PassThrough.prototype._transform = function (chunk, encoding, cb) { cb(null, chunk); }; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js index 192d451..df1f608 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js @@ -18,49 +18,40 @@ // 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. + 'use strict'; module.exports = Readable; -/**/ +/**/ var Duplex; /**/ Readable.ReadableState = ReadableState; -/**/ +/**/ var EE = require('events').EventEmitter; - var EElistenerCount = function EElistenerCount(emitter, type) { return emitter.listeners(type).length; }; /**/ /**/ - - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } -/**/ - +/**/ var debugUtil = require('util'); - var debug; - if (debugUtil && debugUtil.debuglog) { debug = debugUtil.debuglog('stream'); } else { @@ -68,60 +59,57 @@ if (debugUtil && debugUtil.debuglog) { } /**/ - var BufferList = require('./internal/streams/buffer_list'); - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance. - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; +// Lazy loaded to improve the startup performance. var StringDecoder; var createReadableStreamAsyncIterator; var from; - require('inherits')(Readable, Stream); - var errorOrDestroy = destroyImpl.errorOrDestroy; var kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume']; - function prependListener(emitter, event, fn) { // Sadly this is not cacheable as some libraries bundle their own // event emitter implementation with them. - if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any + if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); + + // This is a hack to make sure that our error handler is attached before any // userland ones. NEVER DO THIS. This is here only because this code needs // to continue to work with older versions of Node.js that do not include // the prependListener() method. The goal is to eventually remove this hack. - if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]]; } - function ReadableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream. // These options can be provided separately as readableXXX and writableXXX. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to + // object stream flag. Used to make read(n) ignore n and to // make all the buffer merging and length checks go away - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer + if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; + + // the point at which it stops calling _read() to fill the buffer // Note: 0 is a valid value, means "don't call _read preemptively ever" + this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the + // A linked list is used to store data chunks instead of an array because the // linked list can remove elements from the beginning faster than // array.shift() - this.buffer = new BufferList(); this.length = 0; this.pipes = null; @@ -129,61 +117,66 @@ function ReadableState(options, stream, isDuplex) { this.flowing = null; this.ended = false; this.endEmitted = false; - this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted + this.reading = false; + + // a flag to be able to tell if the event 'readable'/'data' is emitted // immediately, or on a later tick. We set this to true at first, because // any actions that shouldn't happen until "later" should generally also // not happen before the first read call. + this.sync = true; - this.sync = true; // whenever we return null, then we set a flag to say + // whenever we return null, then we set a flag to say // that we're awaiting a 'readable' event emission. - this.needReadable = false; this.emittedReadable = false; this.readableListening = false; this.resumeScheduled = false; - this.paused = true; // Should close be emitted on destroy. Defaults to true. + this.paused = true; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish') + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.autoDestroy = !!options.autoDestroy; // has it been destroyed + // Should .destroy() be called after 'end' (and potentially 'finish') + this.autoDestroy = !!options.autoDestroy; - this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string + // has it been destroyed + this.destroyed = false; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s - - this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled + // the number of writers that are awaiting a drain event in .pipe()s + this.awaitDrain = 0; + // if true, a maybeReadMore has been scheduled this.readingMore = false; this.decoder = null; this.encoding = null; - if (options.encoding) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; this.decoder = new StringDecoder(options.encoding); this.encoding = options.encoding; } } - function Readable(options) { Duplex = Duplex || require('./_stream_duplex'); - if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside - // the ReadableState constructor, at least with V8 6.5 + if (!(this instanceof Readable)) return new Readable(options); + // Checking for a Stream.Duplex instance is faster here instead of inside + // the ReadableState constructor, at least with V8 6.5 var isDuplex = this instanceof Duplex; - this._readableState = new ReadableState(options, this, isDuplex); // legacy + this._readableState = new ReadableState(options, this, isDuplex); + // legacy this.readable = true; - if (options) { if (typeof options.read === 'function') this._read = options.read; if (typeof options.destroy === 'function') this._destroy = options.destroy; } - Stream.call(this); } - Object.defineProperty(Readable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -193,7 +186,6 @@ Object.defineProperty(Readable.prototype, 'destroyed', { if (this._readableState === undefined) { return false; } - return this._readableState.destroyed; }, set: function set(value) { @@ -201,69 +193,60 @@ Object.defineProperty(Readable.prototype, 'destroyed', { // has not been initialized yet if (!this._readableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._readableState.destroyed = value; } }); Readable.prototype.destroy = destroyImpl.destroy; Readable.prototype._undestroy = destroyImpl.undestroy; - Readable.prototype._destroy = function (err, cb) { cb(err); -}; // Manually shove something into the read() buffer. +}; + +// Manually shove something into the read() buffer. // This returns true if the highWaterMark has not been hit yet, // similar to how Writable.write() returns true if you should // write() some more. - - Readable.prototype.push = function (chunk, encoding) { var state = this._readableState; var skipChunkCheck; - if (!state.objectMode) { if (typeof chunk === 'string') { encoding = encoding || state.defaultEncoding; - if (encoding !== state.encoding) { chunk = Buffer.from(chunk, encoding); encoding = ''; } - skipChunkCheck = true; } } else { skipChunkCheck = true; } - return readableAddChunk(this, chunk, encoding, false, skipChunkCheck); -}; // Unshift should *always* be something directly out of read() - +}; +// Unshift should *always* be something directly out of read() Readable.prototype.unshift = function (chunk) { return readableAddChunk(this, chunk, null, true, false); }; - function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { debug('readableAddChunk', chunk); var state = stream._readableState; - if (chunk === null) { state.reading = false; onEofChunk(stream, state); } else { var er; if (!skipChunkCheck) er = chunkInvalid(state, chunk); - if (er) { errorOrDestroy(stream, er); } else if (state.objectMode || chunk && chunk.length > 0) { if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) { chunk = _uint8ArrayToBuffer(chunk); } - if (addToFront) { if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true); } else if (state.ended) { @@ -272,7 +255,6 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { return false; } else { state.reading = false; - if (state.decoder && !encoding) { chunk = state.decoder.write(chunk); if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state); @@ -284,14 +266,13 @@ function readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) { state.reading = false; maybeReadMore(stream, state); } - } // We can push more data if we are below the highWaterMark. + } + + // We can push more data if we are below the highWaterMark. // Also, if we have no data yet, we can stand some more bytes. // This is to work around cases where hwm=0, such as the repl. - - return !state.ended && (state.length < state.highWaterMark || state.length === 0); } - function addChunk(stream, state, chunk, addToFront) { if (state.flowing && state.length === 0 && !state.sync) { state.awaitDrain = 0; @@ -302,50 +283,42 @@ function addChunk(stream, state, chunk, addToFront) { if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk); if (state.needReadable) emitReadable(stream); } - maybeReadMore(stream, state); } - function chunkInvalid(state, chunk) { var er; - if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk); } - return er; } - Readable.prototype.isPaused = function () { return this._readableState.flowing === false; -}; // backwards compatibility. - +}; +// backwards compatibility. Readable.prototype.setEncoding = function (enc) { if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder; var decoder = new StringDecoder(enc); - this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8 - - this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers: + this._readableState.decoder = decoder; + // If setEncoding(null), decoder.encoding equals utf8 + this._readableState.encoding = this._readableState.decoder.encoding; + // Iterate over current buffer to convert already stored Buffers: var p = this._readableState.buffer.head; var content = ''; - while (p !== null) { content += decoder.write(p.data); p = p.next; } - this._readableState.buffer.clear(); - if (content !== '') this._readableState.buffer.push(content); this._readableState.length = content.length; return this; -}; // Don't raise the hwm > 1GB - +}; +// Don't raise the hwm > 1GB var MAX_HWM = 0x40000000; - function computeNewHighWaterMark(n) { if (n >= MAX_HWM) { // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE. @@ -361,55 +334,54 @@ function computeNewHighWaterMark(n) { n |= n >>> 16; n++; } - return n; -} // This function is designed to be inlinable, so please take care when making -// changes to the function body. - +} +// This function is designed to be inlinable, so please take care when making +// changes to the function body. function howMuchToRead(n, state) { if (n <= 0 || state.length === 0 && state.ended) return 0; if (state.objectMode) return 1; - if (n !== n) { // Only flow one buffer at a time if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length; - } // If we're asking for more than the current hwm, then raise the hwm. - - + } + // If we're asking for more than the current hwm, then raise the hwm. if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n); - if (n <= state.length) return n; // Don't have enough - + if (n <= state.length) return n; + // Don't have enough if (!state.ended) { state.needReadable = true; return 0; } - return state.length; -} // you can override either this method, or the async _read(n) below. - +} +// you can override either this method, or the async _read(n) below. Readable.prototype.read = function (n) { debug('read', n); n = parseInt(n, 10); var state = this._readableState; var nOrig = n; - if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we + if (n !== 0) state.emittedReadable = false; + + // if we're doing read(0) to trigger a readable event, but we // already have a bunch of data in the buffer, then just trigger // the 'readable' event and move on. - if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) { debug('read: emitReadable', state.length, state.ended); if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this); return null; } + n = howMuchToRead(n, state); - n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up. - + // if we've ended, and we're now clear, then finish it up. if (n === 0 && state.ended) { if (state.length === 0) endReadable(this); return null; - } // All the actual chunk generation logic needs to be + } + + // All the actual chunk generation logic needs to be // *below* the call to _read. The reason is that in certain // synthetic stream cases, such as passthrough streams, _read // may be a completely synchronous operation which may change @@ -430,40 +402,37 @@ Readable.prototype.read = function (n) { // 'readable' etc. // // 3. Actually pull the requested chunks out of the buffer and return. - // if we need a readable event, then we need to do some reading. - + // if we need a readable event, then we need to do some reading. var doRead = state.needReadable; - debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some + debug('need readable', doRead); + // if we currently have less than the highWaterMark, then also read some if (state.length === 0 || state.length - n < state.highWaterMark) { doRead = true; debug('length less than watermark', doRead); - } // however, if we've ended, then there's no point, and if we're already - // reading, then it's unnecessary. - + } + // however, if we've ended, then there's no point, and if we're already + // reading, then it's unnecessary. if (state.ended || state.reading) { doRead = false; debug('reading or ended', doRead); } else if (doRead) { debug('do read'); state.reading = true; - state.sync = true; // if the length is currently zero, then we *need* a readable event. - - if (state.length === 0) state.needReadable = true; // call internal read method - + state.sync = true; + // if the length is currently zero, then we *need* a readable event. + if (state.length === 0) state.needReadable = true; + // call internal read method this._read(state.highWaterMark); - - state.sync = false; // If _read pushed data synchronously, then `reading` will be false, + state.sync = false; + // If _read pushed data synchronously, then `reading` will be false, // and we need to re-evaluate how much data we can return to the user. - if (!state.reading) n = howMuchToRead(nOrig, state); } - var ret; if (n > 0) ret = fromList(n, state);else ret = null; - if (ret === null) { state.needReadable = state.length <= state.highWaterMark; n = 0; @@ -471,34 +440,28 @@ Readable.prototype.read = function (n) { state.length -= n; state.awaitDrain = 0; } - if (state.length === 0) { // If we have nothing in the buffer, then we want to know // as soon as we *do* get something into the buffer. - if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick. + if (!state.ended) state.needReadable = true; + // If we tried to read() past the EOF, then emit end on the next tick. if (nOrig !== n && state.ended) endReadable(this); } - if (ret !== null) this.emit('data', ret); return ret; }; - function onEofChunk(stream, state) { debug('onEofChunk'); if (state.ended) return; - if (state.decoder) { var chunk = state.decoder.end(); - if (chunk && chunk.length) { state.buffer.push(chunk); state.length += state.objectMode ? 1 : chunk.length; } } - state.ended = true; - if (state.sync) { // if we are sync, wait until next tick to emit the data. // Otherwise we risk emitting data in the flow() @@ -507,61 +470,56 @@ function onEofChunk(stream, state) { } else { // emit 'readable' now to make sure it gets picked up. state.needReadable = false; - if (!state.emittedReadable) { state.emittedReadable = true; emitReadable_(stream); } } -} // Don't emit readable right away in sync mode, because this can trigger +} + +// Don't emit readable right away in sync mode, because this can trigger // another read() call => stack overflow. This way, it might trigger // a nextTick recursion warning, but that's not so bad. - - function emitReadable(stream) { var state = stream._readableState; debug('emitReadable', state.needReadable, state.emittedReadable); state.needReadable = false; - if (!state.emittedReadable) { debug('emitReadable', state.flowing); state.emittedReadable = true; process.nextTick(emitReadable_, stream); } } - function emitReadable_(stream) { var state = stream._readableState; debug('emitReadable_', state.destroyed, state.length, state.ended); - if (!state.destroyed && (state.length || state.ended)) { stream.emit('readable'); state.emittedReadable = false; - } // The stream needs another readable event if + } + + // The stream needs another readable event if // 1. It is not flowing, as the flow mechanism will take // care of it. // 2. It is not ended. // 3. It is below the highWaterMark, so we can schedule // another readable later. - - state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark; flow(stream); -} // at this point, the user has presumably seen the 'readable' event, +} + +// at this point, the user has presumably seen the 'readable' event, // and called read() to consume some data. that may have triggered // in turn another _read(n) call, in which case reading = true if // it's in progress. // However, if we're not ended, or reading, and the length < hwm, // then go ahead and try to read some more preemptively. - - function maybeReadMore(stream, state) { if (!state.readingMore) { state.readingMore = true; process.nextTick(maybeReadMore_, stream, state); } } - function maybeReadMore_(stream, state) { // Attempt to read more data if we should. // @@ -590,49 +548,42 @@ function maybeReadMore_(stream, state) { var len = state.length; debug('maybeReadMore read 0'); stream.read(0); - if (len === state.length) // didn't get any data, stop spinning. + if (len === state.length) + // didn't get any data, stop spinning. break; } - state.readingMore = false; -} // abstract method. to be overridden in specific implementation classes. +} + +// abstract method. to be overridden in specific implementation classes. // call cb(er, data) where data is <= n in length. // for virtual (non-string, non-buffer) streams, "length" is somewhat // arbitrary, and perhaps not very meaningful. - - Readable.prototype._read = function (n) { errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()')); }; - Readable.prototype.pipe = function (dest, pipeOpts) { var src = this; var state = this._readableState; - switch (state.pipesCount) { case 0: state.pipes = dest; break; - case 1: state.pipes = [state.pipes, dest]; break; - default: state.pipes.push(dest); break; } - state.pipesCount += 1; debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts); var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr; var endFn = doEnd ? onend : unpipe; if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn); dest.on('unpipe', onunpipe); - function onunpipe(readable, unpipeInfo) { debug('onunpipe'); - if (readable === src) { if (unpipeInfo && unpipeInfo.hasUnpiped === false) { unpipeInfo.hasUnpiped = true; @@ -640,23 +591,21 @@ Readable.prototype.pipe = function (dest, pipeOpts) { } } } - function onend() { debug('onend'); dest.end(); - } // when the dest drains, it reduces the awaitDrain counter + } + + // when the dest drains, it reduces the awaitDrain counter // on the source. This would be more elegant with a .once() // handler in flow(), but adding and removing repeatedly is // too slow. - - var ondrain = pipeOnDrain(src); dest.on('drain', ondrain); var cleanedUp = false; - function cleanup() { - debug('cleanup'); // cleanup event handlers once the pipe is broken - + debug('cleanup'); + // cleanup event handlers once the pipe is broken dest.removeListener('close', onclose); dest.removeListener('finish', onfinish); dest.removeListener('drain', ondrain); @@ -665,22 +614,20 @@ Readable.prototype.pipe = function (dest, pipeOpts) { src.removeListener('end', onend); src.removeListener('end', unpipe); src.removeListener('data', ondata); - cleanedUp = true; // if the reader is waiting for a drain event from this + cleanedUp = true; + + // if the reader is waiting for a drain event from this // specific writer, then it would cause it to never start // flowing again. // So, if this is awaiting a drain, then we just call it now. // If we don't know, then assume that we are waiting for one. - if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain(); } - src.on('data', ondata); - function ondata(chunk) { debug('ondata'); var ret = dest.write(chunk); debug('dest.write', ret); - if (ret === false) { // If the user unpiped during `dest.write()`, it is possible // to get stuck in a permanently paused state if that write @@ -690,87 +637,84 @@ Readable.prototype.pipe = function (dest, pipeOpts) { debug('false write response, pause', state.awaitDrain); state.awaitDrain++; } - src.pause(); } - } // if the dest has an error, then stop piping into it. - // however, don't suppress the throwing behavior for this. - + } + // if the dest has an error, then stop piping into it. + // however, don't suppress the throwing behavior for this. function onerror(er) { debug('onerror', er); unpipe(); dest.removeListener('error', onerror); if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er); - } // Make sure our error handler is attached before userland ones. - + } - prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once. + // Make sure our error handler is attached before userland ones. + prependListener(dest, 'error', onerror); + // Both close and finish should trigger unpipe, but only once. function onclose() { dest.removeListener('finish', onfinish); unpipe(); } - dest.once('close', onclose); - function onfinish() { debug('onfinish'); dest.removeListener('close', onclose); unpipe(); } - dest.once('finish', onfinish); - function unpipe() { debug('unpipe'); src.unpipe(dest); - } // tell the dest that it's being piped to - + } - dest.emit('pipe', src); // start the flow if it hasn't been started already. + // tell the dest that it's being piped to + dest.emit('pipe', src); + // start the flow if it hasn't been started already. if (!state.flowing) { debug('pipe resume'); src.resume(); } - return dest; }; - function pipeOnDrain(src) { return function pipeOnDrainFunctionResult() { var state = src._readableState; debug('pipeOnDrain', state.awaitDrain); if (state.awaitDrain) state.awaitDrain--; - if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) { state.flowing = true; flow(src); } }; } - Readable.prototype.unpipe = function (dest) { var state = this._readableState; var unpipeInfo = { hasUnpiped: false - }; // if we're not piping anywhere, then do nothing. + }; - if (state.pipesCount === 0) return this; // just one destination. most common case. + // if we're not piping anywhere, then do nothing. + if (state.pipesCount === 0) return this; + // just one destination. most common case. if (state.pipesCount === 1) { // passed in one, but it's not the right one. if (dest && dest !== state.pipes) return this; - if (!dest) dest = state.pipes; // got a match. + if (!dest) dest = state.pipes; + // got a match. state.pipes = null; state.pipesCount = 0; state.flowing = false; if (dest) dest.emit('unpipe', this, unpipeInfo); return this; - } // slow case. multiple pipe destinations. + } + // slow case. multiple pipe destinations. if (!dest) { // remove all. @@ -779,17 +723,13 @@ Readable.prototype.unpipe = function (dest) { state.pipes = null; state.pipesCount = 0; state.flowing = false; - - for (var i = 0; i < len; i++) { - dests[i].emit('unpipe', this, { - hasUnpiped: false - }); - } - + for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, { + hasUnpiped: false + }); return this; - } // try to find the right one. - + } + // try to find the right one. var index = indexOf(state.pipes, dest); if (index === -1) return this; state.pipes.splice(index, 1); @@ -797,19 +737,19 @@ Readable.prototype.unpipe = function (dest) { if (state.pipesCount === 1) state.pipes = state.pipes[0]; dest.emit('unpipe', this, unpipeInfo); return this; -}; // set up data events if they are asked for -// Ensure readable listeners eventually get something - +}; +// set up data events if they are asked for +// Ensure readable listeners eventually get something Readable.prototype.on = function (ev, fn) { var res = Stream.prototype.on.call(this, ev, fn); var state = this._readableState; - if (ev === 'data') { // update readableListening so that resume() may be a no-op // a few lines down. This is needed to support once('readable'). - state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused + state.readableListening = this.listenerCount('readable') > 0; + // Try start flowing on next tick if stream isn't explicitly paused if (state.flowing !== false) this.resume(); } else if (ev === 'readable') { if (!state.endEmitted && !state.readableListening) { @@ -817,7 +757,6 @@ Readable.prototype.on = function (ev, fn) { state.flowing = false; state.emittedReadable = false; debug('on readable', state.length, state.reading); - if (state.length) { emitReadable(this); } else if (!state.reading) { @@ -825,15 +764,11 @@ Readable.prototype.on = function (ev, fn) { } } } - return res; }; - Readable.prototype.addListener = Readable.prototype.on; - Readable.prototype.removeListener = function (ev, fn) { var res = Stream.prototype.removeListener.call(this, ev, fn); - if (ev === 'readable') { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -843,13 +778,10 @@ Readable.prototype.removeListener = function (ev, fn) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - Readable.prototype.removeAllListeners = function (ev) { var res = Stream.prototype.removeAllListeners.apply(this, arguments); - if (ev === 'readable' || ev === undefined) { // We need to check if there is someone still listening to // readable and reset the state. However this needs to happen @@ -859,121 +791,103 @@ Readable.prototype.removeAllListeners = function (ev) { // effect. process.nextTick(updateReadableListening, this); } - return res; }; - function updateReadableListening(self) { var state = self._readableState; state.readableListening = self.listenerCount('readable') > 0; - if (state.resumeScheduled && !state.paused) { // flowing needs to be set to true now, otherwise // the upcoming resume will not flow. - state.flowing = true; // crude way to check if we should resume + state.flowing = true; + + // crude way to check if we should resume } else if (self.listenerCount('data') > 0) { self.resume(); } } - function nReadingNextTick(self) { debug('readable nexttick read 0'); self.read(0); -} // pause() and resume() are remnants of the legacy readable stream API -// If the user uses them, then switch into old mode. - +} +// pause() and resume() are remnants of the legacy readable stream API +// If the user uses them, then switch into old mode. Readable.prototype.resume = function () { var state = this._readableState; - if (!state.flowing) { - debug('resume'); // we flow only if there is no one listening + debug('resume'); + // we flow only if there is no one listening // for readable, but we still have to call // resume() - state.flowing = !state.readableListening; resume(this, state); } - state.paused = false; return this; }; - function resume(stream, state) { if (!state.resumeScheduled) { state.resumeScheduled = true; process.nextTick(resume_, stream, state); } } - function resume_(stream, state) { debug('resume', state.reading); - if (!state.reading) { stream.read(0); } - state.resumeScheduled = false; stream.emit('resume'); flow(stream); if (state.flowing && !state.reading) stream.read(0); } - Readable.prototype.pause = function () { debug('call pause flowing=%j', this._readableState.flowing); - if (this._readableState.flowing !== false) { debug('pause'); this._readableState.flowing = false; this.emit('pause'); } - this._readableState.paused = true; return this; }; - function flow(stream) { var state = stream._readableState; debug('flow', state.flowing); + while (state.flowing && stream.read() !== null); +} - while (state.flowing && stream.read() !== null) { - ; - } -} // wrap an old-style stream as the async data source. +// wrap an old-style stream as the async data source. // This is *not* part of the readable stream interface. // It is an ugly unfortunate mess of history. - - Readable.prototype.wrap = function (stream) { var _this = this; - var state = this._readableState; var paused = false; stream.on('end', function () { debug('wrapped end'); - if (state.decoder && !state.ended) { var chunk = state.decoder.end(); if (chunk && chunk.length) _this.push(chunk); } - _this.push(null); }); stream.on('data', function (chunk) { debug('wrapped data'); - if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode + if (state.decoder) chunk = state.decoder.write(chunk); + // don't skip over falsy values in objectMode if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return; - var ret = _this.push(chunk); - if (!ret) { paused = true; stream.pause(); } - }); // proxy all the other methods. - // important when wrapping filters and duplexes. + }); + // proxy all the other methods. + // important when wrapping filters and duplexes. for (var i in stream) { if (this[i] === undefined && typeof stream[i] === 'function') { this[i] = function methodWrap(method) { @@ -982,37 +896,32 @@ Readable.prototype.wrap = function (stream) { }; }(i); } - } // proxy certain important events. - + } + // proxy certain important events. for (var n = 0; n < kProxyEvents.length; n++) { stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n])); - } // when we try to consume some more bytes, simply unpause the - // underlying stream. - + } + // when we try to consume some more bytes, simply unpause the + // underlying stream. this._read = function (n) { debug('wrapped _read', n); - if (paused) { paused = false; stream.resume(); } }; - return this; }; - if (typeof Symbol === 'function') { Readable.prototype[Symbol.asyncIterator] = function () { if (createReadableStreamAsyncIterator === undefined) { createReadableStreamAsyncIterator = require('./internal/streams/async_iterator'); } - return createReadableStreamAsyncIterator(this); }; } - Object.defineProperty(Readable.prototype, 'readableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -1044,8 +953,9 @@ Object.defineProperty(Readable.prototype, 'readableFlowing', { this._readableState.flowing = state; } } -}); // exposed for testing purposes only. +}); +// exposed for testing purposes only. Readable._fromList = fromList; Object.defineProperty(Readable.prototype, 'readableLength', { // making it explicit this property is not enumerable @@ -1055,11 +965,12 @@ Object.defineProperty(Readable.prototype, 'readableLength', { get: function get() { return this._readableState.length; } -}); // Pluck off n bytes from an array of buffers. +}); + +// Pluck off n bytes from an array of buffers. // Length is the combined lengths of all the buffers in the list. // This function is designed to be inlinable, so please take care when making // changes to the function body. - function fromList(n, state) { // nothing buffered if (state.length === 0) return null; @@ -1074,51 +985,43 @@ function fromList(n, state) { } return ret; } - function endReadable(stream) { var state = stream._readableState; debug('endReadable', state.endEmitted); - if (!state.endEmitted) { state.ended = true; process.nextTick(endReadableNT, state, stream); } } - function endReadableNT(state, stream) { - debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift. + debug('endReadableNT', state.endEmitted, state.length); + // Check that we didn't get one last unshift. if (!state.endEmitted && state.length === 0) { state.endEmitted = true; stream.readable = false; stream.emit('end'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the writable side is ready for autoDestroy as well var wState = stream._writableState; - if (!wState || wState.autoDestroy && wState.finished) { stream.destroy(); } } } } - if (typeof Symbol === 'function') { Readable.from = function (iterable, opts) { if (from === undefined) { from = require('./internal/streams/from'); } - return from(Readable, iterable, opts); }; } - function indexOf(xs, x) { for (var i = 0, l = xs.length; i < l; i++) { if (xs[i] === x) return i; } - return -1; } \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js index 41a738c..1ccb715 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js @@ -18,6 +18,7 @@ // 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. + // a transform stream is a readable/writable stream where you do // something with the data. Sometimes it's called a "filter", // but that's not a great name for it, since that implies a thing where @@ -59,42 +60,36 @@ // However, even in such a pathological case, only a single written chunk // would be consumed, and then the rest would wait (un-transformed) until // the results of the previous transformed chunk were consumed. + 'use strict'; module.exports = Transform; - var _require$codes = require('../errors').codes, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, - ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; - + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING, + ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0; var Duplex = require('./_stream_duplex'); - require('inherits')(Transform, Duplex); - function afterTransform(er, data) { var ts = this._transformState; ts.transforming = false; var cb = ts.writecb; - if (cb === null) { return this.emit('error', new ERR_MULTIPLE_CALLBACK()); } - ts.writechunk = null; ts.writecb = null; - if (data != null) // single equals check for both `null` and `undefined` + if (data != null) + // single equals check for both `null` and `undefined` this.push(data); cb(er); var rs = this._readableState; rs.reading = false; - if (rs.needReadable || rs.length < rs.highWaterMark) { this._read(rs.highWaterMark); } } - function Transform(options) { if (!(this instanceof Transform)) return new Transform(options); Duplex.call(this, options); @@ -105,26 +100,25 @@ function Transform(options) { writecb: null, writechunk: null, writeencoding: null - }; // start out asking for a readable event once data is transformed. + }; + + // start out asking for a readable event once data is transformed. + this._readableState.needReadable = true; - this._readableState.needReadable = true; // we have implemented the _read method, and done the other things + // we have implemented the _read method, and done the other things // that Readable wants before the first _read call, so unset the // sync guard flag. - this._readableState.sync = false; - if (options) { if (typeof options.transform === 'function') this._transform = options.transform; if (typeof options.flush === 'function') this._flush = options.flush; - } // When the writable side finishes, then flush out anything remaining. - + } + // When the writable side finishes, then flush out anything remaining. this.on('prefinish', prefinish); } - function prefinish() { var _this = this; - if (typeof this._flush === 'function' && !this._readableState.destroyed) { this._flush(function (er, data) { done(_this, er, data); @@ -133,11 +127,12 @@ function prefinish() { done(this, null, null); } } - Transform.prototype.push = function (chunk, encoding) { this._transformState.needTransform = false; return Duplex.prototype.push.call(this, chunk, encoding); -}; // This is the part where you do stuff! +}; + +// This is the part where you do stuff! // override this function in implementation classes. // 'chunk' is an input chunk. // @@ -147,33 +142,27 @@ Transform.prototype.push = function (chunk, encoding) { // Call `cb(err)` when you are done with this chunk. If you pass // an error, then that'll put the hurt on the whole operation. If you // never call cb(), then you'll never get another chunk. - - Transform.prototype._transform = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()')); }; - Transform.prototype._write = function (chunk, encoding, cb) { var ts = this._transformState; ts.writecb = cb; ts.writechunk = chunk; ts.writeencoding = encoding; - if (!ts.transforming) { var rs = this._readableState; if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark); } -}; // Doesn't matter what the args are here. +}; + +// Doesn't matter what the args are here. // _transform does all the work. // That we got here means that the readable side wants more data. - - Transform.prototype._read = function (n) { var ts = this._transformState; - if (ts.writechunk !== null && !ts.transforming) { ts.transforming = true; - this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform); } else { // mark that we need a transform, so that any data that comes in @@ -181,20 +170,20 @@ Transform.prototype._read = function (n) { ts.needTransform = true; } }; - Transform.prototype._destroy = function (err, cb) { Duplex.prototype._destroy.call(this, err, function (err2) { cb(err2); }); }; - function done(stream, er, data) { if (er) return stream.emit('error', er); - if (data != null) // single equals check for both `null` and `undefined` - stream.push(data); // TODO(BridgeAR): Write a test for these two error cases + if (data != null) + // single equals check for both `null` and `undefined` + stream.push(data); + + // TODO(BridgeAR): Write a test for these two error cases // if there's nothing in the write buffer, then that means // that nothing more will ever be provided - if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0(); if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING(); return stream.push(null); diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js index a2634d7..292415e 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js @@ -18,29 +18,29 @@ // 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. + // A bit simpler than readable streams. // Implement an async ._write(chunk, encoding, cb), and it'll handle all // the drain event emission and buffering. + 'use strict'; module.exports = Writable; -/* */ +/* */ function WriteReq(chunk, encoding, cb) { this.chunk = chunk; this.encoding = encoding; this.callback = cb; this.next = null; -} // It seems a linked list but it is not -// there will be only 2 of these for each stream - +} +// It seems a linked list but it is not +// there will be only 2 of these for each stream function CorkedRequest(state) { var _this = this; - this.next = null; this.entry = null; - this.finish = function () { onCorkedFinish(_this, state); }; @@ -48,155 +48,159 @@ function CorkedRequest(state) { /* */ /**/ - - var Duplex; /**/ Writable.WritableState = WritableState; -/**/ +/**/ var internalUtil = { deprecate: require('util-deprecate') }; /**/ /**/ - var Stream = require('./internal/streams/stream'); /**/ - var Buffer = require('buffer').Buffer; - -var OurUint8Array = global.Uint8Array || function () {}; - +var OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {}; function _uint8ArrayToBuffer(chunk) { return Buffer.from(chunk); } - function _isUint8Array(obj) { return Buffer.isBuffer(obj) || obj instanceof OurUint8Array; } - var destroyImpl = require('./internal/streams/destroy'); - var _require = require('./internal/streams/state'), - getHighWaterMark = _require.getHighWaterMark; - + getHighWaterMark = _require.getHighWaterMark; var _require$codes = require('../errors').codes, - ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, - ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, - ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, - ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, - ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, - ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, - ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; - + ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE, + ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED, + ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK, + ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED, + ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES, + ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END, + ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING; var errorOrDestroy = destroyImpl.errorOrDestroy; - require('inherits')(Writable, Stream); - function nop() {} - function WritableState(options, stream, isDuplex) { Duplex = Duplex || require('./_stream_duplex'); - options = options || {}; // Duplex streams are both readable and writable, but share + options = options || {}; + + // Duplex streams are both readable and writable, but share // the same options object. // However, some cases require setting options to different // values for the readable and the writable sides of the duplex stream, // e.g. options.readableObjectMode vs. options.writableObjectMode, etc. + if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; - if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream + // object stream flag to indicate whether or not this stream // contains buffers or objects. - this.objectMode = !!options.objectMode; - if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false + if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; + + // the point at which write() starts returning false // Note: 0 is a valid value, means that we always return false if // the entire buffer is not flushed immediately on write() + this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); - this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called + // if _final has been called + this.finalCalled = false; - this.finalCalled = false; // drain event flag. + // drain event flag. + this.needDrain = false; + // at the start of calling end() + this.ending = false; + // when end() has been called, and returned + this.ended = false; + // when 'finish' is emitted + this.finished = false; - this.needDrain = false; // at the start of calling end() + // has it been destroyed + this.destroyed = false; - this.ending = false; // when end() has been called, and returned - - this.ended = false; // when 'finish' is emitted - - this.finished = false; // has it been destroyed - - this.destroyed = false; // should we decode strings into buffers before passing to _write? + // should we decode strings into buffers before passing to _write? // this is here so that some node-core streams can optimize string // handling at a lower level. - var noDecode = options.decodeStrings === false; - this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string + this.decodeStrings = !noDecode; + + // Crypto is kind of old and crusty. Historically, its default string // encoding is 'binary' so we have to make this configurable. // Everything else in the universe uses 'utf8', though. + this.defaultEncoding = options.defaultEncoding || 'utf8'; - this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement + // not an actual buffer we keep track of, but a measurement // of how much we're waiting to get pushed to some underlying // socket or file. + this.length = 0; - this.length = 0; // a flag to see when we're in the middle of a write. + // a flag to see when we're in the middle of a write. + this.writing = false; - this.writing = false; // when true all writes will be buffered until .uncork() call + // when true all writes will be buffered until .uncork() call + this.corked = 0; - this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately, + // a flag to be able to tell if the onwrite cb is called immediately, // or on a later tick. We set this to true at first, because any // actions that shouldn't happen until "later" should generally also // not happen before the first write call. + this.sync = true; - this.sync = true; // a flag to know if we're processing previously buffered items, which + // a flag to know if we're processing previously buffered items, which // may call the _write() callback in the same tick, so that we don't // end up in an overlapped onwrite situation. + this.bufferProcessing = false; - this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb) - + // the callback that's passed to _write(chunk,cb) this.onwrite = function (er) { onwrite(stream, er); - }; // the callback that the user supplies to write(chunk,encoding,cb) - + }; - this.writecb = null; // the amount that is being written when _write is called. + // the callback that the user supplies to write(chunk,encoding,cb) + this.writecb = null; + // the amount that is being written when _write is called. this.writelen = 0; this.bufferedRequest = null; - this.lastBufferedRequest = null; // number of pending user-supplied write callbacks + this.lastBufferedRequest = null; + + // number of pending user-supplied write callbacks // this must be 0 before 'finish' can be emitted + this.pendingcb = 0; - this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs + // emit prefinish if the only thing we're waiting for is _write cbs // This is relevant for synchronous Transform streams + this.prefinished = false; - this.prefinished = false; // True if the error was already emitted and should not be thrown again + // True if the error was already emitted and should not be thrown again + this.errorEmitted = false; - this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true. + // Should close be emitted on destroy. Defaults to true. + this.emitClose = options.emitClose !== false; - this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end') + // Should .destroy() be called after 'finish' (and potentially 'end') + this.autoDestroy = !!options.autoDestroy; - this.autoDestroy = !!options.autoDestroy; // count buffered requests + // count buffered requests + this.bufferedRequestCount = 0; - this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always + // allocate the first CorkedRequest, there is always // one allocated and free to use, and we maintain at most two - this.corkedRequestsFree = new CorkedRequest(this); } - WritableState.prototype.getBuffer = function getBuffer() { var current = this.bufferedRequest; var out = []; - while (current) { out.push(current); current = current.next; } - return out; }; - (function () { try { Object.defineProperty(WritableState.prototype, 'buffer', { @@ -205,12 +209,11 @@ WritableState.prototype.getBuffer = function getBuffer() { }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003') }); } catch (_) {} -})(); // Test _writableState for inheritance to account for Duplex streams, -// whose prototype chain only points to Readable. - +})(); +// Test _writableState for inheritance to account for Duplex streams, +// whose prototype chain only points to Readable. var realHasInstance; - if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') { realHasInstance = Function.prototype[Symbol.hasInstance]; Object.defineProperty(Writable, Symbol.hasInstance, { @@ -225,81 +228,73 @@ if (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.protot return object instanceof this; }; } - function Writable(options) { - Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too. + Duplex = Duplex || require('./_stream_duplex'); + + // Writable ctor is applied to Duplexes, too. // `realHasInstance` is necessary because using plain `instanceof` // would return false, as no `_writableState` property is attached. + // Trying to use the custom `instanceof` for Writable here will also break the // Node.js LazyTransform implementation, which has a non-trivial getter for // `_writableState` that would lead to infinite recursion. + // Checking for a Stream.Duplex instance is faster here instead of inside // the WritableState constructor, at least with V8 6.5 - var isDuplex = this instanceof Duplex; if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options); - this._writableState = new WritableState(options, this, isDuplex); // legacy. + this._writableState = new WritableState(options, this, isDuplex); + // legacy. this.writable = true; - if (options) { if (typeof options.write === 'function') this._write = options.write; if (typeof options.writev === 'function') this._writev = options.writev; if (typeof options.destroy === 'function') this._destroy = options.destroy; if (typeof options.final === 'function') this._final = options.final; } - Stream.call(this); -} // Otherwise people can pipe Writable streams, which is just wrong. - +} +// Otherwise people can pipe Writable streams, which is just wrong. Writable.prototype.pipe = function () { errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE()); }; - function writeAfterEnd(stream, cb) { - var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb - + var er = new ERR_STREAM_WRITE_AFTER_END(); + // TODO: defer error events consistently everywhere, not just the cb errorOrDestroy(stream, er); process.nextTick(cb, er); -} // Checks that a user-supplied chunk is valid, especially for the particular +} + +// Checks that a user-supplied chunk is valid, especially for the particular // mode the stream is in. Currently this means that `null` is never accepted // and undefined/non-string values are only allowed in object mode. - - function validChunk(stream, state, chunk, cb) { var er; - if (chunk === null) { er = new ERR_STREAM_NULL_VALUES(); } else if (typeof chunk !== 'string' && !state.objectMode) { er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk); } - if (er) { errorOrDestroy(stream, er); process.nextTick(cb, er); return false; } - return true; } - Writable.prototype.write = function (chunk, encoding, cb) { var state = this._writableState; var ret = false; - var isBuf = !state.objectMode && _isUint8Array(chunk); - if (isBuf && !Buffer.isBuffer(chunk)) { chunk = _uint8ArrayToBuffer(chunk); } - if (typeof encoding === 'function') { cb = encoding; encoding = null; } - if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding; if (typeof cb !== 'function') cb = nop; if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) { @@ -308,20 +303,16 @@ Writable.prototype.write = function (chunk, encoding, cb) { } return ret; }; - Writable.prototype.cork = function () { this._writableState.corked++; }; - Writable.prototype.uncork = function () { var state = this._writableState; - if (state.corked) { state.corked--; if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state); } }; - Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { // node::ParseEncoding() requires lower case. if (typeof encoding === 'string') encoding = encoding.toLowerCase(); @@ -329,7 +320,6 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) { this._writableState.defaultEncoding = encoding; return this; }; - Object.defineProperty(Writable.prototype, 'writableBuffer', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -339,15 +329,12 @@ Object.defineProperty(Writable.prototype, 'writableBuffer', { return this._writableState && this._writableState.getBuffer(); } }); - function decodeChunk(state, chunk, encoding) { if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') { chunk = Buffer.from(chunk, encoding); } - return chunk; } - Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -356,27 +343,25 @@ Object.defineProperty(Writable.prototype, 'writableHighWaterMark', { get: function get() { return this._writableState.highWaterMark; } -}); // if we're already writing something, then just put this +}); + +// if we're already writing something, then just put this // in the queue, and wait our turn. Otherwise, call _write // If we return false, then we need a drain event, so set that flag. - function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { if (!isBuf) { var newChunk = decodeChunk(state, chunk, encoding); - if (chunk !== newChunk) { isBuf = true; encoding = 'buffer'; chunk = newChunk; } } - var len = state.objectMode ? 1 : chunk.length; state.length += len; - var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false. - + var ret = state.length < state.highWaterMark; + // we must ensure that previous needDrain will not be reset to false. if (!ret) state.needDrain = true; - if (state.writing || state.corked) { var last = state.lastBufferedRequest; state.lastBufferedRequest = { @@ -386,21 +371,17 @@ function writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) { callback: cb, next: null }; - if (last) { last.next = state.lastBufferedRequest; } else { state.bufferedRequest = state.lastBufferedRequest; } - state.bufferedRequestCount += 1; } else { doWrite(stream, state, false, len, chunk, encoding, cb); } - return ret; } - function doWrite(stream, state, writev, len, chunk, encoding, cb) { state.writelen = len; state.writecb = cb; @@ -409,16 +390,14 @@ function doWrite(stream, state, writev, len, chunk, encoding, cb) { if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite); state.sync = false; } - function onwriteError(stream, state, sync, er, cb) { --state.pendingcb; - if (sync) { // defer the callback if we are being called synchronously // to avoid piling up things on the stack - process.nextTick(cb, er); // this can emit finish, and it will always happen + process.nextTick(cb, er); + // this can emit finish, and it will always happen // after error - process.nextTick(finishMaybe, stream, state); stream._writableState.errorEmitted = true; errorOrDestroy(stream, er); @@ -427,20 +406,18 @@ function onwriteError(stream, state, sync, er, cb) { // it is async cb(er); stream._writableState.errorEmitted = true; - errorOrDestroy(stream, er); // this can emit finish, but finish must + errorOrDestroy(stream, er); + // this can emit finish, but finish must // always follow error - finishMaybe(stream, state); } } - function onwriteStateUpdate(state) { state.writing = false; state.writecb = null; state.length -= state.writelen; state.writelen = 0; } - function onwrite(stream, er) { var state = stream._writableState; var sync = state.sync; @@ -450,11 +427,9 @@ function onwrite(stream, er) { if (er) onwriteError(stream, state, sync, er, cb);else { // Check if we're actually ready to finish, but don't emit yet var finished = needFinish(state) || stream.destroyed; - if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) { clearBuffer(stream, state); } - if (sync) { process.nextTick(afterWrite, stream, state, finished, cb); } else { @@ -462,29 +437,27 @@ function onwrite(stream, er) { } } } - function afterWrite(stream, state, finished, cb) { if (!finished) onwriteDrain(stream, state); state.pendingcb--; cb(); finishMaybe(stream, state); -} // Must force callback to be called on nextTick, so that we don't +} + +// Must force callback to be called on nextTick, so that we don't // emit 'drain' before the write() consumer gets the 'false' return // value, and has a chance to attach a 'drain' listener. - - function onwriteDrain(stream, state) { if (state.length === 0 && state.needDrain) { state.needDrain = false; stream.emit('drain'); } -} // if there's something in the buffer waiting, then process it - +} +// if there's something in the buffer waiting, then process it function clearBuffer(stream, state) { state.bufferProcessing = true; var entry = state.bufferedRequest; - if (stream._writev && entry && entry.next) { // Fast case, write everything using _writev() var l = state.bufferedRequestCount; @@ -493,28 +466,25 @@ function clearBuffer(stream, state) { holder.entry = entry; var count = 0; var allBuffers = true; - while (entry) { buffer[count] = entry; if (!entry.isBuf) allBuffers = false; entry = entry.next; count += 1; } - buffer.allBuffers = allBuffers; - doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time - // as the hot path ends with doWrite + doWrite(stream, state, true, state.length, buffer, '', holder.finish); + // doWrite is almost always async, defer these to save a bit of time + // as the hot path ends with doWrite state.pendingcb++; state.lastBufferedRequest = null; - if (holder.next) { state.corkedRequestsFree = holder.next; holder.next = null; } else { state.corkedRequestsFree = new CorkedRequest(state); } - state.bufferedRequestCount = 0; } else { // Slow case, write chunks one-by-one @@ -525,32 +495,26 @@ function clearBuffer(stream, state) { var len = state.objectMode ? 1 : chunk.length; doWrite(stream, state, false, len, chunk, encoding, cb); entry = entry.next; - state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then + state.bufferedRequestCount--; + // if we didn't call the onwrite immediately, then // it means that we need to wait until it does. // also, that means that the chunk and cb are currently // being processed, so move the buffer counter past them. - if (state.writing) { break; } } - if (entry === null) state.lastBufferedRequest = null; } - state.bufferedRequest = entry; state.bufferProcessing = false; } - Writable.prototype._write = function (chunk, encoding, cb) { cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()')); }; - Writable.prototype._writev = null; - Writable.prototype.end = function (chunk, encoding, cb) { var state = this._writableState; - if (typeof chunk === 'function') { cb = chunk; chunk = null; @@ -559,19 +523,18 @@ Writable.prototype.end = function (chunk, encoding, cb) { cb = encoding; encoding = null; } + if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); - if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks - + // .end() fully uncorks if (state.corked) { state.corked = 1; this.uncork(); - } // ignore unnecessary end() calls. - + } + // ignore unnecessary end() calls. if (!state.ending) endWritable(this, state, cb); return this; }; - Object.defineProperty(Writable.prototype, 'writableLength', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -581,25 +544,20 @@ Object.defineProperty(Writable.prototype, 'writableLength', { return this._writableState.length; } }); - function needFinish(state) { return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing; } - function callFinal(stream, state) { stream._final(function (err) { state.pendingcb--; - if (err) { errorOrDestroy(stream, err); } - state.prefinished = true; stream.emit('prefinish'); finishMaybe(stream, state); }); } - function prefinish(stream, state) { if (!state.prefinished && !state.finalCalled) { if (typeof stream._final === 'function' && !state.destroyed) { @@ -612,59 +570,47 @@ function prefinish(stream, state) { } } } - function finishMaybe(stream, state) { var need = needFinish(state); - if (need) { prefinish(stream, state); - if (state.pendingcb === 0) { state.finished = true; stream.emit('finish'); - if (state.autoDestroy) { // In case of duplex streams we need a way to detect // if the readable side is ready for autoDestroy as well var rState = stream._readableState; - if (!rState || rState.autoDestroy && rState.endEmitted) { stream.destroy(); } } } } - return need; } - function endWritable(stream, state, cb) { state.ending = true; finishMaybe(stream, state); - if (cb) { if (state.finished) process.nextTick(cb);else stream.once('finish', cb); } - state.ended = true; stream.writable = false; } - function onCorkedFinish(corkReq, state, err) { var entry = corkReq.entry; corkReq.entry = null; - while (entry) { var cb = entry.callback; state.pendingcb--; cb(err); entry = entry.next; - } // reuse the free corkReq. - + } + // reuse the free corkReq. state.corkedRequestsFree.next = corkReq; } - Object.defineProperty(Writable.prototype, 'destroyed', { // making it explicit this property is not enumerable // because otherwise some prototype manipulation in @@ -674,7 +620,6 @@ Object.defineProperty(Writable.prototype, 'destroyed', { if (this._writableState === undefined) { return false; } - return this._writableState.destroyed; }, set: function set(value) { @@ -682,16 +627,15 @@ Object.defineProperty(Writable.prototype, 'destroyed', { // has not been initialized yet if (!this._writableState) { return; - } // backward compatibility, the user is explicitly - // managing destroyed - + } + // backward compatibility, the user is explicitly + // managing destroyed this._writableState.destroyed = value; } }); Writable.prototype.destroy = destroyImpl.destroy; Writable.prototype._undestroy = destroyImpl.undestroy; - Writable.prototype._destroy = function (err, cb) { cb(err); }; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js index 9fb615a..742c5a4 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js @@ -1,11 +1,10 @@ 'use strict'; var _Object$setPrototypeO; - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var finished = require('./end-of-stream'); - var kLastResolve = Symbol('lastResolve'); var kLastReject = Symbol('lastReject'); var kError = Symbol('error'); @@ -13,22 +12,19 @@ var kEnded = Symbol('ended'); var kLastPromise = Symbol('lastPromise'); var kHandlePromise = Symbol('handlePromise'); var kStream = Symbol('stream'); - function createIterResult(value, done) { return { value: value, done: done }; } - function readAndResolve(iter) { var resolve = iter[kLastResolve]; - if (resolve !== null) { - var data = iter[kStream].read(); // we defer if data is null + var data = iter[kStream].read(); + // we defer if data is null // we can be expecting either 'end' or // 'error' - if (data !== null) { iter[kLastPromise] = null; iter[kLastResolve] = null; @@ -37,13 +33,11 @@ function readAndResolve(iter) { } } } - function onReadable(iter) { // we wait for the next tick, because it might // emit an error with process.nextTick process.nextTick(readAndResolve, iter); } - function wrapForNext(lastPromise, iter) { return function (resolve, reject) { lastPromise.then(function () { @@ -51,33 +45,26 @@ function wrapForNext(lastPromise, iter) { resolve(createIterResult(undefined, true)); return; } - iter[kHandlePromise](resolve, reject); }, reject); }; } - var AsyncIteratorPrototype = Object.getPrototypeOf(function () {}); var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = { get stream() { return this[kStream]; }, - next: function next() { var _this = this; - // if we have detected an error in the meanwhile // reject straight away var error = this[kError]; - if (error !== null) { return Promise.reject(error); } - if (this[kEnded]) { return Promise.resolve(createIterResult(undefined, true)); } - if (this[kStream].destroyed) { // We need to defer via nextTick because if .destroy(err) is // called, the error will be emitted via nextTick, and @@ -92,29 +79,25 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro } }); }); - } // if we have multiple next() calls + } + + // if we have multiple next() calls // we will wait for the previous Promise to finish // this logic is optimized to support for await loops, // where next() is only called once at a time - - var lastPromise = this[kLastPromise]; var promise; - if (lastPromise) { promise = new Promise(wrapForNext(lastPromise, this)); } else { // fast path needed to support multiple this.push() // without triggering the next() queue var data = this[kStream].read(); - if (data !== null) { return Promise.resolve(createIterResult(data, false)); } - promise = new Promise(this[kHandlePromise]); } - this[kLastPromise] = promise; return promise; } @@ -122,7 +105,6 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro return this; }), _defineProperty(_Object$setPrototypeO, "return", function _return() { var _this2 = this; - // destroy(err, cb) is a private API // we can guarantee we have that here, because we control the // Readable class this is attached to @@ -132,15 +114,12 @@ var ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPro reject(err); return; } - resolve(createIterResult(undefined, true)); }); }); }), _Object$setPrototypeO), AsyncIteratorPrototype); - var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) { var _Object$create; - var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, { value: stream, writable: true @@ -159,7 +138,6 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat }), _defineProperty(_Object$create, kHandlePromise, { value: function value(resolve, reject) { var data = iterator[kStream].read(); - if (data) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; @@ -175,33 +153,28 @@ var createReadableStreamAsyncIterator = function createReadableStreamAsyncIterat iterator[kLastPromise] = null; finished(stream, function (err) { if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') { - var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise + var reject = iterator[kLastReject]; + // reject if we are waiting for data in the Promise // returned by next() and store the error - if (reject !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; reject(err); } - iterator[kError] = err; return; } - var resolve = iterator[kLastResolve]; - if (resolve !== null) { iterator[kLastPromise] = null; iterator[kLastResolve] = null; iterator[kLastReject] = null; resolve(createIterResult(undefined, true)); } - iterator[kEnded] = true; }); stream.on('readable', onReadable.bind(null, iterator)); return iterator; }; - module.exports = createReadableStreamAsyncIterator; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js index cdea425..69bda49 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js @@ -1,40 +1,28 @@ 'use strict'; -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } - -function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - +function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } } +function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var _require = require('buffer'), - Buffer = _require.Buffer; - + Buffer = _require.Buffer; var _require2 = require('util'), - inspect = _require2.inspect; - + inspect = _require2.inspect; var custom = inspect && inspect.custom || 'inspect'; - function copyBuffer(src, target, offset) { Buffer.prototype.copy.call(src, target, offset); } - -module.exports = -/*#__PURE__*/ -function () { +module.exports = /*#__PURE__*/function () { function BufferList() { _classCallCheck(this, BufferList); - this.head = null; this.tail = null; this.length = 0; } - _createClass(BufferList, [{ key: "push", value: function push(v) { @@ -78,11 +66,7 @@ function () { if (this.length === 0) return ''; var p = this.head; var ret = '' + p.data; - - while (p = p.next) { - ret += s + p.data; - } - + while (p = p.next) ret += s + p.data; return ret; } }, { @@ -92,21 +76,19 @@ function () { var ret = Buffer.allocUnsafe(n >>> 0); var p = this.head; var i = 0; - while (p) { copyBuffer(p.data, ret, i); i += p.data.length; p = p.next; } - return ret; - } // Consumes a specified amount of bytes or characters from the buffered data. + } + // Consumes a specified amount of bytes or characters from the buffered data. }, { key: "consume", value: function consume(n, hasStrings) { var ret; - if (n < this.head.data.length) { // `slice` is the same for buffers and strings. ret = this.head.data.slice(0, n); @@ -118,15 +100,15 @@ function () { // Result spans more than one buffer. ret = hasStrings ? this._getString(n) : this._getBuffer(n); } - return ret; } }, { key: "first", value: function first() { return this.head.data; - } // Consumes a specified amount of characters from the buffered data. + } + // Consumes a specified amount of characters from the buffered data. }, { key: "_getString", value: function _getString(n) { @@ -134,13 +116,11 @@ function () { var c = 1; var ret = p.data; n -= ret.length; - while (p = p.next) { var str = p.data; var nb = n > str.length ? str.length : n; if (nb === str.length) ret += str;else ret += str.slice(0, n); n -= nb; - if (n === 0) { if (nb === str.length) { ++c; @@ -149,17 +129,15 @@ function () { this.head = p; p.data = str.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Consumes a specified amount of bytes from the buffered data. + } + // Consumes a specified amount of bytes from the buffered data. }, { key: "_getBuffer", value: function _getBuffer(n) { @@ -168,13 +146,11 @@ function () { var c = 1; p.data.copy(ret); n -= p.data.length; - while (p = p.next) { var buf = p.data; var nb = n > buf.length ? buf.length : n; buf.copy(ret, ret.length - n, 0, nb); n -= nb; - if (n === 0) { if (nb === buf.length) { ++c; @@ -183,21 +159,19 @@ function () { this.head = p; p.data = buf.slice(nb); } - break; } - ++c; } - this.length -= c; return ret; - } // Make sure the linked list only shows the minimal necessary information. + } + // Make sure the linked list only shows the minimal necessary information. }, { key: custom, value: function value(_, options) { - return inspect(this, _objectSpread({}, options, { + return inspect(this, _objectSpread(_objectSpread({}, options), {}, { // Only inspect one level. depth: 0, // It should not recurse. @@ -205,6 +179,5 @@ function () { })); } }]); - return BufferList; }(); \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js index 3268a16..31a17c4 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js @@ -1,11 +1,10 @@ -'use strict'; // undocumented cb() API, needed for core, not for public API +'use strict'; +// undocumented cb() API, needed for core, not for public API function destroy(err, cb) { var _this = this; - var readableDestroyed = this._readableState && this._readableState.destroyed; var writableDestroyed = this._writableState && this._writableState.destroyed; - if (readableDestroyed || writableDestroyed) { if (cb) { cb(err); @@ -17,21 +16,20 @@ function destroy(err, cb) { process.nextTick(emitErrorNT, this, err); } } - return this; - } // we set destroyed to true before firing error callbacks in order - // to make it re-entrance safe in case destroy() is called within callbacks + } + // we set destroyed to true before firing error callbacks in order + // to make it re-entrance safe in case destroy() is called within callbacks if (this._readableState) { this._readableState.destroyed = true; - } // if this is a duplex stream mark the writable part as destroyed as well - + } + // if this is a duplex stream mark the writable part as destroyed as well if (this._writableState) { this._writableState.destroyed = true; } - this._destroy(err || null, function (err) { if (!cb && err) { if (!_this._writableState) { @@ -49,21 +47,17 @@ function destroy(err, cb) { process.nextTick(emitCloseNT, _this); } }); - return this; } - function emitErrorAndCloseNT(self, err) { emitErrorNT(self, err); emitCloseNT(self); } - function emitCloseNT(self) { if (self._writableState && !self._writableState.emitClose) return; if (self._readableState && !self._readableState.emitClose) return; self.emit('close'); } - function undestroy() { if (this._readableState) { this._readableState.destroyed = false; @@ -71,7 +65,6 @@ function undestroy() { this._readableState.ended = false; this._readableState.endEmitted = false; } - if (this._writableState) { this._writableState.destroyed = false; this._writableState.ended = false; @@ -82,22 +75,20 @@ function undestroy() { this._writableState.errorEmitted = false; } } - function emitErrorNT(self, err) { self.emit('error', err); } - function errorOrDestroy(stream, err) { // We have tests that rely on errors being emitted // in the same tick, so changing this is semver major. // For now when you opt-in to autoDestroy we allow // the error to be emitted nextTick. In a future // semver major update we should change the default to this. + var rState = stream._readableState; var wState = stream._writableState; if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err); } - module.exports = { destroy: destroy, undestroy: undestroy, diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js index 831f286..59c671b 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js @@ -1,78 +1,62 @@ // Ported from https://github.com/mafintosh/end-of-stream with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE; - function once(callback) { var called = false; return function () { if (called) return; called = true; - for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } - callback.apply(this, args); }; } - function noop() {} - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function eos(stream, opts, callback) { if (typeof opts === 'function') return eos(stream, null, opts); if (!opts) opts = {}; callback = once(callback || noop); var readable = opts.readable || opts.readable !== false && stream.readable; var writable = opts.writable || opts.writable !== false && stream.writable; - var onlegacyfinish = function onlegacyfinish() { if (!stream.writable) onfinish(); }; - var writableEnded = stream._writableState && stream._writableState.finished; - var onfinish = function onfinish() { writable = false; writableEnded = true; if (!readable) callback.call(stream); }; - var readableEnded = stream._readableState && stream._readableState.endEmitted; - var onend = function onend() { readable = false; readableEnded = true; if (!writable) callback.call(stream); }; - var onerror = function onerror(err) { callback.call(stream, err); }; - var onclose = function onclose() { var err; - if (readable && !readableEnded) { if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } - if (writable && !writableEnded) { if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE(); return callback.call(stream, err); } }; - var onrequest = function onrequest() { stream.req.on('finish', onfinish); }; - if (isRequest(stream)) { stream.on('complete', onfinish); stream.on('abort', onclose); @@ -82,7 +66,6 @@ function eos(stream, opts, callback) { stream.on('end', onlegacyfinish); stream.on('close', onlegacyfinish); } - stream.on('end', onend); stream.on('finish', onfinish); if (opts.error !== false) stream.on('error', onerror); @@ -100,5 +83,4 @@ function eos(stream, opts, callback) { stream.removeListener('close', onclose); }; } - module.exports = eos; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from.js index 6c41284..0a34ee9 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from.js @@ -1,52 +1,42 @@ 'use strict'; function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; } - -function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; } - -function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } - +function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } +function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } +function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } +function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); } +function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); } var ERR_INVALID_ARG_TYPE = require('../../../errors').codes.ERR_INVALID_ARG_TYPE; - function from(Readable, iterable, opts) { var iterator; - if (iterable && typeof iterable.next === 'function') { iterator = iterable; } else if (iterable && iterable[Symbol.asyncIterator]) iterator = iterable[Symbol.asyncIterator]();else if (iterable && iterable[Symbol.iterator]) iterator = iterable[Symbol.iterator]();else throw new ERR_INVALID_ARG_TYPE('iterable', ['Iterable'], iterable); - var readable = new Readable(_objectSpread({ objectMode: true - }, opts)); // Reading boolean to protect against _read + }, opts)); + // Reading boolean to protect against _read // being called before last iteration completion. - var reading = false; - readable._read = function () { if (!reading) { reading = true; next(); } }; - function next() { return _next2.apply(this, arguments); } - function _next2() { _next2 = _asyncToGenerator(function* () { try { - var _ref = yield iterator.next(), - value = _ref.value, - done = _ref.done; - + var _yield$iterator$next = yield iterator.next(), + value = _yield$iterator$next.value, + done = _yield$iterator$next.done; if (done) { readable.push(null); - } else if (readable.push((yield value))) { + } else if (readable.push(yield value)) { next(); } else { reading = false; @@ -57,8 +47,6 @@ function from(Readable, iterable, opts) { }); return _next2.apply(this, arguments); } - return readable; } - -module.exports = from; \ No newline at end of file +module.exports = from; diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js index 6589909..e6f3924 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js @@ -1,9 +1,9 @@ // Ported from https://github.com/mafintosh/pump with // permission from the author, Mathias Buus (@mafintosh). + 'use strict'; var eos; - function once(callback) { var called = false; return function () { @@ -12,20 +12,16 @@ function once(callback) { callback.apply(void 0, arguments); }; } - var _require$codes = require('../../../errors').codes, - ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, - ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; - + ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS, + ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED; function noop(err) { // Rethrow the error if it exists to avoid swallowing it if (err) throw err; } - function isRequest(stream) { return stream.setHeader && typeof stream.abort === 'function'; } - function destroyer(stream, reading, writing, callback) { callback = once(callback); var closed = false; @@ -45,40 +41,34 @@ function destroyer(stream, reading, writing, callback) { return function (err) { if (closed) return; if (destroyed) return; - destroyed = true; // request.destroy just do .end - .abort is what we want + destroyed = true; + // request.destroy just do .end - .abort is what we want if (isRequest(stream)) return stream.abort(); if (typeof stream.destroy === 'function') return stream.destroy(); callback(err || new ERR_STREAM_DESTROYED('pipe')); }; } - function call(fn) { fn(); } - function pipe(from, to) { return from.pipe(to); } - function popCallback(streams) { if (!streams.length) return noop; if (typeof streams[streams.length - 1] !== 'function') return noop; return streams.pop(); } - function pipeline() { for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) { streams[_key] = arguments[_key]; } - var callback = popCallback(streams); if (Array.isArray(streams[0])) streams = streams[0]; - if (streams.length < 2) { throw new ERR_MISSING_ARGS('streams'); } - var error; var destroys = streams.map(function (stream, i) { var reading = i < streams.length - 1; @@ -93,5 +83,4 @@ function pipeline() { }); return streams.reduce(pipe); } - module.exports = pipeline; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js index 19887eb..3fbf892 100644 --- a/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js +++ b/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js @@ -1,27 +1,22 @@ 'use strict'; var ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE; - function highWaterMarkFrom(options, isDuplex, duplexKey) { return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null; } - function getHighWaterMark(state, options, duplexKey, isDuplex) { var hwm = highWaterMarkFrom(options, isDuplex, duplexKey); - if (hwm != null) { if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) { var name = isDuplex ? duplexKey : 'highWaterMark'; throw new ERR_INVALID_OPT_VALUE(name, hwm); } - return Math.floor(hwm); - } // Default value - + } + // Default value return state.objectMode ? 16 : 16 * 1024; } - module.exports = { getHighWaterMark: getHighWaterMark }; \ No newline at end of file diff --git a/node_modules/stream-http/node_modules/readable-stream/package.json b/node_modules/stream-http/node_modules/readable-stream/package.json index 0b0c4bd..ade59e7 100644 --- a/node_modules/stream-http/node_modules/readable-stream/package.json +++ b/node_modules/stream-http/node_modules/readable-stream/package.json @@ -1,6 +1,6 @@ { "name": "readable-stream", - "version": "3.6.0", + "version": "3.6.2", "description": "Streams3, a user-land copy of the stream library from Node.js", "main": "readable.js", "engines": { diff --git a/node_modules/string.prototype.trimend/.editorconfig b/node_modules/string.prototype.trimend/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/string.prototype.trimend/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/string.prototype.trimend/.eslintignore b/node_modules/string.prototype.trimend/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/string.prototype.trimend/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/string.prototype.trimend/.eslintrc b/node_modules/string.prototype.trimend/.eslintrc deleted file mode 100644 index 54af451..0000000 --- a/node_modules/string.prototype.trimend/.eslintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "overrides": [ - { - "files": "test/**", - "rules": { - "id-length": 0, - "no-invalid-this": 1, - }, - }, - ], -} diff --git a/node_modules/string.prototype.trimend/.nycrc b/node_modules/string.prototype.trimend/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/node_modules/string.prototype.trimend/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/string.prototype.trimend/CHANGELOG.md b/node_modules/string.prototype.trimend/CHANGELOG.md deleted file mode 100644 index 37cae3d..0000000 --- a/node_modules/string.prototype.trimend/CHANGELOG.md +++ /dev/null @@ -1,74 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.4](https://github.com/es-shims/String.prototype.trimEnd/compare/v1.0.3...v1.0.4) - 2021-02-23 - -### Commits - -- [meta] do not publish github action workflow files [`08e735c`](https://github.com/es-shims/String.prototype.trimEnd/commit/08e735cd55b00ae78a9dc16c6b4e786f7931085b) -- [readme] remove travis badge [`10e0e47`](https://github.com/es-shims/String.prototype.trimEnd/commit/10e0e47cb2ecfd171e68b40f8486c5d007dcf3ef) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `has-strict-mode`, `tape` [`0871432`](https://github.com/es-shims/String.prototype.trimEnd/commit/0871432c70c2f6a3929acd740a5d1f57c939f345) -- [Tests] increase coverage [`711e6a6`](https://github.com/es-shims/String.prototype.trimEnd/commit/711e6a66660f30f7a30fef536be435af1a13d05c) -- [actions] update workflows [`deb0d06`](https://github.com/es-shims/String.prototype.trimEnd/commit/deb0d06f41ac1c3e1e640ecd1cf0e69303ab5799) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`e250b4a`](https://github.com/es-shims/String.prototype.trimEnd/commit/e250b4a38401e7c02a067dab26cc68316da47ef7) -- [meta] gitignore coverage output [`55231df`](https://github.com/es-shims/String.prototype.trimEnd/commit/55231dfd9829277ba5c3f07be5434dc385703ca9) -- [Deps] update `call-bind` [`0580f5f`](https://github.com/es-shims/String.prototype.trimEnd/commit/0580f5f915ecb87677764d03fe3cf023e3bee7d8) - -## [v1.0.3](https://github.com/es-shims/String.prototype.trimEnd/compare/v1.0.2...v1.0.3) - 2020-11-21 - -### Commits - -- [Tests] migrate tests to Github Actions [`23e7a09`](https://github.com/es-shims/String.prototype.trimEnd/commit/23e7a09a4ad37c21c3db3d7761212c7d84a371a2) -- [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner [`26e8623`](https://github.com/es-shims/String.prototype.trimEnd/commit/26e8623cf35c1859d0b482d4bb5b3450d101a810) -- [Tests] run `nyc` on all tests [`a72a546`](https://github.com/es-shims/String.prototype.trimEnd/commit/a72a546f671c5d3ac65dff68b4db1a1cc7089bfd) -- [Deps] replace `es-abstract` with `call-bind` [`f07b87d`](https://github.com/es-shims/String.prototype.trimEnd/commit/f07b87dd452090a2601d666edceb1daa90d45f24) -- [Dev Deps] update `eslint`, `aud`; add `safe-publish-latest` [`122ecb7`](https://github.com/es-shims/String.prototype.trimEnd/commit/122ecb726b1dc043b9ef27fa5a7b4172a4d5df37) - -## [v1.0.2](https://github.com/es-shims/String.prototype.trimEnd/compare/v1.0.1...v1.0.2) - 2020-10-20 - -### Commits - -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`a003e71`](https://github.com/es-shims/String.prototype.trimEnd/commit/a003e7166d8de16c551a14b0ec855187357cce43) -- [actions] add "Allow Edits" workflow [`0b4b43c`](https://github.com/es-shims/String.prototype.trimEnd/commit/0b4b43cb605f7b3532e61c43dfc7f1795296c5a4) -- [Deps] update `es-abstract` [`75ca6b0`](https://github.com/es-shims/String.prototype.trimEnd/commit/75ca6b0e9757d64013ae863cfaac49ebcb36f1cf) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`552016c`](https://github.com/es-shims/String.prototype.trimEnd/commit/552016cb631ac13c12bbbc0d6dd65012e5e79583) - -## [v1.0.1](https://github.com/es-shims/String.prototype.trimEnd/compare/v1.0.0...v1.0.1) - 2020-04-09 - -### Commits - -- [meta] add some missing repo metadata [`6abe248`](https://github.com/es-shims/String.prototype.trimEnd/commit/6abe248ba0b57a8b0e16bbe01de07a4d37c421bc) -- [Dev Deps] update `auto-changelog` [`e2eaab2`](https://github.com/es-shims/String.prototype.trimEnd/commit/e2eaab2fd1bc27a3d224b3d76db16190c1dd6d08) - -## [v1.0.0](https://github.com/es-shims/String.prototype.trimEnd/compare/v0.1.0...v1.0.0) - 2020-03-30 - -### Commits - -- [Breaking] convert to es-shim API [`2c6ef13`](https://github.com/es-shims/String.prototype.trimEnd/commit/2c6ef13d3f0b07a9bc55e367b311dbb731780405) -- [meta] add `auto-changelog` [`6f1fcc1`](https://github.com/es-shims/String.prototype.trimEnd/commit/6f1fcc1739de1e9541bd603b659807646a13dd7f) -- [meta] update readme [`ed4ce0d`](https://github.com/es-shims/String.prototype.trimEnd/commit/ed4ce0d84d53e626b48375c5959be20332464eaf) -- [Tests] add `npm run lint` [`eadaf2c`](https://github.com/es-shims/String.prototype.trimEnd/commit/eadaf2c83f2d791b54d80d7b30a9961ebc0f246f) -- Only apps should have lockfiles [`44d355f`](https://github.com/es-shims/String.prototype.trimEnd/commit/44d355f7dafcb0b51c5001824b07f7a2b9f1d06e) -- [actions] add automatic rebasing / merge commit blocking [`e78bf8e`](https://github.com/es-shims/String.prototype.trimEnd/commit/e78bf8e5fc04fcb3379dd1c98360d7df4f9ea7d6) -- [Tests] use shared travis-ci configs [`983c563`](https://github.com/es-shims/String.prototype.trimEnd/commit/983c5639efca2c9bb8b93ebbb917fbcb2561b94c) -- [meta] add `funding` field [`35139d6`](https://github.com/es-shims/String.prototype.trimEnd/commit/35139d6236ceacfc1501d08fb196d18a936ee583) -- [meta] fix non-updated version number [`a2d308b`](https://github.com/es-shims/String.prototype.trimEnd/commit/a2d308b99967ca427936c54747175794ca7336e1) - -## [v0.1.0](https://github.com/es-shims/String.prototype.trimEnd/compare/v0.0.1...v0.1.0) - 2017-12-19 - -### Commits - -- updated README [`f1c71a0`](https://github.com/es-shims/String.prototype.trimEnd/commit/f1c71a0a882e89e1c207ed2b316d91670be2b075) - -## v0.0.1 - 2017-12-19 - -### Commits - -- finished polyfill [`e58d550`](https://github.com/es-shims/String.prototype.trimEnd/commit/e58d550ab8695924ff4221ebe91f00f29801aa4b) -- created README file [`f78628a`](https://github.com/es-shims/String.prototype.trimEnd/commit/f78628ab123171f8b7759bba331d6a589702584f) -- Initial commit [`9199478`](https://github.com/es-shims/String.prototype.trimEnd/commit/9199478256da953e2f5bddfc4d82a161f4537e85) -- typo [`d1f4558`](https://github.com/es-shims/String.prototype.trimEnd/commit/d1f4558a51157833f14d8a424426d038d06576ce) diff --git a/node_modules/string.prototype.trimend/LICENSE b/node_modules/string.prototype.trimend/LICENSE deleted file mode 100644 index e48a1b5..0000000 --- a/node_modules/string.prototype.trimend/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Khaled Al-Ansari - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/string.prototype.trimend/README.md b/node_modules/string.prototype.trimend/README.md deleted file mode 100644 index f6fd331..0000000 --- a/node_modules/string.prototype.trimend/README.md +++ /dev/null @@ -1,40 +0,0 @@ -String.prototype.trimEnd [![Version Badge][npm-version-svg]][package-url] - -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -An ES2019-spec-compliant `String.prototype.trimEnd` shim. Invoke its "shim" method to shim `String.prototype.trimEnd` if it is unavailable. - -This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://www.ecma-international.org/ecma-262/6.0/#sec-object.assign). In an ES6 environment, it will also work properly with `Symbol`s. - -Most common usage: -```js -var trimEnd = require('string.prototype.trimend'); - -assert(trimEnd(' \t\na \t\n') === 'a \t\n'); - -if (!String.prototype.trimEnd) { - trimEnd.shim(); -} - -assert(trimEnd(' \t\na \t\n ') === ' \t\na \t\n '.trimEnd()); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.com/package/string.prototype.trimend -[npm-version-svg]: https://vb.teelaun.ch/es-shims/String.prototype.trimEnd.svg -[deps-svg]: https://david-dm.org/es-shims/String.prototype.trimEnd.svg -[deps-url]: https://david-dm.org/es-shims/String.prototype.trimEnd -[dev-deps-svg]: https://david-dm.org/es-shims/String.prototype.trimEnd/dev-status.svg -[dev-deps-url]: https://david-dm.org/es-shims/String.prototype.trimEnd#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/string.prototype.trimend.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/string.prototype.trimend.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/string.prototype.trimend.svg -[downloads-url]: https://npm-stat.com/charts.html?package=string.prototype.trimend diff --git a/node_modules/string.prototype.trimend/auto.js b/node_modules/string.prototype.trimend/auto.js deleted file mode 100644 index 8ebf606..0000000 --- a/node_modules/string.prototype.trimend/auto.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -require('./shim')(); diff --git a/node_modules/string.prototype.trimend/implementation.js b/node_modules/string.prototype.trimend/implementation.js deleted file mode 100644 index a14a7fc..0000000 --- a/node_modules/string.prototype.trimend/implementation.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $replace = callBound('String.prototype.replace'); - -/* eslint-disable no-control-regex */ -var endWhitespace = /[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*$/; -/* eslint-enable no-control-regex */ - -module.exports = function trimEnd() { - return $replace(this, endWhitespace, ''); -}; diff --git a/node_modules/string.prototype.trimend/index.js b/node_modules/string.prototype.trimend/index.js deleted file mode 100644 index 31f6bf4..0000000 --- a/node_modules/string.prototype.trimend/index.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBind = require('call-bind'); -var define = require('define-properties'); - -var implementation = require('./implementation'); -var getPolyfill = require('./polyfill'); -var shim = require('./shim'); - -var bound = callBind(getPolyfill()); - -define(bound, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = bound; diff --git a/node_modules/string.prototype.trimend/package.json b/node_modules/string.prototype.trimend/package.json deleted file mode 100644 index d2e8a4a..0000000 --- a/node_modules/string.prototype.trimend/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/string.prototype.trimend/polyfill.js b/node_modules/string.prototype.trimend/polyfill.js deleted file mode 100644 index 0fa4f70..0000000 --- a/node_modules/string.prototype.trimend/polyfill.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var implementation = require('./implementation'); - -module.exports = function getPolyfill() { - if (!String.prototype.trimEnd && !String.prototype.trimRight) { - return implementation; - } - var zeroWidthSpace = '\u200b'; - var trimmed = zeroWidthSpace.trimEnd ? zeroWidthSpace.trimEnd() : zeroWidthSpace.trimRight(); - if (trimmed !== zeroWidthSpace) { - return implementation; - } - return String.prototype.trimEnd || String.prototype.trimRight; -}; diff --git a/node_modules/string.prototype.trimend/shim.js b/node_modules/string.prototype.trimend/shim.js deleted file mode 100644 index 5a8f477..0000000 --- a/node_modules/string.prototype.trimend/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var define = require('define-properties'); -var getPolyfill = require('./polyfill'); - -module.exports = function shimTrimEnd() { - var polyfill = getPolyfill(); - define( - String.prototype, - { trimEnd: polyfill }, - { trimEnd: function () { return String.prototype.trimEnd !== polyfill; } } - ); - return polyfill; -}; diff --git a/node_modules/string.prototype.trimend/test/implementation.js b/node_modules/string.prototype.trimend/test/implementation.js deleted file mode 100644 index 7fdf95b..0000000 --- a/node_modules/string.prototype.trimend/test/implementation.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var implementation = require('../implementation'); -var callBind = require('call-bind'); -var test = require('tape'); -var hasStrictMode = require('has-strict-mode')(); -var runTests = require('./tests'); - -test('as a function', function (t) { - t.test('bad array/this value', { skip: !hasStrictMode }, function (st) { - /* eslint no-useless-call: 0 */ - st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object'); - st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(callBind(implementation), t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimend/test/index.js b/node_modules/string.prototype.trimend/test/index.js deleted file mode 100644 index 2ee8f67..0000000 --- a/node_modules/string.prototype.trimend/test/index.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -var trimEnd = require('../'); -var test = require('tape'); -var runTests = require('./tests'); - -test('as a function', function (t) { - t.test('bad array/this value', function (st) { - st['throws'](function () { trimEnd(undefined, 'a'); }, TypeError, 'undefined is not an object'); - st['throws'](function () { trimEnd(null, 'a'); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(trimEnd, t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimend/test/shimmed.js b/node_modules/string.prototype.trimend/test/shimmed.js deleted file mode 100644 index 1a01ceb..0000000 --- a/node_modules/string.prototype.trimend/test/shimmed.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -require('../auto'); - -var runTests = require('./tests'); - -var test = require('tape'); -var defineProperties = require('define-properties'); -var callBind = require('call-bind'); -var isEnumerable = Object.prototype.propertyIsEnumerable; -var functionsHaveNames = require('functions-have-names')(); - -test('shimmed', function (t) { - t.equal(String.prototype.trimEnd.length, 0, 'String#trimEnd has a length of 0'); - t.test('Function name', { skip: !functionsHaveNames }, function (st) { - st.equal((/^(?:trimRight|trimEnd)$/).test(String.prototype.trimEnd.name), true, 'String#trimEnd has name "trimRight" or "trimEnd"'); - st.end(); - }); - - t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) { - et.equal(false, isEnumerable.call(String.prototype, 'trimEnd'), 'String#trimEnd is not enumerable'); - et.end(); - }); - - var supportsStrictMode = (function () { return typeof this === 'undefined'; }()); - - t.test('bad string/this value', { skip: !supportsStrictMode }, function (st) { - st['throws'](function () { return String.prototype.trimEnd.call(undefined, 'a'); }, TypeError, 'undefined is not an object'); - st['throws'](function () { return String.prototype.trimEnd.call(null, 'a'); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(callBind(String.prototype.trimEnd), t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimend/test/tests.js b/node_modules/string.prototype.trimend/test/tests.js deleted file mode 100644 index ce00554..0000000 --- a/node_modules/string.prototype.trimend/test/tests.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -module.exports = function (trimEnd, t) { - t.test('normal cases', function (st) { - st.equal(trimEnd(' \t\na \t\n'), ' \t\na', 'strips whitespace off the left side'); - st.equal(trimEnd('a'), 'a', 'noop when no whitespace'); - - var allWhitespaceChars = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - st.equal(trimEnd(allWhitespaceChars + 'a' + allWhitespaceChars), allWhitespaceChars + 'a', 'all expected whitespace chars are trimmed'); - - st.end(); - }); - - // see https://codeblog.jonskeet.uk/2014/12/01/when-is-an-identifier-not-an-identifier-attack-of-the-mongolian-vowel-separator/ - var mongolianVowelSeparator = '\u180E'; - t.test('unicode >= 4 && < 6.3', { skip: !(/^\s$/).test(mongolianVowelSeparator) }, function (st) { - st.equal(trimEnd(mongolianVowelSeparator + 'a' + mongolianVowelSeparator), mongolianVowelSeparator + 'a', 'mongolian vowel separator is whitespace'); - st.end(); - }); - - t.test('zero-width spaces', function (st) { - var zeroWidth = '\u200b'; - st.equal(trimEnd(zeroWidth), zeroWidth, 'zero width space does not trim'); - st.end(); - }); -}; diff --git a/node_modules/string.prototype.trimstart/.editorconfig b/node_modules/string.prototype.trimstart/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/string.prototype.trimstart/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/string.prototype.trimstart/.eslintignore b/node_modules/string.prototype.trimstart/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/string.prototype.trimstart/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/string.prototype.trimstart/.eslintrc b/node_modules/string.prototype.trimstart/.eslintrc deleted file mode 100644 index 54af451..0000000 --- a/node_modules/string.prototype.trimstart/.eslintrc +++ /dev/null @@ -1,15 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "overrides": [ - { - "files": "test/**", - "rules": { - "id-length": 0, - "no-invalid-this": 1, - }, - }, - ], -} diff --git a/node_modules/string.prototype.trimstart/.nycrc b/node_modules/string.prototype.trimstart/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/node_modules/string.prototype.trimstart/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/string.prototype.trimstart/CHANGELOG.md b/node_modules/string.prototype.trimstart/CHANGELOG.md deleted file mode 100644 index f740ecd..0000000 --- a/node_modules/string.prototype.trimstart/CHANGELOG.md +++ /dev/null @@ -1,74 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.4](https://github.com/es-shims/String.prototype.trimStart/compare/v1.0.3...v1.0.4) - 2021-02-23 - -### Commits - -- [meta] do not publish github action workflow files [`9c434ec`](https://github.com/es-shims/String.prototype.trimStart/commit/9c434eceb50141cf36e8e65f514226b0b547b568) -- [readme] remove travis badge [`7843160`](https://github.com/es-shims/String.prototype.trimStart/commit/7843160a3e8feaa2213feb0da9c5ad7d9bf21b59) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `functions-have-names`, `has-strict-mode`, `tape` [`8b52646`](https://github.com/es-shims/String.prototype.trimStart/commit/8b52646510aea20473da5491fe0876117a2251b1) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `tape` [`badeda2`](https://github.com/es-shims/String.prototype.trimStart/commit/badeda2b01d2e266e4d1c2e7dc0e4fca0f066f3e) -- [Tests] increase coverage [`bf8777d`](https://github.com/es-shims/String.prototype.trimStart/commit/bf8777d54c4b05c093559021cfaf0670306120f8) -- [actions] update workflows [`61be1c6`](https://github.com/es-shims/String.prototype.trimStart/commit/61be1c649ae859faa40286e57fa22cef65ae1229) -- [meta] gitignore coverage output [`c9c98d7`](https://github.com/es-shims/String.prototype.trimStart/commit/c9c98d75d7708e8906a39b55a0ad7a0ed6a9e4b0) -- [Deps] update `call-bind` [`c8645e8`](https://github.com/es-shims/String.prototype.trimStart/commit/c8645e89f9ace7681660ba66c724cf00c798f3d4) - -## [v1.0.3](https://github.com/es-shims/String.prototype.trimStart/compare/v1.0.2...v1.0.3) - 2020-11-21 - -### Commits - -- [Tests] migrate tests to Github Actions [`fbc7519`](https://github.com/es-shims/String.prototype.trimStart/commit/fbc7519cce2b5bfff9fe28dea96fb5f6f82e19fd) -- [Tests] add `implementation` test; run `es-shim-api` in postlint; use `tape` runner [`3c9330b`](https://github.com/es-shims/String.prototype.trimStart/commit/3c9330be9ad02497f78ff0fd94b7c918c3a4bc21) -- [Tests] run `nyc` on all tests [`52229ca`](https://github.com/es-shims/String.prototype.trimStart/commit/52229ca28426be516c3826743e417be85144673e) -- [Deps] replace `es-abstract` with `call-bind` [`5e5068d`](https://github.com/es-shims/String.prototype.trimStart/commit/5e5068d2cc85d0a6f2a441ea984521ee70470537) -- [Dev Deps] update `eslint`, `aud`; add `safe-publish-latest` [`42a853e`](https://github.com/es-shims/String.prototype.trimStart/commit/42a853e2cb419378085098cb66e421ee94eed3ab) - -## [v1.0.2](https://github.com/es-shims/String.prototype.trimStart/compare/v1.0.1...v1.0.2) - 2020-10-20 - -### Commits - -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`d032b38`](https://github.com/es-shims/String.prototype.trimStart/commit/d032b38aac7e9ebae7bf5c4195492c508af2815a) -- [actions] add "Allow Edits" workflow [`83e30ba`](https://github.com/es-shims/String.prototype.trimStart/commit/83e30bac01572b6dba6358fec6e339c55dc431c9) -- [Deps] update `es-abstract` [`707d85d`](https://github.com/es-shims/String.prototype.trimStart/commit/707d85d827d9c537a144f199fdecc47edaade1cd) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`096c6d9`](https://github.com/es-shims/String.prototype.trimStart/commit/096c6d9dc142286c750da7024e7a88ed698a4953) - -## [v1.0.1](https://github.com/es-shims/String.prototype.trimStart/compare/v1.0.0...v1.0.1) - 2020-04-09 - -### Commits - -- [meta] add some missing repo metadata [`3385da3`](https://github.com/es-shims/String.prototype.trimStart/commit/3385da3bbb87819de11a869981ca954887a6a092) -- [Dev Deps] update `auto-changelog` [`879377d`](https://github.com/es-shims/String.prototype.trimStart/commit/879377df9c1ff97d8f0b3eac800683f1d68a304c) - -## [v1.0.0](https://github.com/es-shims/String.prototype.trimStart/compare/v0.1.0...v1.0.0) - 2020-03-30 - -### Commits - -- [Breaking] convert to es-shim API [`970922c`](https://github.com/es-shims/String.prototype.trimStart/commit/970922c494c78b033c351c77f61a8aefd49c30d9) -- [meta] add `auto-changelog` [`ff30c09`](https://github.com/es-shims/String.prototype.trimStart/commit/ff30c0996289113d2c3dbbfca7e280ff151bf36d) -- [meta] update readme [`816291d`](https://github.com/es-shims/String.prototype.trimStart/commit/816291d01e0eaf85da9b732c179cfb2454bd282e) -- [Tests] add `npm run lint` [`3341104`](https://github.com/es-shims/String.prototype.trimStart/commit/3341104450bc6ac84f3b70a6d6c0fbeb4df5131e) -- Only apps should have lockfiles [`f008df7`](https://github.com/es-shims/String.prototype.trimStart/commit/f008df73fbf3dcf8dfad6d5cad86de7050d0ae09) -- [actions] add automatic rebasing / merge commit blocking [`e5ba35c`](https://github.com/es-shims/String.prototype.trimStart/commit/e5ba35c1a14fcf652336cc9c4be49d232981161e) -- [Tests] use shared travis-ci configs [`46516b1`](https://github.com/es-shims/String.prototype.trimStart/commit/46516b137a8c07ed5807d751bd61199688ef9baa) -- [meta] add `funding` field [`34ae856`](https://github.com/es-shims/String.prototype.trimStart/commit/34ae8563f115bd4a5e5f5d2d786c0fa0a420fa2a) -- [meta] fix non-updated version number [`3b0e262`](https://github.com/es-shims/String.prototype.trimStart/commit/3b0e262e2f4eeee2e1b99fe890f8ca17bed8f2fd) - -## [v0.1.0](https://github.com/es-shims/String.prototype.trimStart/compare/v0.0.1...v0.1.0) - 2017-12-19 - -### Commits - -- updated README [`ab2f6ac`](https://github.com/es-shims/String.prototype.trimStart/commit/ab2f6ac8813ed336a0f2dc3aa8cdb52f4d52814b) - -## v0.0.1 - 2017-12-19 - -### Commits - -- finished polyfill [`1c7ca20`](https://github.com/es-shims/String.prototype.trimStart/commit/1c7ca2043e3383b6e743870bc622ad4a38477147) -- created README file: [`192ecad`](https://github.com/es-shims/String.prototype.trimStart/commit/192ecaded4e0d5baaa65cd41e590b8d837520d44) -- Initial commit [`14044f8`](https://github.com/es-shims/String.prototype.trimStart/commit/14044f8a0fe1d155fe7403a8327bdbaf135da2d6) -- updated README [`d4fb6be`](https://github.com/es-shims/String.prototype.trimStart/commit/d4fb6be15455dd68fc4b306bee1d30dd4afc96e7) diff --git a/node_modules/string.prototype.trimstart/LICENSE b/node_modules/string.prototype.trimstart/LICENSE deleted file mode 100644 index e48a1b5..0000000 --- a/node_modules/string.prototype.trimstart/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2017 Khaled Al-Ansari - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/string.prototype.trimstart/README.md b/node_modules/string.prototype.trimstart/README.md deleted file mode 100644 index 682408b..0000000 --- a/node_modules/string.prototype.trimstart/README.md +++ /dev/null @@ -1,40 +0,0 @@ -# String.prototype.trimStart [![Version Badge][npm-version-svg]][package-url] - -[![dependency status][deps-svg]][deps-url] -[![dev dependency status][dev-deps-svg]][dev-deps-url] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][npm-badge-png]][package-url] - -An ES2019-spec-compliant `String.prototype.trimStart` shim. Invoke its "shim" method to shim `String.prototype.trimStart` if it is unavailable. - -This package implements the [es-shim API](https://github.com/es-shims/api) interface. It works in an ES3-supported environment and complies with the [spec](https://www.ecma-international.org/ecma-262/6.0/#sec-object.assign). In an ES6 environment, it will also work properly with `Symbol`s. - -Most common usage: -```js -var trimStart = require('string.prototype.trimstart'); - -assert(trimStart(' \t\na \t\n') === 'a \t\n'); - -if (!String.prototype.trimStart) { - trimStart.shim(); -} - -assert(trimStart(' \t\na \t\n') === ' \t\na \t\n'.trimStart()); -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[package-url]: https://npmjs.com/package/string.prototype.trimstart -[npm-version-svg]: https://vb.teelaun.ch/es-shims/String.prototype.trimStart.svg -[deps-svg]: https://david-dm.org/es-shims/String.prototype.trimStart.svg -[deps-url]: https://david-dm.org/es-shims/String.prototype.trimStart -[dev-deps-svg]: https://david-dm.org/es-shims/String.prototype.trimStart/dev-status.svg -[dev-deps-url]: https://david-dm.org/es-shims/String.prototype.trimStart#info=devDependencies -[npm-badge-png]: https://nodei.co/npm/string.prototype.trimstart.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/string.prototype.trimstart.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/string.prototype.trimstart.svg -[downloads-url]: https://npm-stat.com/charts.html?package=string.prototype.trimstart diff --git a/node_modules/string.prototype.trimstart/auto.js b/node_modules/string.prototype.trimstart/auto.js deleted file mode 100644 index 8ebf606..0000000 --- a/node_modules/string.prototype.trimstart/auto.js +++ /dev/null @@ -1,3 +0,0 @@ -'use strict'; - -require('./shim')(); diff --git a/node_modules/string.prototype.trimstart/implementation.js b/node_modules/string.prototype.trimstart/implementation.js deleted file mode 100644 index 862aa0f..0000000 --- a/node_modules/string.prototype.trimstart/implementation.js +++ /dev/null @@ -1,12 +0,0 @@ -'use strict'; - -var callBound = require('call-bind/callBound'); -var $replace = callBound('String.prototype.replace'); - -/* eslint-disable no-control-regex */ -var startWhitespace = /^[\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u180E\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF]*/; -/* eslint-enable no-control-regex */ - -module.exports = function trimStart() { - return $replace(this, startWhitespace, ''); -}; diff --git a/node_modules/string.prototype.trimstart/index.js b/node_modules/string.prototype.trimstart/index.js deleted file mode 100644 index 31f6bf4..0000000 --- a/node_modules/string.prototype.trimstart/index.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var callBind = require('call-bind'); -var define = require('define-properties'); - -var implementation = require('./implementation'); -var getPolyfill = require('./polyfill'); -var shim = require('./shim'); - -var bound = callBind(getPolyfill()); - -define(bound, { - getPolyfill: getPolyfill, - implementation: implementation, - shim: shim -}); - -module.exports = bound; diff --git a/node_modules/string.prototype.trimstart/package.json b/node_modules/string.prototype.trimstart/package.json deleted file mode 100644 index b646227..0000000 --- a/node_modules/string.prototype.trimstart/package.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "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" - } -} diff --git a/node_modules/string.prototype.trimstart/polyfill.js b/node_modules/string.prototype.trimstart/polyfill.js deleted file mode 100644 index 9adaccd..0000000 --- a/node_modules/string.prototype.trimstart/polyfill.js +++ /dev/null @@ -1,15 +0,0 @@ -'use strict'; - -var implementation = require('./implementation'); - -module.exports = function getPolyfill() { - if (!String.prototype.trimStart && !String.prototype.trimLeft) { - return implementation; - } - var zeroWidthSpace = '\u200b'; - var trimmed = zeroWidthSpace.trimStart ? zeroWidthSpace.trimStart() : zeroWidthSpace.trimLeft(); - if (trimmed !== zeroWidthSpace) { - return implementation; - } - return String.prototype.trimStart || String.prototype.trimLeft; -}; diff --git a/node_modules/string.prototype.trimstart/shim.js b/node_modules/string.prototype.trimstart/shim.js deleted file mode 100644 index 5ea6dfd..0000000 --- a/node_modules/string.prototype.trimstart/shim.js +++ /dev/null @@ -1,14 +0,0 @@ -'use strict'; - -var define = require('define-properties'); -var getPolyfill = require('./polyfill'); - -module.exports = function shimTrimStart() { - var polyfill = getPolyfill(); - define( - String.prototype, - { trimStart: polyfill }, - { trimStart: function () { return String.prototype.trimStart !== polyfill; } } - ); - return polyfill; -}; diff --git a/node_modules/string.prototype.trimstart/test/implementation.js b/node_modules/string.prototype.trimstart/test/implementation.js deleted file mode 100644 index 7fdf95b..0000000 --- a/node_modules/string.prototype.trimstart/test/implementation.js +++ /dev/null @@ -1,20 +0,0 @@ -'use strict'; - -var implementation = require('../implementation'); -var callBind = require('call-bind'); -var test = require('tape'); -var hasStrictMode = require('has-strict-mode')(); -var runTests = require('./tests'); - -test('as a function', function (t) { - t.test('bad array/this value', { skip: !hasStrictMode }, function (st) { - /* eslint no-useless-call: 0 */ - st['throws'](function () { implementation.call(undefined); }, TypeError, 'undefined is not an object'); - st['throws'](function () { implementation.call(null); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(callBind(implementation), t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimstart/test/index.js b/node_modules/string.prototype.trimstart/test/index.js deleted file mode 100644 index baff6b5..0000000 --- a/node_modules/string.prototype.trimstart/test/index.js +++ /dev/null @@ -1,18 +0,0 @@ -'use strict'; - -var trimStart = require('../'); -var test = require('tape'); - -var runTests = require('./tests'); - -test('as a function', function (t) { - t.test('bad array/this value', function (st) { - st['throws'](function () { trimStart(undefined, 'a'); }, TypeError, 'undefined is not an object'); - st['throws'](function () { trimStart(null, 'a'); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(trimStart, t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimstart/test/shimmed.js b/node_modules/string.prototype.trimstart/test/shimmed.js deleted file mode 100644 index bfdbe48..0000000 --- a/node_modules/string.prototype.trimstart/test/shimmed.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -require('../auto'); - -var runTests = require('./tests'); - -var test = require('tape'); -var defineProperties = require('define-properties'); -var callBind = require('call-bind'); -var isEnumerable = Object.prototype.propertyIsEnumerable; -var functionsHaveNames = require('functions-have-names')(); - -test('shimmed', function (t) { - t.equal(String.prototype.trimStart.length, 0, 'String#trimStart has a length of 0'); - t.test('Function name', { skip: !functionsHaveNames }, function (st) { - st.equal((/^(?:trimLeft|trimStart)$/).test(String.prototype.trimStart.name), true, 'String#trimStart has name "trimLeft" or "trimStart"'); - st.end(); - }); - - t.test('enumerability', { skip: !defineProperties.supportsDescriptors }, function (et) { - et.equal(false, isEnumerable.call(String.prototype, 'trimStart'), 'String#trimStart is not enumerable'); - et.end(); - }); - - var supportsStrictMode = (function () { return typeof this === 'undefined'; }()); - - t.test('bad string/this value', { skip: !supportsStrictMode }, function (st) { - st['throws'](function () { return String.prototype.trimStart.call(undefined, 'a'); }, TypeError, 'undefined is not an object'); - st['throws'](function () { return String.prototype.trimStart.call(null, 'a'); }, TypeError, 'null is not an object'); - st.end(); - }); - - runTests(callBind(String.prototype.trimStart), t); - - t.end(); -}); diff --git a/node_modules/string.prototype.trimstart/test/tests.js b/node_modules/string.prototype.trimstart/test/tests.js deleted file mode 100644 index a515158..0000000 --- a/node_modules/string.prototype.trimstart/test/tests.js +++ /dev/null @@ -1,26 +0,0 @@ -'use strict'; - -module.exports = function (trimStart, t) { - t.test('normal cases', function (st) { - st.equal(trimStart(' \t\na \t\n'), 'a \t\n', 'strips whitespace off the left side'); - st.equal(trimStart('a'), 'a', 'noop when no whitespace'); - - var allWhitespaceChars = '\x09\x0A\x0B\x0C\x0D\x20\xA0\u1680\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200A\u202F\u205F\u3000\u2028\u2029\uFEFF'; - st.equal(trimStart(allWhitespaceChars + 'a' + allWhitespaceChars), 'a' + allWhitespaceChars, 'all expected whitespace chars are trimmed'); - - st.end(); - }); - - // see https://codeblog.jonskeet.uk/2014/12/01/when-is-an-identifier-not-an-identifier-attack-of-the-mongolian-vowel-separator/ - var mongolianVowelSeparator = '\u180E'; - t.test('unicode >= 4 && < 6.3', { skip: !(/^\s$/).test(mongolianVowelSeparator) }, function (st) { - st.equal(trimStart(mongolianVowelSeparator + 'a' + mongolianVowelSeparator), 'a' + mongolianVowelSeparator, 'mongolian vowel separator is whitespace'); - st.end(); - }); - - t.test('zero-width spaces', function (st) { - var zeroWidth = '\u200b'; - st.equal(trimStart(zeroWidth), zeroWidth, 'zero width space does not trim'); - st.end(); - }); -}; diff --git a/node_modules/supports-preserve-symlinks-flag/.eslintrc b/node_modules/supports-preserve-symlinks-flag/.eslintrc new file mode 100644 index 0000000..346ffec --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/.eslintrc @@ -0,0 +1,14 @@ +{ + "root": true, + + "extends": "@ljharb", + + "env": { + "browser": true, + "node": true, + }, + + "rules": { + "id-length": "off", + }, +} diff --git a/node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml b/node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml new file mode 100644 index 0000000..e8d64f3 --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/supports-preserve-symlink-flag +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/is-bigint/.nycrc b/node_modules/supports-preserve-symlinks-flag/.nycrc similarity index 100% rename from node_modules/is-bigint/.nycrc rename to node_modules/supports-preserve-symlinks-flag/.nycrc diff --git a/node_modules/supports-preserve-symlinks-flag/CHANGELOG.md b/node_modules/supports-preserve-symlinks-flag/CHANGELOG.md new file mode 100644 index 0000000..61f607f --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/CHANGELOG.md @@ -0,0 +1,22 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## v1.0.0 - 2022-01-02 + +### Commits + +- Tests [`e2f59ad`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/e2f59ad74e2ae0f5f4899fcde6a6f693ab7cc074) +- Initial commit [`dc222aa`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/dc222aad3c0b940d8d3af1ca9937d108bd2dc4b9) +- [meta] do not publish workflow files [`5ef77f7`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/5ef77f7cb6946d16ee38672be9ec0f1bbdf63262) +- npm init [`992b068`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/992b068503a461f7e8676f40ca2aab255fd8d6ff) +- read me [`6c9afa9`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/6c9afa9fabc8eaf0814aaed6dd01e6df0931b76d) +- Initial implementation [`2f98925`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/2f9892546396d4ab0ad9f1ff83e76c3f01234ae8) +- [meta] add `auto-changelog` [`6c476ae`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/6c476ae1ed7ce68b0480344f090ac2844f35509d) +- [Dev Deps] add `eslint`, `@ljharb/eslint-config` [`d0fffc8`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/d0fffc886d25fba119355520750a909d64da0087) +- Only apps should have lockfiles [`ab318ed`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/ab318ed7ae62f6c2c0e80a50398d40912afd8f69) +- [meta] add `safe-publish-latest` [`2bb23b3`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/2bb23b3ebab02dc4135c4cdf0217db82835b9fca) +- [meta] add `sideEffects` flag [`600223b`](https://github.com/inspect-js/node-supports-preserve-symlinks-flag/commit/600223ba24f30779f209d9097721eff35ed62741) diff --git a/node_modules/supports-preserve-symlinks-flag/LICENSE b/node_modules/supports-preserve-symlinks-flag/LICENSE new file mode 100644 index 0000000..2e7b9a3 --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2022 Inspect JS + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/node_modules/supports-preserve-symlinks-flag/README.md b/node_modules/supports-preserve-symlinks-flag/README.md new file mode 100644 index 0000000..eb05b12 --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/README.md @@ -0,0 +1,42 @@ +# node-supports-preserve-symlinks-flag [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +Determine if the current node version supports the `--preserve-symlinks` flag. + +## Example + +```js +var supportsPreserveSymlinks = require('node-supports-preserve-symlinks-flag'); +var assert = require('assert'); + +assert.equal(supportsPreserveSymlinks, null); // in a browser +assert.equal(supportsPreserveSymlinks, false); // in node < v6.2 +assert.equal(supportsPreserveSymlinks, true); // in node v6.2+ +``` + +## Tests +Simply clone the repo, `npm install`, and run `npm test` + +[package-url]: https://npmjs.org/package/node-supports-preserve-symlinks-flag +[npm-version-svg]: https://versionbadg.es/inspect-js/node-supports-preserve-symlinks-flag.svg +[deps-svg]: https://david-dm.org/inspect-js/node-supports-preserve-symlinks-flag.svg +[deps-url]: https://david-dm.org/inspect-js/node-supports-preserve-symlinks-flag +[dev-deps-svg]: https://david-dm.org/inspect-js/node-supports-preserve-symlinks-flag/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/node-supports-preserve-symlinks-flag#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/node-supports-preserve-symlinks-flag.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/node-supports-preserve-symlinks-flag.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/node-supports-preserve-symlinks-flag.svg +[downloads-url]: https://npm-stat.com/charts.html?package=node-supports-preserve-symlinks-flag +[codecov-image]: https://codecov.io/gh/inspect-js/node-supports-preserve-symlinks-flag/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/node-supports-preserve-symlinks-flag/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/node-supports-preserve-symlinks-flag +[actions-url]: https://github.com/inspect-js/node-supports-preserve-symlinks-flag/actions diff --git a/node_modules/supports-preserve-symlinks-flag/browser.js b/node_modules/supports-preserve-symlinks-flag/browser.js new file mode 100644 index 0000000..087be1f --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/browser.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = null; diff --git a/node_modules/supports-preserve-symlinks-flag/index.js b/node_modules/supports-preserve-symlinks-flag/index.js new file mode 100644 index 0000000..86fd5d3 --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/index.js @@ -0,0 +1,9 @@ +'use strict'; + +module.exports = ( +// node 12+ + process.allowedNodeEnvironmentFlags && process.allowedNodeEnvironmentFlags.has('--preserve-symlinks') +) || ( +// node v6.2 - v11 + String(module.constructor._findPath).indexOf('preserveSymlinks') >= 0 // eslint-disable-line no-underscore-dangle +); diff --git a/node_modules/supports-preserve-symlinks-flag/package.json b/node_modules/supports-preserve-symlinks-flag/package.json new file mode 100644 index 0000000..56edadc --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/package.json @@ -0,0 +1,70 @@ +{ + "name": "supports-preserve-symlinks-flag", + "version": "1.0.0", + "description": "Determine if the current node version supports the `--preserve-symlinks` flag.", + "main": "./index.js", + "browser": "./browser.js", + "exports": { + ".": [ + { + "browser": "./browser.js", + "default": "./index.js" + }, + "./index.js" + ], + "./package.json": "./package.json" + }, + "sideEffects": false, + "scripts": { + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", + "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/node-supports-preserve-symlinks-flag.git" + }, + "keywords": [ + "node", + "flag", + "symlink", + "symlinks", + "preserve-symlinks" + ], + "author": "Jordan Harband ", + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "license": "MIT", + "bugs": { + "url": "https://github.com/inspect-js/node-supports-preserve-symlinks-flag/issues" + }, + "homepage": "https://github.com/inspect-js/node-supports-preserve-symlinks-flag#readme", + "devDependencies": { + "@ljharb/eslint-config": "^20.1.0", + "aud": "^1.1.5", + "auto-changelog": "^2.3.0", + "eslint": "^8.6.0", + "nyc": "^10.3.2", + "safe-publish-latest": "^2.0.0", + "semver": "^6.3.0", + "tape": "^5.4.0" + }, + "engines": { + "node": ">= 0.4" + }, + "auto-changelog": { + "output": "CHANGELOG.md", + "template": "keepachangelog", + "unreleased": false, + "commitLimit": false, + "backfillLimit": false, + "hideCredit": true + } +} diff --git a/node_modules/supports-preserve-symlinks-flag/test/index.js b/node_modules/supports-preserve-symlinks-flag/test/index.js new file mode 100644 index 0000000..9938d67 --- /dev/null +++ b/node_modules/supports-preserve-symlinks-flag/test/index.js @@ -0,0 +1,29 @@ +'use strict'; + +var test = require('tape'); +var semver = require('semver'); + +var supportsPreserveSymlinks = require('../'); +var browser = require('../browser'); + +test('supportsPreserveSymlinks', function (t) { + t.equal(typeof supportsPreserveSymlinks, 'boolean', 'is a boolean'); + + t.equal(browser, null, 'browser file is `null`'); + t.equal( + supportsPreserveSymlinks, + null, + 'in a browser, is null', + { skip: typeof window === 'undefined' } + ); + + var expected = semver.satisfies(process.version, '>= 6.2'); + t.equal( + supportsPreserveSymlinks, + expected, + 'is true in node v6.2+, false otherwise (actual: ' + supportsPreserveSymlinks + ', expected ' + expected + ')', + { skip: typeof window !== 'undefined' } + ); + + t.end(); +}); diff --git a/node_modules/unbox-primitive/.editorconfig b/node_modules/unbox-primitive/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/unbox-primitive/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/unbox-primitive/.eslintignore b/node_modules/unbox-primitive/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/unbox-primitive/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/unbox-primitive/.github/FUNDING.yml b/node_modules/unbox-primitive/.github/FUNDING.yml deleted file mode 100644 index 30cbba9..0000000 --- a/node_modules/unbox-primitive/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/unbox-primitive -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/unbox-primitive/.nycrc b/node_modules/unbox-primitive/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/node_modules/unbox-primitive/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/unbox-primitive/CHANGELOG.md b/node_modules/unbox-primitive/CHANGELOG.md deleted file mode 100644 index 4da114c..0000000 --- a/node_modules/unbox-primitive/CHANGELOG.md +++ /dev/null @@ -1,47 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.1](https://github.com/ljharb/unbox-primitive/compare/v1.0.0...v1.0.1) - 2021-03-25 - -### Commits - -- [Tests] use shared travis-ci configs [`f977e5f`](https://github.com/ljharb/unbox-primitive/commit/f977e5f8fa532dbc519bd78a48cf4b81c14720fe) -- [Tests] migrate tests to Github Actions [`b89def6`](https://github.com/ljharb/unbox-primitive/commit/b89def60908a236aa1b5c756426f7cc61cf458dd) -- [meta] do not publish github action workflow files [`325d1f1`](https://github.com/ljharb/unbox-primitive/commit/325d1f1836cecbe57ee148545de5aefcbe7a7dce) -- readme [`810cd70`](https://github.com/ljharb/unbox-primitive/commit/810cd70f7b3c670cd55eae64466c89595175ee2a) -- [Tests] run `nyc` on all tests; use `tape` runner [`2f5fb08`](https://github.com/ljharb/unbox-primitive/commit/2f5fb08930c8f8e5e069ac61891dc9bd76cb762b) -- [meta] add `auto-changelog` [`03ed375`](https://github.com/ljharb/unbox-primitive/commit/03ed3759284493f19323eb0500f726d0851fc085) -- [actions] add automatic rebasing / merge commit blocking [`6dec48d`](https://github.com/ljharb/unbox-primitive/commit/6dec48daa357fa79a5cac1add9ca33f7b56276cc) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `object-is`, `tape` [`528ed88`](https://github.com/ljharb/unbox-primitive/commit/528ed8826664b67f7eaf1fe7e2031c063b2d315f) -- [actions] check out the entire repo [`5095b29`](https://github.com/ljharb/unbox-primitive/commit/5095b2981f44a78b3f9bfaa1a526f17a6823e383) -- [actions] add "Allow Edits" workflow [`5aa26d7`](https://github.com/ljharb/unbox-primitive/commit/5aa26d7f0c32e0e78ba4bf3e5f9abb5478fd97fa) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `object-is`, `safe-publish-latest`, `tape` [`afc18c6`](https://github.com/ljharb/unbox-primitive/commit/afc18c6cb59cbb6b514e0d8004c6fd264e2a27eb) -- [readme] remove travis badge [`a025899`](https://github.com/ljharb/unbox-primitive/commit/a0258997a21604e1266840e6d167f0a870966e9b) -- [Dev Deps] update `auto-changelog` [`9219a32`](https://github.com/ljharb/unbox-primitive/commit/9219a32844b2ce3ed0a7ea12a5910a3e92424e4e) -- [readme] Fix missing paren in example [`73f5a33`](https://github.com/ljharb/unbox-primitive/commit/73f5a3340ca1ab6c227ed4632117d816d5e35317) -- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`e450acc`](https://github.com/ljharb/unbox-primitive/commit/e450accb54ab452f240768a5f0a98e5887b0ba8c) -- [Deps] update `has-bigints`, `has-symbols`, `which-boxed-primitive` [`a4279b5`](https://github.com/ljharb/unbox-primitive/commit/a4279b504732002074e5dcb9c5509038d605f563) -- [Dev Deps] update `auto-changelog`, `in-publish`, `tape` [`b351548`](https://github.com/ljharb/unbox-primitive/commit/b351548d31789c0d0af4c3bce55c2bdefe51b40f) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`f600382`](https://github.com/ljharb/unbox-primitive/commit/f600382db83025270969354ac52a72aadb0a7ffa) -- [readme] fix travis links [`4d02fa9`](https://github.com/ljharb/unbox-primitive/commit/4d02fa9a4990812b048f8aefe6e46be80b68beef) -- [Dev Deps] update `auto-changelog`; add `aud` [`07e74a3`](https://github.com/ljharb/unbox-primitive/commit/07e74a3ca90688122593095849757e3c05c46db0) -- [meta] add `funding` field [`7ca4bd7`](https://github.com/ljharb/unbox-primitive/commit/7ca4bd71196e90a2fc9c7cb0ef4e30f949d5a853) -- [Tests] only audit prod deps [`47d8d5f`](https://github.com/ljharb/unbox-primitive/commit/47d8d5fbd58bf472e7e83f79ccef7e8379d06b35) -- [Deps] update `has-symbols` [`c70c15e`](https://github.com/ljharb/unbox-primitive/commit/c70c15e924191d11a271cff25bde657b0c3c3016) - -## v1.0.0 - 2019-08-10 - -### Commits - -- [Tests] add `.travis.yml` [`8c9a5ef`](https://github.com/ljharb/unbox-primitive/commit/8c9a5efdb54be4866e2884bf32cbe830788b2c2a) -- Initial commit [`feaff15`](https://github.com/ljharb/unbox-primitive/commit/feaff159eb999adc8763ff3e51d2d3d56d6164f8) -- [Tests] add tests [`3dd18d6`](https://github.com/ljharb/unbox-primitive/commit/3dd18d65748efb4af9b8ca66f8d8c5521d8f2dec) -- implementation [`472fb41`](https://github.com/ljharb/unbox-primitive/commit/472fb41d049ddee80ebf3219a5837e639a6e9341) -- npm init [`e9e426f`](https://github.com/ljharb/unbox-primitive/commit/e9e426fc90b9a3f07ffc48db75f78c414f77bc2b) -- [Tests] add linting [`139e74b`](https://github.com/ljharb/unbox-primitive/commit/139e74b94cdfd187b43b24de76c6d84af21ee467) -- [meta] create FUNDING.yml [`a9509e1`](https://github.com/ljharb/unbox-primitive/commit/a9509e122163e2b9d98af421e5c0575df36e2310) -- Only apps should have lockfiles [`b3d0834`](https://github.com/ljharb/unbox-primitive/commit/b3d0834d69dcbf4cbc1e61ccfaef05acf96cf630) diff --git a/node_modules/unbox-primitive/LICENSE b/node_modules/unbox-primitive/LICENSE deleted file mode 100644 index 3900dd7..0000000 --- a/node_modules/unbox-primitive/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/unbox-primitive/README.md b/node_modules/unbox-primitive/README.md deleted file mode 100644 index f267e33..0000000 --- a/node_modules/unbox-primitive/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# unbox-primitive [![Version Badge][2]][1] - -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Unbox a boxed JS primitive value. This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and works despite ES6 Symbol.toStringTag. - -## Example - -```js -var unboxPrimitive = require('unbox-primitive'); -var assert = require('assert'); - -assert.equal(unboxPrimitive(new Boolean(false)), false); -assert.equal(unboxPrimitive(new String('f')), 'f'); -assert.equal(unboxPrimitive(new Number(42)), 42); -const s = Symbol(); -assert.equal(unboxPrimitive(Object(s)), s); -assert.equal(unboxPrimitive(new BigInt(42)), 42n); - -// any primitive, or non-boxed-primitive object, will throw -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/unbox-primitive -[2]: https://versionbadg.es/ljharb/unbox-primitive.svg -[5]: https://david-dm.org/ljharb/unbox-primitive.svg -[6]: https://david-dm.org/ljharb/unbox-primitive -[7]: https://david-dm.org/ljharb/unbox-primitive/dev-status.svg -[8]: https://david-dm.org/ljharb/unbox-primitive#info=devDependencies -[11]: https://nodei.co/npm/unbox-primitive.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/unbox-primitive.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/unbox-primitive.svg -[downloads-url]: https://npm-stat.com/charts.html?package=unbox-primitive diff --git a/node_modules/unbox-primitive/index.js b/node_modules/unbox-primitive/index.js deleted file mode 100644 index f5e9f3b..0000000 --- a/node_modules/unbox-primitive/index.js +++ /dev/null @@ -1,39 +0,0 @@ -'use strict'; - -var whichBoxedPrimitive = require('which-boxed-primitive'); -var bind = require('function-bind'); -var hasSymbols = require('has-symbols')(); -var hasBigInts = require('has-bigints')(); - -var stringToString = bind.call(Function.call, String.prototype.toString); -var numberValueOf = bind.call(Function.call, Number.prototype.valueOf); -var booleanValueOf = bind.call(Function.call, Boolean.prototype.valueOf); -var symbolValueOf = hasSymbols && bind.call(Function.call, Symbol.prototype.valueOf); -var bigIntValueOf = hasBigInts && bind.call(Function.call, BigInt.prototype.valueOf); - -module.exports = function unboxPrimitive(value) { - var which = whichBoxedPrimitive(value); - if (typeof which !== 'string') { - throw new TypeError(which === null ? 'value is an unboxed primitive' : 'value is a non-boxed-primitive object'); - } - - if (which === 'String') { - return stringToString(value); - } - if (which === 'Number') { - return numberValueOf(value); - } - if (which === 'Boolean') { - return booleanValueOf(value); - } - if (which === 'Symbol') { - if (!hasSymbols) { - throw new EvalError('somehow this environment does not have Symbols, but you have a boxed Symbol value. Please report this!'); - } - return symbolValueOf(value); - } - if (which === 'BigInt') { - return bigIntValueOf(value); - } - throw new RangeError('unknown boxed primitive found: ' + which); -}; diff --git a/node_modules/unbox-primitive/package.json b/node_modules/unbox-primitive/package.json deleted file mode 100644 index a0555ee..0000000 --- a/node_modules/unbox-primitive/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/unbox-primitive/test/index.js b/node_modules/unbox-primitive/test/index.js deleted file mode 100644 index 73688ac..0000000 --- a/node_modules/unbox-primitive/test/index.js +++ /dev/null @@ -1,59 +0,0 @@ -'use strict'; - -var test = require('tape'); -var inspect = require('object-inspect'); -var is = require('object-is'); -var forEach = require('for-each'); -var hasSymbols = require('has-symbols')(); -var hasBigInts = require('has-bigints')(); - -var unboxPrimitive = require('..'); - -var debug = function (v, m) { return inspect(v) + ' ' + m; }; - -test('primitives', function (t) { - var primitives = [ - true, - false, - '', - 'foo', - 42, - NaN, - Infinity, - 0 - ]; - if (hasSymbols) { - primitives.push(Symbol(), Symbol.iterator, Symbol('f')); - } - if (hasBigInts) { - primitives.push(BigInt(42), BigInt(0)); - } - forEach(primitives, function (primitive) { - var obj = Object(primitive); - t.ok( - is(unboxPrimitive(obj), primitive), - debug(obj, 'unboxes to ' + inspect(primitive)) - ); - }); - - t.end(); -}); - -test('objects', function (t) { - var objects = [ - {}, - [], - function () {}, - /a/g, - new Date() - ]; - forEach(objects, function (object) { - t['throws']( - function () { unboxPrimitive(object); }, - TypeError, - debug(object, 'is not a primitive') - ); - }); - - t.end(); -}); diff --git a/node_modules/get-intrinsic/.eslintignore b/node_modules/url/.eslintignore similarity index 100% rename from node_modules/get-intrinsic/.eslintignore rename to node_modules/url/.eslintignore diff --git a/node_modules/url/.eslintrc b/node_modules/url/.eslintrc new file mode 100644 index 0000000..a6acd57 --- /dev/null +++ b/node_modules/url/.eslintrc @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "rules": { + "complexity": 0, + "eqeqeq": [2, "allow-null"], + "func-style": 0, + "id-length": 0, + "indent": [2, 2], + "max-depth": 0, + "max-lines": 0, + "max-lines-per-function": 0, + "max-statements": 0, + "max-statements-per-line": [2, { "max": 3 }], + "no-continue": 1, + "no-empty": 1, + "no-magic-numbers": 0, + "no-mixed-operators": 1, + "max-nested-callbacks": 0, + "no-param-reassign": 1, + "no-plusplus": 0, + "no-redeclare": 1, + "no-restricted-syntax": 1, + "no-script-url": 1, + "sort-keys": 0, + }, + + "overrides": [ + { + "files": "test/**/*", + "rules": { + "no-sequences": 1, + }, + }, + ], +} diff --git a/node_modules/url/.npmignore b/node_modules/url/.npmignore deleted file mode 100644 index ba11471..0000000 --- a/node_modules/url/.npmignore +++ /dev/null @@ -1 +0,0 @@ -test-url.js diff --git a/node_modules/is-number-object/.nycrc b/node_modules/url/.nycrc similarity index 100% rename from node_modules/is-number-object/.nycrc rename to node_modules/url/.nycrc diff --git a/node_modules/url/.travis.yml b/node_modules/url/.travis.yml deleted file mode 100644 index 16ed301..0000000 --- a/node_modules/url/.travis.yml +++ /dev/null @@ -1,7 +0,0 @@ -language: node_js -node_js: - - "0.10" -env: - global: - - secure: OgPRLCzHFh5WbjHEKlghHFW1oOreSF2JVUr3CMaFDi03ngTS2WONSw8mRn8SA6FTldiGGBx1n8orDzUw6cdkB7+tkU3G5B0M0V3vl823NaUFKgxsCM3UGDYfJb3yfAG5cj72rVZoX/ABd1fVuG4vBIlDLxsSlKQFMzUCFoyttr8= - - secure: AiZP8GHbyx83ZBhOvOxxtpNcgNHoP+vo5G1a1OYU78EHCgHg8NRyHKyCdrBnPvw6mV2BI/8frZaXAEicsHMtHMofBYn7nibNlaajBPI8AkHtYfNSc+zO+71Kwv7VOTOKKnkMEIkqhHlc6njFoH3QaBNHsgNlzzplPxaIt8vdUVk= diff --git a/node_modules/url/.zuul.yml b/node_modules/url/.zuul.yml deleted file mode 100644 index feea8b6..0000000 --- a/node_modules/url/.zuul.yml +++ /dev/null @@ -1,16 +0,0 @@ -ui: mocha-tdd -browsers: - - name: chrome - version: latest - - name: firefox - version: 24..latest - - name: safari - version: latest - - name: ie - version: 9..latest - - name: iphone - version: oldest..latest - - name: ipad - version: oldest..latest - - name: android - version: oldest..latest diff --git a/node_modules/url/LICENSE b/node_modules/url/LICENSE index f45bc11..158af9f 100644 --- a/node_modules/url/LICENSE +++ b/node_modules/url/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright Joyent, Inc. and other Node contributors. +Copyright 2014 Joyent, Inc. and other Node contributors. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/node_modules/url/node_modules/punycode/README.md b/node_modules/url/node_modules/punycode/README.md index 831e637..7ad7d1f 100644 --- a/node_modules/url/node_modules/punycode/README.md +++ b/node_modules/url/node_modules/punycode/README.md @@ -1,20 +1,20 @@ # Punycode.js [![Build status](https://travis-ci.org/bestiejs/punycode.js.svg?branch=master)](https://travis-ci.org/bestiejs/punycode.js) [![Code coverage status](http://img.shields.io/coveralls/bestiejs/punycode.js/master.svg)](https://coveralls.io/r/bestiejs/punycode.js) [![Dependency status](https://gemnasium.com/bestiejs/punycode.js.svg)](https://gemnasium.com/bestiejs/punycode.js) -A robust Punycode converter that fully complies to [RFC 3492](http://tools.ietf.org/html/rfc3492) and [RFC 5891](http://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms. +A robust Punycode converter that fully complies to [RFC 3492](https://tools.ietf.org/html/rfc3492) and [RFC 5891](https://tools.ietf.org/html/rfc5891), and works on nearly all JavaScript platforms. This JavaScript library is the result of comparing, optimizing and documenting different open-source implementations of the Punycode algorithm: -* [The C example code from RFC 3492](http://tools.ietf.org/html/rfc3492#appendix-C) +* [The C example code from RFC 3492](https://tools.ietf.org/html/rfc3492#appendix-C) * [`punycode.c` by _Markus W. Scherer_ (IBM)](http://opensource.apple.com/source/ICU/ICU-400.42/icuSources/common/punycode.c) * [`punycode.c` by _Ben Noordhuis_](https://github.com/bnoordhuis/punycode/blob/master/punycode.c) * [JavaScript implementation by _some_](http://stackoverflow.com/questions/183485/can-anyone-recommend-a-good-free-javascript-for-punycode-to-unicode-conversion/301287#301287) * [`punycode.js` by _Ben Noordhuis_](https://github.com/joyent/node/blob/426298c8c1c0d5b5224ac3658c41e7c2a3fe9377/lib/punycode.js) (note: [not fully compliant](https://github.com/joyent/node/issues/2072)) -This project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc). +This project is [bundled](https://github.com/joyent/node/blob/master/lib/punycode.js) with [Node.js v0.6.2+](https://github.com/joyent/node/compare/975f1930b1...61e796decc) and [io.js v1.0.0+](https://github.com/iojs/io.js/blob/v1.x/lib/punycode.js). ## Installation -Via [npm](http://npmjs.org/) (only required for Node.js releases older than v0.6.2): +Via [npm](https://www.npmjs.com/) (only required for Node.js releases older than v0.6.2): ```bash npm install punycode @@ -38,7 +38,7 @@ In a browser: ``` -In [Narwhal](http://narwhaljs.org/), [Node.js](http://nodejs.org/), and [RingoJS](http://ringojs.org/): +In [Node.js](https://nodejs.org/), [io.js](https://iojs.org/), [Narwhal](http://narwhaljs.org/), and [RingoJS](http://ringojs.org/): ```js var punycode = require('punycode'); @@ -106,7 +106,7 @@ punycode.toUnicode('джумла@xn--p-8sbkgc5ag7bhce.xn--ba-lmcq'); ### `punycode.toASCII(input)` -Converts a Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that's already in ASCII. +Converts a lowercased Unicode string representing a domain name or an email address to Punycode. Only the non-ASCII parts of the input will be converted, i.e. it doesn’t matter if you call it with a domain that’s already in ASCII. ```js // encode domain names diff --git a/node_modules/url/node_modules/punycode/package.json b/node_modules/url/node_modules/punycode/package.json index 35f046a..accb530 100644 --- a/node_modules/url/node_modules/punycode/package.json +++ b/node_modules/url/node_modules/punycode/package.json @@ -1,6 +1,6 @@ { "name": "punycode", - "version": "1.3.2", + "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", @@ -41,13 +41,20 @@ "test": "node tests/tests.js" }, "devDependencies": { - "coveralls": "^2.10.1", + "coveralls": "^2.11.4", "grunt": "^0.4.5", - "grunt-contrib-uglify": "^0.5.0", - "grunt-shell": "^0.7.0", - "istanbul": "^0.2.13", - "qunit-extras": "^1.2.0", + "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.14" + "requirejs": "^2.1.22" + }, + "jspm": { + "map": { + "./punycode.js": { + "node": "@node/punycode" + } + } } } diff --git a/node_modules/url/node_modules/punycode/punycode.js b/node_modules/url/node_modules/punycode/punycode.js index ac68597..2c87f6c 100644 --- a/node_modules/url/node_modules/punycode/punycode.js +++ b/node_modules/url/node_modules/punycode/punycode.js @@ -1,4 +1,4 @@ -/*! https://mths.be/punycode v1.3.2 by @mathias */ +/*! https://mths.be/punycode v1.4.1 by @mathias */ ;(function(root) { /** Detect free variables */ @@ -64,7 +64,7 @@ * @returns {Error} Throws a `RangeError` with the applicable error message. */ function error(type) { - throw RangeError(errors[type]); + throw new RangeError(errors[type]); } /** @@ -211,7 +211,7 @@ /** * Bias adaptation function as per section 3.4 of RFC 3492. - * http://tools.ietf.org/html/rfc3492#section-3.4 + * https://tools.ietf.org/html/rfc3492#section-3.4 * @private */ function adapt(delta, numPoints, firstTime) { @@ -486,7 +486,7 @@ * @memberOf punycode * @type String */ - 'version': '1.3.2', + 'version': '1.4.1', /** * An object of methods to convert from JavaScript's internal character * representation (UCS-2) to Unicode code points, and back. @@ -516,14 +516,17 @@ return punycode; }); } else if (freeExports && freeModule) { - if (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+ + if (module.exports == freeExports) { + // in Node.js, io.js, or RingoJS v0.8.0+ freeModule.exports = punycode; - } else { // in Narwhal or RingoJS v0.7.0- + } else { + // in Narwhal or RingoJS v0.7.0- for (key in punycode) { punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]); } } - } else { // in Rhino or a web browser + } else { + // in Rhino or a web browser root.punycode = punycode; } diff --git a/node_modules/url/node_modules/qs/.editorconfig b/node_modules/url/node_modules/qs/.editorconfig new file mode 100644 index 0000000..2f08444 --- /dev/null +++ b/node_modules/url/node_modules/qs/.editorconfig @@ -0,0 +1,43 @@ +root = true + +[*] +indent_style = space +indent_size = 4 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = true +insert_final_newline = true +max_line_length = 160 +quote_type = single + +[test/*] +max_line_length = off + +[LICENSE.md] +indent_size = off + +[*.md] +max_line_length = off + +[*.json] +max_line_length = off + +[Makefile] +max_line_length = off + +[CHANGELOG.md] +indent_style = space +indent_size = 2 + +[LICENSE] +indent_size = 2 +max_line_length = off + +[coverage/**/*] +indent_size = off +indent_style = off +indent = off +max_line_length = off + +[.nycrc] +indent_style = tab diff --git a/node_modules/url/node_modules/qs/.eslintrc b/node_modules/url/node_modules/qs/.eslintrc new file mode 100644 index 0000000..919dbc0 --- /dev/null +++ b/node_modules/url/node_modules/qs/.eslintrc @@ -0,0 +1,38 @@ +{ + "root": true, + + "extends": "@ljharb", + + "ignorePatterns": [ + "dist/", + ], + + "rules": { + "complexity": 0, + "consistent-return": 1, + "func-name-matching": 0, + "id-length": [2, { "min": 1, "max": 25, "properties": "never" }], + "indent": [2, 4], + "max-lines-per-function": [2, { "max": 150 }], + "max-params": [2, 16], + "max-statements": [2, 100], + "multiline-comment-style": 0, + "no-continue": 1, + "no-magic-numbers": 0, + "no-restricted-syntax": [2, "BreakStatement", "DebuggerStatement", "ForInStatement", "LabeledStatement", "WithStatement"], + }, + + "overrides": [ + { + "files": "test/**", + "rules": { + "function-paren-newline": 0, + "max-lines-per-function": 0, + "max-statements": 0, + "no-buffer-constructor": 0, + "no-extend-native": 0, + "no-throw-literal": 0, + }, + }, + ], +} diff --git a/node_modules/url/node_modules/qs/.github/FUNDING.yml b/node_modules/url/node_modules/qs/.github/FUNDING.yml new file mode 100644 index 0000000..0355f4f --- /dev/null +++ b/node_modules/url/node_modules/qs/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/qs +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with a single custom sponsorship URL diff --git a/node_modules/url/node_modules/qs/.nycrc b/node_modules/url/node_modules/qs/.nycrc new file mode 100644 index 0000000..1d57cab --- /dev/null +++ b/node_modules/url/node_modules/qs/.nycrc @@ -0,0 +1,13 @@ +{ + "all": true, + "check-coverage": false, + "reporter": ["text-summary", "text", "html", "json"], + "lines": 86, + "statements": 85.93, + "functions": 82.43, + "branches": 76.06, + "exclude": [ + "coverage", + "dist" + ] +} diff --git a/node_modules/url/node_modules/qs/CHANGELOG.md b/node_modules/url/node_modules/qs/CHANGELOG.md new file mode 100644 index 0000000..a7584eb --- /dev/null +++ b/node_modules/url/node_modules/qs/CHANGELOG.md @@ -0,0 +1,559 @@ +## **6.11.2** +- [Fix] `parse`: Fix parsing when the global Object prototype is frozen (#473) +- [Tests] add passing test cases with empty keys (#473) + +## **6.11.1** +- [Fix] `stringify`: encode comma values more consistently (#463) +- [readme] add usage of `filter` option for injecting custom serialization, i.e. of custom types (#447) +- [meta] remove extraneous code backticks (#457) +- [meta] fix changelog markdown +- [actions] update checkout action +- [actions] restrict action permissions +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `object-inspect`, `tape` + +## **6.11.0** +- [New] [Fix] `stringify`: revert 0e903c0; add `commaRoundTrip` option (#442) +- [readme] fix version badge + +## **6.10.5** +- [Fix] `stringify`: with `arrayFormat: comma`, properly include an explicit `[]` on a single-item array (#434) + +## **6.10.4** +- [Fix] `stringify`: with `arrayFormat: comma`, include an explicit `[]` on a single-item array (#441) +- [meta] use `npmignore` to autogenerate an npmignore file +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbol`, `object-inspect`, `tape` + +## **6.10.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [actions] reuse common workflows +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `tape` + +## **6.10.2** +- [Fix] `stringify`: actually fix cyclic references (#426) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [actions] update codecov uploader +- [actions] update workflows +- [Tests] clean up stringify tests slightly +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `object-inspect`, `safe-publish-latest`, `tape` + +## **6.10.1** +- [Fix] `stringify`: avoid exception on repeated object values (#402) + +## **6.10.0** +- [New] `stringify`: throw on cycles, instead of an infinite loop (#395, #394, #393) +- [New] `parse`: add `allowSparse` option for collapsing arrays with missing indices (#312) +- [meta] fix README.md (#399) +- [meta] only run `npm run dist` in publish, not install +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `has-symbols`, `tape` +- [Tests] fix tests on node v0.6 +- [Tests] use `ljharb/actions/node/install` instead of `ljharb/actions/node/run` +- [Tests] Revert "[meta] ignore eclint transitive audit warning" + +## **6.9.7** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [Tests] clean up stringify tests slightly +- [meta] fix README.md (#399) +- Revert "[meta] ignore eclint transitive audit warning" +- [actions] backport actions from main +- [Dev Deps] backport updates from main + +## **6.9.6** +- [Fix] restore `dist` dir; mistakenly removed in d4f6c32 + +## **6.9.5** +- [Fix] `stringify`: do not encode parens for RFC1738 +- [Fix] `stringify`: fix arrayFormat comma with empty array/objects (#350) +- [Refactor] `format`: remove `util.assign` call +- [meta] add "Allow Edits" workflow; update rebase workflow +- [actions] switch Automatic Rebase workflow to `pull_request_target` event +- [Tests] `stringify`: add tests for #378 +- [Tests] migrate tests to Github Actions +- [Tests] run `nyc` on all tests; use `tape` runner +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `mkdirp`, `object-inspect`, `tape`; add `aud` + +## **6.9.4** +- [Fix] `stringify`: when `arrayFormat` is `comma`, respect `serializeDate` (#364) +- [Refactor] `stringify`: reduce branching (part of #350) +- [Refactor] move `maybeMap` to `utils` +- [Dev Deps] update `browserify`, `tape` + +## **6.9.3** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.9.2** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [meta] ignore eclint transitive audit warning +- [meta] fix indentation in package.json +- [meta] add tidelift marketing copy +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `object-inspect`, `has-symbols`, `tape`, `mkdirp`, `iconv-lite` +- [actions] add automatic rebasing / merge commit blocking + +## **6.9.1** +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [Fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config` +- [Tests] use shared travis-ci config + +## **6.9.0** +- [New] `parse`/`stringify`: Pass extra key/value argument to `decoder` (#333) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `evalmd` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] add `posttest` using `npx aud` to run `npm audit` without a lockfile +- [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16` +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray + +## **6.8.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Tests] clean up stringify tests slightly +- [Docs] add note and links for coercing primitive values (#408) +- [meta] fix README.md (#399) +- [actions] backport actions from main +- [Dev Deps] backport updates from main +- [Refactor] `stringify`: reduce branching +- [meta] do not publish workflow files + +## **6.8.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.8.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `has-symbols`, `iconv-lite`, `mkdirp`, `object-inspect` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [actions] add automatic rebasing / merge commit blocking + +## **6.8.0** +- [New] add `depth=false` to preserve the original key; [Fix] `depth=0` should preserve the original key (#326) +- [New] [Fix] stringify symbols and bigints +- [Fix] ensure node 0.12 can stringify Symbols +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `safe-publish-latest`, `iconv-lite`, `tape` +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended (#326) +- [Tests] use `eclint` instead of `editorconfig-tools` +- [docs] readme: add security note +- [meta] add github sponsorship +- [meta] add FUNDING.yml +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause + +## **6.7.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424) +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] add note and links for coercing primitive values (#408) +- [meta] fix README.md (#399) +- [meta] do not publish workflow files +- [actions] backport actions from main +- [Dev Deps] backport updates from main +- [Tests] use `nyc` for coverage +- [Tests] clean up stringify tests slightly + +## **6.7.2** +- [Fix] proper comma parsing of URL-encoded commas (#361) +- [Fix] parses comma delimited array while having percent-encoded comma treated as normal text (#336) + +## **6.7.1** +- [Fix] `parse`: Fix parsing array from object with `comma` true (#359) +- [Fix] `parse`: with comma true, handle field that holds an array of arrays (#335) +- [fix] `parse`: with comma true, do not split non-string values (#334) +- [Fix] `parse`: throw a TypeError instead of an Error for bad charset (#349) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Refactor] `formats`: tiny bit of cleanup. +- readme: add security note +- [meta] add tidelift marketing copy +- [meta] add `funding` field +- [meta] add FUNDING.yml +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape`, `safe-publish-latest`, `evalmd`, `iconv-lite`, `mkdirp`, `object-inspect`, `browserify` +- [Tests] `parse`: add passing `arrayFormat` tests +- [Tests] use shared travis-ci configs +- [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray +- [Tests] add tests for `depth=0` and `depth=false` behavior, both current and intuitive/intended +- [Tests] use `eclint` instead of `editorconfig-tools` +- [actions] add automatic rebasing / merge commit blocking + +## **6.7.0** +- [New] `stringify`/`parse`: add `comma` as an `arrayFormat` option (#276, #219) +- [Fix] correctly parse nested arrays (#212) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source, also with an array source +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] `stringify`/`utils`: cache `Array.isArray` +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] temporarily allow coverage to fail + +## **6.6.1** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] correctly parse nested arrays +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Robustness] `stringify`: cache `Object.prototype.hasOwnProperty` +- [Refactor] `formats`: tiny bit of cleanup. +- [Refactor] `utils`: `isBuffer`: small tweak; add tests +- [Refactor]: `stringify`/`utils`: cache `Array.isArray` +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] use cached `Array.isArray` +- [Refactor] `parse`/`stringify`: make a function to normalize the options +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] do not publish workflow files +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [meta] Fixes typo in CHANGELOG.md +- [actions] backport actions from main +- [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10 +- [Tests] always use `String(x)` over `x.toString()` +- [Dev Deps] backport from main + +## **6.6.0** +- [New] Add support for iso-8859-1, utf8 "sentinel" and numeric entities (#268) +- [New] move two-value combine to a `utils` function (#189) +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` (#260) +- [Fix] `stringify`: do not crash in an obscure combo of `interpretNumericEntities`, a bad custom `decoder`, & `iso-8859-1` +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Refactor] `parse`/`stringify`: clean up `charset` options checking; fix defaults +- [Refactor] add missing defaults +- [Refactor] `parse`: one less `concat` call +- [Refactor] `utils`: `compactQueue`: make it explicitly side-effecting +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape` +- [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS + +## **6.5.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] correctly parse nested arrays +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Refactor] `utils`: reduce observable [[Get]]s +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Refactor] `parse`: only need to reassign the var once +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clean up license text so it’s properly detected as BSD-3-Clause +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] always use `String(x)` over `x.toString()` +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.5.2** +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Refactor] utils: `module.exports` one thing, instead of mutating `exports` (#230) +- [Dev Deps] update `browserify`, `eslint`, `iconv-lite`, `safer-buffer`, `tape`, `browserify` + +## **6.5.1** +- [Fix] Fix parsing & compacting very deep objects (#224) +- [Refactor] name utils functions +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` +- [Tests] up to `node` `v8.4`; use `nvm install-latest-npm` so newer npm doesn’t break older node +- [Tests] Use precise dist for Node.js 0.6 runtime (#225) +- [Tests] make 0.6 required, now that it’s passing +- [Tests] on `node` `v8.2`; fix npm on node 0.6 + +## **6.5.0** +- [New] add `utils.assign` +- [New] pass default encoder/decoder to custom encoder/decoder functions (#206) +- [New] `parse`/`stringify`: add `ignoreQueryPrefix`/`addQueryPrefix` options, respectively (#213) +- [Fix] Handle stringifying empty objects with addQueryPrefix (#217) +- [Fix] do not mutate `options` argument (#207) +- [Refactor] `parse`: cache index to reuse in else statement (#182) +- [Docs] add various badges to readme (#208) +- [Dev Deps] update `eslint`, `browserify`, `iconv-lite`, `tape` +- [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4 +- [Tests] add `editorconfig-tools` + +## **6.4.1** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] use `safer-buffer` instead of `Buffer` constructor +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [readme] remove travis badge; add github actions/codecov badges; update URLs +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.4.0** +- [New] `qs.stringify`: add `encodeValuesOnly` option +- [Fix] follow `allowPrototypes` option during merge (#201, #201) +- [Fix] support keys starting with brackets (#202, #200) +- [Fix] chmod a-x +- [Dev Deps] update `eslint` +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds +- [eslint] reduce warnings + +## **6.3.3** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] fix for an impossible situation: when the formatter is called with a non-string value +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `stringify`: fix a crash with `strictNullHandling` and a custom `filter`/`serializeDate` (#279) +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Refactor] `stringify`: Avoid arr = arr.concat(...), push to the existing instance (#269) +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] use `safer-buffer` instead of `Buffer` constructor +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.3.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Dev Deps] update `eslint` +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.3.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties (thanks, @snyk!) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `browserify`, `iconv-lite`, `qs-iconv`, `tape` +- [Tests] on all node minors; improve test matrix +- [Docs] document stringify option `allowDots` (#195) +- [Docs] add empty object and array values example (#195) +- [Docs] Fix minor inconsistency/typo (#192) +- [Docs] document stringify option `sort` (#191) +- [Refactor] `stringify`: throw faster with an invalid encoder +- [Refactor] remove unnecessary escapes (#184) +- Remove contributing.md, since `qs` is no longer part of `hapi` (#183) + +## **6.3.0** +- [New] Add support for RFC 1738 (#174, #173) +- [New] `stringify`: Add `serializeDate` option to customize Date serialization (#159) +- [Fix] ensure `utils.merge` handles merging two arrays +- [Refactor] only constructors should be capitalized +- [Refactor] capitalized var names are for constructors only +- [Refactor] avoid using a sparse array +- [Robustness] `formats`: cache `String#replace` +- [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`; add `safe-publish-latest` +- [Tests] up to `node` `v6.8`, `v4.6`; improve test matrix +- [Tests] flesh out arrayLimit/arrayFormat tests (#107) +- [Tests] skip Object.create tests when null objects are not available +- [Tests] Turn on eslint for test files (#175) + +## **6.2.4** +- [Fix] `parse`: ignore `__proto__` keys (#428) +- [Fix] `utils.merge`: avoid a crash with a null target and an array source +- [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source +- [Fix] `utils`: `merge`: fix crash when `source` is a truthy primitive & no options are provided +- [Fix] when `parseArrays` is false, properly handle keys ending in `[]` +- [Robustness] `stringify`: avoid relying on a global `undefined` (#427) +- [Refactor] use cached `Array.isArray` +- [Docs] Clarify the need for "arrayLimit" option +- [meta] fix README.md (#399) +- [meta] Clean up license text so it’s properly detected as BSD-3-Clause +- [meta] add FUNDING.yml +- [actions] backport actions from main +- [Tests] use `safer-buffer` instead of `Buffer` constructor +- [Tests] remove nonexistent tape option +- [Dev Deps] backport from main + +## **6.2.3** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.2.2** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## **6.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values +- [Refactor] Be explicit and use `Object.prototype.hasOwnProperty.call` +- [Tests] remove `parallelshell` since it does not reliably report failures +- [Tests] up to `node` `v6.3`, `v5.12` +- [Dev Deps] update `tape`, `eslint`, `@ljharb/eslint-config`, `qs-iconv` + +## [**6.2.0**](https://github.com/ljharb/qs/issues?milestone=36&state=closed) +- [New] pass Buffers to the encoder/decoder directly (#161) +- [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160) +- [Fix] fix compacting of nested sparse arrays (#150) + +## **6.1.2** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.1.1** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties + +## [**6.1.0**](https://github.com/ljharb/qs/issues?milestone=35&state=closed) +- [New] allowDots option for `stringify` (#151) +- [Fix] "sort" option should work at a depth of 3 or more (#151) +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## **6.0.4** +- [Fix] follow `allowPrototypes` option during merge (#201, #200) +- [Fix] chmod a-x +- [Fix] support keys starting with brackets (#202, #200) +- [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds + +## **6.0.3** +- [Fix] ensure that `allowPrototypes: false` does not ever shadow Object.prototype properties +- [Fix] Restore `dist` directory; will be removed in v7 (#148) + +## [**6.0.2**](https://github.com/ljharb/qs/issues?milestone=33&state=closed) +- Revert ES6 requirement and restore support for node down to v0.8. + +## [**6.0.1**](https://github.com/ljharb/qs/issues?milestone=32&state=closed) +- [**#127**](https://github.com/ljharb/qs/pull/127) Fix engines definition in package.json + +## [**6.0.0**](https://github.com/ljharb/qs/issues?milestone=31&state=closed) +- [**#124**](https://github.com/ljharb/qs/issues/124) Use ES6 and drop support for node < v4 + +## **5.2.1** +- [Fix] ensure `key[]=x&key[]&key[]=y` results in 3, not 2, values + +## [**5.2.0**](https://github.com/ljharb/qs/issues?milestone=30&state=closed) +- [**#64**](https://github.com/ljharb/qs/issues/64) Add option to sort object keys in the query string + +## [**5.1.0**](https://github.com/ljharb/qs/issues?milestone=29&state=closed) +- [**#117**](https://github.com/ljharb/qs/issues/117) make URI encoding stringified results optional +- [**#106**](https://github.com/ljharb/qs/issues/106) Add flag `skipNulls` to optionally skip null values in stringify + +## [**5.0.0**](https://github.com/ljharb/qs/issues?milestone=28&state=closed) +- [**#114**](https://github.com/ljharb/qs/issues/114) default allowDots to false +- [**#100**](https://github.com/ljharb/qs/issues/100) include dist to npm + +## [**4.0.0**](https://github.com/ljharb/qs/issues?milestone=26&state=closed) +- [**#98**](https://github.com/ljharb/qs/issues/98) make returning plain objects and allowing prototype overwriting properties optional + +## [**3.1.0**](https://github.com/ljharb/qs/issues?milestone=24&state=closed) +- [**#89**](https://github.com/ljharb/qs/issues/89) Add option to disable "Transform dot notation to bracket notation" + +## [**3.0.0**](https://github.com/ljharb/qs/issues?milestone=23&state=closed) +- [**#80**](https://github.com/ljharb/qs/issues/80) qs.parse silently drops properties +- [**#77**](https://github.com/ljharb/qs/issues/77) Perf boost +- [**#60**](https://github.com/ljharb/qs/issues/60) Add explicit option to disable array parsing +- [**#74**](https://github.com/ljharb/qs/issues/74) Bad parse when turning array into object +- [**#81**](https://github.com/ljharb/qs/issues/81) Add a `filter` option +- [**#68**](https://github.com/ljharb/qs/issues/68) Fixed issue with recursion and passing strings into objects. +- [**#66**](https://github.com/ljharb/qs/issues/66) Add mixed array and object dot notation support Closes: #47 +- [**#76**](https://github.com/ljharb/qs/issues/76) RFC 3986 +- [**#85**](https://github.com/ljharb/qs/issues/85) No equal sign +- [**#84**](https://github.com/ljharb/qs/issues/84) update license attribute + +## [**2.4.1**](https://github.com/ljharb/qs/issues?milestone=20&state=closed) +- [**#73**](https://github.com/ljharb/qs/issues/73) Property 'hasOwnProperty' of object # is not a function + +## [**2.4.0**](https://github.com/ljharb/qs/issues?milestone=19&state=closed) +- [**#70**](https://github.com/ljharb/qs/issues/70) Add arrayFormat option + +## [**2.3.3**](https://github.com/ljharb/qs/issues?milestone=18&state=closed) +- [**#59**](https://github.com/ljharb/qs/issues/59) make sure array indexes are >= 0, closes #57 +- [**#58**](https://github.com/ljharb/qs/issues/58) make qs usable for browser loader + +## [**2.3.2**](https://github.com/ljharb/qs/issues?milestone=17&state=closed) +- [**#55**](https://github.com/ljharb/qs/issues/55) allow merging a string into an object + +## [**2.3.1**](https://github.com/ljharb/qs/issues?milestone=16&state=closed) +- [**#52**](https://github.com/ljharb/qs/issues/52) Return "undefined" and "false" instead of throwing "TypeError". + +## [**2.3.0**](https://github.com/ljharb/qs/issues?milestone=15&state=closed) +- [**#50**](https://github.com/ljharb/qs/issues/50) add option to omit array indices, closes #46 + +## [**2.2.5**](https://github.com/ljharb/qs/issues?milestone=14&state=closed) +- [**#39**](https://github.com/ljharb/qs/issues/39) Is there an alternative to Buffer.isBuffer? +- [**#49**](https://github.com/ljharb/qs/issues/49) refactor utils.merge, fixes #45 +- [**#41**](https://github.com/ljharb/qs/issues/41) avoid browserifying Buffer, for #39 + +## [**2.2.4**](https://github.com/ljharb/qs/issues?milestone=13&state=closed) +- [**#38**](https://github.com/ljharb/qs/issues/38) how to handle object keys beginning with a number + +## [**2.2.3**](https://github.com/ljharb/qs/issues?milestone=12&state=closed) +- [**#37**](https://github.com/ljharb/qs/issues/37) parser discards first empty value in array +- [**#36**](https://github.com/ljharb/qs/issues/36) Update to lab 4.x + +## [**2.2.2**](https://github.com/ljharb/qs/issues?milestone=11&state=closed) +- [**#33**](https://github.com/ljharb/qs/issues/33) Error when plain object in a value +- [**#34**](https://github.com/ljharb/qs/issues/34) use Object.prototype.hasOwnProperty.call instead of obj.hasOwnProperty +- [**#24**](https://github.com/ljharb/qs/issues/24) Changelog? Semver? + +## [**2.2.1**](https://github.com/ljharb/qs/issues?milestone=10&state=closed) +- [**#32**](https://github.com/ljharb/qs/issues/32) account for circular references properly, closes #31 +- [**#31**](https://github.com/ljharb/qs/issues/31) qs.parse stackoverflow on circular objects + +## [**2.2.0**](https://github.com/ljharb/qs/issues?milestone=9&state=closed) +- [**#26**](https://github.com/ljharb/qs/issues/26) Don't use Buffer global if it's not present +- [**#30**](https://github.com/ljharb/qs/issues/30) Bug when merging non-object values into arrays +- [**#29**](https://github.com/ljharb/qs/issues/29) Don't call Utils.clone at the top of Utils.merge +- [**#23**](https://github.com/ljharb/qs/issues/23) Ability to not limit parameters? + +## [**2.1.0**](https://github.com/ljharb/qs/issues?milestone=8&state=closed) +- [**#22**](https://github.com/ljharb/qs/issues/22) Enable using a RegExp as delimiter + +## [**2.0.0**](https://github.com/ljharb/qs/issues?milestone=7&state=closed) +- [**#18**](https://github.com/ljharb/qs/issues/18) Why is there arrayLimit? +- [**#20**](https://github.com/ljharb/qs/issues/20) Configurable parametersLimit +- [**#21**](https://github.com/ljharb/qs/issues/21) make all limits optional, for #18, for #20 + +## [**1.2.2**](https://github.com/ljharb/qs/issues?milestone=6&state=closed) +- [**#19**](https://github.com/ljharb/qs/issues/19) Don't overwrite null values + +## [**1.2.1**](https://github.com/ljharb/qs/issues?milestone=5&state=closed) +- [**#16**](https://github.com/ljharb/qs/issues/16) ignore non-string delimiters +- [**#15**](https://github.com/ljharb/qs/issues/15) Close code block + +## [**1.2.0**](https://github.com/ljharb/qs/issues?milestone=4&state=closed) +- [**#12**](https://github.com/ljharb/qs/issues/12) Add optional delim argument +- [**#13**](https://github.com/ljharb/qs/issues/13) fix #11: flattened keys in array are now correctly parsed + +## [**1.1.0**](https://github.com/ljharb/qs/issues?milestone=3&state=closed) +- [**#7**](https://github.com/ljharb/qs/issues/7) Empty values of a POST array disappear after being submitted +- [**#9**](https://github.com/ljharb/qs/issues/9) Should not omit equals signs (=) when value is null +- [**#6**](https://github.com/ljharb/qs/issues/6) Minor grammar fix in README + +## [**1.0.2**](https://github.com/ljharb/qs/issues?milestone=2&state=closed) +- [**#5**](https://github.com/ljharb/qs/issues/5) array holes incorrectly copied into object on large index diff --git a/node_modules/url/node_modules/qs/LICENSE.md b/node_modules/url/node_modules/qs/LICENSE.md new file mode 100644 index 0000000..fecf6b6 --- /dev/null +++ b/node_modules/url/node_modules/qs/LICENSE.md @@ -0,0 +1,29 @@ +BSD 3-Clause License + +Copyright (c) 2014, Nathan LaFreniere and other [contributors](https://github.com/ljharb/qs/graphs/contributors) +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +3. 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. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/node_modules/url/node_modules/qs/README.md b/node_modules/url/node_modules/qs/README.md new file mode 100644 index 0000000..6635471 --- /dev/null +++ b/node_modules/url/node_modules/qs/README.md @@ -0,0 +1,663 @@ +# qs [![Version Badge][npm-version-svg]][package-url] + +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] +[![License][license-image]][license-url] +[![Downloads][downloads-image]][downloads-url] + +[![npm badge][npm-badge-png]][package-url] + +A querystring parsing and stringifying library with some added security. + +Lead Maintainer: [Jordan Harband](https://github.com/ljharb) + +The **qs** module was originally created and maintained by [TJ Holowaychuk](https://github.com/visionmedia/node-querystring). + +## Usage + +```javascript +var qs = require('qs'); +var assert = require('assert'); + +var obj = qs.parse('a=c'); +assert.deepEqual(obj, { a: 'c' }); + +var str = qs.stringify(obj); +assert.equal(str, 'a=c'); +``` + +### Parsing Objects + +[](#preventEval) +```javascript +qs.parse(string, [options]); +``` + +**qs** allows you to create nested objects within your query strings, by surrounding the name of sub-keys with square brackets `[]`. +For example, the string `'foo[bar]=baz'` converts to: + +```javascript +assert.deepEqual(qs.parse('foo[bar]=baz'), { + foo: { + bar: 'baz' + } +}); +``` + +When using the `plainObjects` option the parsed value is returned as a null object, created via `Object.create(null)` and as such you should be aware that prototype methods will not exist on it and a user may set those names to whatever value they like: + +```javascript +var nullObject = qs.parse('a[hasOwnProperty]=b', { plainObjects: true }); +assert.deepEqual(nullObject, { a: { hasOwnProperty: 'b' } }); +``` + +By default parameters that would overwrite properties on the object prototype are ignored, if you wish to keep the data from those fields either use `plainObjects` as mentioned above, or set `allowPrototypes` to `true` which will allow user input to overwrite those properties. *WARNING* It is generally a bad idea to enable this option as it can cause problems when attempting to use the properties that have been overwritten. Always be careful with this option. + +```javascript +var protoObject = qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }); +assert.deepEqual(protoObject, { a: { hasOwnProperty: 'b' } }); +``` + +URI encoded strings work too: + +```javascript +assert.deepEqual(qs.parse('a%5Bb%5D=c'), { + a: { b: 'c' } +}); +``` + +You can also nest your objects, like `'foo[bar][baz]=foobarbaz'`: + +```javascript +assert.deepEqual(qs.parse('foo[bar][baz]=foobarbaz'), { + foo: { + bar: { + baz: 'foobarbaz' + } + } +}); +``` + +By default, when nesting objects **qs** will only parse up to 5 children deep. This means if you attempt to parse a string like +`'a[b][c][d][e][f][g][h][i]=j'` your resulting object will be: + +```javascript +var expected = { + a: { + b: { + c: { + d: { + e: { + f: { + '[g][h][i]': 'j' + } + } + } + } + } + } +}; +var string = 'a[b][c][d][e][f][g][h][i]=j'; +assert.deepEqual(qs.parse(string), expected); +``` + +This depth can be overridden by passing a `depth` option to `qs.parse(string, [options])`: + +```javascript +var deep = qs.parse('a[b][c][d][e][f][g][h][i]=j', { depth: 1 }); +assert.deepEqual(deep, { a: { b: { '[c][d][e][f][g][h][i]': 'j' } } }); +``` + +The depth limit helps mitigate abuse when **qs** is used to parse user input, and it is recommended to keep it a reasonably small number. + +For similar reasons, by default **qs** will only parse up to 1000 parameters. This can be overridden by passing a `parameterLimit` option: + +```javascript +var limited = qs.parse('a=b&c=d', { parameterLimit: 1 }); +assert.deepEqual(limited, { a: 'b' }); +``` + +To bypass the leading question mark, use `ignoreQueryPrefix`: + +```javascript +var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true }); +assert.deepEqual(prefixed, { a: 'b', c: 'd' }); +``` + +An optional delimiter can also be passed: + +```javascript +var delimited = qs.parse('a=b;c=d', { delimiter: ';' }); +assert.deepEqual(delimited, { a: 'b', c: 'd' }); +``` + +Delimiters can be a regular expression too: + +```javascript +var regexed = qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ }); +assert.deepEqual(regexed, { a: 'b', c: 'd', e: 'f' }); +``` + +Option `allowDots` can be used to enable dot notation: + +```javascript +var withDots = qs.parse('a.b=c', { allowDots: true }); +assert.deepEqual(withDots, { a: { b: 'c' } }); +``` + +If you have to deal with legacy browsers or services, there's +also support for decoding percent-encoded octets as iso-8859-1: + +```javascript +var oldCharset = qs.parse('a=%A7', { charset: 'iso-8859-1' }); +assert.deepEqual(oldCharset, { a: '§' }); +``` + +Some services add an initial `utf8=✓` value to forms so that old +Internet Explorer versions are more likely to submit the form as +utf-8. Additionally, the server can check the value against wrong +encodings of the checkmark character and detect that a query string +or `application/x-www-form-urlencoded` body was *not* sent as +utf-8, eg. if the form had an `accept-charset` parameter or the +containing page had a different character set. + +**qs** supports this mechanism via the `charsetSentinel` option. +If specified, the `utf8` parameter will be omitted from the +returned object. It will be used to switch to `iso-8859-1`/`utf-8` +mode depending on how the checkmark is encoded. + +**Important**: When you specify both the `charset` option and the +`charsetSentinel` option, the `charset` will be overridden when +the request contains a `utf8` parameter from which the actual +charset can be deduced. In that sense the `charset` will behave +as the default charset rather than the authoritative charset. + +```javascript +var detectedAsUtf8 = qs.parse('utf8=%E2%9C%93&a=%C3%B8', { + charset: 'iso-8859-1', + charsetSentinel: true +}); +assert.deepEqual(detectedAsUtf8, { a: 'ø' }); + +// Browsers encode the checkmark as ✓ when submitting as iso-8859-1: +var detectedAsIso8859_1 = qs.parse('utf8=%26%2310003%3B&a=%F8', { + charset: 'utf-8', + charsetSentinel: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: 'ø' }); +``` + +If you want to decode the `&#...;` syntax to the actual character, +you can specify the `interpretNumericEntities` option as well: + +```javascript +var detectedAsIso8859_1 = qs.parse('a=%26%239786%3B', { + charset: 'iso-8859-1', + interpretNumericEntities: true +}); +assert.deepEqual(detectedAsIso8859_1, { a: '☺' }); +``` + +It also works when the charset has been detected in `charsetSentinel` +mode. + +### Parsing Arrays + +**qs** can also parse arrays using a similar `[]` notation: + +```javascript +var withArray = qs.parse('a[]=b&a[]=c'); +assert.deepEqual(withArray, { a: ['b', 'c'] }); +``` + +You may specify an index as well: + +```javascript +var withIndexes = qs.parse('a[1]=c&a[0]=b'); +assert.deepEqual(withIndexes, { a: ['b', 'c'] }); +``` + +Note that the only difference between an index in an array and a key in an object is that the value between the brackets must be a number +to create an array. When creating arrays with specific indices, **qs** will compact a sparse array to only the existing values preserving +their order: + +```javascript +var noSparse = qs.parse('a[1]=b&a[15]=c'); +assert.deepEqual(noSparse, { a: ['b', 'c'] }); +``` + +You may also use `allowSparse` option to parse sparse arrays: + +```javascript +var sparseArray = qs.parse('a[1]=2&a[3]=5', { allowSparse: true }); +assert.deepEqual(sparseArray, { a: [, '2', , '5'] }); +``` + +Note that an empty string is also a value, and will be preserved: + +```javascript +var withEmptyString = qs.parse('a[]=&a[]=b'); +assert.deepEqual(withEmptyString, { a: ['', 'b'] }); + +var withIndexedEmptyString = qs.parse('a[0]=b&a[1]=&a[2]=c'); +assert.deepEqual(withIndexedEmptyString, { a: ['b', '', 'c'] }); +``` + +**qs** will also limit specifying indices in an array to a maximum index of `20`. Any array members with an index of greater than `20` will +instead be converted to an object with the index as the key. This is needed to handle cases when someone sent, for example, `a[999999999]` and it will take significant time to iterate over this huge array. + +```javascript +var withMaxIndex = qs.parse('a[100]=b'); +assert.deepEqual(withMaxIndex, { a: { '100': 'b' } }); +``` + +This limit can be overridden by passing an `arrayLimit` option: + +```javascript +var withArrayLimit = qs.parse('a[1]=b', { arrayLimit: 0 }); +assert.deepEqual(withArrayLimit, { a: { '1': 'b' } }); +``` + +To disable array parsing entirely, set `parseArrays` to `false`. + +```javascript +var noParsingArrays = qs.parse('a[]=b', { parseArrays: false }); +assert.deepEqual(noParsingArrays, { a: { '0': 'b' } }); +``` + +If you mix notations, **qs** will merge the two items into an object: + +```javascript +var mixedNotation = qs.parse('a[0]=b&a[b]=c'); +assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } }); +``` + +You can also create arrays of objects: + +```javascript +var arraysOfObjects = qs.parse('a[][b]=c'); +assert.deepEqual(arraysOfObjects, { a: [{ b: 'c' }] }); +``` + +Some people use comma to join array, **qs** can parse it: +```javascript +var arraysOfObjects = qs.parse('a=b,c', { comma: true }) +assert.deepEqual(arraysOfObjects, { a: ['b', 'c'] }) +``` +(_this cannot convert nested objects, such as `a={b:1},{c:d}`_) + +### Parsing primitive/scalar values (numbers, booleans, null, etc) + +By default, all values are parsed as strings. This behavior will not change and is explained in [issue #91](https://github.com/ljharb/qs/issues/91). + +```javascript +var primitiveValues = qs.parse('a=15&b=true&c=null'); +assert.deepEqual(primitiveValues, { a: '15', b: 'true', c: 'null' }); +``` + +If you wish to auto-convert values which look like numbers, booleans, and other values into their primitive counterparts, you can use the [query-types Express JS middleware](https://github.com/xpepermint/query-types) which will auto-convert all request query parameters. + +### Stringifying + +[](#preventEval) +```javascript +qs.stringify(object, [options]); +``` + +When stringifying, **qs** by default URI encodes output. Objects are stringified as you would expect: + +```javascript +assert.equal(qs.stringify({ a: 'b' }), 'a=b'); +assert.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); +``` + +This encoding can be disabled by setting the `encode` option to `false`: + +```javascript +var unencoded = qs.stringify({ a: { b: 'c' } }, { encode: false }); +assert.equal(unencoded, 'a[b]=c'); +``` + +Encoding can be disabled for keys by setting the `encodeValuesOnly` option to `true`: +```javascript +var encodedValues = qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } +); +assert.equal(encodedValues,'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h'); +``` + +This encoding can also be replaced by a custom encoding method set as `encoder` option: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str) { + // Passed in values `a`, `b`, `c` + return // Return encoded string +}}) +``` + +_(Note: the `encoder` option does not apply if `encode` is `false`)_ + +Analogue to the `encoder` there is a `decoder` option for `parse` to override decoding of properties and values: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str) { + // Passed in values `x`, `z` + return // Return decoded string +}}) +``` + +You can encode keys and values using different logic by using the type argument provided to the encoder: + +```javascript +var encoded = qs.stringify({ a: { b: 'c' } }, { encoder: function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return // Encoded key + } else if (type === 'value') { + return // Encoded value + } +}}) +``` + +The type argument is also provided to the decoder: + +```javascript +var decoded = qs.parse('x=z', { decoder: function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return // Decoded key + } else if (type === 'value') { + return // Decoded value + } +}}) +``` + +Examples beyond this point will be shown as though the output is not URI encoded for clarity. Please note that the return values in these cases *will* be URI encoded during real usage. + +When arrays are stringified, by default they are given explicit indices: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }); +// 'a[0]=b&a[1]=c&a[2]=d' +``` + +You may override this by setting the `indices` option to `false`: + +```javascript +qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }); +// 'a=b&a=c&a=d' +``` + +You may use the `arrayFormat` option to specify the format of the output array: + +```javascript +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }) +// 'a[0]=b&a[1]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }) +// 'a[]=b&a[]=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }) +// 'a=b&a=c' +qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'comma' }) +// 'a=b,c' +``` + +Note: when using `arrayFormat` set to `'comma'`, you can also pass the `commaRoundTrip` option set to `true` or `false`, to append `[]` on single-item arrays, so that they can round trip through a parse. + +When objects are stringified, by default they use bracket notation: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }); +// 'a[b][c]=d&a[b][e]=f' +``` + +You may override this to use dot notation by setting the `allowDots` option to `true`: + +```javascript +qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true }); +// 'a.b.c=d&a.b.e=f' +``` + +Empty strings and null values will omit the value, but the equals sign (=) remains in place: + +```javascript +assert.equal(qs.stringify({ a: '' }), 'a='); +``` + +Key with no values (such as an empty object or array) will return nothing: + +```javascript +assert.equal(qs.stringify({ a: [] }), ''); +assert.equal(qs.stringify({ a: {} }), ''); +assert.equal(qs.stringify({ a: [{}] }), ''); +assert.equal(qs.stringify({ a: { b: []} }), ''); +assert.equal(qs.stringify({ a: { b: {}} }), ''); +``` + +Properties that are set to `undefined` will be omitted entirely: + +```javascript +assert.equal(qs.stringify({ a: null, b: undefined }), 'a='); +``` + +The query string may optionally be prepended with a question mark: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true }), '?a=b&c=d'); +``` + +The delimiter may be overridden with stringify as well: + +```javascript +assert.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); +``` + +If you only want to override the serialization of `Date` objects, you can provide a `serializeDate` option: + +```javascript +var date = new Date(7); +assert.equal(qs.stringify({ a: date }), 'a=1970-01-01T00:00:00.007Z'.replace(/:/g, '%3A')); +assert.equal( + qs.stringify({ a: date }, { serializeDate: function (d) { return d.getTime(); } }), + 'a=7' +); +``` + +You may use the `sort` option to affect the order of parameter keys: + +```javascript +function alphabeticalSort(a, b) { + return a.localeCompare(b); +} +assert.equal(qs.stringify({ a: 'c', z: 'y', b : 'f' }, { sort: alphabeticalSort }), 'a=c&b=f&z=y'); +``` + +Finally, you can use the `filter` option to restrict which keys will be included in the stringified output. +If you pass a function, it will be called for each key to obtain the replacement value. Otherwise, if you +pass an array, it will be used to select properties and array indices for stringification: + +```javascript +function filterFunc(prefix, value) { + if (prefix == 'b') { + // Return an `undefined` value to omit a property. + return; + } + if (prefix == 'e[f]') { + return value.getTime(); + } + if (prefix == 'e[g][0]') { + return value * 2; + } + return value; +} +qs.stringify({ a: 'b', c: 'd', e: { f: new Date(123), g: [2] } }, { filter: filterFunc }); +// 'a=b&c=d&e[f]=123&e[g][0]=4' +qs.stringify({ a: 'b', c: 'd', e: 'f' }, { filter: ['a', 'e'] }); +// 'a=b&e=f' +qs.stringify({ a: ['b', 'c', 'd'], e: 'f' }, { filter: ['a', 0, 2] }); +// 'a[0]=b&a[2]=d' +``` + +You could also use `filter` to inject custom serialization for user defined types. Consider you're working with +some api that expects query strings of the format for ranges: + +``` +https://domain.com/endpoint?range=30...70 +``` + +For which you model as: + +```javascript +class Range { + constructor(from, to) { + this.from = from; + this.to = to; + } +} +``` + +You could _inject_ a custom serializer to handle values of this type: + +```javascript +qs.stringify( + { + range: new Range(30, 70), + }, + { + filter: (prefix, value) => { + if (value instanceof Range) { + return `${value.from}...${value.to}`; + } + // serialize the usual way + return value; + }, + } +); +// range=30...70 +``` + +### Handling of `null` values + +By default, `null` values are treated like empty strings: + +```javascript +var withNull = qs.stringify({ a: null, b: '' }); +assert.equal(withNull, 'a=&b='); +``` + +Parsing does not distinguish between parameters with and without equal signs. Both are converted to empty strings. + +```javascript +var equalsInsensitive = qs.parse('a&b='); +assert.deepEqual(equalsInsensitive, { a: '', b: '' }); +``` + +To distinguish between `null` values and empty strings use the `strictNullHandling` flag. In the result string the `null` +values have no `=` sign: + +```javascript +var strictNull = qs.stringify({ a: null, b: '' }, { strictNullHandling: true }); +assert.equal(strictNull, 'a&b='); +``` + +To parse values without `=` back to `null` use the `strictNullHandling` flag: + +```javascript +var parsedStrictNull = qs.parse('a&b=', { strictNullHandling: true }); +assert.deepEqual(parsedStrictNull, { a: null, b: '' }); +``` + +To completely skip rendering keys with `null` values, use the `skipNulls` flag: + +```javascript +var nullsSkipped = qs.stringify({ a: 'b', c: null}, { skipNulls: true }); +assert.equal(nullsSkipped, 'a=b'); +``` + +If you're communicating with legacy systems, you can switch to `iso-8859-1` +using the `charset` option: + +```javascript +var iso = qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }); +assert.equal(iso, '%E6=%E6'); +``` + +Characters that don't exist in `iso-8859-1` will be converted to numeric +entities, similar to what browsers do: + +```javascript +var numeric = qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }); +assert.equal(numeric, 'a=%26%239786%3B'); +``` + +You can use the `charsetSentinel` option to announce the character by +including an `utf8=✓` parameter with the proper encoding if the checkmark, +similar to what Ruby on Rails and others do when submitting forms. + +```javascript +var sentinel = qs.stringify({ a: '☺' }, { charsetSentinel: true }); +assert.equal(sentinel, 'utf8=%E2%9C%93&a=%E2%98%BA'); + +var isoSentinel = qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }); +assert.equal(isoSentinel, 'utf8=%26%2310003%3B&a=%E6'); +``` + +### Dealing with special character sets + +By default the encoding and decoding of characters is done in `utf-8`, +and `iso-8859-1` support is also built in via the `charset` parameter. + +If you wish to encode querystrings to a different character set (i.e. +[Shift JIS](https://en.wikipedia.org/wiki/Shift_JIS)) you can use the +[`qs-iconv`](https://github.com/martinheidegger/qs-iconv) library: + +```javascript +var encoder = require('qs-iconv/encoder')('shift_jis'); +var shiftJISEncoded = qs.stringify({ a: 'こんにちは!' }, { encoder: encoder }); +assert.equal(shiftJISEncoded, 'a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I'); +``` + +This also works for decoding of query strings: + +```javascript +var decoder = require('qs-iconv/decoder')('shift_jis'); +var obj = qs.parse('a=%82%B1%82%F1%82%C9%82%BF%82%CD%81I', { decoder: decoder }); +assert.deepEqual(obj, { a: 'こんにちは!' }); +``` + +### RFC 3986 and RFC 1738 space encoding + +RFC3986 used as default option and encodes ' ' to *%20* which is backward compatible. +In the same time, output can be stringified as per RFC1738 with ' ' equal to '+'. + +``` +assert.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC3986' }), 'a=b%20c'); +assert.equal(qs.stringify({ a: 'b c' }, { format : 'RFC1738' }), 'a=b+c'); +``` + +## Security + +Please email [@ljharb](https://github.com/ljharb) or see https://tidelift.com/security if you have a potential security vulnerability to report. + +## qs for enterprise + +Available as part of the Tidelift Subscription + +The maintainers of qs and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/npm-qs?utm_source=npm-qs&utm_medium=referral&utm_campaign=enterprise&utm_term=repo) + +[package-url]: https://npmjs.org/package/qs +[npm-version-svg]: https://versionbadg.es/ljharb/qs.svg +[deps-svg]: https://david-dm.org/ljharb/qs.svg +[deps-url]: https://david-dm.org/ljharb/qs +[dev-deps-svg]: https://david-dm.org/ljharb/qs/dev-status.svg +[dev-deps-url]: https://david-dm.org/ljharb/qs#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/qs.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/qs.svg +[license-url]: LICENSE +[downloads-image]: https://img.shields.io/npm/dm/qs.svg +[downloads-url]: https://npm-stat.com/charts.html?package=qs +[codecov-image]: https://codecov.io/gh/ljharb/qs/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/ljharb/qs/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/ljharb/qs +[actions-url]: https://github.com/ljharb/qs/actions diff --git a/node_modules/url/node_modules/qs/dist/qs.js b/node_modules/url/node_modules/qs/dist/qs.js new file mode 100644 index 0000000..506f111 --- /dev/null +++ b/node_modules/url/node_modules/qs/dist/qs.js @@ -0,0 +1,2087 @@ +(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.Qs = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c="function"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error("Cannot find module '"+i+"'");throw a.code="MODULE_NOT_FOUND",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== cleanRoot + && String(index) === cleanRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (cleanRoot !== '__proto__') { + obj[cleanRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, just add whatever is left + + if (segment) { + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + if (options.allowSparse === true) { + return obj; + } + + return utils.compact(obj); +}; + +},{"./utils":5}],4:[function(require,module,exports){ +'use strict'; + +var getSideChannel = require('side-channel'); +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var sentinel = {}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + commaRoundTrip, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + sideChannel +) { + var obj = object; + + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) { + // Where object last appeared in the ref tree + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== 'undefined') { + if (pos === step) { + throw new RangeError('Cyclic object value'); + } else { + findFlag = true; // Break while + } + } + if (typeof tmpSc.get(sentinel) === 'undefined') { + step = 0; + } + } + + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, encoder); + } + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix; + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix + : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']'); + + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + strictNullHandling, + skipNulls, + generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') { + throw new TypeError('`commaRoundTrip` must be a boolean, or absent'); + } + var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + commaRoundTrip, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; + +},{"./formats":1,"./utils":5,"side-channel":17}],5:[function(require,module,exports){ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + out += string.charAt(i); + continue; + } + + if (c < 0x80) { + out = out + hexTable[c]; + continue; + } + + if (c < 0x800) { + out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); + /* eslint operator-linebreak: [2, "before"] */ + out += hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; + +},{"./formats":1}],6:[function(require,module,exports){ + +},{}],7:[function(require,module,exports){ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); + +var callBind = require('./'); + +var $indexOf = callBind(GetIntrinsic('String.prototype.indexOf')); + +module.exports = function callBoundIntrinsic(name, allowMissing) { + var intrinsic = GetIntrinsic(name, !!allowMissing); + if (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) { + return callBind(intrinsic); + } + return intrinsic; +}; + +},{"./":8,"get-intrinsic":11}],8:[function(require,module,exports){ +'use strict'; + +var bind = require('function-bind'); +var GetIntrinsic = require('get-intrinsic'); + +var $apply = GetIntrinsic('%Function.prototype.apply%'); +var $call = GetIntrinsic('%Function.prototype.call%'); +var $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply); + +var $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true); +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); +var $max = GetIntrinsic('%Math.max%'); + +if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + } catch (e) { + // IE 8 has a broken defineProperty + $defineProperty = null; + } +} + +module.exports = function callBind(originalFunction) { + var func = $reflectApply(bind, $call, arguments); + if ($gOPD && $defineProperty) { + var desc = $gOPD(func, 'length'); + if (desc.configurable) { + // original length, plus the receiver, minus any additional arguments (after the receiver) + $defineProperty( + func, + 'length', + { value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) } + ); + } + } + return func; +}; + +var applyBind = function applyBind() { + return $reflectApply(bind, $apply, arguments); +}; + +if ($defineProperty) { + $defineProperty(module.exports, 'apply', { value: applyBind }); +} else { + module.exports.apply = applyBind; +} + +},{"function-bind":10,"get-intrinsic":11}],9:[function(require,module,exports){ +'use strict'; + +/* eslint no-invalid-this: 1 */ + +var ERROR_MESSAGE = 'Function.prototype.bind called on incompatible '; +var slice = Array.prototype.slice; +var toStr = Object.prototype.toString; +var funcType = '[object Function]'; + +module.exports = function bind(that) { + var target = this; + if (typeof target !== 'function' || toStr.call(target) !== funcType) { + throw new TypeError(ERROR_MESSAGE + target); + } + var args = slice.call(arguments, 1); + + var bound; + var binder = function () { + if (this instanceof bound) { + var result = target.apply( + this, + args.concat(slice.call(arguments)) + ); + if (Object(result) === result) { + return result; + } + return this; + } else { + return target.apply( + that, + args.concat(slice.call(arguments)) + ); + } + }; + + var boundLength = Math.max(0, target.length - args.length); + var boundArgs = []; + for (var i = 0; i < boundLength; i++) { + boundArgs.push('$' + i); + } + + bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder); + + if (target.prototype) { + var Empty = function Empty() {}; + Empty.prototype = target.prototype; + bound.prototype = new Empty(); + Empty.prototype = null; + } + + return bound; +}; + +},{}],10:[function(require,module,exports){ +'use strict'; + +var implementation = require('./implementation'); + +module.exports = Function.prototype.bind || implementation; + +},{"./implementation":9}],11:[function(require,module,exports){ +'use strict'; + +var undefined; + +var $SyntaxError = SyntaxError; +var $Function = Function; +var $TypeError = TypeError; + +// eslint-disable-next-line consistent-return +var getEvalledConstructor = function (expressionSyntax) { + try { + return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); + } catch (e) {} +}; + +var $gOPD = Object.getOwnPropertyDescriptor; +if ($gOPD) { + try { + $gOPD({}, ''); + } catch (e) { + $gOPD = null; // this is IE 8, which has a broken gOPD + } +} + +var throwTypeError = function () { + throw new $TypeError(); +}; +var ThrowTypeError = $gOPD + ? (function () { + try { + // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties + arguments.callee; // IE 8 does not throw here + return throwTypeError; + } catch (calleeThrows) { + try { + // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') + return $gOPD(arguments, 'callee').get; + } catch (gOPDthrows) { + return throwTypeError; + } + } + }()) + : throwTypeError; + +var hasSymbols = require('has-symbols')(); +var hasProto = require('has-proto')(); + +var getProto = Object.getPrototypeOf || ( + hasProto + ? function (x) { return x.__proto__; } // eslint-disable-line no-proto + : null +); + +var needsEval = {}; + +var TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array); + +var INTRINSICS = { + '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, + '%Array%': Array, + '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, + '%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined, + '%AsyncFromSyncIteratorPrototype%': undefined, + '%AsyncFunction%': needsEval, + '%AsyncGenerator%': needsEval, + '%AsyncGeneratorFunction%': needsEval, + '%AsyncIteratorPrototype%': needsEval, + '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, + '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, + '%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array, + '%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array, + '%Boolean%': Boolean, + '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, + '%Date%': Date, + '%decodeURI%': decodeURI, + '%decodeURIComponent%': decodeURIComponent, + '%encodeURI%': encodeURI, + '%encodeURIComponent%': encodeURIComponent, + '%Error%': Error, + '%eval%': eval, // eslint-disable-line no-eval + '%EvalError%': EvalError, + '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, + '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, + '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, + '%Function%': $Function, + '%GeneratorFunction%': needsEval, + '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, + '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, + '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, + '%isFinite%': isFinite, + '%isNaN%': isNaN, + '%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined, + '%JSON%': typeof JSON === 'object' ? JSON : undefined, + '%Map%': typeof Map === 'undefined' ? undefined : Map, + '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()), + '%Math%': Math, + '%Number%': Number, + '%Object%': Object, + '%parseFloat%': parseFloat, + '%parseInt%': parseInt, + '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, + '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, + '%RangeError%': RangeError, + '%ReferenceError%': ReferenceError, + '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, + '%RegExp%': RegExp, + '%Set%': typeof Set === 'undefined' ? undefined : Set, + '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()), + '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, + '%String%': String, + '%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined, + '%Symbol%': hasSymbols ? Symbol : undefined, + '%SyntaxError%': $SyntaxError, + '%ThrowTypeError%': ThrowTypeError, + '%TypedArray%': TypedArray, + '%TypeError%': $TypeError, + '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, + '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, + '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, + '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, + '%URIError%': URIError, + '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, + '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, + '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet +}; + +if (getProto) { + try { + null.error; // eslint-disable-line no-unused-expressions + } catch (e) { + // https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229 + var errorProto = getProto(getProto(e)); + INTRINSICS['%Error.prototype%'] = errorProto; + } +} + +var doEval = function doEval(name) { + var value; + if (name === '%AsyncFunction%') { + value = getEvalledConstructor('async function () {}'); + } else if (name === '%GeneratorFunction%') { + value = getEvalledConstructor('function* () {}'); + } else if (name === '%AsyncGeneratorFunction%') { + value = getEvalledConstructor('async function* () {}'); + } else if (name === '%AsyncGenerator%') { + var fn = doEval('%AsyncGeneratorFunction%'); + if (fn) { + value = fn.prototype; + } + } else if (name === '%AsyncIteratorPrototype%') { + var gen = doEval('%AsyncGenerator%'); + if (gen && getProto) { + value = getProto(gen.prototype); + } + } + + INTRINSICS[name] = value; + + return value; +}; + +var LEGACY_ALIASES = { + '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], + '%ArrayPrototype%': ['Array', 'prototype'], + '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], + '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], + '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], + '%ArrayProto_values%': ['Array', 'prototype', 'values'], + '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], + '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], + '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], + '%BooleanPrototype%': ['Boolean', 'prototype'], + '%DataViewPrototype%': ['DataView', 'prototype'], + '%DatePrototype%': ['Date', 'prototype'], + '%ErrorPrototype%': ['Error', 'prototype'], + '%EvalErrorPrototype%': ['EvalError', 'prototype'], + '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], + '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], + '%FunctionPrototype%': ['Function', 'prototype'], + '%Generator%': ['GeneratorFunction', 'prototype'], + '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], + '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], + '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], + '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], + '%JSONParse%': ['JSON', 'parse'], + '%JSONStringify%': ['JSON', 'stringify'], + '%MapPrototype%': ['Map', 'prototype'], + '%NumberPrototype%': ['Number', 'prototype'], + '%ObjectPrototype%': ['Object', 'prototype'], + '%ObjProto_toString%': ['Object', 'prototype', 'toString'], + '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], + '%PromisePrototype%': ['Promise', 'prototype'], + '%PromiseProto_then%': ['Promise', 'prototype', 'then'], + '%Promise_all%': ['Promise', 'all'], + '%Promise_reject%': ['Promise', 'reject'], + '%Promise_resolve%': ['Promise', 'resolve'], + '%RangeErrorPrototype%': ['RangeError', 'prototype'], + '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], + '%RegExpPrototype%': ['RegExp', 'prototype'], + '%SetPrototype%': ['Set', 'prototype'], + '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], + '%StringPrototype%': ['String', 'prototype'], + '%SymbolPrototype%': ['Symbol', 'prototype'], + '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], + '%TypedArrayPrototype%': ['TypedArray', 'prototype'], + '%TypeErrorPrototype%': ['TypeError', 'prototype'], + '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], + '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], + '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], + '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], + '%URIErrorPrototype%': ['URIError', 'prototype'], + '%WeakMapPrototype%': ['WeakMap', 'prototype'], + '%WeakSetPrototype%': ['WeakSet', 'prototype'] +}; + +var bind = require('function-bind'); +var hasOwn = require('has'); +var $concat = bind.call(Function.call, Array.prototype.concat); +var $spliceApply = bind.call(Function.apply, Array.prototype.splice); +var $replace = bind.call(Function.call, String.prototype.replace); +var $strSlice = bind.call(Function.call, String.prototype.slice); +var $exec = bind.call(Function.call, RegExp.prototype.exec); + +/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ +var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; +var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ +var stringToPath = function stringToPath(string) { + var first = $strSlice(string, 0, 1); + var last = $strSlice(string, -1); + if (first === '%' && last !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); + } else if (last === '%' && first !== '%') { + throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); + } + var result = []; + $replace(string, rePropName, function (match, number, quote, subString) { + result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; + }); + return result; +}; +/* end adaptation */ + +var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { + var intrinsicName = name; + var alias; + if (hasOwn(LEGACY_ALIASES, intrinsicName)) { + alias = LEGACY_ALIASES[intrinsicName]; + intrinsicName = '%' + alias[0] + '%'; + } + + if (hasOwn(INTRINSICS, intrinsicName)) { + var value = INTRINSICS[intrinsicName]; + if (value === needsEval) { + value = doEval(intrinsicName); + } + if (typeof value === 'undefined' && !allowMissing) { + throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); + } + + return { + alias: alias, + name: intrinsicName, + value: value + }; + } + + throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); +}; + +module.exports = function GetIntrinsic(name, allowMissing) { + if (typeof name !== 'string' || name.length === 0) { + throw new $TypeError('intrinsic name must be a non-empty string'); + } + if (arguments.length > 1 && typeof allowMissing !== 'boolean') { + throw new $TypeError('"allowMissing" argument must be a boolean'); + } + + if ($exec(/^%?[^%]*%?$/, name) === null) { + throw new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name'); + } + var parts = stringToPath(name); + var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + + var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); + var intrinsicRealName = intrinsic.name; + var value = intrinsic.value; + var skipFurtherCaching = false; + + var alias = intrinsic.alias; + if (alias) { + intrinsicBaseName = alias[0]; + $spliceApply(parts, $concat([0, 1], alias)); + } + + for (var i = 1, isOwn = true; i < parts.length; i += 1) { + var part = parts[i]; + var first = $strSlice(part, 0, 1); + var last = $strSlice(part, -1); + if ( + ( + (first === '"' || first === "'" || first === '`') + || (last === '"' || last === "'" || last === '`') + ) + && first !== last + ) { + throw new $SyntaxError('property names with quotes must have matching quotes'); + } + if (part === 'constructor' || !isOwn) { + skipFurtherCaching = true; + } + + intrinsicBaseName += '.' + part; + intrinsicRealName = '%' + intrinsicBaseName + '%'; + + if (hasOwn(INTRINSICS, intrinsicRealName)) { + value = INTRINSICS[intrinsicRealName]; + } else if (value != null) { + if (!(part in value)) { + if (!allowMissing) { + throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); + } + return void undefined; + } + if ($gOPD && (i + 1) >= parts.length) { + var desc = $gOPD(value, part); + isOwn = !!desc; + + // By convention, when a data property is converted to an accessor + // property to emulate a data property that does not suffer from + // the override mistake, that accessor's getter is marked with + // an `originalValue` property. Here, when we detect this, we + // uphold the illusion by pretending to see that original data + // property, i.e., returning the value rather than the getter + // itself. + if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { + value = desc.get; + } else { + value = value[part]; + } + } else { + isOwn = hasOwn(value, part); + value = value[part]; + } + + if (isOwn && !skipFurtherCaching) { + INTRINSICS[intrinsicRealName] = value; + } + } + } + return value; +}; + +},{"function-bind":10,"has":15,"has-proto":12,"has-symbols":13}],12:[function(require,module,exports){ +'use strict'; + +var test = { + foo: {} +}; + +var $Object = Object; + +module.exports = function hasProto() { + return { __proto__: test }.foo === test.foo && !({ __proto__: null } instanceof $Object); +}; + +},{}],13:[function(require,module,exports){ +'use strict'; + +var origSymbol = typeof Symbol !== 'undefined' && Symbol; +var hasSymbolSham = require('./shams'); + +module.exports = function hasNativeSymbols() { + if (typeof origSymbol !== 'function') { return false; } + if (typeof Symbol !== 'function') { return false; } + if (typeof origSymbol('foo') !== 'symbol') { return false; } + if (typeof Symbol('bar') !== 'symbol') { return false; } + + return hasSymbolSham(); +}; + +},{"./shams":14}],14:[function(require,module,exports){ +'use strict'; + +/* eslint complexity: [2, 18], max-statements: [2, 33] */ +module.exports = function hasSymbols() { + if (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; } + if (typeof Symbol.iterator === 'symbol') { return true; } + + var obj = {}; + var sym = Symbol('test'); + var symObj = Object(sym); + if (typeof sym === 'string') { return false; } + + if (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; } + if (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; } + + // temp disabled per https://github.com/ljharb/object.assign/issues/17 + // if (sym instanceof Symbol) { return false; } + // temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4 + // if (!(symObj instanceof Symbol)) { return false; } + + // if (typeof Symbol.prototype.toString !== 'function') { return false; } + // if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; } + + var symVal = 42; + obj[sym] = symVal; + for (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop + if (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; } + + if (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; } + + var syms = Object.getOwnPropertySymbols(obj); + if (syms.length !== 1 || syms[0] !== sym) { return false; } + + if (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; } + + if (typeof Object.getOwnPropertyDescriptor === 'function') { + var descriptor = Object.getOwnPropertyDescriptor(obj, sym); + if (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; } + } + + return true; +}; + +},{}],15:[function(require,module,exports){ +'use strict'; + +var bind = require('function-bind'); + +module.exports = bind.call(Function.call, Object.prototype.hasOwnProperty); + +},{"function-bind":10}],16:[function(require,module,exports){ +var hasMap = typeof Map === 'function' && Map.prototype; +var mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null; +var mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null; +var mapForEach = hasMap && Map.prototype.forEach; +var hasSet = typeof Set === 'function' && Set.prototype; +var setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null; +var setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null; +var setForEach = hasSet && Set.prototype.forEach; +var hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype; +var weakMapHas = hasWeakMap ? WeakMap.prototype.has : null; +var hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype; +var weakSetHas = hasWeakSet ? WeakSet.prototype.has : null; +var hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype; +var weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null; +var booleanValueOf = Boolean.prototype.valueOf; +var objectToString = Object.prototype.toString; +var functionToString = Function.prototype.toString; +var $match = String.prototype.match; +var $slice = String.prototype.slice; +var $replace = String.prototype.replace; +var $toUpperCase = String.prototype.toUpperCase; +var $toLowerCase = String.prototype.toLowerCase; +var $test = RegExp.prototype.test; +var $concat = Array.prototype.concat; +var $join = Array.prototype.join; +var $arrSlice = Array.prototype.slice; +var $floor = Math.floor; +var bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null; +var gOPS = Object.getOwnPropertySymbols; +var symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null; +var hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object'; +// ie, `has-tostringtag/shams +var toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol') + ? Symbol.toStringTag + : null; +var isEnumerable = Object.prototype.propertyIsEnumerable; + +var gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || ( + [].__proto__ === Array.prototype // eslint-disable-line no-proto + ? function (O) { + return O.__proto__; // eslint-disable-line no-proto + } + : null +); + +function addNumericSeparator(num, str) { + if ( + num === Infinity + || num === -Infinity + || num !== num + || (num && num > -1000 && num < 1000) + || $test.call(/e/, str) + ) { + return str; + } + var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g; + if (typeof num === 'number') { + var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num) + if (int !== num) { + var intStr = String(int); + var dec = $slice.call(str, intStr.length + 1); + return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, ''); + } + } + return $replace.call(str, sepRegex, '$&_'); +} + +var utilInspect = require('./util.inspect'); +var inspectCustom = utilInspect.custom; +var inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null; + +module.exports = function inspect_(obj, options, depth, seen) { + var opts = options || {}; + + if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) { + throw new TypeError('option "quoteStyle" must be "single" or "double"'); + } + if ( + has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number' + ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity + : opts.maxStringLength !== null + ) + ) { + throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`'); + } + var customInspect = has(opts, 'customInspect') ? opts.customInspect : true; + if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') { + throw new TypeError('option "customInspect", if provided, must be `true`, `false`, or `\'symbol\'`'); + } + + if ( + has(opts, 'indent') + && opts.indent !== null + && opts.indent !== '\t' + && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0) + ) { + throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`'); + } + if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') { + throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`'); + } + var numericSeparator = opts.numericSeparator; + + if (typeof obj === 'undefined') { + return 'undefined'; + } + if (obj === null) { + return 'null'; + } + if (typeof obj === 'boolean') { + return obj ? 'true' : 'false'; + } + + if (typeof obj === 'string') { + return inspectString(obj, opts); + } + if (typeof obj === 'number') { + if (obj === 0) { + return Infinity / obj > 0 ? '0' : '-0'; + } + var str = String(obj); + return numericSeparator ? addNumericSeparator(obj, str) : str; + } + if (typeof obj === 'bigint') { + var bigIntStr = String(obj) + 'n'; + return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr; + } + + var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth; + if (typeof depth === 'undefined') { depth = 0; } + if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') { + return isArray(obj) ? '[Array]' : '[Object]'; + } + + var indent = getIndent(opts, depth); + + if (typeof seen === 'undefined') { + seen = []; + } else if (indexOf(seen, obj) >= 0) { + return '[Circular]'; + } + + function inspect(value, from, noIndent) { + if (from) { + seen = $arrSlice.call(seen); + seen.push(from); + } + if (noIndent) { + var newOpts = { + depth: opts.depth + }; + if (has(opts, 'quoteStyle')) { + newOpts.quoteStyle = opts.quoteStyle; + } + return inspect_(value, newOpts, depth + 1, seen); + } + return inspect_(value, opts, depth + 1, seen); + } + + if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable + var name = nameOf(obj); + var keys = arrObjKeys(obj, inspect); + return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : ''); + } + if (isSymbol(obj)) { + var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\(.*\))_[^)]*$/, '$1') : symToString.call(obj); + return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString; + } + if (isElement(obj)) { + var s = '<' + $toLowerCase.call(String(obj.nodeName)); + var attrs = obj.attributes || []; + for (var i = 0; i < attrs.length; i++) { + s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts); + } + s += '>'; + if (obj.childNodes && obj.childNodes.length) { s += '...'; } + s += ''; + return s; + } + if (isArray(obj)) { + if (obj.length === 0) { return '[]'; } + var xs = arrObjKeys(obj, inspect); + if (indent && !singleLineValues(xs)) { + return '[' + indentedJoin(xs, indent) + ']'; + } + return '[ ' + $join.call(xs, ', ') + ' ]'; + } + if (isError(obj)) { + var parts = arrObjKeys(obj, inspect); + if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) { + return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }'; + } + if (parts.length === 0) { return '[' + String(obj) + ']'; } + return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }'; + } + if (typeof obj === 'object' && customInspect) { + if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) { + return utilInspect(obj, { depth: maxDepth - depth }); + } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') { + return obj.inspect(); + } + } + if (isMap(obj)) { + var mapParts = []; + if (mapForEach) { + mapForEach.call(obj, function (value, key) { + mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj)); + }); + } + return collectionOf('Map', mapSize.call(obj), mapParts, indent); + } + if (isSet(obj)) { + var setParts = []; + if (setForEach) { + setForEach.call(obj, function (value) { + setParts.push(inspect(value, obj)); + }); + } + return collectionOf('Set', setSize.call(obj), setParts, indent); + } + if (isWeakMap(obj)) { + return weakCollectionOf('WeakMap'); + } + if (isWeakSet(obj)) { + return weakCollectionOf('WeakSet'); + } + if (isWeakRef(obj)) { + return weakCollectionOf('WeakRef'); + } + if (isNumber(obj)) { + return markBoxed(inspect(Number(obj))); + } + if (isBigInt(obj)) { + return markBoxed(inspect(bigIntValueOf.call(obj))); + } + if (isBoolean(obj)) { + return markBoxed(booleanValueOf.call(obj)); + } + if (isString(obj)) { + return markBoxed(inspect(String(obj))); + } + if (!isDate(obj) && !isRegExp(obj)) { + var ys = arrObjKeys(obj, inspect); + var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object; + var protoTag = obj instanceof Object ? '' : 'null prototype'; + var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : ''; + var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : ''; + var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : ''); + if (ys.length === 0) { return tag + '{}'; } + if (indent) { + return tag + '{' + indentedJoin(ys, indent) + '}'; + } + return tag + '{ ' + $join.call(ys, ', ') + ' }'; + } + return String(obj); +}; + +function wrapQuotes(s, defaultStyle, opts) { + var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '"' : "'"; + return quoteChar + s + quoteChar; +} + +function quote(s) { + return $replace.call(String(s), /"/g, '"'); +} + +function isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } +function isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); } + +// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives +function isSymbol(obj) { + if (hasShammedSymbols) { + return obj && typeof obj === 'object' && obj instanceof Symbol; + } + if (typeof obj === 'symbol') { + return true; + } + if (!obj || typeof obj !== 'object' || !symToString) { + return false; + } + try { + symToString.call(obj); + return true; + } catch (e) {} + return false; +} + +function isBigInt(obj) { + if (!obj || typeof obj !== 'object' || !bigIntValueOf) { + return false; + } + try { + bigIntValueOf.call(obj); + return true; + } catch (e) {} + return false; +} + +var hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; }; +function has(obj, key) { + return hasOwn.call(obj, key); +} + +function toStr(obj) { + return objectToString.call(obj); +} + +function nameOf(f) { + if (f.name) { return f.name; } + var m = $match.call(functionToString.call(f), /^function\s*([\w$]+)/); + if (m) { return m[1]; } + return null; +} + +function indexOf(xs, x) { + if (xs.indexOf) { return xs.indexOf(x); } + for (var i = 0, l = xs.length; i < l; i++) { + if (xs[i] === x) { return i; } + } + return -1; +} + +function isMap(x) { + if (!mapSize || !x || typeof x !== 'object') { + return false; + } + try { + mapSize.call(x); + try { + setSize.call(x); + } catch (s) { + return true; + } + return x instanceof Map; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakMap(x) { + if (!weakMapHas || !x || typeof x !== 'object') { + return false; + } + try { + weakMapHas.call(x, weakMapHas); + try { + weakSetHas.call(x, weakSetHas); + } catch (s) { + return true; + } + return x instanceof WeakMap; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakRef(x) { + if (!weakRefDeref || !x || typeof x !== 'object') { + return false; + } + try { + weakRefDeref.call(x); + return true; + } catch (e) {} + return false; +} + +function isSet(x) { + if (!setSize || !x || typeof x !== 'object') { + return false; + } + try { + setSize.call(x); + try { + mapSize.call(x); + } catch (m) { + return true; + } + return x instanceof Set; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isWeakSet(x) { + if (!weakSetHas || !x || typeof x !== 'object') { + return false; + } + try { + weakSetHas.call(x, weakSetHas); + try { + weakMapHas.call(x, weakMapHas); + } catch (s) { + return true; + } + return x instanceof WeakSet; // core-js workaround, pre-v2.5.0 + } catch (e) {} + return false; +} + +function isElement(x) { + if (!x || typeof x !== 'object') { return false; } + if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) { + return true; + } + return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function'; +} + +function inspectString(str, opts) { + if (str.length > opts.maxStringLength) { + var remaining = str.length - opts.maxStringLength; + var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : ''); + return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer; + } + // eslint-disable-next-line no-control-regex + var s = $replace.call($replace.call(str, /(['\\])/g, '\\$1'), /[\x00-\x1f]/g, lowbyte); + return wrapQuotes(s, 'single', opts); +} + +function lowbyte(c) { + var n = c.charCodeAt(0); + var x = { + 8: 'b', + 9: 't', + 10: 'n', + 12: 'f', + 13: 'r' + }[n]; + if (x) { return '\\' + x; } + return '\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16)); +} + +function markBoxed(str) { + return 'Object(' + str + ')'; +} + +function weakCollectionOf(type) { + return type + ' { ? }'; +} + +function collectionOf(type, size, entries, indent) { + var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', '); + return type + ' (' + size + ') {' + joinedEntries + '}'; +} + +function singleLineValues(xs) { + for (var i = 0; i < xs.length; i++) { + if (indexOf(xs[i], '\n') >= 0) { + return false; + } + } + return true; +} + +function getIndent(opts, depth) { + var baseIndent; + if (opts.indent === '\t') { + baseIndent = '\t'; + } else if (typeof opts.indent === 'number' && opts.indent > 0) { + baseIndent = $join.call(Array(opts.indent + 1), ' '); + } else { + return null; + } + return { + base: baseIndent, + prev: $join.call(Array(depth + 1), baseIndent) + }; +} + +function indentedJoin(xs, indent) { + if (xs.length === 0) { return ''; } + var lineJoiner = '\n' + indent.prev + indent.base; + return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\n' + indent.prev; +} + +function arrObjKeys(obj, inspect) { + var isArr = isArray(obj); + var xs = []; + if (isArr) { + xs.length = obj.length; + for (var i = 0; i < obj.length; i++) { + xs[i] = has(obj, i) ? inspect(obj[i], obj) : ''; + } + } + var syms = typeof gOPS === 'function' ? gOPS(obj) : []; + var symMap; + if (hasShammedSymbols) { + symMap = {}; + for (var k = 0; k < syms.length; k++) { + symMap['$' + syms[k]] = syms[k]; + } + } + + for (var key in obj) { // eslint-disable-line no-restricted-syntax + if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue + if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) { + // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section + continue; // eslint-disable-line no-restricted-syntax, no-continue + } else if ($test.call(/[^\w$]/, key)) { + xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj)); + } else { + xs.push(key + ': ' + inspect(obj[key], obj)); + } + } + if (typeof gOPS === 'function') { + for (var j = 0; j < syms.length; j++) { + if (isEnumerable.call(obj, syms[j])) { + xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj)); + } + } + } + return xs; +} + +},{"./util.inspect":6}],17:[function(require,module,exports){ +'use strict'; + +var GetIntrinsic = require('get-intrinsic'); +var callBound = require('call-bind/callBound'); +var inspect = require('object-inspect'); + +var $TypeError = GetIntrinsic('%TypeError%'); +var $WeakMap = GetIntrinsic('%WeakMap%', true); +var $Map = GetIntrinsic('%Map%', true); + +var $weakMapGet = callBound('WeakMap.prototype.get', true); +var $weakMapSet = callBound('WeakMap.prototype.set', true); +var $weakMapHas = callBound('WeakMap.prototype.has', true); +var $mapGet = callBound('Map.prototype.get', true); +var $mapSet = callBound('Map.prototype.set', true); +var $mapHas = callBound('Map.prototype.has', true); + +/* + * This function traverses the list returning the node corresponding to the + * given key. + * + * That node is also moved to the head of the list, so that if it's accessed + * again we don't need to traverse the whole list. By doing so, all the recently + * used nodes can be accessed relatively quickly. + */ +var listGetNode = function (list, key) { // eslint-disable-line consistent-return + for (var prev = list, curr; (curr = prev.next) !== null; prev = curr) { + if (curr.key === key) { + prev.next = curr.next; + curr.next = list.next; + list.next = curr; // eslint-disable-line no-param-reassign + return curr; + } + } +}; + +var listGet = function (objects, key) { + var node = listGetNode(objects, key); + return node && node.value; +}; +var listSet = function (objects, key, value) { + var node = listGetNode(objects, key); + if (node) { + node.value = value; + } else { + // Prepend the new node to the beginning of the list + objects.next = { // eslint-disable-line no-param-reassign + key: key, + next: objects.next, + value: value + }; + } +}; +var listHas = function (objects, key) { + return !!listGetNode(objects, key); +}; + +module.exports = function getSideChannel() { + var $wm; + var $m; + var $o; + var channel = { + assert: function (key) { + if (!channel.has(key)) { + throw new $TypeError('Side channel does not contain ' + inspect(key)); + } + }, + get: function (key) { // eslint-disable-line consistent-return + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapGet($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapGet($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listGet($o, key); + } + } + }, + has: function (key) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if ($wm) { + return $weakMapHas($wm, key); + } + } else if ($Map) { + if ($m) { + return $mapHas($m, key); + } + } else { + if ($o) { // eslint-disable-line no-lonely-if + return listHas($o, key); + } + } + return false; + }, + set: function (key, value) { + if ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) { + if (!$wm) { + $wm = new $WeakMap(); + } + $weakMapSet($wm, key, value); + } else if ($Map) { + if (!$m) { + $m = new $Map(); + } + $mapSet($m, key, value); + } else { + if (!$o) { + /* + * Initialize the linked list as an empty node, so that we don't have + * to special-case handling of the first node: we can always refer to + * it as (previous node).next, instead of something like (list).head + */ + $o = { key: {}, next: null }; + } + listSet($o, key, value); + } + } + }; + return channel; +}; + +},{"call-bind/callBound":7,"get-intrinsic":11,"object-inspect":16}]},{},[2])(2) +}); diff --git a/node_modules/url/node_modules/qs/lib/formats.js b/node_modules/url/node_modules/qs/lib/formats.js new file mode 100644 index 0000000..f36cf20 --- /dev/null +++ b/node_modules/url/node_modules/qs/lib/formats.js @@ -0,0 +1,23 @@ +'use strict'; + +var replace = String.prototype.replace; +var percentTwenties = /%20/g; + +var Format = { + RFC1738: 'RFC1738', + RFC3986: 'RFC3986' +}; + +module.exports = { + 'default': Format.RFC3986, + formatters: { + RFC1738: function (value) { + return replace.call(value, percentTwenties, '+'); + }, + RFC3986: function (value) { + return String(value); + } + }, + RFC1738: Format.RFC1738, + RFC3986: Format.RFC3986 +}; diff --git a/node_modules/url/node_modules/qs/lib/index.js b/node_modules/url/node_modules/qs/lib/index.js new file mode 100644 index 0000000..0d6a97d --- /dev/null +++ b/node_modules/url/node_modules/qs/lib/index.js @@ -0,0 +1,11 @@ +'use strict'; + +var stringify = require('./stringify'); +var parse = require('./parse'); +var formats = require('./formats'); + +module.exports = { + formats: formats, + parse: parse, + stringify: stringify +}; diff --git a/node_modules/url/node_modules/qs/lib/parse.js b/node_modules/url/node_modules/qs/lib/parse.js new file mode 100644 index 0000000..ae194fb --- /dev/null +++ b/node_modules/url/node_modules/qs/lib/parse.js @@ -0,0 +1,264 @@ +'use strict'; + +var utils = require('./utils'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var defaults = { + allowDots: false, + allowPrototypes: false, + allowSparse: false, + arrayLimit: 20, + charset: 'utf-8', + charsetSentinel: false, + comma: false, + decoder: utils.decode, + delimiter: '&', + depth: 5, + ignoreQueryPrefix: false, + interpretNumericEntities: false, + parameterLimit: 1000, + parseArrays: true, + plainObjects: false, + strictNullHandling: false +}; + +var interpretNumericEntities = function (str) { + return str.replace(/&#(\d+);/g, function ($0, numberStr) { + return String.fromCharCode(parseInt(numberStr, 10)); + }); +}; + +var parseArrayValue = function (val, options) { + if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) { + return val.split(','); + } + + return val; +}; + +// This is what browsers will submit when the ✓ character occurs in an +// application/x-www-form-urlencoded body and the encoding of the page containing +// the form is iso-8859-1, or when the submitted form has an accept-charset +// attribute of iso-8859-1. Presumably also with other charsets that do not contain +// the ✓ character, such as us-ascii. +var isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓') + +// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded. +var charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓') + +var parseValues = function parseQueryStringValues(str, options) { + var obj = { __proto__: null }; + + var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\?/, '') : str; + var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit; + var parts = cleanStr.split(options.delimiter, limit); + var skipIndex = -1; // Keep track of where the utf8 sentinel was found + var i; + + var charset = options.charset; + if (options.charsetSentinel) { + for (i = 0; i < parts.length; ++i) { + if (parts[i].indexOf('utf8=') === 0) { + if (parts[i] === charsetSentinel) { + charset = 'utf-8'; + } else if (parts[i] === isoSentinel) { + charset = 'iso-8859-1'; + } + skipIndex = i; + i = parts.length; // The eslint settings do not allow break; + } + } + } + + for (i = 0; i < parts.length; ++i) { + if (i === skipIndex) { + continue; + } + var part = parts[i]; + + var bracketEqualsPos = part.indexOf(']='); + var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1; + + var key, val; + if (pos === -1) { + key = options.decoder(part, defaults.decoder, charset, 'key'); + val = options.strictNullHandling ? null : ''; + } else { + key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key'); + val = utils.maybeMap( + parseArrayValue(part.slice(pos + 1), options), + function (encodedVal) { + return options.decoder(encodedVal, defaults.decoder, charset, 'value'); + } + ); + } + + if (val && options.interpretNumericEntities && charset === 'iso-8859-1') { + val = interpretNumericEntities(val); + } + + if (part.indexOf('[]=') > -1) { + val = isArray(val) ? [val] : val; + } + + if (has.call(obj, key)) { + obj[key] = utils.combine(obj[key], val); + } else { + obj[key] = val; + } + } + + return obj; +}; + +var parseObject = function (chain, val, options, valuesParsed) { + var leaf = valuesParsed ? val : parseArrayValue(val, options); + + for (var i = chain.length - 1; i >= 0; --i) { + var obj; + var root = chain[i]; + + if (root === '[]' && options.parseArrays) { + obj = [].concat(leaf); + } else { + obj = options.plainObjects ? Object.create(null) : {}; + var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root; + var index = parseInt(cleanRoot, 10); + if (!options.parseArrays && cleanRoot === '') { + obj = { 0: leaf }; + } else if ( + !isNaN(index) + && root !== cleanRoot + && String(index) === cleanRoot + && index >= 0 + && (options.parseArrays && index <= options.arrayLimit) + ) { + obj = []; + obj[index] = leaf; + } else if (cleanRoot !== '__proto__') { + obj[cleanRoot] = leaf; + } + } + + leaf = obj; + } + + return leaf; +}; + +var parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) { + if (!givenKey) { + return; + } + + // Transform dot notation to bracket notation + var key = options.allowDots ? givenKey.replace(/\.([^.[]+)/g, '[$1]') : givenKey; + + // The regex chunks + + var brackets = /(\[[^[\]]*])/; + var child = /(\[[^[\]]*])/g; + + // Get the parent + + var segment = options.depth > 0 && brackets.exec(key); + var parent = segment ? key.slice(0, segment.index) : key; + + // Stash the parent if it exists + + var keys = []; + if (parent) { + // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties + if (!options.plainObjects && has.call(Object.prototype, parent)) { + if (!options.allowPrototypes) { + return; + } + } + + keys.push(parent); + } + + // Loop through children appending to the array until we hit depth + + var i = 0; + while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) { + i += 1; + if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) { + if (!options.allowPrototypes) { + return; + } + } + keys.push(segment[1]); + } + + // If there's a remainder, just add whatever is left + + if (segment) { + keys.push('[' + key.slice(segment.index) + ']'); + } + + return parseObject(keys, val, options, valuesParsed); +}; + +var normalizeParseOptions = function normalizeParseOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.decoder !== null && opts.decoder !== undefined && typeof opts.decoder !== 'function') { + throw new TypeError('Decoder has to be a function.'); + } + + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset; + + return { + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes, + allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse, + arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma, + decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder, + delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter, + // eslint-disable-next-line no-implicit-coercion, no-extra-parens + depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth, + ignoreQueryPrefix: opts.ignoreQueryPrefix === true, + interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities, + parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit, + parseArrays: opts.parseArrays !== false, + plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (str, opts) { + var options = normalizeParseOptions(opts); + + if (str === '' || str === null || typeof str === 'undefined') { + return options.plainObjects ? Object.create(null) : {}; + } + + var tempObj = typeof str === 'string' ? parseValues(str, options) : str; + var obj = options.plainObjects ? Object.create(null) : {}; + + // Iterate over the keys and setup the new object + + var keys = Object.keys(tempObj); + for (var i = 0; i < keys.length; ++i) { + var key = keys[i]; + var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string'); + obj = utils.merge(obj, newObj, options); + } + + if (options.allowSparse === true) { + return obj; + } + + return utils.compact(obj); +}; diff --git a/node_modules/url/node_modules/qs/lib/stringify.js b/node_modules/url/node_modules/qs/lib/stringify.js new file mode 100644 index 0000000..997d3ee --- /dev/null +++ b/node_modules/url/node_modules/qs/lib/stringify.js @@ -0,0 +1,320 @@ +'use strict'; + +var getSideChannel = require('side-channel'); +var utils = require('./utils'); +var formats = require('./formats'); +var has = Object.prototype.hasOwnProperty; + +var arrayPrefixGenerators = { + brackets: function brackets(prefix) { + return prefix + '[]'; + }, + comma: 'comma', + indices: function indices(prefix, key) { + return prefix + '[' + key + ']'; + }, + repeat: function repeat(prefix) { + return prefix; + } +}; + +var isArray = Array.isArray; +var push = Array.prototype.push; +var pushToArray = function (arr, valueOrArray) { + push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]); +}; + +var toISO = Date.prototype.toISOString; + +var defaultFormat = formats['default']; +var defaults = { + addQueryPrefix: false, + allowDots: false, + charset: 'utf-8', + charsetSentinel: false, + delimiter: '&', + encode: true, + encoder: utils.encode, + encodeValuesOnly: false, + format: defaultFormat, + formatter: formats.formatters[defaultFormat], + // deprecated + indices: false, + serializeDate: function serializeDate(date) { + return toISO.call(date); + }, + skipNulls: false, + strictNullHandling: false +}; + +var isNonNullishPrimitive = function isNonNullishPrimitive(v) { + return typeof v === 'string' + || typeof v === 'number' + || typeof v === 'boolean' + || typeof v === 'symbol' + || typeof v === 'bigint'; +}; + +var sentinel = {}; + +var stringify = function stringify( + object, + prefix, + generateArrayPrefix, + commaRoundTrip, + strictNullHandling, + skipNulls, + encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + sideChannel +) { + var obj = object; + + var tmpSc = sideChannel; + var step = 0; + var findFlag = false; + while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) { + // Where object last appeared in the ref tree + var pos = tmpSc.get(object); + step += 1; + if (typeof pos !== 'undefined') { + if (pos === step) { + throw new RangeError('Cyclic object value'); + } else { + findFlag = true; // Break while + } + } + if (typeof tmpSc.get(sentinel) === 'undefined') { + step = 0; + } + } + + if (typeof filter === 'function') { + obj = filter(prefix, obj); + } else if (obj instanceof Date) { + obj = serializeDate(obj); + } else if (generateArrayPrefix === 'comma' && isArray(obj)) { + obj = utils.maybeMap(obj, function (value) { + if (value instanceof Date) { + return serializeDate(value); + } + return value; + }); + } + + if (obj === null) { + if (strictNullHandling) { + return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix; + } + + obj = ''; + } + + if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) { + if (encoder) { + var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format); + return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))]; + } + return [formatter(prefix) + '=' + formatter(String(obj))]; + } + + var values = []; + + if (typeof obj === 'undefined') { + return values; + } + + var objKeys; + if (generateArrayPrefix === 'comma' && isArray(obj)) { + // we need to join elements in + if (encodeValuesOnly && encoder) { + obj = utils.maybeMap(obj, encoder); + } + objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }]; + } else if (isArray(filter)) { + objKeys = filter; + } else { + var keys = Object.keys(obj); + objKeys = sort ? keys.sort(sort) : keys; + } + + var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? prefix + '[]' : prefix; + + for (var j = 0; j < objKeys.length; ++j) { + var key = objKeys[j]; + var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key]; + + if (skipNulls && value === null) { + continue; + } + + var keyPrefix = isArray(obj) + ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, key) : adjustedPrefix + : adjustedPrefix + (allowDots ? '.' + key : '[' + key + ']'); + + sideChannel.set(object, step); + var valueSideChannel = getSideChannel(); + valueSideChannel.set(sentinel, sideChannel); + pushToArray(values, stringify( + value, + keyPrefix, + generateArrayPrefix, + commaRoundTrip, + strictNullHandling, + skipNulls, + generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder, + filter, + sort, + allowDots, + serializeDate, + format, + formatter, + encodeValuesOnly, + charset, + valueSideChannel + )); + } + + return values; +}; + +var normalizeStringifyOptions = function normalizeStringifyOptions(opts) { + if (!opts) { + return defaults; + } + + if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') { + throw new TypeError('Encoder has to be a function.'); + } + + var charset = opts.charset || defaults.charset; + if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') { + throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined'); + } + + var format = formats['default']; + if (typeof opts.format !== 'undefined') { + if (!has.call(formats.formatters, opts.format)) { + throw new TypeError('Unknown format option provided.'); + } + format = opts.format; + } + var formatter = formats.formatters[format]; + + var filter = defaults.filter; + if (typeof opts.filter === 'function' || isArray(opts.filter)) { + filter = opts.filter; + } + + return { + addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix, + allowDots: typeof opts.allowDots === 'undefined' ? defaults.allowDots : !!opts.allowDots, + charset: charset, + charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel, + delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter, + encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode, + encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder, + encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly, + filter: filter, + format: format, + formatter: formatter, + serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate, + skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls, + sort: typeof opts.sort === 'function' ? opts.sort : null, + strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling + }; +}; + +module.exports = function (object, opts) { + var obj = object; + var options = normalizeStringifyOptions(opts); + + var objKeys; + var filter; + + if (typeof options.filter === 'function') { + filter = options.filter; + obj = filter('', obj); + } else if (isArray(options.filter)) { + filter = options.filter; + objKeys = filter; + } + + var keys = []; + + if (typeof obj !== 'object' || obj === null) { + return ''; + } + + var arrayFormat; + if (opts && opts.arrayFormat in arrayPrefixGenerators) { + arrayFormat = opts.arrayFormat; + } else if (opts && 'indices' in opts) { + arrayFormat = opts.indices ? 'indices' : 'repeat'; + } else { + arrayFormat = 'indices'; + } + + var generateArrayPrefix = arrayPrefixGenerators[arrayFormat]; + if (opts && 'commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') { + throw new TypeError('`commaRoundTrip` must be a boolean, or absent'); + } + var commaRoundTrip = generateArrayPrefix === 'comma' && opts && opts.commaRoundTrip; + + if (!objKeys) { + objKeys = Object.keys(obj); + } + + if (options.sort) { + objKeys.sort(options.sort); + } + + var sideChannel = getSideChannel(); + for (var i = 0; i < objKeys.length; ++i) { + var key = objKeys[i]; + + if (options.skipNulls && obj[key] === null) { + continue; + } + pushToArray(keys, stringify( + obj[key], + key, + generateArrayPrefix, + commaRoundTrip, + options.strictNullHandling, + options.skipNulls, + options.encode ? options.encoder : null, + options.filter, + options.sort, + options.allowDots, + options.serializeDate, + options.format, + options.formatter, + options.encodeValuesOnly, + options.charset, + sideChannel + )); + } + + var joined = keys.join(options.delimiter); + var prefix = options.addQueryPrefix === true ? '?' : ''; + + if (options.charsetSentinel) { + if (options.charset === 'iso-8859-1') { + // encodeURIComponent('✓'), the "numeric entity" representation of a checkmark + prefix += 'utf8=%26%2310003%3B&'; + } else { + // encodeURIComponent('✓') + prefix += 'utf8=%E2%9C%93&'; + } + } + + return joined.length > 0 ? prefix + joined : ''; +}; diff --git a/node_modules/url/node_modules/qs/lib/utils.js b/node_modules/url/node_modules/qs/lib/utils.js new file mode 100644 index 0000000..1e54538 --- /dev/null +++ b/node_modules/url/node_modules/qs/lib/utils.js @@ -0,0 +1,252 @@ +'use strict'; + +var formats = require('./formats'); + +var has = Object.prototype.hasOwnProperty; +var isArray = Array.isArray; + +var hexTable = (function () { + var array = []; + for (var i = 0; i < 256; ++i) { + array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase()); + } + + return array; +}()); + +var compactQueue = function compactQueue(queue) { + while (queue.length > 1) { + var item = queue.pop(); + var obj = item.obj[item.prop]; + + if (isArray(obj)) { + var compacted = []; + + for (var j = 0; j < obj.length; ++j) { + if (typeof obj[j] !== 'undefined') { + compacted.push(obj[j]); + } + } + + item.obj[item.prop] = compacted; + } + } +}; + +var arrayToObject = function arrayToObject(source, options) { + var obj = options && options.plainObjects ? Object.create(null) : {}; + for (var i = 0; i < source.length; ++i) { + if (typeof source[i] !== 'undefined') { + obj[i] = source[i]; + } + } + + return obj; +}; + +var merge = function merge(target, source, options) { + /* eslint no-param-reassign: 0 */ + if (!source) { + return target; + } + + if (typeof source !== 'object') { + if (isArray(target)) { + target.push(source); + } else if (target && typeof target === 'object') { + if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) { + target[source] = true; + } + } else { + return [target, source]; + } + + return target; + } + + if (!target || typeof target !== 'object') { + return [target].concat(source); + } + + var mergeTarget = target; + if (isArray(target) && !isArray(source)) { + mergeTarget = arrayToObject(target, options); + } + + if (isArray(target) && isArray(source)) { + source.forEach(function (item, i) { + if (has.call(target, i)) { + var targetItem = target[i]; + if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') { + target[i] = merge(targetItem, item, options); + } else { + target.push(item); + } + } else { + target[i] = item; + } + }); + return target; + } + + return Object.keys(source).reduce(function (acc, key) { + var value = source[key]; + + if (has.call(acc, key)) { + acc[key] = merge(acc[key], value, options); + } else { + acc[key] = value; + } + return acc; + }, mergeTarget); +}; + +var assign = function assignSingleSource(target, source) { + return Object.keys(source).reduce(function (acc, key) { + acc[key] = source[key]; + return acc; + }, target); +}; + +var decode = function (str, decoder, charset) { + var strWithoutPlus = str.replace(/\+/g, ' '); + if (charset === 'iso-8859-1') { + // unescape never throws, no try...catch needed: + return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape); + } + // utf-8 + try { + return decodeURIComponent(strWithoutPlus); + } catch (e) { + return strWithoutPlus; + } +}; + +var encode = function encode(str, defaultEncoder, charset, kind, format) { + // This code was originally written by Brian White (mscdex) for the io.js core querystring library. + // It has been adapted here for stricter adherence to RFC 3986 + if (str.length === 0) { + return str; + } + + var string = str; + if (typeof str === 'symbol') { + string = Symbol.prototype.toString.call(str); + } else if (typeof str !== 'string') { + string = String(str); + } + + if (charset === 'iso-8859-1') { + return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) { + return '%26%23' + parseInt($0.slice(2), 16) + '%3B'; + }); + } + + var out = ''; + for (var i = 0; i < string.length; ++i) { + var c = string.charCodeAt(i); + + if ( + c === 0x2D // - + || c === 0x2E // . + || c === 0x5F // _ + || c === 0x7E // ~ + || (c >= 0x30 && c <= 0x39) // 0-9 + || (c >= 0x41 && c <= 0x5A) // a-z + || (c >= 0x61 && c <= 0x7A) // A-Z + || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( ) + ) { + out += string.charAt(i); + continue; + } + + if (c < 0x80) { + out = out + hexTable[c]; + continue; + } + + if (c < 0x800) { + out = out + (hexTable[0xC0 | (c >> 6)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + if (c < 0xD800 || c >= 0xE000) { + out = out + (hexTable[0xE0 | (c >> 12)] + hexTable[0x80 | ((c >> 6) & 0x3F)] + hexTable[0x80 | (c & 0x3F)]); + continue; + } + + i += 1; + c = 0x10000 + (((c & 0x3FF) << 10) | (string.charCodeAt(i) & 0x3FF)); + /* eslint operator-linebreak: [2, "before"] */ + out += hexTable[0xF0 | (c >> 18)] + + hexTable[0x80 | ((c >> 12) & 0x3F)] + + hexTable[0x80 | ((c >> 6) & 0x3F)] + + hexTable[0x80 | (c & 0x3F)]; + } + + return out; +}; + +var compact = function compact(value) { + var queue = [{ obj: { o: value }, prop: 'o' }]; + var refs = []; + + for (var i = 0; i < queue.length; ++i) { + var item = queue[i]; + var obj = item.obj[item.prop]; + + var keys = Object.keys(obj); + for (var j = 0; j < keys.length; ++j) { + var key = keys[j]; + var val = obj[key]; + if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) { + queue.push({ obj: obj, prop: key }); + refs.push(val); + } + } + } + + compactQueue(queue); + + return value; +}; + +var isRegExp = function isRegExp(obj) { + return Object.prototype.toString.call(obj) === '[object RegExp]'; +}; + +var isBuffer = function isBuffer(obj) { + if (!obj || typeof obj !== 'object') { + return false; + } + + return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj)); +}; + +var combine = function combine(a, b) { + return [].concat(a, b); +}; + +var maybeMap = function maybeMap(val, fn) { + if (isArray(val)) { + var mapped = []; + for (var i = 0; i < val.length; i += 1) { + mapped.push(fn(val[i])); + } + return mapped; + } + return fn(val); +}; + +module.exports = { + arrayToObject: arrayToObject, + assign: assign, + combine: combine, + compact: compact, + decode: decode, + encode: encode, + isBuffer: isBuffer, + isRegExp: isRegExp, + maybeMap: maybeMap, + merge: merge +}; diff --git a/node_modules/url/node_modules/qs/package.json b/node_modules/url/node_modules/qs/package.json new file mode 100644 index 0000000..5b622bb --- /dev/null +++ b/node_modules/url/node_modules/qs/package.json @@ -0,0 +1,80 @@ +{ + "name": "qs", + "description": "A querystring parser that supports nesting and arrays, with a depth limit", + "homepage": "https://github.com/ljharb/qs", + "version": "6.11.2", + "repository": { + "type": "git", + "url": "https://github.com/ljharb/qs.git" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + }, + "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": { + "side-channel": "^1.0.4" + }, + "devDependencies": { + "@ljharb/eslint-config": "^21.0.1", + "aud": "^2.0.2", + "browserify": "^16.5.2", + "eclint": "^2.8.1", + "eslint": "=8.8.0", + "evalmd": "^0.0.19", + "for-each": "^0.3.3", + "has-override-mistake": "^1.0.0", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "iconv-lite": "^0.5.1", + "in-publish": "^2.0.1", + "mkdirp": "^0.5.5", + "mock-property": "^1.0.0", + "npmignore": "^0.3.0", + "nyc": "^10.3.2", + "object-inspect": "^1.12.3", + "qs-iconv": "^1.0.4", + "safe-publish-latest": "^2.0.0", + "safer-buffer": "^2.1.2", + "tape": "^5.6.3" + }, + "scripts": { + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest && npm run dist", + "prepublish": "not-in-publish || npm run prepublishOnly", + "pretest": "npm run --silent readme && npm run --silent lint", + "test": "npm run tests-only", + "tests-only": "nyc tape 'test/**/*.js'", + "posttest": "aud --production", + "readme": "evalmd README.md", + "postlint": "eclint check $(git ls-files | xargs find 2> /dev/null | grep -vE 'node_modules|\\.git' | grep -v dist/)", + "lint": "eslint --ext=js,mjs .", + "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js" + }, + "license": "BSD-3-Clause", + "publishConfig": { + "ignore": [ + "!dist/*", + "bower.json", + "component.json", + ".github/workflows" + ] + } +} diff --git a/node_modules/url/node_modules/qs/test/empty-keys-cases.js b/node_modules/url/node_modules/qs/test/empty-keys-cases.js new file mode 100644 index 0000000..e41d181 --- /dev/null +++ b/node_modules/url/node_modules/qs/test/empty-keys-cases.js @@ -0,0 +1,37 @@ +'use strict'; + +module.exports = { + emptyTestCases: [ + { input: '&', withEmptyKeys: {}, stringifyOutput: '', noEmptyKeys: {} }, + { input: '&&', withEmptyKeys: {}, stringifyOutput: '', noEmptyKeys: {} }, + { input: '&=', withEmptyKeys: { '': '' }, stringifyOutput: '=', noEmptyKeys: {} }, + { input: '&=&', withEmptyKeys: { '': '' }, stringifyOutput: '=', noEmptyKeys: {} }, + { input: '&=&=', withEmptyKeys: { '': ['', ''] }, stringifyOutput: '[0]=&[1]=', noEmptyKeys: {} }, + { input: '&=&=&', withEmptyKeys: { '': ['', ''] }, stringifyOutput: '[0]=&[1]=', noEmptyKeys: {} }, + + { input: '=', withEmptyKeys: { '': '' }, noEmptyKeys: {}, stringifyOutput: '=' }, + { input: '=&', withEmptyKeys: { '': '' }, stringifyOutput: '=', noEmptyKeys: {} }, + { input: '=&&&', withEmptyKeys: { '': '' }, stringifyOutput: '=', noEmptyKeys: {} }, + { input: '=&=&=&', withEmptyKeys: { '': ['', '', ''] }, stringifyOutput: '[0]=&[1]=&[2]=', noEmptyKeys: {} }, + { input: '=&a[]=b&a[1]=c', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + { input: '=a', withEmptyKeys: { '': 'a' }, noEmptyKeys: {}, stringifyOutput: '=a' }, + { input: '=a', withEmptyKeys: { '': 'a' }, noEmptyKeys: {}, stringifyOutput: '=a' }, + { input: 'a==a', withEmptyKeys: { a: '=a' }, noEmptyKeys: { a: '=a' }, stringifyOutput: 'a==a' }, + + { input: '=&a[]=b', withEmptyKeys: { '': '', a: ['b'] }, stringifyOutput: '=&a[0]=b', noEmptyKeys: { a: ['b'] } }, + { input: '=&a[]=b&a[]=c&a[2]=d', withEmptyKeys: { '': '', a: ['b', 'c', 'd'] }, stringifyOutput: '=&a[0]=b&a[1]=c&a[2]=d', noEmptyKeys: { a: ['b', 'c', 'd'] } }, + { input: '=a&=b', withEmptyKeys: { '': ['a', 'b'] }, stringifyOutput: '[0]=a&[1]=b', noEmptyKeys: {} }, + { input: '=a&foo=b', withEmptyKeys: { '': 'a', foo: 'b' }, noEmptyKeys: { foo: 'b' }, stringifyOutput: '=a&foo=b' }, + + { input: 'a[]=b&a=c&=', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + { input: 'a[]=b&a=c&=', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + { input: 'a[0]=b&a=c&=', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + { input: 'a=b&a[]=c&=', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + { input: 'a=b&a[0]=c&=', withEmptyKeys: { '': '', a: ['b', 'c'] }, stringifyOutput: '=&a[0]=b&a[1]=c', noEmptyKeys: { a: ['b', 'c'] } }, + + { input: '[]=a&[]=b& []=1', withEmptyKeys: { '': ['a', 'b'], ' ': ['1'] }, stringifyOutput: '[0]=a&[1]=b& [0]=1', noEmptyKeys: { 0: 'a', 1: 'b', ' ': ['1'] } }, + { input: '[0]=a&[1]=b&a[0]=1&a[1]=2', withEmptyKeys: { '': ['a', 'b'], a: ['1', '2'] }, noEmptyKeys: { 0: 'a', 1: 'b', a: ['1', '2'] }, stringifyOutput: '[0]=a&[1]=b&a[0]=1&a[1]=2' }, + { input: '[deep]=a&[deep]=2', withEmptyKeys: { '': { deep: ['a', '2'] } }, stringifyOutput: '[deep][0]=a&[deep][1]=2', noEmptyKeys: { deep: ['a', '2'] } }, + { input: '%5B0%5D=a&%5B1%5D=b', withEmptyKeys: { '': ['a', 'b'] }, stringifyOutput: '[0]=a&[1]=b', noEmptyKeys: { 0: 'a', 1: 'b' } } + ] +}; diff --git a/node_modules/url/node_modules/qs/test/parse.js b/node_modules/url/node_modules/qs/test/parse.js new file mode 100644 index 0000000..d4a213a --- /dev/null +++ b/node_modules/url/node_modules/qs/test/parse.js @@ -0,0 +1,898 @@ +'use strict'; + +var test = require('tape'); +var hasPropertyDescriptors = require('has-property-descriptors')(); +var iconv = require('iconv-lite'); +var mockProperty = require('mock-property'); +var hasOverrideMistake = require('has-override-mistake')(); +var SaferBuffer = require('safer-buffer').Buffer; +var emptyTestCases = require('./empty-keys-cases').emptyTestCases; + +var qs = require('../'); +var utils = require('../lib/utils'); + +test('parse()', function (t) { + t.test('parses a simple string', function (st) { + st.deepEqual(qs.parse('0=foo'), { 0: 'foo' }); + st.deepEqual(qs.parse('foo=c++'), { foo: 'c ' }); + st.deepEqual(qs.parse('a[>=]=23'), { a: { '>=': '23' } }); + st.deepEqual(qs.parse('a[<=>]==23'), { a: { '<=>': '=23' } }); + st.deepEqual(qs.parse('a[==]=23'), { a: { '==': '23' } }); + st.deepEqual(qs.parse('foo', { strictNullHandling: true }), { foo: null }); + st.deepEqual(qs.parse('foo'), { foo: '' }); + st.deepEqual(qs.parse('foo='), { foo: '' }); + st.deepEqual(qs.parse('foo=bar'), { foo: 'bar' }); + st.deepEqual(qs.parse(' foo = bar = baz '), { ' foo ': ' bar = baz ' }); + st.deepEqual(qs.parse('foo=bar=baz'), { foo: 'bar=baz' }); + st.deepEqual(qs.parse('foo=bar&bar=baz'), { foo: 'bar', bar: 'baz' }); + st.deepEqual(qs.parse('foo2=bar2&baz2='), { foo2: 'bar2', baz2: '' }); + st.deepEqual(qs.parse('foo=bar&baz', { strictNullHandling: true }), { foo: 'bar', baz: null }); + st.deepEqual(qs.parse('foo=bar&baz'), { foo: 'bar', baz: '' }); + st.deepEqual(qs.parse('cht=p3&chd=t:60,40&chs=250x100&chl=Hello|World'), { + cht: 'p3', + chd: 't:60,40', + chs: '250x100', + chl: 'Hello|World' + }); + st.end(); + }); + + t.test('arrayFormat: brackets allows only explicit arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'brackets' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: indices allows only indexed arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'indices' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: comma allows only comma-separated arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'comma' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('arrayFormat: repeat allows only repeated values', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'repeat' }), { a: 'b,c' }); + st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] }); + st.end(); + }); + + t.test('allows enabling dot notation', function (st) { + st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' }); + st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } }); + st.end(); + }); + + t.deepEqual(qs.parse('a[b]=c'), { a: { b: 'c' } }, 'parses a single nested string'); + t.deepEqual(qs.parse('a[b][c]=d'), { a: { b: { c: 'd' } } }, 'parses a double nested string'); + t.deepEqual( + qs.parse('a[b][c][d][e][f][g][h]=i'), + { a: { b: { c: { d: { e: { f: { '[g][h]': 'i' } } } } } } }, + 'defaults to a depth of 5' + ); + + t.test('only parses one level when depth = 1', function (st) { + st.deepEqual(qs.parse('a[b][c]=d', { depth: 1 }), { a: { b: { '[c]': 'd' } } }); + st.deepEqual(qs.parse('a[b][c][d]=e', { depth: 1 }), { a: { b: { '[c][d]': 'e' } } }); + st.end(); + }); + + t.test('uses original key when depth = 0', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.test('uses original key when depth = false', function (st) { + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' }); + st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' }); + st.end(); + }); + + t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array'); + + t.test('parses an explicit array', function (st) { + st.deepEqual(qs.parse('a[]=b'), { a: ['b'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a[]=c&a[]=d'), { a: ['b', 'c', 'd'] }); + st.end(); + }); + + t.test('parses a mix of simple and explicit arrays', function (st) { + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[0]=b&a=c'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[0]=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a[1]=b&a=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[]=b&a=c'), { a: ['b', 'c'] }); + + st.deepEqual(qs.parse('a=b&a[1]=c', { arrayLimit: 20 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c', { arrayLimit: 0 }), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a=b&a[]=c'), { a: ['b', 'c'] }); + + st.end(); + }); + + t.test('parses a nested array', function (st) { + st.deepEqual(qs.parse('a[b][]=c&a[b][]=d'), { a: { b: ['c', 'd'] } }); + st.deepEqual(qs.parse('a[>=]=25'), { a: { '>=': '25' } }); + st.end(); + }); + + t.test('allows to specify array indices', function (st) { + st.deepEqual(qs.parse('a[1]=c&a[0]=b&a[2]=d'), { a: ['b', 'c', 'd'] }); + st.deepEqual(qs.parse('a[1]=c&a[0]=b'), { a: ['b', 'c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 20 }), { a: ['c'] }); + st.deepEqual(qs.parse('a[1]=c', { arrayLimit: 0 }), { a: { 1: 'c' } }); + st.deepEqual(qs.parse('a[1]=c'), { a: ['c'] }); + st.end(); + }); + + t.test('limits specific array indices to arrayLimit', function (st) { + st.deepEqual(qs.parse('a[20]=a', { arrayLimit: 20 }), { a: ['a'] }); + st.deepEqual(qs.parse('a[21]=a', { arrayLimit: 20 }), { a: { 21: 'a' } }); + + st.deepEqual(qs.parse('a[20]=a'), { a: ['a'] }); + st.deepEqual(qs.parse('a[21]=a'), { a: { 21: 'a' } }); + st.end(); + }); + + t.deepEqual(qs.parse('a[12b]=c'), { a: { '12b': 'c' } }, 'supports keys that begin with a number'); + + t.test('supports encoded = signs', function (st) { + st.deepEqual(qs.parse('he%3Dllo=th%3Dere'), { 'he=llo': 'th=ere' }); + st.end(); + }); + + t.test('is ok with url encoded strings', function (st) { + st.deepEqual(qs.parse('a[b%20c]=d'), { a: { 'b c': 'd' } }); + st.deepEqual(qs.parse('a[b]=c%20d'), { a: { b: 'c d' } }); + st.end(); + }); + + t.test('allows brackets in the value', function (st) { + st.deepEqual(qs.parse('pets=["tobi"]'), { pets: '["tobi"]' }); + st.deepEqual(qs.parse('operators=[">=", "<="]'), { operators: '[">=", "<="]' }); + st.end(); + }); + + t.test('allows empty values', function (st) { + st.deepEqual(qs.parse(''), {}); + st.deepEqual(qs.parse(null), {}); + st.deepEqual(qs.parse(undefined), {}); + st.end(); + }); + + t.test('transforms arrays to objects', function (st) { + st.deepEqual(qs.parse('foo[0]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[0]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar'), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo[bad]=baz'), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo[bad]=baz&foo[]=bar&foo[]=foo'), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0][a]=a&foo[0][b]=b&foo[1][a]=aa&foo[1][b]=bb'), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: false }), { a: { 0: 'b', t: 'u' } }); + st.deepEqual(qs.parse('a[]=b&a[t]=u&a[hasOwnProperty]=c', { allowPrototypes: true }), { a: { 0: 'b', t: 'u', hasOwnProperty: 'c' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: false }), { a: { 0: 'b', x: 'y' } }); + st.deepEqual(qs.parse('a[]=b&a[hasOwnProperty]=c&a[x]=y', { allowPrototypes: true }), { a: { 0: 'b', hasOwnProperty: 'c', x: 'y' } }); + st.end(); + }); + + t.test('transforms arrays to objects (dot notation)', function (st) { + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz=bar&fool.bad.boo=baz', { allowDots: true }), { foo: [{ baz: 'bar' }], fool: { bad: { boo: 'baz' } } }); + st.deepEqual(qs.parse('foo[0][0].baz=bar&fool.bad=baz', { allowDots: true }), { foo: [[{ baz: 'bar' }]], fool: { bad: 'baz' } }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15'], bar: '2' }] }); + st.deepEqual(qs.parse('foo[0].baz[0]=15&foo[0].baz[1]=16&foo[0].bar=2', { allowDots: true }), { foo: [{ baz: ['15', '16'], bar: '2' }] }); + st.deepEqual(qs.parse('foo.bad=baz&foo[0]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar' } }); + st.deepEqual(qs.parse('foo[]=bar&foo.bad=baz', { allowDots: true }), { foo: { 0: 'bar', bad: 'baz' } }); + st.deepEqual(qs.parse('foo.bad=baz&foo[]=bar&foo[]=foo', { allowDots: true }), { foo: { bad: 'baz', 0: 'bar', 1: 'foo' } }); + st.deepEqual(qs.parse('foo[0].a=a&foo[0].b=b&foo[1].a=aa&foo[1].b=bb', { allowDots: true }), { foo: [{ a: 'a', b: 'b' }, { a: 'aa', b: 'bb' }] }); + st.end(); + }); + + t.test('correctly prunes undefined values when converting an array to an object', function (st) { + st.deepEqual(qs.parse('a[2]=b&a[99999999]=c'), { a: { 2: 'b', 99999999: 'c' } }); + st.end(); + }); + + t.test('supports malformed uri characters', function (st) { + st.deepEqual(qs.parse('{%:%}', { strictNullHandling: true }), { '{%:%}': null }); + st.deepEqual(qs.parse('{%:%}='), { '{%:%}': '' }); + st.deepEqual(qs.parse('foo=%:%}'), { foo: '%:%}' }); + st.end(); + }); + + t.test('doesn\'t produce empty keys', function (st) { + st.deepEqual(qs.parse('_r=1&'), { _r: '1' }); + st.end(); + }); + + t.test('cannot access Object prototype', function (st) { + qs.parse('constructor[prototype][bad]=bad'); + qs.parse('bad[constructor][prototype][bad]=bad'); + st.equal(typeof Object.prototype.bad, 'undefined'); + st.end(); + }); + + t.test('parses arrays of objects', function (st) { + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + st.deepEqual(qs.parse('a[0][b]=c'), { a: [{ b: 'c' }] }); + st.end(); + }); + + t.test('allows for empty strings in arrays', function (st) { + st.deepEqual(qs.parse('a[]=b&a[]=&a[]=c'), { a: ['b', '', 'c'] }); + + st.deepEqual( + qs.parse('a[0]=b&a[1]&a[2]=c&a[19]=', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 20 + array indices: null then empty string works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]&a[]=c&a[]=', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', null, 'c', ''] }, + 'with arrayLimit 0 + array brackets: null then empty string works' + ); + + st.deepEqual( + qs.parse('a[0]=b&a[1]=&a[2]=c&a[19]', { strictNullHandling: true, arrayLimit: 20 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 20 + array indices: empty string then null works' + ); + st.deepEqual( + qs.parse('a[]=b&a[]=&a[]=c&a[]', { strictNullHandling: true, arrayLimit: 0 }), + { a: ['b', '', 'c', null] }, + 'with arrayLimit 0 + array brackets: empty string then null works' + ); + + st.deepEqual( + qs.parse('a[]=&a[]=b&a[]=c'), + { a: ['', 'b', 'c'] }, + 'array brackets: empty strings work' + ); + st.end(); + }); + + t.test('compacts sparse arrays', function (st) { + st.deepEqual(qs.parse('a[10]=1&a[2]=2', { arrayLimit: 20 }), { a: ['2', '1'] }); + st.deepEqual(qs.parse('a[1][b][2][c]=1', { arrayLimit: 20 }), { a: [{ b: [{ c: '1' }] }] }); + st.deepEqual(qs.parse('a[1][2][3][c]=1', { arrayLimit: 20 }), { a: [[[{ c: '1' }]]] }); + st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { arrayLimit: 20 }), { a: [[[{ c: ['1'] }]]] }); + st.end(); + }); + + t.test('parses sparse arrays', function (st) { + /* eslint no-sparse-arrays: 0 */ + st.deepEqual(qs.parse('a[4]=1&a[1]=2', { allowSparse: true }), { a: [, '2', , , '1'] }); + st.deepEqual(qs.parse('a[1][b][2][c]=1', { allowSparse: true }), { a: [, { b: [, , { c: '1' }] }] }); + st.deepEqual(qs.parse('a[1][2][3][c]=1', { allowSparse: true }), { a: [, [, , [, , , { c: '1' }]]] }); + st.deepEqual(qs.parse('a[1][2][3][c][1]=1', { allowSparse: true }), { a: [, [, , [, , , { c: [, '1'] }]]] }); + st.end(); + }); + + t.test('parses semi-parsed strings', function (st) { + st.deepEqual(qs.parse({ 'a[b]': 'c' }), { a: { b: 'c' } }); + st.deepEqual(qs.parse({ 'a[b]': 'c', 'a[d]': 'e' }), { a: { b: 'c', d: 'e' } }); + st.end(); + }); + + t.test('parses buffers correctly', function (st) { + var b = SaferBuffer.from('test'); + st.deepEqual(qs.parse({ a: b }), { a: b }); + st.end(); + }); + + t.test('parses jquery-param strings', function (st) { + // readable = 'filter[0][]=int1&filter[0][]==&filter[0][]=77&filter[]=and&filter[2][]=int2&filter[2][]==&filter[2][]=8' + var encoded = 'filter%5B0%5D%5B%5D=int1&filter%5B0%5D%5B%5D=%3D&filter%5B0%5D%5B%5D=77&filter%5B%5D=and&filter%5B2%5D%5B%5D=int2&filter%5B2%5D%5B%5D=%3D&filter%5B2%5D%5B%5D=8'; + var expected = { filter: [['int1', '=', '77'], 'and', ['int2', '=', '8']] }; + st.deepEqual(qs.parse(encoded), expected); + st.end(); + }); + + t.test('continues parsing when no parent is found', function (st) { + st.deepEqual(qs.parse('[]=&a=b'), { 0: '', a: 'b' }); + st.deepEqual(qs.parse('[]&a=b', { strictNullHandling: true }), { 0: null, a: 'b' }); + st.deepEqual(qs.parse('[foo]=bar'), { foo: 'bar' }); + st.end(); + }); + + t.test('does not error when parsing a very long array', function (st) { + var str = 'a[]=a'; + while (Buffer.byteLength(str) < 128 * 1024) { + str = str + '&' + str; + } + + st.doesNotThrow(function () { + qs.parse(str); + }); + + st.end(); + }); + + t.test('should not throw when a native prototype has an enumerable property', function (st) { + Object.prototype.crash = ''; + Array.prototype.crash = ''; + st.doesNotThrow(qs.parse.bind(null, 'a=b')); + st.deepEqual(qs.parse('a=b'), { a: 'b' }); + st.doesNotThrow(qs.parse.bind(null, 'a[][b]=c')); + st.deepEqual(qs.parse('a[][b]=c'), { a: [{ b: 'c' }] }); + delete Object.prototype.crash; + delete Array.prototype.crash; + st.end(); + }); + + t.test('parses a string with an alternative string delimiter', function (st) { + st.deepEqual(qs.parse('a=b;c=d', { delimiter: ';' }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('parses a string with an alternative RegExp delimiter', function (st) { + st.deepEqual(qs.parse('a=b; c=d', { delimiter: /[;,] */ }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not use non-splittable objects as delimiters', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { delimiter: true }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding parameter limit', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: 1 }), { a: 'b' }); + st.end(); + }); + + t.test('allows setting the parameter limit to Infinity', function (st) { + st.deepEqual(qs.parse('a=b&c=d', { parameterLimit: Infinity }), { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('allows overriding array limit', function (st) { + st.deepEqual(qs.parse('a[0]=b', { arrayLimit: -1 }), { a: { 0: 'b' } }); + st.deepEqual(qs.parse('a[-1]=b', { arrayLimit: -1 }), { a: { '-1': 'b' } }); + st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayLimit: 0 }), { a: { 0: 'b', 1: 'c' } }); + st.end(); + }); + + t.test('allows disabling array parsing', function (st) { + var indices = qs.parse('a[0]=b&a[1]=c', { parseArrays: false }); + st.deepEqual(indices, { a: { 0: 'b', 1: 'c' } }); + st.equal(Array.isArray(indices.a), false, 'parseArrays:false, indices case is not an array'); + + var emptyBrackets = qs.parse('a[]=b', { parseArrays: false }); + st.deepEqual(emptyBrackets, { a: { 0: 'b' } }); + st.equal(Array.isArray(emptyBrackets.a), false, 'parseArrays:false, empty brackets case is not an array'); + + st.end(); + }); + + t.test('allows for query string prefix', function (st) { + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('foo=bar', { ignoreQueryPrefix: true }), { foo: 'bar' }); + st.deepEqual(qs.parse('?foo=bar', { ignoreQueryPrefix: false }), { '?foo': 'bar' }); + + st.end(); + }); + + t.test('parses an object', function (st) { + var input = { + 'user[name]': { 'pop[bob]': 3 }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses string with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo=bar,tee', { comma: true }), { foo: ['bar', 'tee'] }); + st.deepEqual(qs.parse('foo[bar]=coffee,tee', { comma: true }), { foo: { bar: ['coffee', 'tee'] } }); + st.deepEqual(qs.parse('foo=', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true }), { foo: '' }); + st.deepEqual(qs.parse('foo', { comma: true, strictNullHandling: true }), { foo: null }); + + // test cases inversed from from stringify tests + st.deepEqual(qs.parse('a[0]=c'), { a: ['c'] }); + st.deepEqual(qs.parse('a[]=c'), { a: ['c'] }); + st.deepEqual(qs.parse('a[]=c', { comma: true }), { a: ['c'] }); + + st.deepEqual(qs.parse('a[0]=c&a[1]=d'), { a: ['c', 'd'] }); + st.deepEqual(qs.parse('a[]=c&a[]=d'), { a: ['c', 'd'] }); + st.deepEqual(qs.parse('a=c,d', { comma: true }), { a: ['c', 'd'] }); + + st.end(); + }); + + t.test('parses values with comma as array divider', function (st) { + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' }); + st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] }); + st.end(); + }); + + t.test('use number decoder, parses string that has one number with comma option enabled', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (!isNaN(Number(str))) { + return parseFloat(str); + } + return defaultDecoder(str, defaultDecoder, charset, type); + }; + + st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 }); + st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 }); + + st.end(); + }); + + t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) { + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] }); + st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] }); + + st.end(); + }); + + t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) { + st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' }); + st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] }); + st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] }); + + st.end(); + }); + + t.test('parses an object in dot notation', function (st) { + var input = { + 'user.name': { 'pop[bob]': 3 }, + 'user.email.': null + }; + + var expected = { + user: { + name: { 'pop[bob]': 3 }, + email: null + } + }; + + var result = qs.parse(input, { allowDots: true }); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('parses an object and not child values', function (st) { + var input = { + 'user[name]': { 'pop[bob]': { test: 3 } }, + 'user[email]': null + }; + + var expected = { + user: { + name: { 'pop[bob]': { test: 3 } }, + email: null + } + }; + + var result = qs.parse(input); + + st.deepEqual(result, expected); + st.end(); + }); + + t.test('does not blow up when Buffer global is missing', function (st) { + var tempBuffer = global.Buffer; + delete global.Buffer; + var result = qs.parse('a=b&c=d'); + global.Buffer = tempBuffer; + st.deepEqual(result, { a: 'b', c: 'd' }); + st.end(); + }); + + t.test('does not crash when parsing circular references', function (st) { + var a = {}; + a.b = a; + + var parsed; + + st.doesNotThrow(function () { + parsed = qs.parse({ 'foo[bar]': 'baz', 'foo[baz]': a }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + st.equal('bar' in parsed.foo, true); + st.equal('baz' in parsed.foo, true); + st.equal(parsed.foo.bar, 'baz'); + st.deepEqual(parsed.foo.baz, a); + st.end(); + }); + + t.test('does not crash when parsing deep objects', function (st) { + var parsed; + var str = 'foo'; + + for (var i = 0; i < 5000; i++) { + str += '[p]'; + } + + str += '=bar'; + + st.doesNotThrow(function () { + parsed = qs.parse(str, { depth: 5000 }); + }); + + st.equal('foo' in parsed, true, 'parsed has "foo" property'); + + var depth = 0; + var ref = parsed.foo; + while ((ref = ref.p)) { + depth += 1; + } + + st.equal(depth, 5000, 'parsed is 5000 properties deep'); + + st.end(); + }); + + t.test('parses null objects correctly', { skip: !Object.create }, function (st) { + var a = Object.create(null); + a.b = 'c'; + + st.deepEqual(qs.parse(a), { b: 'c' }); + var result = qs.parse({ a: a }); + st.equal('a' in result, true, 'result has "a" property'); + st.deepEqual(result.a, a); + st.end(); + }); + + t.test('parses dates correctly', function (st) { + var now = new Date(); + st.deepEqual(qs.parse({ a: now }), { a: now }); + st.end(); + }); + + t.test('parses regular expressions correctly', function (st) { + var re = /^test$/; + st.deepEqual(qs.parse({ a: re }), { a: re }); + st.end(); + }); + + t.test('does not allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: false }), {}); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: false }), {}); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: false }), + {}, + 'bare "toString" results in {}' + ); + + st.end(); + }); + + t.test('can allow overwriting prototype properties', function (st) { + st.deepEqual(qs.parse('a[hasOwnProperty]=b', { allowPrototypes: true }), { a: { hasOwnProperty: 'b' } }); + st.deepEqual(qs.parse('hasOwnProperty=b', { allowPrototypes: true }), { hasOwnProperty: 'b' }); + + st.deepEqual( + qs.parse('toString', { allowPrototypes: true }), + { toString: '' }, + 'bare "toString" results in { toString: "" }' + ); + + st.end(); + }); + + t.test('does not crash when the global Object prototype is frozen', { skip: !hasPropertyDescriptors || !hasOverrideMistake }, function (st) { + // We can't actually freeze the global Object prototype as that will interfere with other tests, and once an object is frozen, it + // can't be unfrozen. Instead, we add a new non-writable property to simulate this. + st.teardown(mockProperty(Object.prototype, 'frozenProp', { value: 'foo', nonWritable: true, nonEnumerable: true })); + + st['throws']( + function () { + var obj = {}; + obj.frozenProp = 'bar'; + }, + // node < 6 has a different error message + /^TypeError: Cannot assign to read only property 'frozenProp' of (?:object '#'|#)/, + 'regular assignment of an inherited non-writable property throws' + ); + + var parsed; + st.doesNotThrow( + function () { + parsed = qs.parse('frozenProp', { allowPrototypes: false }); + }, + 'parsing a nonwritable Object.prototype property does not throw' + ); + + st.deepEqual(parsed, {}, 'bare "frozenProp" results in {}'); + + st.end(); + }); + + t.test('params starting with a closing bracket', function (st) { + st.deepEqual(qs.parse(']=toString'), { ']': 'toString' }); + st.deepEqual(qs.parse(']]=toString'), { ']]': 'toString' }); + st.deepEqual(qs.parse(']hello]=toString'), { ']hello]': 'toString' }); + st.end(); + }); + + t.test('params starting with a starting bracket', function (st) { + st.deepEqual(qs.parse('[=toString'), { '[': 'toString' }); + st.deepEqual(qs.parse('[[=toString'), { '[[': 'toString' }); + st.deepEqual(qs.parse('[hello[=toString'), { '[hello[': 'toString' }); + st.end(); + }); + + t.test('add keys to objects', function (st) { + st.deepEqual( + qs.parse('a[b]=c&a=d'), + { a: { b: 'c', d: true } }, + 'can add keys to objects' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString'), + { a: { b: 'c' } }, + 'can not overwrite prototype' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { allowPrototypes: true }), + { a: { b: 'c', toString: true } }, + 'can overwrite prototype with allowPrototypes true' + ); + + st.deepEqual( + qs.parse('a[b]=c&a=toString', { plainObjects: true }), + { __proto__: null, a: { __proto__: null, b: 'c', toString: true } }, + 'can overwrite prototype with plainObjects true' + ); + + st.end(); + }); + + t.test('dunder proto is ignored', function (st) { + var payload = 'categories[__proto__]=login&categories[__proto__]&categories[length]=42'; + var result = qs.parse(payload, { allowPrototypes: true }); + + st.deepEqual( + result, + { + categories: { + length: '42' + } + }, + 'silent [[Prototype]] payload' + ); + + var plainResult = qs.parse(payload, { allowPrototypes: true, plainObjects: true }); + + st.deepEqual( + plainResult, + { + __proto__: null, + categories: { + __proto__: null, + length: '42' + } + }, + 'silent [[Prototype]] payload: plain objects' + ); + + var query = qs.parse('categories[__proto__]=cats&categories[__proto__]=dogs&categories[some][json]=toInject', { allowPrototypes: true }); + + st.notOk(Array.isArray(query.categories), 'is not an array'); + st.notOk(query.categories instanceof Array, 'is not instanceof an array'); + st.deepEqual(query.categories, { some: { json: 'toInject' } }); + st.equal(JSON.stringify(query.categories), '{"some":{"json":"toInject"}}', 'stringifies as a non-array'); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true }), + { + foo: { + bar: 'stuffs' + } + }, + 'hidden values' + ); + + st.deepEqual( + qs.parse('foo[__proto__][hidden]=value&foo[bar]=stuffs', { allowPrototypes: true, plainObjects: true }), + { + __proto__: null, + foo: { + __proto__: null, + bar: 'stuffs' + } + }, + 'hidden values: plain objects' + ); + + st.end(); + }); + + t.test('can return null objects', { skip: !Object.create }, function (st) { + var expected = Object.create(null); + expected.a = Object.create(null); + expected.a.b = 'c'; + expected.a.hasOwnProperty = 'd'; + st.deepEqual(qs.parse('a[b]=c&a[hasOwnProperty]=d', { plainObjects: true }), expected); + st.deepEqual(qs.parse(null, { plainObjects: true }), Object.create(null)); + var expectedArray = Object.create(null); + expectedArray.a = Object.create(null); + expectedArray.a[0] = 'b'; + expectedArray.a.c = 'd'; + st.deepEqual(qs.parse('a[]=b&a[c]=d', { plainObjects: true }), expectedArray); + st.end(); + }); + + t.test('can parse with custom encoding', function (st) { + st.deepEqual(qs.parse('%8c%a7=%91%e5%8d%e3%95%7b', { + decoder: function (str) { + var reg = /%([0-9A-F]{2})/ig; + var result = []; + var parts = reg.exec(str); + while (parts) { + result.push(parseInt(parts[1], 16)); + parts = reg.exec(str); + } + return String(iconv.decode(SaferBuffer.from(result), 'shift_jis')); + } + }), { 県: '大阪府' }); + st.end(); + }); + + t.test('receives the default decoder as a second argument', function (st) { + st.plan(1); + qs.parse('a', { + decoder: function (str, defaultDecoder) { + st.equal(defaultDecoder, utils.decode); + } + }); + st.end(); + }); + + t.test('throws error with wrong decoder', function (st) { + st['throws'](function () { + qs.parse({}, { decoder: 'string' }); + }, new TypeError('Decoder has to be a function.')); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.parse('a[b]=true', options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.parse('a=b', { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('parses an iso-8859-1 string if asked to', function (st) { + st.deepEqual(qs.parse('%A2=%BD', { charset: 'iso-8859-1' }), { '¢': '½' }); + st.end(); + }); + + var urlEncodedCheckmarkInUtf8 = '%E2%9C%93'; + var urlEncodedOSlashInUtf8 = '%C3%B8'; + var urlEncodedNumCheckmark = '%26%2310003%3B'; + var urlEncodedNumSmiley = '%26%239786%3B'; + + t.test('prefers an utf-8 charset specified by the utf8 sentinel to a default charset of iso-8859-1', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'iso-8859-1' }), { ø: 'ø' }); + st.end(); + }); + + t.test('prefers an iso-8859-1 charset specified by the utf8 sentinel to a default charset of utf-8', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('does not require the utf8 sentinel to be defined before the parameters whose decoding it affects', function (st) { + st.deepEqual(qs.parse('a=' + urlEncodedOSlashInUtf8 + '&utf8=' + urlEncodedNumCheckmark, { charsetSentinel: true, charset: 'utf-8' }), { a: 'ø' }); + st.end(); + }); + + t.test('should ignore an utf8 sentinel with an unknown value', function (st) { + st.deepEqual(qs.parse('utf8=foo&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true, charset: 'utf-8' }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to utf-8 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedCheckmarkInUtf8 + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { ø: 'ø' }); + st.end(); + }); + + t.test('uses the utf8 sentinel to switch to iso-8859-1 when no default charset is given', function (st) { + st.deepEqual(qs.parse('utf8=' + urlEncodedNumCheckmark + '&' + urlEncodedOSlashInUtf8 + '=' + urlEncodedOSlashInUtf8, { charsetSentinel: true }), { 'ø': 'ø' }); + st.end(); + }); + + t.test('interprets numeric entities in iso-8859-1 when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('handles a custom decoder returning `null`, in the `iso-8859-1` charset, when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=&bar=' + urlEncodedNumSmiley, { + charset: 'iso-8859-1', + decoder: function (str, defaultDecoder, charset) { + return str ? defaultDecoder(str, defaultDecoder, charset) : null; + }, + interpretNumericEntities: true + }), { foo: null, bar: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities in iso-8859-1 when `interpretNumericEntities` is absent', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'iso-8859-1' }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret numeric entities when the charset is utf-8, even when `interpretNumericEntities`', function (st) { + st.deepEqual(qs.parse('foo=' + urlEncodedNumSmiley, { charset: 'utf-8', interpretNumericEntities: true }), { foo: '☺' }); + st.end(); + }); + + t.test('does not interpret %uXXXX syntax in iso-8859-1 mode', function (st) { + st.deepEqual(qs.parse('%u263A=%u263A', { charset: 'iso-8859-1' }), { '%u263A': '%u263A' }); + st.end(); + }); + + t.test('allows for decoding keys and values differently', function (st) { + var decoder = function (str, defaultDecoder, charset, type) { + if (type === 'key') { + return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' }); + st.end(); + }); + + t.end(); +}); + +test('parses empty keys', function (t) { + emptyTestCases.forEach(function (testCase) { + t.test('skips empty string key with ' + testCase.input, function (st) { + st.deepEqual(qs.parse(testCase.input), testCase.noEmptyKeys); + + st.end(); + }); + }); +}); diff --git a/node_modules/url/node_modules/qs/test/stringify.js b/node_modules/url/node_modules/qs/test/stringify.js new file mode 100644 index 0000000..a49e4f1 --- /dev/null +++ b/node_modules/url/node_modules/qs/test/stringify.js @@ -0,0 +1,972 @@ +'use strict'; + +var test = require('tape'); +var qs = require('../'); +var utils = require('../lib/utils'); +var iconv = require('iconv-lite'); +var SaferBuffer = require('safer-buffer').Buffer; +var hasSymbols = require('has-symbols'); +var emptyTestCases = require('./empty-keys-cases').emptyTestCases; +var hasBigInt = typeof BigInt === 'function'; + +test('stringify()', function (t) { + t.test('stringifies a querystring object', function (st) { + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: 1 }), 'a=1'); + st.equal(qs.stringify({ a: 1, b: 2 }), 'a=1&b=2'); + st.equal(qs.stringify({ a: 'A_Z' }), 'a=A_Z'); + st.equal(qs.stringify({ a: '€' }), 'a=%E2%82%AC'); + st.equal(qs.stringify({ a: '' }), 'a=%EE%80%80'); + st.equal(qs.stringify({ a: 'א' }), 'a=%D7%90'); + st.equal(qs.stringify({ a: '𐐷' }), 'a=%F0%90%90%B7'); + st.end(); + }); + + t.test('stringifies falsy values', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(null, { strictNullHandling: true }), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(0), ''); + st.end(); + }); + + t.test('stringifies symbols', { skip: !hasSymbols() }, function (st) { + st.equal(qs.stringify(Symbol.iterator), ''); + st.equal(qs.stringify([Symbol.iterator]), '0=Symbol%28Symbol.iterator%29'); + st.equal(qs.stringify({ a: Symbol.iterator }), 'a=Symbol%28Symbol.iterator%29'); + st.equal( + qs.stringify({ a: [Symbol.iterator] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=Symbol%28Symbol.iterator%29' + ); + st.end(); + }); + + t.test('stringifies bigints', { skip: !hasBigInt }, function (st) { + var three = BigInt(3); + var encodeWithN = function (value, defaultEncoder, charset) { + var result = defaultEncoder(value, defaultEncoder, charset); + return typeof value === 'bigint' ? result + 'n' : result; + }; + st.equal(qs.stringify(three), ''); + st.equal(qs.stringify([three]), '0=3'); + st.equal(qs.stringify([three], { encoder: encodeWithN }), '0=3n'); + st.equal(qs.stringify({ a: three }), 'a=3'); + st.equal(qs.stringify({ a: three }, { encoder: encodeWithN }), 'a=3n'); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[]=3' + ); + st.equal( + qs.stringify({ a: [three] }, { encodeValuesOnly: true, encoder: encodeWithN, arrayFormat: 'brackets' }), + 'a[]=3n' + ); + st.end(); + }); + + t.test('adds query prefix', function (st) { + st.equal(qs.stringify({ a: 'b' }, { addQueryPrefix: true }), '?a=b'); + st.end(); + }); + + t.test('with query prefix, outputs blank string given an empty object', function (st) { + st.equal(qs.stringify({}, { addQueryPrefix: true }), ''); + st.end(); + }); + + t.test('stringifies nested falsy values', function (st) { + st.equal(qs.stringify({ a: { b: { c: null } } }), 'a%5Bb%5D%5Bc%5D='); + st.equal(qs.stringify({ a: { b: { c: null } } }, { strictNullHandling: true }), 'a%5Bb%5D%5Bc%5D'); + st.equal(qs.stringify({ a: { b: { c: false } } }), 'a%5Bb%5D%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies a nested object', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }), 'a%5Bb%5D%5Bc%5D%5Bd%5D=e'); + st.end(); + }); + + t.test('stringifies a nested object with dots notation', function (st) { + st.equal(qs.stringify({ a: { b: 'c' } }, { allowDots: true }), 'a.b=c'); + st.equal(qs.stringify({ a: { b: { c: { d: 'e' } } } }, { allowDots: true }), 'a.b.c.d=e'); + st.end(); + }); + + t.test('stringifies an array value', function (st) { + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'indices' }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'brackets' }), + 'a%5B%5D=b&a%5B%5D=c&a%5B%5D=d', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }, { arrayFormat: 'comma' }), + 'a=b%2Cc%2Cd', + 'comma => comma' + ); + st.equal( + qs.stringify({ a: ['b', 'c', 'd'] }), + 'a%5B0%5D=b&a%5B1%5D=c&a%5B2%5D=d', + 'default => indices' + ); + st.end(); + }); + + t.test('omits nulls when asked', function (st) { + st.equal(qs.stringify({ a: 'b', c: null }, { skipNulls: true }), 'a=b'); + st.end(); + }); + + t.test('omits nested nulls when asked', function (st) { + st.equal(qs.stringify({ a: { b: 'c', d: null } }, { skipNulls: true }), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('omits array indices when asked', function (st) { + st.equal(qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false }), 'a=b&a=c&a=d'); + st.end(); + }); + + t.test('stringifies an array value with one item vs multiple items', function (st) { + st.test('non-array item', function (s2t) { + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c'); + s2t.equal(qs.stringify({ a: 'c' }, { encodeValuesOnly: true }), 'a=c'); + + s2t.end(); + }); + + st.test('array with a single item', function (s2t) { + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c'); + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true, arrayFormat: 'comma', commaRoundTrip: true }), 'a[]=c'); // so it parses back as an array + s2t.equal(qs.stringify({ a: ['c'] }, { encodeValuesOnly: true }), 'a[0]=c'); + + s2t.end(); + }); + + st.test('array with multiple items', function (s2t) { + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=c&a[1]=d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=c&a[]=d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c,d'); + s2t.equal(qs.stringify({ a: ['c', 'd'] }, { encodeValuesOnly: true }), 'a[0]=c&a[1]=d'); + + s2t.end(); + }); + + st.test('array with multiple items with a comma inside', function (s2t) { + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=c%2Cd,e'); + s2t.equal(qs.stringify({ a: ['c,d', 'e'] }, { arrayFormat: 'comma' }), 'a=c%2Cd%2Ce'); + + s2t.end(); + }); + + st.end(); + }); + + t.test('stringifies a nested array value', function (st) { + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[b][0]=c&a[b][1]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[b][]=c&a[b][]=d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true, arrayFormat: 'comma' }), 'a[b]=c,d'); + st.equal(qs.stringify({ a: { b: ['c', 'd'] } }, { encodeValuesOnly: true }), 'a[b][0]=c&a[b][1]=d'); + st.end(); + }); + + t.test('stringifies comma and empty array values', function (st) { + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'indices' }), 'a[0]=,&a[1]=&a[2]=c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'brackets' }), 'a[]=,&a[]=&a[]=c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'comma' }), 'a=,,,c,d%'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: false, arrayFormat: 'repeat' }), 'a=,&a=&a=c,d%'); + + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a[0]=%2C&a[1]=&a[2]=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a[]=%2C&a[]=&a[]=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C,,c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25'); + + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a%5B0%5D=%2C&a%5B1%5D=&a%5B2%5D=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a%5B%5D=%2C&a%5B%5D=&a%5B%5D=c%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C%2C%2Cc%2Cd%25'); + st.equal(qs.stringify({ a: [',', '', 'c,d%'] }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&a=&a=c%2Cd%25'); + + st.end(); + }); + + t.test('stringifies comma and empty non-array values', function (st) { + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'indices' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'brackets' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'comma' }), 'a=,&b=&c=c,d%'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: false, arrayFormat: 'repeat' }), 'a=,&b=&c=c,d%'); + + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: true, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25'); + + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'indices' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'brackets' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'comma' }), 'a=%2C&b=&c=c%2Cd%25'); + st.equal(qs.stringify({ a: ',', b: '', c: 'c,d%' }, { encode: true, encodeValuesOnly: false, arrayFormat: 'repeat' }), 'a=%2C&b=&c=c%2Cd%25'); + + st.end(); + }); + + t.test('stringifies a nested array value with dots notation', function (st) { + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'indices' } + ), + 'a.b[0]=c&a.b[1]=d', + 'indices: stringifies with dots + indices' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'brackets' } + ), + 'a.b[]=c&a.b[]=d', + 'brackets: stringifies with dots + brackets' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true, arrayFormat: 'comma' } + ), + 'a.b=c,d', + 'comma: stringifies with dots + comma' + ); + st.equal( + qs.stringify( + { a: { b: ['c', 'd'] } }, + { allowDots: true, encodeValuesOnly: true } + ), + 'a.b[0]=c&a.b[1]=d', + 'default: stringifies with dots + indices' + ); + st.end(); + }); + + t.test('stringifies an object inside an array', function (st) { + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'indices' }), + 'a%5B0%5D%5Bb%5D=c', // a[0][b]=c + 'indices => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }, { arrayFormat: 'brackets' }), + 'a%5B%5D%5Bb%5D=c', // a[][b]=c + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 'c' }] }), + 'a%5B0%5D%5Bb%5D=c', + 'default => indices' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'indices' }), + 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', + 'indices => indices' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }, { arrayFormat: 'brackets' }), + 'a%5B%5D%5Bb%5D%5Bc%5D%5B%5D=1', + 'brackets => brackets' + ); + + st.equal( + qs.stringify({ a: [{ b: { c: [1] } }] }), + 'a%5B0%5D%5Bb%5D%5Bc%5D%5B0%5D=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an array with mixed objects and primitives', function (st) { + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'indices' }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'indices => indices' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'brackets' }), + 'a[][b]=1&a[]=2&a[]=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true, arrayFormat: 'comma' }), + '???', + 'brackets => brackets', + { skip: 'TODO: figure out what this should do' } + ); + st.equal( + qs.stringify({ a: [{ b: 1 }, 2, 3] }, { encodeValuesOnly: true }), + 'a[0][b]=1&a[1]=2&a[2]=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('stringifies an object inside an array with dots notation', function (st) { + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b=c', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b=c', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: 'c' }] }, + { allowDots: true, encode: false } + ), + 'a[0].b=c', + 'default => indices' + ); + + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'indices' } + ), + 'a[0].b.c[0]=1', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false, arrayFormat: 'brackets' } + ), + 'a[].b.c[]=1', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: [{ b: { c: [1] } }] }, + { allowDots: true, encode: false } + ), + 'a[0].b.c[0]=1', + 'default => indices' + ); + + st.end(); + }); + + t.test('does not omit object keys when indices = false', function (st) { + st.equal(qs.stringify({ a: [{ b: 'c' }] }, { indices: false }), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when indices=true', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { indices: true }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when no arrayFormat is specified', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses indices notation for arrays when no arrayFormat=indices', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' }), 'a%5B0%5D=b&a%5B1%5D=c'); + st.end(); + }); + + t.test('uses repeat notation for arrays when no arrayFormat=repeat', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' }), 'a=b&a=c'); + st.end(); + }); + + t.test('uses brackets notation for arrays when no arrayFormat=brackets', function (st) { + st.equal(qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' }), 'a%5B%5D=b&a%5B%5D=c'); + st.end(); + }); + + t.test('stringifies a complicated object', function (st) { + st.equal(qs.stringify({ a: { b: 'c', d: 'e' } }), 'a%5Bb%5D=c&a%5Bd%5D=e'); + st.end(); + }); + + t.test('stringifies an empty value', function (st) { + st.equal(qs.stringify({ a: '' }), 'a='); + st.equal(qs.stringify({ a: null }, { strictNullHandling: true }), 'a'); + + st.equal(qs.stringify({ a: '', b: '' }), 'a=&b='); + st.equal(qs.stringify({ a: null, b: '' }, { strictNullHandling: true }), 'a&b='); + + st.equal(qs.stringify({ a: { b: '' } }), 'a%5Bb%5D='); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: true }), 'a%5Bb%5D'); + st.equal(qs.stringify({ a: { b: null } }, { strictNullHandling: false }), 'a%5Bb%5D='); + + st.end(); + }); + + t.test('stringifies an empty array in different arrayFormat', function (st) { + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false }), 'b[0]=&c=c'); + // arrayFormat default + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices' }), 'b[0]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets' }), 'b[]=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat' }), 'b=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma' }), 'b=&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', commaRoundTrip: true }), 'b[]=&c=c'); + // with strictNullHandling + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', strictNullHandling: true }), 'b[0]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', strictNullHandling: true }), 'b[]&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', strictNullHandling: true }), 'b&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true }), 'b&c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', strictNullHandling: true, commaRoundTrip: true }), 'b[]&c=c'); + // with skipNulls + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'indices', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'brackets', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'repeat', skipNulls: true }), 'c=c'); + st.equal(qs.stringify({ a: [], b: [null], c: 'c' }, { encode: false, arrayFormat: 'comma', skipNulls: true }), 'c=c'); + + st.end(); + }); + + t.test('stringifies a null object', { skip: !Object.create }, function (st) { + var obj = Object.create(null); + obj.a = 'b'; + st.equal(qs.stringify(obj), 'a=b'); + st.end(); + }); + + t.test('returns an empty string for invalid input', function (st) { + st.equal(qs.stringify(undefined), ''); + st.equal(qs.stringify(false), ''); + st.equal(qs.stringify(null), ''); + st.equal(qs.stringify(''), ''); + st.end(); + }); + + t.test('stringifies an object with a null object as a child', { skip: !Object.create }, function (st) { + var obj = { a: Object.create(null) }; + + obj.a.b = 'c'; + st.equal(qs.stringify(obj), 'a%5Bb%5D=c'); + st.end(); + }); + + t.test('drops keys with a value of undefined', function (st) { + st.equal(qs.stringify({ a: undefined }), ''); + + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: true }), 'a%5Bc%5D'); + st.equal(qs.stringify({ a: { b: undefined, c: null } }, { strictNullHandling: false }), 'a%5Bc%5D='); + st.equal(qs.stringify({ a: { b: undefined, c: '' } }), 'a%5Bc%5D='); + st.end(); + }); + + t.test('url encodes values', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.end(); + }); + + t.test('stringifies a date', function (st) { + var now = new Date(); + var str = 'a=' + encodeURIComponent(now.toISOString()); + st.equal(qs.stringify({ a: now }), str); + st.end(); + }); + + t.test('stringifies the weird object from qs', function (st) { + st.equal(qs.stringify({ 'my weird field': '~q1!2"\'w$5&7/z8)?' }), 'my%20weird%20field=~q1%212%22%27w%245%267%2Fz8%29%3F'); + st.end(); + }); + + t.test('skips properties that are part of the object prototype', function (st) { + Object.prototype.crash = 'test'; + st.equal(qs.stringify({ a: 'b' }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }), 'a%5Bb%5D=c'); + delete Object.prototype.crash; + st.end(); + }); + + t.test('stringifies boolean values', function (st) { + st.equal(qs.stringify({ a: true }), 'a=true'); + st.equal(qs.stringify({ a: { b: true } }), 'a%5Bb%5D=true'); + st.equal(qs.stringify({ b: false }), 'b=false'); + st.equal(qs.stringify({ b: { c: false } }), 'b%5Bc%5D=false'); + st.end(); + }); + + t.test('stringifies buffer values', function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from('test') }), 'a=test'); + st.equal(qs.stringify({ a: { b: SaferBuffer.from('test') } }), 'a%5Bb%5D=test'); + st.end(); + }); + + t.test('stringifies an object using an alternative delimiter', function (st) { + st.equal(qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' }), 'a=b;c=d'); + st.end(); + }); + + t.test('does not blow up when Buffer global is missing', function (st) { + var tempBuffer = global.Buffer; + delete global.Buffer; + var result = qs.stringify({ a: 'b', c: 'd' }); + global.Buffer = tempBuffer; + st.equal(result, 'a=b&c=d'); + st.end(); + }); + + t.test('does not crash when parsing circular references', function (st) { + var a = {}; + a.b = a; + + st['throws']( + function () { qs.stringify({ 'foo[bar]': 'baz', 'foo[baz]': a }); }, + /RangeError: Cyclic object value/, + 'cyclic values throw' + ); + + var circular = { + a: 'value' + }; + circular.a = circular; + st['throws']( + function () { qs.stringify(circular); }, + /RangeError: Cyclic object value/, + 'cyclic values throw' + ); + + var arr = ['a']; + st.doesNotThrow( + function () { qs.stringify({ x: arr, y: arr }); }, + 'non-cyclic values do not throw' + ); + + st.end(); + }); + + t.test('non-circular duplicated references can still work', function (st) { + var hourOfDay = { + 'function': 'hour_of_day' + }; + + var p1 = { + 'function': 'gte', + arguments: [hourOfDay, 0] + }; + var p2 = { + 'function': 'lte', + arguments: [hourOfDay, 23] + }; + + st.equal( + qs.stringify({ filters: { $and: [p1, p2] } }, { encodeValuesOnly: true }), + 'filters[$and][0][function]=gte&filters[$and][0][arguments][0][function]=hour_of_day&filters[$and][0][arguments][1]=0&filters[$and][1][function]=lte&filters[$and][1][arguments][0][function]=hour_of_day&filters[$and][1][arguments][1]=23' + ); + + st.end(); + }); + + t.test('selects properties when filter=array', function (st) { + st.equal(qs.stringify({ a: 'b' }, { filter: ['a'] }), 'a=b'); + st.equal(qs.stringify({ a: 1 }, { filter: [] }), ''); + + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'indices' } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'indices => indices' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2], arrayFormat: 'brackets' } + ), + 'a%5Bb%5D%5B%5D=1&a%5Bb%5D%5B%5D=3', + 'brackets => brackets' + ); + st.equal( + qs.stringify( + { a: { b: [1, 2, 3, 4], c: 'd' }, c: 'f' }, + { filter: ['a', 'b', 0, 2] } + ), + 'a%5Bb%5D%5B0%5D=1&a%5Bb%5D%5B2%5D=3', + 'default => indices' + ); + + st.end(); + }); + + t.test('supports custom representations when filter=function', function (st) { + var calls = 0; + var obj = { a: 'b', c: 'd', e: { f: new Date(1257894000000) } }; + var filterFunc = function (prefix, value) { + calls += 1; + if (calls === 1) { + st.equal(prefix, '', 'prefix is empty'); + st.equal(value, obj); + } else if (prefix === 'c') { + return void 0; + } else if (value instanceof Date) { + st.equal(prefix, 'e[f]'); + return value.getTime(); + } + return value; + }; + + st.equal(qs.stringify(obj, { filter: filterFunc }), 'a=b&e%5Bf%5D=1257894000000'); + st.equal(calls, 5); + st.end(); + }); + + t.test('can disable uri encoding', function (st) { + st.equal(qs.stringify({ a: 'b' }, { encode: false }), 'a=b'); + st.equal(qs.stringify({ a: { b: 'c' } }, { encode: false }), 'a[b]=c'); + st.equal(qs.stringify({ a: 'b', c: null }, { strictNullHandling: true, encode: false }), 'a=b&c'); + st.end(); + }); + + t.test('can sort the keys', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal(qs.stringify({ a: 'c', z: 'y', b: 'f' }, { sort: sort }), 'a=c&b=f&z=y'); + st.equal(qs.stringify({ a: 'c', z: { j: 'a', i: 'b' }, b: 'f' }, { sort: sort }), 'a=c&b=f&z%5Bi%5D=b&z%5Bj%5D=a'); + st.end(); + }); + + t.test('can sort the keys at depth 3 or more too', function (st) { + var sort = function (a, b) { + return a.localeCompare(b); + }; + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: sort, encode: false } + ), + 'a=a&b=b&z[zi][zia]=zia&z[zi][zib]=zib&z[zj][zja]=zja&z[zj][zjb]=zjb' + ); + st.equal( + qs.stringify( + { a: 'a', z: { zj: { zjb: 'zjb', zja: 'zja' }, zi: { zib: 'zib', zia: 'zia' } }, b: 'b' }, + { sort: null, encode: false } + ), + 'a=a&z[zj][zjb]=zjb&z[zj][zja]=zja&z[zi][zib]=zib&z[zi][zia]=zia&b=b' + ); + st.end(); + }); + + t.test('can stringify with custom encoding', function (st) { + st.equal(qs.stringify({ 県: '大阪府', '': '' }, { + encoder: function (str) { + if (str.length === 0) { + return ''; + } + var buf = iconv.encode(str, 'shiftjis'); + var result = []; + for (var i = 0; i < buf.length; ++i) { + result.push(buf.readUInt8(i).toString(16)); + } + return '%' + result.join('%'); + } + }), '%8c%a7=%91%e5%8d%e3%95%7b&='); + st.end(); + }); + + t.test('receives the default encoder as a second argument', function (st) { + st.plan(2); + qs.stringify({ a: 1 }, { + encoder: function (str, defaultEncoder) { + st.equal(defaultEncoder, utils.encode); + } + }); + st.end(); + }); + + t.test('throws error with wrong encoder', function (st) { + st['throws'](function () { + qs.stringify({}, { encoder: 'string' }); + }, new TypeError('Encoder has to be a function.')); + st.end(); + }); + + t.test('can use custom encoder for a buffer object', { skip: typeof Buffer === 'undefined' }, function (st) { + st.equal(qs.stringify({ a: SaferBuffer.from([1]) }, { + encoder: function (buffer) { + if (typeof buffer === 'string') { + return buffer; + } + return String.fromCharCode(buffer.readUInt8(0) + 97); + } + }), 'a=b'); + + st.equal(qs.stringify({ a: SaferBuffer.from('a b') }, { + encoder: function (buffer) { + return buffer; + } + }), 'a=a b'); + st.end(); + }); + + t.test('serializeDate option', function (st) { + var date = new Date(); + st.equal( + qs.stringify({ a: date }), + 'a=' + date.toISOString().replace(/:/g, '%3A'), + 'default is toISOString' + ); + + var mutatedDate = new Date(); + mutatedDate.toISOString = function () { + throw new SyntaxError(); + }; + st['throws'](function () { + mutatedDate.toISOString(); + }, SyntaxError); + st.equal( + qs.stringify({ a: mutatedDate }), + 'a=' + Date.prototype.toISOString.call(mutatedDate).replace(/:/g, '%3A'), + 'toISOString works even when method is not locally present' + ); + + var specificDate = new Date(6); + st.equal( + qs.stringify( + { a: specificDate }, + { serializeDate: function (d) { return d.getTime() * 7; } } + ), + 'a=42', + 'custom serializeDate function called' + ); + + st.equal( + qs.stringify( + { a: [date] }, + { + serializeDate: function (d) { return d.getTime(); }, + arrayFormat: 'comma' + } + ), + 'a=' + date.getTime(), + 'works with arrayFormat comma' + ); + st.equal( + qs.stringify( + { a: [date] }, + { + serializeDate: function (d) { return d.getTime(); }, + arrayFormat: 'comma', + commaRoundTrip: true + } + ), + 'a%5B%5D=' + date.getTime(), + 'works with arrayFormat comma' + ); + + st.end(); + }); + + t.test('RFC 1738 serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC1738 }), 'a=b+c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC1738 }), 'a+b=c+d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC1738 }), 'a+b=a+b'); + + st.equal(qs.stringify({ 'foo(ref)': 'bar' }, { format: qs.formats.RFC1738 }), 'foo(ref)=bar'); + + st.end(); + }); + + t.test('RFC 3986 spaces serialization', function (st) { + st.equal(qs.stringify({ a: 'b c' }, { format: qs.formats.RFC3986 }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': 'c d' }, { format: qs.formats.RFC3986 }), 'a%20b=c%20d'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }, { format: qs.formats.RFC3986 }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Backward compatibility to RFC 3986', function (st) { + st.equal(qs.stringify({ a: 'b c' }), 'a=b%20c'); + st.equal(qs.stringify({ 'a b': SaferBuffer.from('a b') }), 'a%20b=a%20b'); + + st.end(); + }); + + t.test('Edge cases and unknown formats', function (st) { + ['UFO1234', false, 1234, null, {}, []].forEach(function (format) { + st['throws']( + function () { + qs.stringify({ a: 'b c' }, { format: format }); + }, + new TypeError('Unknown format option provided.') + ); + }); + st.end(); + }); + + t.test('encodeValuesOnly', function (st) { + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e=f'], f: [['g'], ['h']] }, + { encodeValuesOnly: true } + ), + 'a=b&c[0]=d&c[1]=e%3Df&f[0][0]=g&f[1][0]=h' + ); + st.equal( + qs.stringify( + { a: 'b', c: ['d', 'e'], f: [['g'], ['h']] } + ), + 'a=b&c%5B0%5D=d&c%5B1%5D=e&f%5B0%5D%5B0%5D=g&f%5B1%5D%5B0%5D=h' + ); + st.end(); + }); + + t.test('encodeValuesOnly - strictNullHandling', function (st) { + st.equal( + qs.stringify( + { a: { b: null } }, + { encodeValuesOnly: true, strictNullHandling: true } + ), + 'a[b]' + ); + st.end(); + }); + + t.test('throws if an invalid charset is specified', function (st) { + st['throws'](function () { + qs.stringify({ a: 'b' }, { charset: 'foobar' }); + }, new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined')); + st.end(); + }); + + t.test('respects a charset of iso-8859-1', function (st) { + st.equal(qs.stringify({ æ: 'æ' }, { charset: 'iso-8859-1' }), '%E6=%E6'); + st.end(); + }); + + t.test('encodes unrepresentable chars as numeric entities in iso-8859-1 mode', function (st) { + st.equal(qs.stringify({ a: '☺' }, { charset: 'iso-8859-1' }), 'a=%26%239786%3B'); + st.end(); + }); + + t.test('respects an explicit charset of utf-8 (the default)', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charset: 'utf-8' }), 'a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is utf-8', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'utf-8' }), 'utf8=%E2%9C%93&a=%C3%A6'); + st.end(); + }); + + t.test('adds the right sentinel when instructed to and the charset is iso-8859-1', function (st) { + st.equal(qs.stringify({ a: 'æ' }, { charsetSentinel: true, charset: 'iso-8859-1' }), 'utf8=%26%2310003%3B&a=%E6'); + st.end(); + }); + + t.test('does not mutate the options argument', function (st) { + var options = {}; + qs.stringify({}, options); + st.deepEqual(options, {}); + st.end(); + }); + + t.test('strictNullHandling works with custom filter', function (st) { + var filter = function (prefix, value) { + return value; + }; + + var options = { strictNullHandling: true, filter: filter }; + st.equal(qs.stringify({ key: null }, options), 'key'); + st.end(); + }); + + t.test('strictNullHandling works with null serializeDate', function (st) { + var serializeDate = function () { + return null; + }; + var options = { strictNullHandling: true, serializeDate: serializeDate }; + var date = new Date(); + st.equal(qs.stringify({ key: date }, options), 'key'); + st.end(); + }); + + t.test('allows for encoding keys and values differently', function (st) { + var encoder = function (str, defaultEncoder, charset, type) { + if (type === 'key') { + return defaultEncoder(str, defaultEncoder, charset, type).toLowerCase(); + } + if (type === 'value') { + return defaultEncoder(str, defaultEncoder, charset, type).toUpperCase(); + } + throw 'this should never happen! type: ' + type; + }; + + st.deepEqual(qs.stringify({ KeY: 'vAlUe' }, { encoder: encoder }), 'key=VALUE'); + st.end(); + }); + + t.test('objects inside arrays', function (st) { + var obj = { a: { b: { c: 'd', e: 'f' } } }; + var withArray = { a: { b: [{ c: 'd', e: 'f' }] } }; + + st.equal(qs.stringify(obj, { encode: false }), 'a[b][c]=d&a[b][e]=f', 'no array, no arrayFormat'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'bracket' }), 'a[b][c]=d&a[b][e]=f', 'no array, bracket'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'indices' }), 'a[b][c]=d&a[b][e]=f', 'no array, indices'); + st.equal(qs.stringify(obj, { encode: false, arrayFormat: 'comma' }), 'a[b][c]=d&a[b][e]=f', 'no array, comma'); + + st.equal(qs.stringify(withArray, { encode: false }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, no arrayFormat'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'bracket' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, bracket'); + st.equal(qs.stringify(withArray, { encode: false, arrayFormat: 'indices' }), 'a[b][0][c]=d&a[b][0][e]=f', 'array, indices'); + st.equal( + qs.stringify(withArray, { encode: false, arrayFormat: 'comma' }), + '???', + 'array, comma', + { skip: 'TODO: figure out what this should do' } + ); + + st.end(); + }); + + t.test('stringifies sparse arrays', function (st) { + /* eslint no-sparse-arrays: 0 */ + st.equal(qs.stringify({ a: [, '2', , , '1'] }, { encodeValuesOnly: true }), 'a[1]=2&a[4]=1'); + st.equal(qs.stringify({ a: [, { b: [, , { c: '1' }] }] }, { encodeValuesOnly: true }), 'a[1][b][2][c]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: '1' }]]] }, { encodeValuesOnly: true }), 'a[1][2][3][c]=1'); + st.equal(qs.stringify({ a: [, [, , [, , , { c: [, '1'] }]]] }, { encodeValuesOnly: true }), 'a[1][2][3][c][1]=1'); + + st.end(); + }); + + t.end(); +}); + +test('stringifies empty keys', function (t) { + emptyTestCases.forEach(function (testCase) { + t.test('stringifies an object with empty string key with ' + testCase.input, function (st) { + st.deepEqual(qs.stringify(testCase.withEmptyKeys, { encode: false }), testCase.stringifyOutput); + + st.end(); + }); + }); + + t.test('edge case with object/arrays', function (st) { + st.deepEqual(qs.stringify({ '': { '': [2, 3] } }, { encode: false }), '[][0]=2&[][1]=3'); + st.deepEqual(qs.stringify({ '': { '': [2, 3], a: 2 } }, { encode: false }), '[][0]=2&[][1]=3&[a]=2'); + + st.end(); + }); +}); diff --git a/node_modules/url/node_modules/qs/test/utils.js b/node_modules/url/node_modules/qs/test/utils.js new file mode 100644 index 0000000..aa84dfd --- /dev/null +++ b/node_modules/url/node_modules/qs/test/utils.js @@ -0,0 +1,136 @@ +'use strict'; + +var test = require('tape'); +var inspect = require('object-inspect'); +var SaferBuffer = require('safer-buffer').Buffer; +var forEach = require('for-each'); +var utils = require('../lib/utils'); + +test('merge()', function (t) { + t.deepEqual(utils.merge(null, true), [null, true], 'merges true into null'); + + t.deepEqual(utils.merge(null, [42]), [null, 42], 'merges null into an array'); + + t.deepEqual(utils.merge({ a: 'b' }, { a: 'c' }), { a: ['b', 'c'] }, 'merges two objects with the same key'); + + var oneMerged = utils.merge({ foo: 'bar' }, { foo: { first: '123' } }); + t.deepEqual(oneMerged, { foo: ['bar', { first: '123' }] }, 'merges a standalone and an object into an array'); + + var twoMerged = utils.merge({ foo: ['bar', { first: '123' }] }, { foo: { second: '456' } }); + t.deepEqual(twoMerged, { foo: { 0: 'bar', 1: { first: '123' }, second: '456' } }, 'merges a standalone and two objects into an array'); + + var sandwiched = utils.merge({ foo: ['bar', { first: '123', second: '456' }] }, { foo: 'baz' }); + t.deepEqual(sandwiched, { foo: ['bar', { first: '123', second: '456' }, 'baz'] }, 'merges an object sandwiched by two standalones into an array'); + + var nestedArrays = utils.merge({ foo: ['baz'] }, { foo: ['bar', 'xyzzy'] }); + t.deepEqual(nestedArrays, { foo: ['baz', 'bar', 'xyzzy'] }); + + var noOptionsNonObjectSource = utils.merge({ foo: 'baz' }, 'bar'); + t.deepEqual(noOptionsNonObjectSource, { foo: 'baz', bar: true }); + + t.test( + 'avoids invoking array setters unnecessarily', + { skip: typeof Object.defineProperty !== 'function' }, + function (st) { + var setCount = 0; + var getCount = 0; + var observed = []; + Object.defineProperty(observed, 0, { + get: function () { + getCount += 1; + return { bar: 'baz' }; + }, + set: function () { setCount += 1; } + }); + utils.merge(observed, [null]); + st.equal(setCount, 0); + st.equal(getCount, 1); + observed[0] = observed[0]; // eslint-disable-line no-self-assign + st.equal(setCount, 1); + st.equal(getCount, 2); + st.end(); + } + ); + + t.end(); +}); + +test('assign()', function (t) { + var target = { a: 1, b: 2 }; + var source = { b: 3, c: 4 }; + var result = utils.assign(target, source); + + t.equal(result, target, 'returns the target'); + t.deepEqual(target, { a: 1, b: 3, c: 4 }, 'target and source are merged'); + t.deepEqual(source, { b: 3, c: 4 }, 'source is untouched'); + + t.end(); +}); + +test('combine()', function (t) { + t.test('both arrays', function (st) { + var a = [1]; + var b = [2]; + var combined = utils.combine(a, b); + + st.deepEqual(a, [1], 'a is not mutated'); + st.deepEqual(b, [2], 'b is not mutated'); + st.notEqual(a, combined, 'a !== combined'); + st.notEqual(b, combined, 'b !== combined'); + st.deepEqual(combined, [1, 2], 'combined is a + b'); + + st.end(); + }); + + t.test('one array, one non-array', function (st) { + var aN = 1; + var a = [aN]; + var bN = 2; + var b = [bN]; + + var combinedAnB = utils.combine(aN, b); + st.deepEqual(b, [bN], 'b is not mutated'); + st.notEqual(aN, combinedAnB, 'aN + b !== aN'); + st.notEqual(a, combinedAnB, 'aN + b !== a'); + st.notEqual(bN, combinedAnB, 'aN + b !== bN'); + st.notEqual(b, combinedAnB, 'aN + b !== b'); + st.deepEqual([1, 2], combinedAnB, 'first argument is array-wrapped when not an array'); + + var combinedABn = utils.combine(a, bN); + st.deepEqual(a, [aN], 'a is not mutated'); + st.notEqual(aN, combinedABn, 'a + bN !== aN'); + st.notEqual(a, combinedABn, 'a + bN !== a'); + st.notEqual(bN, combinedABn, 'a + bN !== bN'); + st.notEqual(b, combinedABn, 'a + bN !== b'); + st.deepEqual([1, 2], combinedABn, 'second argument is array-wrapped when not an array'); + + st.end(); + }); + + t.test('neither is an array', function (st) { + var combined = utils.combine(1, 2); + st.notEqual(1, combined, '1 + 2 !== 1'); + st.notEqual(2, combined, '1 + 2 !== 2'); + st.deepEqual([1, 2], combined, 'both arguments are array-wrapped when not an array'); + + st.end(); + }); + + t.end(); +}); + +test('isBuffer()', function (t) { + forEach([null, undefined, true, false, '', 'abc', 42, 0, NaN, {}, [], function () {}, /a/g], function (x) { + t.equal(utils.isBuffer(x), false, inspect(x) + ' is not a buffer'); + }); + + var fakeBuffer = { constructor: Buffer }; + t.equal(utils.isBuffer(fakeBuffer), false, 'fake buffer is not a buffer'); + + var saferBuffer = SaferBuffer.from('abc'); + t.equal(utils.isBuffer(saferBuffer), true, 'SaferBuffer instance is a buffer'); + + var buffer = Buffer.from && Buffer.alloc ? Buffer.from('abc') : new Buffer('abc'); + t.equal(utils.isBuffer(buffer), true, 'real Buffer instance is a buffer'); + t.end(); +}); diff --git a/node_modules/url/package.json b/node_modules/url/package.json index e3024ab..968c0ba 100644 --- a/node_modules/url/package.json +++ b/node_modules/url/package.json @@ -1,20 +1,35 @@ { "name": "url", "description": "The core `url` packaged standalone for use with Browserify.", - "version": "0.11.0", + "version": "0.11.1", + "author": "defunctzombie", "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" + "punycode": "^1.4.1", + "qs": "^6.11.0" }, "main": "./url.js", + "keywords": [ + "parsing", + "url", + "analyze" + ], "devDependencies": { - "assert": "1.1.1", - "mocha": "1.18.2", - "zuul": "3.3.0" + "@ljharb/eslint-config": "^21.1.0", + "acorn": "^8.8.2", + "aud": "^2.0.2", + "eslint": "=8.8.0", + "mocha": "^3.5.3", + "nyc": "^10.3.2", + "zuul": "^3.12.0" }, "scripts": { - "test": "mocha --ui qunit test.js && zuul -- test.js", - "test-local": "zuul --local -- test.js" + "lint": "eslint .", + "pretest": "npm run lint", + "tests-only": "nyc mocha", + "test": "npm run tests-only", + "posttest": "aud --production", + "zuul": "zuul -- test/index.js", + "test-local": "zuul --local -- test/index.js" }, "repository": { "type": "git", diff --git a/node_modules/url/test.js b/node_modules/url/test.js deleted file mode 100644 index 3b7d335..0000000 --- a/node_modules/url/test.js +++ /dev/null @@ -1,1599 +0,0 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. - -var assert = require('assert'); - -var url = require('./url'); - -// URLs to parse, and expected data -// { url : parsed } -var parseTests = { - '//some_path' : { - 'href': '//some_path', - 'pathname': '//some_path', - 'path': '//some_path' - }, - - 'http:\\\\evil-phisher\\foo.html#h\\a\\s\\h': { - protocol: 'http:', - slashes: true, - host: 'evil-phisher', - hostname: 'evil-phisher', - pathname: '/foo.html', - path: '/foo.html', - hash: '#h%5Ca%5Cs%5Ch', - href: 'http://evil-phisher/foo.html#h%5Ca%5Cs%5Ch' - }, - - 'http:\\\\evil-phisher\\foo.html?json="\\"foo\\""#h\\a\\s\\h': { - protocol: 'http:', - slashes: true, - host: 'evil-phisher', - hostname: 'evil-phisher', - pathname: '/foo.html', - search: '?json=%22%5C%22foo%5C%22%22', - query: 'json=%22%5C%22foo%5C%22%22', - path: '/foo.html?json=%22%5C%22foo%5C%22%22', - hash: '#h%5Ca%5Cs%5Ch', - href: 'http://evil-phisher/foo.html?json=%22%5C%22foo%5C%22%22#h%5Ca%5Cs%5Ch' - }, - - 'http:\\\\evil-phisher\\foo.html#h\\a\\s\\h?blarg': { - protocol: 'http:', - slashes: true, - host: 'evil-phisher', - hostname: 'evil-phisher', - pathname: '/foo.html', - path: '/foo.html', - hash: '#h%5Ca%5Cs%5Ch?blarg', - href: 'http://evil-phisher/foo.html#h%5Ca%5Cs%5Ch?blarg' - }, - - - 'http:\\\\evil-phisher\\foo.html': { - protocol: 'http:', - slashes: true, - host: 'evil-phisher', - hostname: 'evil-phisher', - pathname: '/foo.html', - path: '/foo.html', - href: 'http://evil-phisher/foo.html' - }, - - 'HTTP://www.example.com/' : { - 'href': 'http://www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'HTTP://www.example.com' : { - 'href': 'http://www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://www.ExAmPlE.com/' : { - 'href': 'http://www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://user:pw@www.ExAmPlE.com/' : { - 'href': 'http://user:pw@www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pw', - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://USER:PW@www.ExAmPlE.com/' : { - 'href': 'http://USER:PW@www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'auth': 'USER:PW', - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://user@www.example.com/' : { - 'href': 'http://user@www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user', - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://user%3Apw@www.example.com/' : { - 'href': 'http://user:pw@www.example.com/', - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pw', - 'host': 'www.example.com', - 'hostname': 'www.example.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://x.com/path?that\'s#all, folks' : { - 'href': 'http://x.com/path?that%27s#all,%20folks', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x.com', - 'hostname': 'x.com', - 'search': '?that%27s', - 'query': 'that%27s', - 'pathname': '/path', - 'hash': '#all,%20folks', - 'path': '/path?that%27s' - }, - - 'HTTP://X.COM/Y' : { - 'href': 'http://x.com/Y', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x.com', - 'hostname': 'x.com', - 'pathname': '/Y', - 'path': '/Y' - }, - - // + not an invalid host character - // per https://url.spec.whatwg.org/#host-parsing - 'http://x.y.com+a/b/c' : { - 'href': 'http://x.y.com+a/b/c', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x.y.com+a', - 'hostname': 'x.y.com+a', - 'pathname': '/b/c', - 'path': '/b/c' - }, - - // an unexpected invalid char in the hostname. - 'HtTp://x.y.cOm;a/b/c?d=e#f gi' : { - 'href': 'http://x.y.com/;a/b/c?d=e#f%20g%3Ch%3Ei', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x.y.com', - 'hostname': 'x.y.com', - 'pathname': ';a/b/c', - 'search': '?d=e', - 'query': 'd=e', - 'hash': '#f%20g%3Ch%3Ei', - 'path': ';a/b/c?d=e' - }, - - // make sure that we don't accidentally lcast the path parts. - 'HtTp://x.y.cOm;A/b/c?d=e#f gi' : { - 'href': 'http://x.y.com/;A/b/c?d=e#f%20g%3Ch%3Ei', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x.y.com', - 'hostname': 'x.y.com', - 'pathname': ';A/b/c', - 'search': '?d=e', - 'query': 'd=e', - 'hash': '#f%20g%3Ch%3Ei', - 'path': ';A/b/c?d=e' - }, - - 'http://x...y...#p': { - 'href': 'http://x...y.../#p', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x...y...', - 'hostname': 'x...y...', - 'hash': '#p', - 'pathname': '/', - 'path': '/' - }, - - 'http://x/p/"quoted"': { - 'href': 'http://x/p/%22quoted%22', - 'protocol': 'http:', - 'slashes': true, - 'host': 'x', - 'hostname': 'x', - 'pathname': '/p/%22quoted%22', - 'path': '/p/%22quoted%22' - }, - - ' Is a URL!': { - 'href': '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!', - 'pathname': '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!', - 'path': '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!' - }, - - 'http://www.narwhaljs.org/blog/categories?id=news' : { - 'href': 'http://www.narwhaljs.org/blog/categories?id=news', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.narwhaljs.org', - 'hostname': 'www.narwhaljs.org', - 'search': '?id=news', - 'query': 'id=news', - 'pathname': '/blog/categories', - 'path': '/blog/categories?id=news' - }, - - 'http://mt0.google.com/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=' : { - 'href': 'http://mt0.google.com/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=', - 'protocol': 'http:', - 'slashes': true, - 'host': 'mt0.google.com', - 'hostname': 'mt0.google.com', - 'pathname': '/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=', - 'path': '/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=' - }, - - 'http://mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=' : { - 'href': 'http://mt0.google.com/vt/lyrs=m@114???&hl=en&src=api' + - '&x=2&y=2&z=3&s=', - 'protocol': 'http:', - 'slashes': true, - 'host': 'mt0.google.com', - 'hostname': 'mt0.google.com', - 'search': '???&hl=en&src=api&x=2&y=2&z=3&s=', - 'query': '??&hl=en&src=api&x=2&y=2&z=3&s=', - 'pathname': '/vt/lyrs=m@114', - 'path': '/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=' - }, - - 'http://user:pass@mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=': - { - 'href': 'http://user:pass@mt0.google.com/vt/lyrs=m@114???' + - '&hl=en&src=api&x=2&y=2&z=3&s=', - 'protocol': 'http:', - 'slashes': true, - 'host': 'mt0.google.com', - 'auth': 'user:pass', - 'hostname': 'mt0.google.com', - 'search': '???&hl=en&src=api&x=2&y=2&z=3&s=', - 'query': '??&hl=en&src=api&x=2&y=2&z=3&s=', - 'pathname': '/vt/lyrs=m@114', - 'path': '/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=' - }, - - 'file:///etc/passwd' : { - 'href': 'file:///etc/passwd', - 'slashes': true, - 'protocol': 'file:', - 'pathname': '/etc/passwd', - 'hostname': '', - 'host': '', - 'path': '/etc/passwd' - }, - - 'file://localhost/etc/passwd' : { - 'href': 'file://localhost/etc/passwd', - 'protocol': 'file:', - 'slashes': true, - 'pathname': '/etc/passwd', - 'hostname': 'localhost', - 'host': 'localhost', - 'path': '/etc/passwd' - }, - - 'file://foo/etc/passwd' : { - 'href': 'file://foo/etc/passwd', - 'protocol': 'file:', - 'slashes': true, - 'pathname': '/etc/passwd', - 'hostname': 'foo', - 'host': 'foo', - 'path': '/etc/passwd' - }, - - 'file:///etc/node/' : { - 'href': 'file:///etc/node/', - 'slashes': true, - 'protocol': 'file:', - 'pathname': '/etc/node/', - 'hostname': '', - 'host': '', - 'path': '/etc/node/' - }, - - 'file://localhost/etc/node/' : { - 'href': 'file://localhost/etc/node/', - 'protocol': 'file:', - 'slashes': true, - 'pathname': '/etc/node/', - 'hostname': 'localhost', - 'host': 'localhost', - 'path': '/etc/node/' - }, - - 'file://foo/etc/node/' : { - 'href': 'file://foo/etc/node/', - 'protocol': 'file:', - 'slashes': true, - 'pathname': '/etc/node/', - 'hostname': 'foo', - 'host': 'foo', - 'path': '/etc/node/' - }, - - 'http:/baz/../foo/bar' : { - 'href': 'http:/baz/../foo/bar', - 'protocol': 'http:', - 'pathname': '/baz/../foo/bar', - 'path': '/baz/../foo/bar' - }, - - 'http://user:pass@example.com:8000/foo/bar?baz=quux#frag' : { - 'href': 'http://user:pass@example.com:8000/foo/bar?baz=quux#frag', - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com:8000', - 'auth': 'user:pass', - 'port': '8000', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?baz=quux', - 'query': 'baz=quux', - 'pathname': '/foo/bar', - 'path': '/foo/bar?baz=quux' - }, - - '//user:pass@example.com:8000/foo/bar?baz=quux#frag' : { - 'href': '//user:pass@example.com:8000/foo/bar?baz=quux#frag', - 'slashes': true, - 'host': 'example.com:8000', - 'auth': 'user:pass', - 'port': '8000', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?baz=quux', - 'query': 'baz=quux', - 'pathname': '/foo/bar', - 'path': '/foo/bar?baz=quux' - }, - - '/foo/bar?baz=quux#frag' : { - 'href': '/foo/bar?baz=quux#frag', - 'hash': '#frag', - 'search': '?baz=quux', - 'query': 'baz=quux', - 'pathname': '/foo/bar', - 'path': '/foo/bar?baz=quux' - }, - - 'http:/foo/bar?baz=quux#frag' : { - 'href': 'http:/foo/bar?baz=quux#frag', - 'protocol': 'http:', - 'hash': '#frag', - 'search': '?baz=quux', - 'query': 'baz=quux', - 'pathname': '/foo/bar', - 'path': '/foo/bar?baz=quux' - }, - - 'mailto:foo@bar.com?subject=hello' : { - 'href': 'mailto:foo@bar.com?subject=hello', - 'protocol': 'mailto:', - 'host': 'bar.com', - 'auth' : 'foo', - 'hostname' : 'bar.com', - 'search': '?subject=hello', - 'query': 'subject=hello', - 'path': '?subject=hello' - }, - - 'javascript:alert(\'hello\');' : { - 'href': 'javascript:alert(\'hello\');', - 'protocol': 'javascript:', - 'pathname': 'alert(\'hello\');', - 'path': 'alert(\'hello\');' - }, - - 'xmpp:isaacschlueter@jabber.org' : { - 'href': 'xmpp:isaacschlueter@jabber.org', - 'protocol': 'xmpp:', - 'host': 'jabber.org', - 'auth': 'isaacschlueter', - 'hostname': 'jabber.org' - }, - - 'http://atpass:foo%40bar@127.0.0.1:8080/path?search=foo#bar' : { - 'href' : 'http://atpass:foo%40bar@127.0.0.1:8080/path?search=foo#bar', - 'protocol' : 'http:', - 'slashes': true, - 'host' : '127.0.0.1:8080', - 'auth' : 'atpass:foo@bar', - 'hostname' : '127.0.0.1', - 'port' : '8080', - 'pathname': '/path', - 'search' : '?search=foo', - 'query' : 'search=foo', - 'hash' : '#bar', - 'path': '/path?search=foo' - }, - - 'svn+ssh://foo/bar': { - 'href': 'svn+ssh://foo/bar', - 'host': 'foo', - 'hostname': 'foo', - 'protocol': 'svn+ssh:', - 'pathname': '/bar', - 'path': '/bar', - 'slashes': true - }, - - 'dash-test://foo/bar': { - 'href': 'dash-test://foo/bar', - 'host': 'foo', - 'hostname': 'foo', - 'protocol': 'dash-test:', - 'pathname': '/bar', - 'path': '/bar', - 'slashes': true - }, - - 'dash-test:foo/bar': { - 'href': 'dash-test:foo/bar', - 'host': 'foo', - 'hostname': 'foo', - 'protocol': 'dash-test:', - 'pathname': '/bar', - 'path': '/bar' - }, - - 'dot.test://foo/bar': { - 'href': 'dot.test://foo/bar', - 'host': 'foo', - 'hostname': 'foo', - 'protocol': 'dot.test:', - 'pathname': '/bar', - 'path': '/bar', - 'slashes': true - }, - - 'dot.test:foo/bar': { - 'href': 'dot.test:foo/bar', - 'host': 'foo', - 'hostname': 'foo', - 'protocol': 'dot.test:', - 'pathname': '/bar', - 'path': '/bar' - }, - - // IDNA tests - 'http://www.日本語.com/' : { - 'href': 'http://www.xn--wgv71a119e.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.xn--wgv71a119e.com', - 'hostname': 'www.xn--wgv71a119e.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://example.Bücher.com/' : { - 'href': 'http://example.xn--bcher-kva.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.xn--bcher-kva.com', - 'hostname': 'example.xn--bcher-kva.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://www.Äffchen.com/' : { - 'href': 'http://www.xn--ffchen-9ta.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.xn--ffchen-9ta.com', - 'hostname': 'www.xn--ffchen-9ta.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://www.Äffchen.cOm;A/b/c?d=e#f gi' : { - 'href': 'http://www.xn--ffchen-9ta.com/;A/b/c?d=e#f%20g%3Ch%3Ei', - 'protocol': 'http:', - 'slashes': true, - 'host': 'www.xn--ffchen-9ta.com', - 'hostname': 'www.xn--ffchen-9ta.com', - 'pathname': ';A/b/c', - 'search': '?d=e', - 'query': 'd=e', - 'hash': '#f%20g%3Ch%3Ei', - 'path': ';A/b/c?d=e' - }, - - 'http://SÉLIER.COM/' : { - 'href': 'http://xn--slier-bsa.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'xn--slier-bsa.com', - 'hostname': 'xn--slier-bsa.com', - 'pathname': '/', - 'path': '/' - }, - - 'http://ليهمابتكلموشعربي؟.ي؟/' : { - 'href': 'http://xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f', - 'hostname': 'xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f', - 'pathname': '/', - 'path': '/' - }, - - 'http://➡.ws/➡' : { - 'href': 'http://xn--hgi.ws/➡', - 'protocol': 'http:', - 'slashes': true, - 'host': 'xn--hgi.ws', - 'hostname': 'xn--hgi.ws', - 'pathname': '/➡', - 'path': '/➡' - }, - - 'http://bucket_name.s3.amazonaws.com/image.jpg': { - protocol: 'http:', - 'slashes': true, - slashes: true, - host: 'bucket_name.s3.amazonaws.com', - hostname: 'bucket_name.s3.amazonaws.com', - pathname: '/image.jpg', - href: 'http://bucket_name.s3.amazonaws.com/image.jpg', - 'path': '/image.jpg' - }, - - 'git+http://github.com/joyent/node.git': { - protocol: 'git+http:', - slashes: true, - host: 'github.com', - hostname: 'github.com', - pathname: '/joyent/node.git', - path: '/joyent/node.git', - href: 'git+http://github.com/joyent/node.git' - }, - - //if local1@domain1 is uses as a relative URL it may - //be parse into auth@hostname, but here there is no - //way to make it work in url.parse, I add the test to be explicit - 'local1@domain1': { - 'pathname': 'local1@domain1', - 'path': 'local1@domain1', - 'href': 'local1@domain1' - }, - - //While this may seem counter-intuitive, a browser will parse - // as a path. - 'www.example.com' : { - 'href': 'www.example.com', - 'pathname': 'www.example.com', - 'path': 'www.example.com' - }, - - // ipv6 support - '[fe80::1]': { - 'href': '[fe80::1]', - 'pathname': '[fe80::1]', - 'path': '[fe80::1]' - }, - - 'coap://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]': { - 'protocol': 'coap:', - 'slashes': true, - 'host': '[fedc:ba98:7654:3210:fedc:ba98:7654:3210]', - 'hostname': 'fedc:ba98:7654:3210:fedc:ba98:7654:3210', - 'href': 'coap://[fedc:ba98:7654:3210:fedc:ba98:7654:3210]/', - 'pathname': '/', - 'path': '/' - }, - - 'coap://[1080:0:0:0:8:800:200C:417A]:61616/': { - 'protocol': 'coap:', - 'slashes': true, - 'host': '[1080:0:0:0:8:800:200c:417a]:61616', - 'port': '61616', - 'hostname': '1080:0:0:0:8:800:200c:417a', - 'href': 'coap://[1080:0:0:0:8:800:200c:417a]:61616/', - 'pathname': '/', - 'path': '/' - }, - - 'http://user:password@[3ffe:2a00:100:7031::1]:8080': { - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:password', - 'host': '[3ffe:2a00:100:7031::1]:8080', - 'port': '8080', - 'hostname': '3ffe:2a00:100:7031::1', - 'href': 'http://user:password@[3ffe:2a00:100:7031::1]:8080/', - 'pathname': '/', - 'path': '/' - }, - - 'coap://u:p@[::192.9.5.5]:61616/.well-known/r?n=Temperature': { - 'protocol': 'coap:', - 'slashes': true, - 'auth': 'u:p', - 'host': '[::192.9.5.5]:61616', - 'port': '61616', - 'hostname': '::192.9.5.5', - 'href': 'coap://u:p@[::192.9.5.5]:61616/.well-known/r?n=Temperature', - 'search': '?n=Temperature', - 'query': 'n=Temperature', - 'pathname': '/.well-known/r', - 'path': '/.well-known/r?n=Temperature' - }, - - // empty port - 'http://example.com:': { - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'href': 'http://example.com/', - 'pathname': '/', - 'path': '/' - }, - - 'http://example.com:/a/b.html': { - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'href': 'http://example.com/a/b.html', - 'pathname': '/a/b.html', - 'path': '/a/b.html' - }, - - 'http://example.com:?a=b': { - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'href': 'http://example.com/?a=b', - 'search': '?a=b', - 'query': 'a=b', - 'pathname': '/', - 'path': '/?a=b' - }, - - 'http://example.com:#abc': { - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'href': 'http://example.com/#abc', - 'hash': '#abc', - 'pathname': '/', - 'path': '/' - }, - - 'http://[fe80::1]:/a/b?a=b#abc': { - 'protocol': 'http:', - 'slashes': true, - 'host': '[fe80::1]', - 'hostname': 'fe80::1', - 'href': 'http://[fe80::1]/a/b?a=b#abc', - 'search': '?a=b', - 'query': 'a=b', - 'hash': '#abc', - 'pathname': '/a/b', - 'path': '/a/b?a=b' - }, - - 'http://-lovemonsterz.tumblr.com/rss': { - 'protocol': 'http:', - 'slashes': true, - 'host': '-lovemonsterz.tumblr.com', - 'hostname': '-lovemonsterz.tumblr.com', - 'href': 'http://-lovemonsterz.tumblr.com/rss', - 'pathname': '/rss', - 'path': '/rss', - }, - - 'http://-lovemonsterz.tumblr.com:80/rss': { - 'protocol': 'http:', - 'slashes': true, - 'port': '80', - 'host': '-lovemonsterz.tumblr.com:80', - 'hostname': '-lovemonsterz.tumblr.com', - 'href': 'http://-lovemonsterz.tumblr.com:80/rss', - 'pathname': '/rss', - 'path': '/rss', - }, - - 'http://user:pass@-lovemonsterz.tumblr.com/rss': { - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pass', - 'host': '-lovemonsterz.tumblr.com', - 'hostname': '-lovemonsterz.tumblr.com', - 'href': 'http://user:pass@-lovemonsterz.tumblr.com/rss', - 'pathname': '/rss', - 'path': '/rss', - }, - - 'http://user:pass@-lovemonsterz.tumblr.com:80/rss': { - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pass', - 'port': '80', - 'host': '-lovemonsterz.tumblr.com:80', - 'hostname': '-lovemonsterz.tumblr.com', - 'href': 'http://user:pass@-lovemonsterz.tumblr.com:80/rss', - 'pathname': '/rss', - 'path': '/rss', - }, - - 'http://_jabber._tcp.google.com/test': { - 'protocol': 'http:', - 'slashes': true, - 'host': '_jabber._tcp.google.com', - 'hostname': '_jabber._tcp.google.com', - 'href': 'http://_jabber._tcp.google.com/test', - 'pathname': '/test', - 'path': '/test', - }, - - 'http://user:pass@_jabber._tcp.google.com/test': { - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pass', - 'host': '_jabber._tcp.google.com', - 'hostname': '_jabber._tcp.google.com', - 'href': 'http://user:pass@_jabber._tcp.google.com/test', - 'pathname': '/test', - 'path': '/test', - }, - - 'http://_jabber._tcp.google.com:80/test': { - 'protocol': 'http:', - 'slashes': true, - 'port': '80', - 'host': '_jabber._tcp.google.com:80', - 'hostname': '_jabber._tcp.google.com', - 'href': 'http://_jabber._tcp.google.com:80/test', - 'pathname': '/test', - 'path': '/test', - }, - - 'http://user:pass@_jabber._tcp.google.com:80/test': { - 'protocol': 'http:', - 'slashes': true, - 'auth': 'user:pass', - 'port': '80', - 'host': '_jabber._tcp.google.com:80', - 'hostname': '_jabber._tcp.google.com', - 'href': 'http://user:pass@_jabber._tcp.google.com:80/test', - 'pathname': '/test', - 'path': '/test', - }, - - 'http://x:1/\' <>"`/{}|\\^~`/': { - protocol: 'http:', - slashes: true, - host: 'x:1', - port: '1', - hostname: 'x', - pathname: '/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/', - path: '/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/', - href: 'http://x:1/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/' - }, - - 'http://a@b@c/': { - protocol: 'http:', - slashes: true, - auth: 'a@b', - host: 'c', - hostname: 'c', - href: 'http://a%40b@c/', - path: '/', - pathname: '/' - }, - - 'http://a@b?@c': { - protocol: 'http:', - slashes: true, - auth: 'a', - host: 'b', - hostname: 'b', - href: 'http://a@b/?@c', - path: '/?@c', - pathname: '/', - search: '?@c', - query: '@c' - }, - - 'http://a\r" \t\n<\'b:b@c\r\nd/e?f':{ - protocol: 'http:', - slashes: true, - auth: 'a\r" \t\n<\'b:b', - host: 'c', - port: null, - hostname: 'c', - hash: null, - search: '?f', - query: 'f', - pathname: '%0D%0Ad/e', - path: '%0D%0Ad/e?f', - href: 'http://a%0D%22%20%09%0A%3C\'b:b@c/%0D%0Ad/e?f' - }, - - // git urls used by npm - 'git+ssh://git@github.com:npm/npm': { - protocol: 'git+ssh:', - slashes: true, - auth: 'git', - host: 'github.com', - port: null, - hostname: 'github.com', - hash: null, - search: null, - query: null, - pathname: '/:npm/npm', - path: '/:npm/npm', - href: 'git+ssh://git@github.com/:npm/npm' - } - -}; - -Object.keys(parseTests).forEach(function(u) { - test('parse(' + u + ')', function() { - var actual = url.parse(u), - spaced = url.parse(' \t ' + u + '\n\t'); - expected = parseTests[u]; - - Object.keys(actual).forEach(function (i) { - if (expected[i] === undefined && actual[i] === null) { - expected[i] = null; - } - }); - - assert.deepEqual(actual, expected); - assert.deepEqual(spaced, expected); - - var expected = parseTests[u].href, - actual = url.format(parseTests[u]); - - assert.equal(actual, expected, - 'format(' + u + ') == ' + u + '\nactual:' + actual); - }); -}); - -var parseTestsWithQueryString = { - '/foo/bar?baz=quux#frag' : { - 'href': '/foo/bar?baz=quux#frag', - 'hash': '#frag', - 'search': '?baz=quux', - 'query': { - 'baz': 'quux' - }, - 'pathname': '/foo/bar', - 'path': '/foo/bar?baz=quux' - }, - 'http://example.com' : { - 'href': 'http://example.com/', - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'query': {}, - 'search': '', - 'pathname': '/', - 'path': '/' - }, - '/example': { - protocol: null, - slashes: null, - auth: null, - host: null, - port: null, - hostname: null, - hash: null, - search: '', - query: {}, - pathname: '/example', - path: '/example', - href: '/example' - }, - '/example?query=value':{ - protocol: null, - slashes: null, - auth: null, - host: null, - port: null, - hostname: null, - hash: null, - search: '?query=value', - query: { query: 'value' }, - pathname: '/example', - path: '/example?query=value', - href: '/example?query=value' - } -}; - -Object.keys(parseTestsWithQueryString).forEach(function(u) { - test('parse(' + u + ')', function() { - var actual = url.parse(u, true); - var expected = parseTestsWithQueryString[u]; - for (var i in actual) { - if (actual[i] === null && expected[i] === undefined) { - expected[i] = null; - } - } - - assert.deepEqual(actual, expected); - }); -}); - -// some extra formatting tests, just to verify -// that it'll format slightly wonky content to a valid url. -var formatTests = { - 'http://example.com?' : { - 'href': 'http://example.com/?', - 'protocol': 'http:', - 'slashes': true, - 'host': 'example.com', - 'hostname': 'example.com', - 'search': '?', - 'query': {}, - 'pathname': '/' - }, - 'http://example.com?foo=bar#frag' : { - 'href': 'http://example.com/?foo=bar#frag', - 'protocol': 'http:', - 'host': 'example.com', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?foo=bar', - 'query': 'foo=bar', - 'pathname': '/' - }, - 'http://example.com?foo=@bar#frag' : { - 'href': 'http://example.com/?foo=@bar#frag', - 'protocol': 'http:', - 'host': 'example.com', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?foo=@bar', - 'query': 'foo=@bar', - 'pathname': '/' - }, - 'http://example.com?foo=/bar/#frag' : { - 'href': 'http://example.com/?foo=/bar/#frag', - 'protocol': 'http:', - 'host': 'example.com', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?foo=/bar/', - 'query': 'foo=/bar/', - 'pathname': '/' - }, - 'http://example.com?foo=?bar/#frag' : { - 'href': 'http://example.com/?foo=?bar/#frag', - 'protocol': 'http:', - 'host': 'example.com', - 'hostname': 'example.com', - 'hash': '#frag', - 'search': '?foo=?bar/', - 'query': 'foo=?bar/', - 'pathname': '/' - }, - 'http://example.com#frag=?bar/#frag' : { - 'href': 'http://example.com/#frag=?bar/#frag', - 'protocol': 'http:', - 'host': 'example.com', - 'hostname': 'example.com', - 'hash': '#frag=?bar/#frag', - 'pathname': '/' - }, - 'http://google.com" onload="alert(42)/' : { - 'href': 'http://google.com/%22%20onload=%22alert(42)/', - 'protocol': 'http:', - 'host': 'google.com', - 'pathname': '/%22%20onload=%22alert(42)/' - }, - 'http://a.com/a/b/c?s#h' : { - 'href': 'http://a.com/a/b/c?s#h', - 'protocol': 'http', - 'host': 'a.com', - 'pathname': 'a/b/c', - 'hash': 'h', - 'search': 's' - }, - 'xmpp:isaacschlueter@jabber.org' : { - 'href': 'xmpp:isaacschlueter@jabber.org', - 'protocol': 'xmpp:', - 'host': 'jabber.org', - 'auth': 'isaacschlueter', - 'hostname': 'jabber.org' - }, - 'http://atpass:foo%40bar@127.0.0.1/' : { - 'href': 'http://atpass:foo%40bar@127.0.0.1/', - 'auth': 'atpass:foo@bar', - 'hostname': '127.0.0.1', - 'protocol': 'http:', - 'pathname': '/' - }, - 'http://atslash%2F%40:%2F%40@foo/' : { - 'href': 'http://atslash%2F%40:%2F%40@foo/', - 'auth': 'atslash/@:/@', - 'hostname': 'foo', - 'protocol': 'http:', - 'pathname': '/' - }, - 'svn+ssh://foo/bar': { - 'href': 'svn+ssh://foo/bar', - 'hostname': 'foo', - 'protocol': 'svn+ssh:', - 'pathname': '/bar', - 'slashes': true - }, - 'dash-test://foo/bar': { - 'href': 'dash-test://foo/bar', - 'hostname': 'foo', - 'protocol': 'dash-test:', - 'pathname': '/bar', - 'slashes': true - }, - 'dash-test:foo/bar': { - 'href': 'dash-test:foo/bar', - 'hostname': 'foo', - 'protocol': 'dash-test:', - 'pathname': '/bar' - }, - 'dot.test://foo/bar': { - 'href': 'dot.test://foo/bar', - 'hostname': 'foo', - 'protocol': 'dot.test:', - 'pathname': '/bar', - 'slashes': true - }, - 'dot.test:foo/bar': { - 'href': 'dot.test:foo/bar', - 'hostname': 'foo', - 'protocol': 'dot.test:', - 'pathname': '/bar' - }, - // ipv6 support - 'coap:u:p@[::1]:61616/.well-known/r?n=Temperature': { - 'href': 'coap:u:p@[::1]:61616/.well-known/r?n=Temperature', - 'protocol': 'coap:', - 'auth': 'u:p', - 'hostname': '::1', - 'port': '61616', - 'pathname': '/.well-known/r', - 'search': 'n=Temperature' - }, - 'coap:[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616/s/stopButton': { - 'href': 'coap:[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616/s/stopButton', - 'protocol': 'coap', - 'host': '[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616', - 'pathname': '/s/stopButton' - }, - - // encode context-specific delimiters in path and query, but do not touch - // other non-delimiter chars like `%`. - // - - // `#`,`?` in path - '/path/to/%%23%3F+=&.txt?foo=theA1#bar' : { - href : '/path/to/%%23%3F+=&.txt?foo=theA1#bar', - pathname: '/path/to/%#?+=&.txt', - query: { - foo: 'theA1' - }, - hash: "#bar" - }, - - // `#`,`?` in path + `#` in query - '/path/to/%%23%3F+=&.txt?foo=the%231#bar' : { - href : '/path/to/%%23%3F+=&.txt?foo=the%231#bar', - pathname: '/path/to/%#?+=&.txt', - query: { - foo: 'the#1' - }, - hash: "#bar" - }, - - // `?` and `#` in path and search - 'http://ex.com/foo%3F100%m%23r?abc=the%231?&foo=bar#frag': { - href: 'http://ex.com/foo%3F100%m%23r?abc=the%231?&foo=bar#frag', - protocol: 'http:', - hostname: 'ex.com', - hash: '#frag', - search: '?abc=the#1?&foo=bar', - pathname: '/foo?100%m#r', - }, - - // `?` and `#` in search only - 'http://ex.com/fooA100%mBr?abc=the%231?&foo=bar#frag': { - href: 'http://ex.com/fooA100%mBr?abc=the%231?&foo=bar#frag', - protocol: 'http:', - hostname: 'ex.com', - hash: '#frag', - search: '?abc=the#1?&foo=bar', - pathname: '/fooA100%mBr', - } -}; - -Object.keys(formatTests).forEach(function(u) { - test('format(' + u + ')', function() { - var expect = formatTests[u].href; - delete formatTests[u].href; - var actual = url.format(u); - var actualObj = url.format(formatTests[u]); - assert.equal(actual, expect, - 'wonky format(' + u + ') == ' + expect + - '\nactual:' + actual); - assert.equal(actualObj, expect, - 'wonky format(' + JSON.stringify(formatTests[u]) + - ') == ' + expect + - '\nactual: ' + actualObj); - }); -}); - -/* - [from, path, expected] -*/ -var relativeTests = [ - ['/foo/bar/baz', 'quux', '/foo/bar/quux'], - ['/foo/bar/baz', 'quux/asdf', '/foo/bar/quux/asdf'], - ['/foo/bar/baz', 'quux/baz', '/foo/bar/quux/baz'], - ['/foo/bar/baz', '../quux/baz', '/foo/quux/baz'], - ['/foo/bar/baz', '/bar', '/bar'], - ['/foo/bar/baz/', 'quux', '/foo/bar/baz/quux'], - ['/foo/bar/baz/', 'quux/baz', '/foo/bar/baz/quux/baz'], - ['/foo/bar/baz', '../../../../../../../../quux/baz', '/quux/baz'], - ['/foo/bar/baz', '../../../../../../../quux/baz', '/quux/baz'], - ['/foo', '.', '/'], - ['/foo', '..', '/'], - ['/foo/', '.', '/foo/'], - ['/foo/', '..', '/'], - ['/foo/bar', '.', '/foo/'], - ['/foo/bar', '..', '/'], - ['/foo/bar/', '.', '/foo/bar/'], - ['/foo/bar/', '..', '/foo/'], - ['foo/bar', '../../../baz', '../../baz'], - ['foo/bar/', '../../../baz', '../baz'], - ['http://example.com/b//c//d;p?q#blarg', 'https:#hash2', 'https:///#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'https:/p/a/t/h?s#hash2', - 'https://p/a/t/h?s#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'https://u:p@h.com/p/a/t/h?s#hash2', - 'https://u:p@h.com/p/a/t/h?s#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'https:/a/b/c/d', - 'https://a/b/c/d'], - ['http://example.com/b//c//d;p?q#blarg', - 'http:#hash2', - 'http://example.com/b//c//d;p?q#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'http:/p/a/t/h?s#hash2', - 'http://example.com/p/a/t/h?s#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'http://u:p@h.com/p/a/t/h?s#hash2', - 'http://u:p@h.com/p/a/t/h?s#hash2'], - ['http://example.com/b//c//d;p?q#blarg', - 'http:/a/b/c/d', - 'http://example.com/a/b/c/d'], - ['/foo/bar/baz', '/../etc/passwd', '/etc/passwd'] -]; - -relativeTests.forEach(function(relativeTest) { - test('resolve(' + [relativeTest[0], relativeTest[1]] + ')', function() { - var a = url.resolve(relativeTest[0], relativeTest[1]), - e = relativeTest[2]; - assert.equal(a, e, - 'resolve(' + [relativeTest[0], relativeTest[1]] + ') == ' + e + - '\n actual=' + a); - }); -}); - - -// https://github.com/joyent/node/issues/568 -[ - undefined, - null, - true, - false, - 0.0, - 0, - [], - {} -].forEach(function(val) { - test('parse(' + val + ')', function() { - assert.throws(function() { url.parse(val); }, TypeError); - }); -}); - - -// -// Tests below taken from Chiron -// http://code.google.com/p/chironjs/source/browse/trunk/src/test/http/url.js -// -// Copyright (c) 2002-2008 Kris Kowal -// used with permission under MIT License -// -// Changes marked with @isaacs - -var bases = [ - 'http://a/b/c/d;p?q', - 'http://a/b/c/d;p?q=1/2', - 'http://a/b/c/d;p=1/2?q', - 'fred:///s//a/b/c', - 'http:///s//a/b/c' -]; - -//[to, from, result] -var relativeTests2 = [ - // http://lists.w3.org/Archives/Public/uri/2004Feb/0114.html - ['../c', 'foo:a/b', 'foo:c'], - ['foo:.', 'foo:a', 'foo:'], - ['/foo/../../../bar', 'zz:abc', 'zz:/bar'], - ['/foo/../bar', 'zz:abc', 'zz:/bar'], - // @isaacs Disagree. Not how web browsers resolve this. - ['foo/../../../bar', 'zz:abc', 'zz:bar'], - // ['foo/../../../bar', 'zz:abc', 'zz:../../bar'], // @isaacs Added - ['foo/../bar', 'zz:abc', 'zz:bar'], - ['zz:.', 'zz:abc', 'zz:'], - ['/.', bases[0], 'http://a/'], - ['/.foo', bases[0], 'http://a/.foo'], - ['.foo', bases[0], 'http://a/b/c/.foo'], - - // http://gbiv.com/protocols/uri/test/rel_examples1.html - // examples from RFC 2396 - ['g:h', bases[0], 'g:h'], - ['g', bases[0], 'http://a/b/c/g'], - ['./g', bases[0], 'http://a/b/c/g'], - ['g/', bases[0], 'http://a/b/c/g/'], - ['/g', bases[0], 'http://a/g'], - ['//g', bases[0], 'http://g/'], - // changed with RFC 2396bis - //('?y', bases[0], 'http://a/b/c/d;p?y'], - ['?y', bases[0], 'http://a/b/c/d;p?y'], - ['g?y', bases[0], 'http://a/b/c/g?y'], - // changed with RFC 2396bis - //('#s', bases[0], CURRENT_DOC_URI + '#s'], - ['#s', bases[0], 'http://a/b/c/d;p?q#s'], - ['g#s', bases[0], 'http://a/b/c/g#s'], - ['g?y#s', bases[0], 'http://a/b/c/g?y#s'], - [';x', bases[0], 'http://a/b/c/;x'], - ['g;x', bases[0], 'http://a/b/c/g;x'], - ['g;x?y#s' , bases[0], 'http://a/b/c/g;x?y#s'], - // changed with RFC 2396bis - //('', bases[0], CURRENT_DOC_URI], - ['', bases[0], 'http://a/b/c/d;p?q'], - ['.', bases[0], 'http://a/b/c/'], - ['./', bases[0], 'http://a/b/c/'], - ['..', bases[0], 'http://a/b/'], - ['../', bases[0], 'http://a/b/'], - ['../g', bases[0], 'http://a/b/g'], - ['../..', bases[0], 'http://a/'], - ['../../', bases[0], 'http://a/'], - ['../../g' , bases[0], 'http://a/g'], - ['../../../g', bases[0], ('http://a/../g', 'http://a/g')], - ['../../../../g', bases[0], ('http://a/../../g', 'http://a/g')], - // changed with RFC 2396bis - //('/./g', bases[0], 'http://a/./g'], - ['/./g', bases[0], 'http://a/g'], - // changed with RFC 2396bis - //('/../g', bases[0], 'http://a/../g'], - ['/../g', bases[0], 'http://a/g'], - ['g.', bases[0], 'http://a/b/c/g.'], - ['.g', bases[0], 'http://a/b/c/.g'], - ['g..', bases[0], 'http://a/b/c/g..'], - ['..g', bases[0], 'http://a/b/c/..g'], - ['./../g', bases[0], 'http://a/b/g'], - ['./g/.', bases[0], 'http://a/b/c/g/'], - ['g/./h', bases[0], 'http://a/b/c/g/h'], - ['g/../h', bases[0], 'http://a/b/c/h'], - ['g;x=1/./y', bases[0], 'http://a/b/c/g;x=1/y'], - ['g;x=1/../y', bases[0], 'http://a/b/c/y'], - ['g?y/./x', bases[0], 'http://a/b/c/g?y/./x'], - ['g?y/../x', bases[0], 'http://a/b/c/g?y/../x'], - ['g#s/./x', bases[0], 'http://a/b/c/g#s/./x'], - ['g#s/../x', bases[0], 'http://a/b/c/g#s/../x'], - ['http:g', bases[0], ('http:g', 'http://a/b/c/g')], - ['http:', bases[0], ('http:', bases[0])], - // not sure where this one originated - ['/a/b/c/./../../g', bases[0], 'http://a/a/g'], - - // http://gbiv.com/protocols/uri/test/rel_examples2.html - // slashes in base URI's query args - ['g', bases[1], 'http://a/b/c/g'], - ['./g', bases[1], 'http://a/b/c/g'], - ['g/', bases[1], 'http://a/b/c/g/'], - ['/g', bases[1], 'http://a/g'], - ['//g', bases[1], 'http://g/'], - // changed in RFC 2396bis - //('?y', bases[1], 'http://a/b/c/?y'], - ['?y', bases[1], 'http://a/b/c/d;p?y'], - ['g?y', bases[1], 'http://a/b/c/g?y'], - ['g?y/./x' , bases[1], 'http://a/b/c/g?y/./x'], - ['g?y/../x', bases[1], 'http://a/b/c/g?y/../x'], - ['g#s', bases[1], 'http://a/b/c/g#s'], - ['g#s/./x' , bases[1], 'http://a/b/c/g#s/./x'], - ['g#s/../x', bases[1], 'http://a/b/c/g#s/../x'], - ['./', bases[1], 'http://a/b/c/'], - ['../', bases[1], 'http://a/b/'], - ['../g', bases[1], 'http://a/b/g'], - ['../../', bases[1], 'http://a/'], - ['../../g' , bases[1], 'http://a/g'], - - // http://gbiv.com/protocols/uri/test/rel_examples3.html - // slashes in path params - // all of these changed in RFC 2396bis - ['g', bases[2], 'http://a/b/c/d;p=1/g'], - ['./g', bases[2], 'http://a/b/c/d;p=1/g'], - ['g/', bases[2], 'http://a/b/c/d;p=1/g/'], - ['g?y', bases[2], 'http://a/b/c/d;p=1/g?y'], - [';x', bases[2], 'http://a/b/c/d;p=1/;x'], - ['g;x', bases[2], 'http://a/b/c/d;p=1/g;x'], - ['g;x=1/./y', bases[2], 'http://a/b/c/d;p=1/g;x=1/y'], - ['g;x=1/../y', bases[2], 'http://a/b/c/d;p=1/y'], - ['./', bases[2], 'http://a/b/c/d;p=1/'], - ['../', bases[2], 'http://a/b/c/'], - ['../g', bases[2], 'http://a/b/c/g'], - ['../../', bases[2], 'http://a/b/'], - ['../../g' , bases[2], 'http://a/b/g'], - - // http://gbiv.com/protocols/uri/test/rel_examples4.html - // double and triple slash, unknown scheme - ['g:h', bases[3], 'g:h'], - ['g', bases[3], 'fred:///s//a/b/g'], - ['./g', bases[3], 'fred:///s//a/b/g'], - ['g/', bases[3], 'fred:///s//a/b/g/'], - ['/g', bases[3], 'fred:///g'], // may change to fred:///s//a/g - ['//g', bases[3], 'fred://g'], // may change to fred:///s//g - ['//g/x', bases[3], 'fred://g/x'], // may change to fred:///s//g/x - ['///g', bases[3], 'fred:///g'], - ['./', bases[3], 'fred:///s//a/b/'], - ['../', bases[3], 'fred:///s//a/'], - ['../g', bases[3], 'fred:///s//a/g'], - - ['../../', bases[3], 'fred:///s//'], - ['../../g' , bases[3], 'fred:///s//g'], - ['../../../g', bases[3], 'fred:///s/g'], - // may change to fred:///s//a/../../../g - ['../../../../g', bases[3], 'fred:///g'], - - // http://gbiv.com/protocols/uri/test/rel_examples5.html - // double and triple slash, well-known scheme - ['g:h', bases[4], 'g:h'], - ['g', bases[4], 'http:///s//a/b/g'], - ['./g', bases[4], 'http:///s//a/b/g'], - ['g/', bases[4], 'http:///s//a/b/g/'], - ['/g', bases[4], 'http:///g'], // may change to http:///s//a/g - ['//g', bases[4], 'http://g/'], // may change to http:///s//g - ['//g/x', bases[4], 'http://g/x'], // may change to http:///s//g/x - ['///g', bases[4], 'http:///g'], - ['./', bases[4], 'http:///s//a/b/'], - ['../', bases[4], 'http:///s//a/'], - ['../g', bases[4], 'http:///s//a/g'], - ['../../', bases[4], 'http:///s//'], - ['../../g' , bases[4], 'http:///s//g'], - // may change to http:///s//a/../../g - ['../../../g', bases[4], 'http:///s/g'], - // may change to http:///s//a/../../../g - ['../../../../g', bases[4], 'http:///g'], - - // from Dan Connelly's tests in http://www.w3.org/2000/10/swap/uripath.py - ['bar:abc', 'foo:xyz', 'bar:abc'], - ['../abc', 'http://example/x/y/z', 'http://example/x/abc'], - ['http://example/x/abc', 'http://example2/x/y/z', 'http://example/x/abc'], - ['../r', 'http://ex/x/y/z', 'http://ex/x/r'], - ['q/r', 'http://ex/x/y', 'http://ex/x/q/r'], - ['q/r#s', 'http://ex/x/y', 'http://ex/x/q/r#s'], - ['q/r#s/t', 'http://ex/x/y', 'http://ex/x/q/r#s/t'], - ['ftp://ex/x/q/r', 'http://ex/x/y', 'ftp://ex/x/q/r'], - ['', 'http://ex/x/y', 'http://ex/x/y'], - ['', 'http://ex/x/y/', 'http://ex/x/y/'], - ['', 'http://ex/x/y/pdq', 'http://ex/x/y/pdq'], - ['z/', 'http://ex/x/y/', 'http://ex/x/y/z/'], - ['#Animal', - 'file:/swap/test/animal.rdf', - 'file:/swap/test/animal.rdf#Animal'], - ['../abc', 'file:/e/x/y/z', 'file:/e/x/abc'], - ['/example/x/abc', 'file:/example2/x/y/z', 'file:/example/x/abc'], - ['../r', 'file:/ex/x/y/z', 'file:/ex/x/r'], - ['/r', 'file:/ex/x/y/z', 'file:/r'], - ['q/r', 'file:/ex/x/y', 'file:/ex/x/q/r'], - ['q/r#s', 'file:/ex/x/y', 'file:/ex/x/q/r#s'], - ['q/r#', 'file:/ex/x/y', 'file:/ex/x/q/r#'], - ['q/r#s/t', 'file:/ex/x/y', 'file:/ex/x/q/r#s/t'], - ['ftp://ex/x/q/r', 'file:/ex/x/y', 'ftp://ex/x/q/r'], - ['', 'file:/ex/x/y', 'file:/ex/x/y'], - ['', 'file:/ex/x/y/', 'file:/ex/x/y/'], - ['', 'file:/ex/x/y/pdq', 'file:/ex/x/y/pdq'], - ['z/', 'file:/ex/x/y/', 'file:/ex/x/y/z/'], - ['file://meetings.example.com/cal#m1', - 'file:/devel/WWW/2000/10/swap/test/reluri-1.n3', - 'file://meetings.example.com/cal#m1'], - ['file://meetings.example.com/cal#m1', - 'file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3', - 'file://meetings.example.com/cal#m1'], - ['./#blort', 'file:/some/dir/foo', 'file:/some/dir/#blort'], - ['./#', 'file:/some/dir/foo', 'file:/some/dir/#'], - // Ryan Lee - ['./', 'http://example/x/abc.efg', 'http://example/x/'], - - - // Graham Klyne's tests - // http://www.ninebynine.org/Software/HaskellUtils/Network/UriTest.xls - // 01-31 are from Connelly's cases - - // 32-49 - ['./q:r', 'http://ex/x/y', 'http://ex/x/q:r'], - ['./p=q:r', 'http://ex/x/y', 'http://ex/x/p=q:r'], - ['?pp/rr', 'http://ex/x/y?pp/qq', 'http://ex/x/y?pp/rr'], - ['y/z', 'http://ex/x/y?pp/qq', 'http://ex/x/y/z'], - ['local/qual@domain.org#frag', - 'mailto:local', - 'mailto:local/qual@domain.org#frag'], - ['more/qual2@domain2.org#frag', - 'mailto:local/qual1@domain1.org', - 'mailto:local/more/qual2@domain2.org#frag'], - ['y?q', 'http://ex/x/y?q', 'http://ex/x/y?q'], - ['/x/y?q', 'http://ex?p', 'http://ex/x/y?q'], - ['c/d', 'foo:a/b', 'foo:a/c/d'], - ['/c/d', 'foo:a/b', 'foo:/c/d'], - ['', 'foo:a/b?c#d', 'foo:a/b?c'], - ['b/c', 'foo:a', 'foo:b/c'], - ['../b/c', 'foo:/a/y/z', 'foo:/a/b/c'], - ['./b/c', 'foo:a', 'foo:b/c'], - ['/./b/c', 'foo:a', 'foo:/b/c'], - ['../../d', 'foo://a//b/c', 'foo://a/d'], - ['.', 'foo:a', 'foo:'], - ['..', 'foo:a', 'foo:'], - - // 50-57[cf. TimBL comments -- - // http://lists.w3.org/Archives/Public/uri/2003Feb/0028.html, - // http://lists.w3.org/Archives/Public/uri/2003Jan/0008.html) - ['abc', 'http://example/x/y%2Fz', 'http://example/x/abc'], - ['../../x%2Fabc', 'http://example/a/x/y/z', 'http://example/a/x%2Fabc'], - ['../x%2Fabc', 'http://example/a/x/y%2Fz', 'http://example/a/x%2Fabc'], - ['abc', 'http://example/x%2Fy/z', 'http://example/x%2Fy/abc'], - ['q%3Ar', 'http://ex/x/y', 'http://ex/x/q%3Ar'], - ['/x%2Fabc', 'http://example/x/y%2Fz', 'http://example/x%2Fabc'], - ['/x%2Fabc', 'http://example/x/y/z', 'http://example/x%2Fabc'], - ['/x%2Fabc', 'http://example/x/y%2Fz', 'http://example/x%2Fabc'], - - // 70-77 - ['local2@domain2', 'mailto:local1@domain1?query1', 'mailto:local2@domain2'], - ['local2@domain2?query2', - 'mailto:local1@domain1', - 'mailto:local2@domain2?query2'], - ['local2@domain2?query2', - 'mailto:local1@domain1?query1', - 'mailto:local2@domain2?query2'], - ['?query2', 'mailto:local@domain?query1', 'mailto:local@domain?query2'], - ['local@domain?query2', 'mailto:?query1', 'mailto:local@domain?query2'], - ['?query2', 'mailto:local@domain?query1', 'mailto:local@domain?query2'], - ['http://example/a/b?c/../d', 'foo:bar', 'http://example/a/b?c/../d'], - ['http://example/a/b#c/../d', 'foo:bar', 'http://example/a/b#c/../d'], - - // 82-88 - // @isaacs Disagree. Not how browsers do it. - // ['http:this', 'http://example.org/base/uri', 'http:this'], - // @isaacs Added - ['http:this', 'http://example.org/base/uri', 'http://example.org/base/this'], - ['http:this', 'http:base', 'http:this'], - ['.//g', 'f:/a', 'f://g'], - ['b/c//d/e', 'f://example.org/base/a', 'f://example.org/base/b/c//d/e'], - ['m2@example.ord/c2@example.org', - 'mid:m@example.ord/c@example.org', - 'mid:m@example.ord/m2@example.ord/c2@example.org'], - ['mini1.xml', - 'file:///C:/DEV/Haskell/lib/HXmlToolbox-3.01/examples/', - 'file:///C:/DEV/Haskell/lib/HXmlToolbox-3.01/examples/mini1.xml'], - ['../b/c', 'foo:a/y/z', 'foo:a/b/c'], - - //changeing auth - ['http://diff:auth@www.example.com', - 'http://asdf:qwer@www.example.com', - 'http://diff:auth@www.example.com/'] -]; - -relativeTests2.forEach(function(relativeTest) { - test('resolve(' + [relativeTest[1], relativeTest[0]] + ')', function() { - var a = url.resolve(relativeTest[1], relativeTest[0]), - e = relativeTest[2]; - assert.equal(a, e, - 'resolve(' + [relativeTest[1], relativeTest[0]] + ') == ' + e + - '\n actual=' + a); - }); -}); - -//if format and parse are inverse operations then -//resolveObject(parse(x), y) == parse(resolve(x, y)) - -//host and hostname are special, in this case a '' value is important -var emptyIsImportant = {'host': true, 'hostname': ''}; - -//format: [from, path, expected] -relativeTests.forEach(function(relativeTest) { -test('resolveObject(' + [relativeTest[0], relativeTest[1]] + ')', function() { - var actual = url.resolveObject(url.parse(relativeTest[0]), relativeTest[1]), - expected = url.parse(relativeTest[2]); - - - assert.deepEqual(actual, expected); - - expected = relativeTest[2]; - actual = url.format(actual); - - assert.equal(actual, expected, - 'format(' + actual + ') == ' + expected + '\nactual:' + actual); - }); -}); - -//format: [to, from, result] -// the test: ['.//g', 'f:/a', 'f://g'] is a fundamental problem -// url.parse('f:/a') does not have a host -// url.resolve('f:/a', './/g') does not have a host because you have moved -// down to the g directory. i.e. f: //g, however when this url is parsed -// f:// will indicate that the host is g which is not the case. -// it is unclear to me how to keep this information from being lost -// it may be that a pathname of ////g should collapse to /g but this seems -// to be a lot of work for an edge case. Right now I remove the test -if (relativeTests2[181][0] === './/g' && - relativeTests2[181][1] === 'f:/a' && - relativeTests2[181][2] === 'f://g') { - relativeTests2.splice(181, 1); -} - -relativeTests2.forEach(function(relativeTest) { - test('resolveObject(' + [relativeTest[1], relativeTest[0]] + ')', function() { - var actual = url.resolveObject(url.parse(relativeTest[1]), relativeTest[0]), - expected = url.parse(relativeTest[2]); - - assert.deepEqual(actual, expected); - - var expected = relativeTest[2], - actual = url.format(actual); - - assert.equal(actual, expected, - 'format(' + relativeTest[1] + ') == ' + expected + - '\nactual:' + actual); - }); -}); diff --git a/node_modules/url/test/index.js b/node_modules/url/test/index.js new file mode 100644 index 0000000..9eef8ed --- /dev/null +++ b/node_modules/url/test/index.js @@ -0,0 +1,2057 @@ +'use strict'; + +/* + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ + +var test = require('mocha').test; +var assert = require('assert'); + +var url = require('../url'); + +/* + * URLs to parse, and expected data + * { url : parsed } + */ +var parseTests = { + '//some_path': { + href: '//some_path', + pathname: '//some_path', + path: '//some_path' + }, + + 'http:\\\\evil-phisher\\foo.html#h\\a\\s\\h': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + path: '/foo.html', + hash: '#h%5Ca%5Cs%5Ch', + href: 'http://evil-phisher/foo.html#h%5Ca%5Cs%5Ch' + }, + + 'http:\\\\evil-phisher\\foo.html?json="\\"foo\\""#h\\a\\s\\h': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + search: '?json=%22%5C%22foo%5C%22%22', + query: 'json=%22%5C%22foo%5C%22%22', + path: '/foo.html?json=%22%5C%22foo%5C%22%22', + hash: '#h%5Ca%5Cs%5Ch', + href: 'http://evil-phisher/foo.html?json=%22%5C%22foo%5C%22%22#h%5Ca%5Cs%5Ch' + }, + + 'http:\\\\evil-phisher\\foo.html#h\\a\\s\\h?blarg': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + path: '/foo.html', + hash: '#h%5Ca%5Cs%5Ch?blarg', + href: 'http://evil-phisher/foo.html#h%5Ca%5Cs%5Ch?blarg' + }, + + 'http:\\\\evil-phisher\\foo.html': { + protocol: 'http:', + slashes: true, + host: 'evil-phisher', + hostname: 'evil-phisher', + pathname: '/foo.html', + path: '/foo.html', + href: 'http://evil-phisher/foo.html' + }, + + 'HTTP://www.example.com/': { + href: 'http://www.example.com/', + protocol: 'http:', + slashes: true, + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'HTTP://www.example.com': { + href: 'http://www.example.com/', + protocol: 'http:', + slashes: true, + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://www.ExAmPlE.com/': { + href: 'http://www.example.com/', + protocol: 'http:', + slashes: true, + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://user:pw@www.ExAmPlE.com/': { + href: 'http://user:pw@www.example.com/', + protocol: 'http:', + slashes: true, + auth: 'user:pw', + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://USER:PW@www.ExAmPlE.com/': { + href: 'http://USER:PW@www.example.com/', + protocol: 'http:', + slashes: true, + auth: 'USER:PW', + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://user@www.example.com/': { + href: 'http://user@www.example.com/', + protocol: 'http:', + slashes: true, + auth: 'user', + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://user%3Apw@www.example.com/': { + href: 'http://user:pw@www.example.com/', + protocol: 'http:', + slashes: true, + auth: 'user:pw', + host: 'www.example.com', + hostname: 'www.example.com', + pathname: '/', + path: '/' + }, + + 'http://x.com/path?that\'s#all, folks': { + href: 'http://x.com/path?that%27s#all,%20folks', + protocol: 'http:', + slashes: true, + host: 'x.com', + hostname: 'x.com', + search: '?that%27s', + query: 'that%27s', + pathname: '/path', + hash: '#all,%20folks', + path: '/path?that%27s' + }, + + 'HTTP://X.COM/Y': { + href: 'http://x.com/Y', + protocol: 'http:', + slashes: true, + host: 'x.com', + hostname: 'x.com', + pathname: '/Y', + path: '/Y' + }, + + /* + * + not an invalid host character + * per https://url.spec.whatwg.org/#host-parsing + */ + 'http://x.y.com+a/b/c': { + href: 'http://x.y.com+a/b/c', + protocol: 'http:', + slashes: true, + host: 'x.y.com+a', + hostname: 'x.y.com+a', + pathname: '/b/c', + path: '/b/c' + }, + + // an unexpected invalid char in the hostname. + 'HtTp://x.y.cOm;a/b/c?d=e#f gi': { + href: 'http://x.y.com/;a/b/c?d=e#f%20g%3Ch%3Ei', + protocol: 'http:', + slashes: true, + host: 'x.y.com', + hostname: 'x.y.com', + pathname: ';a/b/c', + search: '?d=e', + query: 'd=e', + hash: '#f%20g%3Ch%3Ei', + path: ';a/b/c?d=e' + }, + + // make sure that we don't accidentally lcast the path parts. + 'HtTp://x.y.cOm;A/b/c?d=e#f gi': { + href: 'http://x.y.com/;A/b/c?d=e#f%20g%3Ch%3Ei', + protocol: 'http:', + slashes: true, + host: 'x.y.com', + hostname: 'x.y.com', + pathname: ';A/b/c', + search: '?d=e', + query: 'd=e', + hash: '#f%20g%3Ch%3Ei', + path: ';A/b/c?d=e' + }, + + 'http://x...y...#p': { + href: 'http://x...y.../#p', + protocol: 'http:', + slashes: true, + host: 'x...y...', + hostname: 'x...y...', + hash: '#p', + pathname: '/', + path: '/' + }, + + 'http://x/p/"quoted"': { + href: 'http://x/p/%22quoted%22', + protocol: 'http:', + slashes: true, + host: 'x', + hostname: 'x', + pathname: '/p/%22quoted%22', + path: '/p/%22quoted%22' + }, + + ' Is a URL!': { + href: '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!', + pathname: '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!', + path: '%3Chttp://goo.corn/bread%3E%20Is%20a%20URL!' + }, + + 'http://www.narwhaljs.org/blog/categories?id=news': { + href: 'http://www.narwhaljs.org/blog/categories?id=news', + protocol: 'http:', + slashes: true, + host: 'www.narwhaljs.org', + hostname: 'www.narwhaljs.org', + search: '?id=news', + query: 'id=news', + pathname: '/blog/categories', + path: '/blog/categories?id=news' + }, + + 'http://mt0.google.com/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=': { + href: 'http://mt0.google.com/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=', + protocol: 'http:', + slashes: true, + host: 'mt0.google.com', + hostname: 'mt0.google.com', + pathname: '/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=', + path: '/vt/lyrs=m@114&hl=en&src=api&x=2&y=2&z=3&s=' + }, + + 'http://mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=': { + href: 'http://mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=', + protocol: 'http:', + slashes: true, + host: 'mt0.google.com', + hostname: 'mt0.google.com', + search: '???&hl=en&src=api&x=2&y=2&z=3&s=', + query: '??&hl=en&src=api&x=2&y=2&z=3&s=', + pathname: '/vt/lyrs=m@114', + path: '/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=' + }, + + 'http://user:pass@mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=': { + href: 'http://user:pass@mt0.google.com/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=', + protocol: 'http:', + slashes: true, + host: 'mt0.google.com', + auth: 'user:pass', + hostname: 'mt0.google.com', + search: '???&hl=en&src=api&x=2&y=2&z=3&s=', + query: '??&hl=en&src=api&x=2&y=2&z=3&s=', + pathname: '/vt/lyrs=m@114', + path: '/vt/lyrs=m@114???&hl=en&src=api&x=2&y=2&z=3&s=' + }, + + 'file:///etc/passwd': { + href: 'file:///etc/passwd', + slashes: true, + protocol: 'file:', + pathname: '/etc/passwd', + hostname: '', + host: '', + path: '/etc/passwd' + }, + + 'file://localhost/etc/passwd': { + href: 'file://localhost/etc/passwd', + protocol: 'file:', + slashes: true, + pathname: '/etc/passwd', + hostname: 'localhost', + host: 'localhost', + path: '/etc/passwd' + }, + + 'file://foo/etc/passwd': { + href: 'file://foo/etc/passwd', + protocol: 'file:', + slashes: true, + pathname: '/etc/passwd', + hostname: 'foo', + host: 'foo', + path: '/etc/passwd' + }, + + 'file:///etc/node/': { + href: 'file:///etc/node/', + slashes: true, + protocol: 'file:', + pathname: '/etc/node/', + hostname: '', + host: '', + path: '/etc/node/' + }, + + 'file://localhost/etc/node/': { + href: 'file://localhost/etc/node/', + protocol: 'file:', + slashes: true, + pathname: '/etc/node/', + hostname: 'localhost', + host: 'localhost', + path: '/etc/node/' + }, + + 'file://foo/etc/node/': { + href: 'file://foo/etc/node/', + protocol: 'file:', + slashes: true, + pathname: '/etc/node/', + hostname: 'foo', + host: 'foo', + path: '/etc/node/' + }, + + 'http:/baz/../foo/bar': { + href: 'http:/baz/../foo/bar', + protocol: 'http:', + pathname: '/baz/../foo/bar', + path: '/baz/../foo/bar' + }, + + 'http://user:pass@example.com:8000/foo/bar?baz=quux#frag': { + href: 'http://user:pass@example.com:8000/foo/bar?baz=quux#frag', + protocol: 'http:', + slashes: true, + host: 'example.com:8000', + auth: 'user:pass', + port: '8000', + hostname: 'example.com', + hash: '#frag', + search: '?baz=quux', + query: 'baz=quux', + pathname: '/foo/bar', + path: '/foo/bar?baz=quux' + }, + + '//user:pass@example.com:8000/foo/bar?baz=quux#frag': { + href: '//user:pass@example.com:8000/foo/bar?baz=quux#frag', + slashes: true, + host: 'example.com:8000', + auth: 'user:pass', + port: '8000', + hostname: 'example.com', + hash: '#frag', + search: '?baz=quux', + query: 'baz=quux', + pathname: '/foo/bar', + path: '/foo/bar?baz=quux' + }, + + '/foo/bar?baz=quux#frag': { + href: '/foo/bar?baz=quux#frag', + hash: '#frag', + search: '?baz=quux', + query: 'baz=quux', + pathname: '/foo/bar', + path: '/foo/bar?baz=quux' + }, + + 'http:/foo/bar?baz=quux#frag': { + href: 'http:/foo/bar?baz=quux#frag', + protocol: 'http:', + hash: '#frag', + search: '?baz=quux', + query: 'baz=quux', + pathname: '/foo/bar', + path: '/foo/bar?baz=quux' + }, + + 'mailto:foo@bar.com?subject=hello': { + href: 'mailto:foo@bar.com?subject=hello', + protocol: 'mailto:', + host: 'bar.com', + auth: 'foo', + hostname: 'bar.com', + search: '?subject=hello', + query: 'subject=hello', + path: '?subject=hello' + }, + + 'javascript:alert(\'hello\');': { + href: 'javascript:alert(\'hello\');', + protocol: 'javascript:', + pathname: 'alert(\'hello\');', + path: 'alert(\'hello\');' + }, + + 'xmpp:isaacschlueter@jabber.org': { + href: 'xmpp:isaacschlueter@jabber.org', + protocol: 'xmpp:', + host: 'jabber.org', + auth: 'isaacschlueter', + hostname: 'jabber.org' + }, + + 'http://atpass:foo%40bar@127.0.0.1:8080/path?search=foo#bar': { + href: 'http://atpass:foo%40bar@127.0.0.1:8080/path?search=foo#bar', + protocol: 'http:', + slashes: true, + host: '127.0.0.1:8080', + auth: 'atpass:foo@bar', + hostname: '127.0.0.1', + port: '8080', + pathname: '/path', + search: '?search=foo', + query: 'search=foo', + hash: '#bar', + path: '/path?search=foo' + }, + + 'svn+ssh://foo/bar': { + href: 'svn+ssh://foo/bar', + host: 'foo', + hostname: 'foo', + protocol: 'svn+ssh:', + pathname: '/bar', + path: '/bar', + slashes: true + }, + + 'dash-test://foo/bar': { + href: 'dash-test://foo/bar', + host: 'foo', + hostname: 'foo', + protocol: 'dash-test:', + pathname: '/bar', + path: '/bar', + slashes: true + }, + + 'dash-test:foo/bar': { + href: 'dash-test:foo/bar', + host: 'foo', + hostname: 'foo', + protocol: 'dash-test:', + pathname: '/bar', + path: '/bar' + }, + + 'dot.test://foo/bar': { + href: 'dot.test://foo/bar', + host: 'foo', + hostname: 'foo', + protocol: 'dot.test:', + pathname: '/bar', + path: '/bar', + slashes: true + }, + + 'dot.test:foo/bar': { + href: 'dot.test:foo/bar', + host: 'foo', + hostname: 'foo', + protocol: 'dot.test:', + pathname: '/bar', + path: '/bar' + }, + + // IDNA tests + 'http://www.日本語.com/': { + href: 'http://www.xn--wgv71a119e.com/', + protocol: 'http:', + slashes: true, + host: 'www.xn--wgv71a119e.com', + hostname: 'www.xn--wgv71a119e.com', + pathname: '/', + path: '/' + }, + + 'http://example.Bücher.com/': { + href: 'http://example.xn--bcher-kva.com/', + protocol: 'http:', + slashes: true, + host: 'example.xn--bcher-kva.com', + hostname: 'example.xn--bcher-kva.com', + pathname: '/', + path: '/' + }, + + 'http://www.Äffchen.com/': { + href: 'http://www.xn--ffchen-9ta.com/', + protocol: 'http:', + slashes: true, + host: 'www.xn--ffchen-9ta.com', + hostname: 'www.xn--ffchen-9ta.com', + pathname: '/', + path: '/' + }, + + 'http://www.Äffchen.cOm;A/b/c?d=e#f gi': { + href: 'http://www.xn--ffchen-9ta.com/;A/b/c?d=e#f%20g%3Ch%3Ei', + protocol: 'http:', + slashes: true, + host: 'www.xn--ffchen-9ta.com', + hostname: 'www.xn--ffchen-9ta.com', + pathname: ';A/b/c', + search: '?d=e', + query: 'd=e', + hash: '#f%20g%3Ch%3Ei', + path: ';A/b/c?d=e' + }, + + 'http://SÉLIER.COM/': { + href: 'http://xn--slier-bsa.com/', + protocol: 'http:', + slashes: true, + host: 'xn--slier-bsa.com', + hostname: 'xn--slier-bsa.com', + pathname: '/', + path: '/' + }, + + 'http://ليهمابتكلموشعربي؟.ي؟/': { + href: 'http://xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f/', + protocol: 'http:', + slashes: true, + host: 'xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f', + hostname: 'xn--egbpdaj6bu4bxfgehfvwxn.xn--egb9f', + pathname: '/', + path: '/' + }, + + 'http://➡.ws/➡': { + href: 'http://xn--hgi.ws/➡', + protocol: 'http:', + slashes: true, + host: 'xn--hgi.ws', + hostname: 'xn--hgi.ws', + pathname: '/➡', + path: '/➡' + }, + + 'http://bucket_name.s3.amazonaws.com/image.jpg': { + protocol: 'http:', + slashes: true, + host: 'bucket_name.s3.amazonaws.com', + hostname: 'bucket_name.s3.amazonaws.com', + pathname: '/image.jpg', + href: 'http://bucket_name.s3.amazonaws.com/image.jpg', + path: '/image.jpg' + }, + + 'git+http://github.com/joyent/node.git': { + protocol: 'git+http:', + slashes: true, + host: 'github.com', + hostname: 'github.com', + pathname: '/joyent/node.git', + path: '/joyent/node.git', + href: 'git+http://github.com/joyent/node.git' + }, + + /* + * if local1@domain1 is uses as a relative URL it may + * be parse into auth@hostname, but here there is no + * way to make it work in url.parse, I add the test to be explicit + */ + 'local1@domain1': { + pathname: 'local1@domain1', + path: 'local1@domain1', + href: 'local1@domain1' + }, + + /* + * While this may seem counter-intuitive, a browser will parse + * as a path. + */ + 'www.example.com': { + href: 'www.example.com', + pathname: 'www.example.com', + path: 'www.example.com' + }, + + // ipv6 support + '[fe80::1]': { + href: '[fe80::1]', + pathname: '[fe80::1]', + path: '[fe80::1]' + }, + + 'coap://[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]': { + protocol: 'coap:', + slashes: true, + host: '[fedc:ba98:7654:3210:fedc:ba98:7654:3210]', + hostname: 'fedc:ba98:7654:3210:fedc:ba98:7654:3210', + href: 'coap://[fedc:ba98:7654:3210:fedc:ba98:7654:3210]/', + pathname: '/', + path: '/' + }, + + 'coap://[1080:0:0:0:8:800:200C:417A]:61616/': { + protocol: 'coap:', + slashes: true, + host: '[1080:0:0:0:8:800:200c:417a]:61616', + port: '61616', + hostname: '1080:0:0:0:8:800:200c:417a', + href: 'coap://[1080:0:0:0:8:800:200c:417a]:61616/', + pathname: '/', + path: '/' + }, + + 'http://user:password@[3ffe:2a00:100:7031::1]:8080': { + protocol: 'http:', + slashes: true, + auth: 'user:password', + host: '[3ffe:2a00:100:7031::1]:8080', + port: '8080', + hostname: '3ffe:2a00:100:7031::1', + href: 'http://user:password@[3ffe:2a00:100:7031::1]:8080/', + pathname: '/', + path: '/' + }, + + 'coap://u:p@[::192.9.5.5]:61616/.well-known/r?n=Temperature': { + protocol: 'coap:', + slashes: true, + auth: 'u:p', + host: '[::192.9.5.5]:61616', + port: '61616', + hostname: '::192.9.5.5', + href: 'coap://u:p@[::192.9.5.5]:61616/.well-known/r?n=Temperature', + search: '?n=Temperature', + query: 'n=Temperature', + pathname: '/.well-known/r', + path: '/.well-known/r?n=Temperature' + }, + + // empty port + 'http://example.com:': { + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + href: 'http://example.com/', + pathname: '/', + path: '/' + }, + + 'http://example.com:/a/b.html': { + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + href: 'http://example.com/a/b.html', + pathname: '/a/b.html', + path: '/a/b.html' + }, + + 'http://example.com:?a=b': { + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + href: 'http://example.com/?a=b', + search: '?a=b', + query: 'a=b', + pathname: '/', + path: '/?a=b' + }, + + 'http://example.com:#abc': { + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + href: 'http://example.com/#abc', + hash: '#abc', + pathname: '/', + path: '/' + }, + + 'http://[fe80::1]:/a/b?a=b#abc': { + protocol: 'http:', + slashes: true, + host: '[fe80::1]', + hostname: 'fe80::1', + href: 'http://[fe80::1]/a/b?a=b#abc', + search: '?a=b', + query: 'a=b', + hash: '#abc', + pathname: '/a/b', + path: '/a/b?a=b' + }, + + 'http://-lovemonsterz.tumblr.com/rss': { + protocol: 'http:', + slashes: true, + host: '-lovemonsterz.tumblr.com', + hostname: '-lovemonsterz.tumblr.com', + href: 'http://-lovemonsterz.tumblr.com/rss', + pathname: '/rss', + path: '/rss' + }, + + 'http://-lovemonsterz.tumblr.com:80/rss': { + protocol: 'http:', + slashes: true, + port: '80', + host: '-lovemonsterz.tumblr.com:80', + hostname: '-lovemonsterz.tumblr.com', + href: 'http://-lovemonsterz.tumblr.com:80/rss', + pathname: '/rss', + path: '/rss' + }, + + 'http://user:pass@-lovemonsterz.tumblr.com/rss': { + protocol: 'http:', + slashes: true, + auth: 'user:pass', + host: '-lovemonsterz.tumblr.com', + hostname: '-lovemonsterz.tumblr.com', + href: 'http://user:pass@-lovemonsterz.tumblr.com/rss', + pathname: '/rss', + path: '/rss' + }, + + 'http://user:pass@-lovemonsterz.tumblr.com:80/rss': { + protocol: 'http:', + slashes: true, + auth: 'user:pass', + port: '80', + host: '-lovemonsterz.tumblr.com:80', + hostname: '-lovemonsterz.tumblr.com', + href: 'http://user:pass@-lovemonsterz.tumblr.com:80/rss', + pathname: '/rss', + path: '/rss' + }, + + 'http://_jabber._tcp.google.com/test': { + protocol: 'http:', + slashes: true, + host: '_jabber._tcp.google.com', + hostname: '_jabber._tcp.google.com', + href: 'http://_jabber._tcp.google.com/test', + pathname: '/test', + path: '/test' + }, + + 'http://user:pass@_jabber._tcp.google.com/test': { + protocol: 'http:', + slashes: true, + auth: 'user:pass', + host: '_jabber._tcp.google.com', + hostname: '_jabber._tcp.google.com', + href: 'http://user:pass@_jabber._tcp.google.com/test', + pathname: '/test', + path: '/test' + }, + + 'http://_jabber._tcp.google.com:80/test': { + protocol: 'http:', + slashes: true, + port: '80', + host: '_jabber._tcp.google.com:80', + hostname: '_jabber._tcp.google.com', + href: 'http://_jabber._tcp.google.com:80/test', + pathname: '/test', + path: '/test' + }, + + 'http://user:pass@_jabber._tcp.google.com:80/test': { + protocol: 'http:', + slashes: true, + auth: 'user:pass', + port: '80', + host: '_jabber._tcp.google.com:80', + hostname: '_jabber._tcp.google.com', + href: 'http://user:pass@_jabber._tcp.google.com:80/test', + pathname: '/test', + path: '/test' + }, + + 'http://x:1/\' <>"`/{}|\\^~`/': { + protocol: 'http:', + slashes: true, + host: 'x:1', + port: '1', + hostname: 'x', + pathname: '/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/', + path: '/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/', + href: 'http://x:1/%27%20%3C%3E%22%60/%7B%7D%7C/%5E~%60/' + }, + + 'http://a@b@c/': { + protocol: 'http:', + slashes: true, + auth: 'a@b', + host: 'c', + hostname: 'c', + href: 'http://a%40b@c/', + path: '/', + pathname: '/' + }, + + 'http://a@b?@c': { + protocol: 'http:', + slashes: true, + auth: 'a', + host: 'b', + hostname: 'b', + href: 'http://a@b/?@c', + path: '/?@c', + pathname: '/', + search: '?@c', + query: '@c' + }, + + 'http://a\r" \t\n<\'b:b@c\r\nd/e?f': { + protocol: 'http:', + slashes: true, + auth: 'a\r" \t\n<\'b:b', + host: 'c', + port: null, + hostname: 'c', + hash: null, + search: '?f', + query: 'f', + pathname: '%0D%0Ad/e', + path: '%0D%0Ad/e?f', + href: 'http://a%0D%22%20%09%0A%3C\'b:b@c/%0D%0Ad/e?f' + }, + + // git urls used by npm + 'git+ssh://git@github.com:npm/npm': { + protocol: 'git+ssh:', + slashes: true, + auth: 'git', + host: 'github.com', + port: null, + hostname: 'github.com', + hash: null, + search: null, + query: null, + pathname: '/:npm/npm', + path: '/:npm/npm', + href: 'git+ssh://git@github.com/:npm/npm' + } + +}; + +Object.keys(parseTests).forEach(function (u) { + test('parse(' + u + ')', function () { + var actual = url.parse(u); + var spaced = url.parse(' \t ' + u + '\n\t'); + var expected = parseTests[u]; + + Object.keys(actual).forEach(function (i) { + if (expected[i] === undefined && actual[i] === null) { + expected[i] = null; + } + }); + + assert.deepEqual(actual, expected); + assert.deepEqual(spaced, expected); + + var expected = parseTests[u].href, + actual = url.format(parseTests[u]); + + assert.equal(actual, expected, 'format(' + u + ') == ' + u + '\nactual:' + actual); + }); +}); + +var parseTestsWithQueryString = { + '/foo/bar?baz=quux#frag': { + href: '/foo/bar?baz=quux#frag', + hash: '#frag', + search: '?baz=quux', + query: { + baz: 'quux' + }, + pathname: '/foo/bar', + path: '/foo/bar?baz=quux' + }, + 'http://example.com': { + href: 'http://example.com/', + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + query: {}, + search: '', + pathname: '/', + path: '/' + }, + '/example': { + protocol: null, + slashes: null, + auth: null, + host: null, + port: null, + hostname: null, + hash: null, + search: '', + query: {}, + pathname: '/example', + path: '/example', + href: '/example' + }, + '/example?query=value': { + protocol: null, + slashes: null, + auth: null, + host: null, + port: null, + hostname: null, + hash: null, + search: '?query=value', + query: { query: 'value' }, + pathname: '/example', + path: '/example?query=value', + href: '/example?query=value' + } +}; + +Object.keys(parseTestsWithQueryString).forEach(function (u) { + test('parse(' + u + ')', function () { + var actual = url.parse(u, true); + var expected = parseTestsWithQueryString[u]; + for (var i in actual) { + if (actual[i] === null && expected[i] === undefined) { + expected[i] = null; + } + } + + assert.deepEqual(actual, expected); + }); +}); + +/* + * some extra formatting tests, just to verify + * that it'll format slightly wonky content to a valid url. + */ +var formatTests = { + 'http://example.com?': { + href: 'http://example.com/?', + protocol: 'http:', + slashes: true, + host: 'example.com', + hostname: 'example.com', + search: '?', + query: {}, + pathname: '/' + }, + 'http://example.com?foo=bar#frag': { + href: 'http://example.com/?foo=bar#frag', + protocol: 'http:', + host: 'example.com', + hostname: 'example.com', + hash: '#frag', + search: '?foo=bar', + query: 'foo=bar', + pathname: '/' + }, + 'http://example.com?foo=@bar#frag': { + href: 'http://example.com/?foo=@bar#frag', + protocol: 'http:', + host: 'example.com', + hostname: 'example.com', + hash: '#frag', + search: '?foo=@bar', + query: 'foo=@bar', + pathname: '/' + }, + 'http://example.com?foo=/bar/#frag': { + href: 'http://example.com/?foo=/bar/#frag', + protocol: 'http:', + host: 'example.com', + hostname: 'example.com', + hash: '#frag', + search: '?foo=/bar/', + query: 'foo=/bar/', + pathname: '/' + }, + 'http://example.com?foo=?bar/#frag': { + href: 'http://example.com/?foo=?bar/#frag', + protocol: 'http:', + host: 'example.com', + hostname: 'example.com', + hash: '#frag', + search: '?foo=?bar/', + query: 'foo=?bar/', + pathname: '/' + }, + 'http://example.com#frag=?bar/#frag': { + href: 'http://example.com/#frag=?bar/#frag', + protocol: 'http:', + host: 'example.com', + hostname: 'example.com', + hash: '#frag=?bar/#frag', + pathname: '/' + }, + 'http://google.com" onload="alert(42)/': { + href: 'http://google.com/%22%20onload=%22alert(42)/', + protocol: 'http:', + host: 'google.com', + pathname: '/%22%20onload=%22alert(42)/' + }, + 'http://a.com/a/b/c?s#h': { + href: 'http://a.com/a/b/c?s#h', + protocol: 'http', + host: 'a.com', + pathname: 'a/b/c', + hash: 'h', + search: 's' + }, + 'xmpp:isaacschlueter@jabber.org': { + href: 'xmpp:isaacschlueter@jabber.org', + protocol: 'xmpp:', + host: 'jabber.org', + auth: 'isaacschlueter', + hostname: 'jabber.org' + }, + 'http://atpass:foo%40bar@127.0.0.1/': { + href: 'http://atpass:foo%40bar@127.0.0.1/', + auth: 'atpass:foo@bar', + hostname: '127.0.0.1', + protocol: 'http:', + pathname: '/' + }, + 'http://atslash%2F%40:%2F%40@foo/': { + href: 'http://atslash%2F%40:%2F%40@foo/', + auth: 'atslash/@:/@', + hostname: 'foo', + protocol: 'http:', + pathname: '/' + }, + 'svn+ssh://foo/bar': { + href: 'svn+ssh://foo/bar', + hostname: 'foo', + protocol: 'svn+ssh:', + pathname: '/bar', + slashes: true + }, + 'dash-test://foo/bar': { + href: 'dash-test://foo/bar', + hostname: 'foo', + protocol: 'dash-test:', + pathname: '/bar', + slashes: true + }, + 'dash-test:foo/bar': { + href: 'dash-test:foo/bar', + hostname: 'foo', + protocol: 'dash-test:', + pathname: '/bar' + }, + 'dot.test://foo/bar': { + href: 'dot.test://foo/bar', + hostname: 'foo', + protocol: 'dot.test:', + pathname: '/bar', + slashes: true + }, + 'dot.test:foo/bar': { + href: 'dot.test:foo/bar', + hostname: 'foo', + protocol: 'dot.test:', + pathname: '/bar' + }, + // ipv6 support + 'coap:u:p@[::1]:61616/.well-known/r?n=Temperature': { + href: 'coap:u:p@[::1]:61616/.well-known/r?n=Temperature', + protocol: 'coap:', + auth: 'u:p', + hostname: '::1', + port: '61616', + pathname: '/.well-known/r', + search: 'n=Temperature' + }, + 'coap:[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616/s/stopButton': { + href: 'coap:[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616/s/stopButton', + protocol: 'coap', + host: '[fedc:ba98:7654:3210:fedc:ba98:7654:3210]:61616', + pathname: '/s/stopButton' + }, + + /* + * encode context-specific delimiters in path and query, but do not touch + * other non-delimiter chars like `%`. + * + */ + + // `#`,`?` in path + '/path/to/%%23%3F+=&.txt?foo=theA1#bar': { + href: '/path/to/%%23%3F+=&.txt?foo=theA1#bar', + pathname: '/path/to/%#?+=&.txt', + query: { + foo: 'theA1' + }, + hash: '#bar' + }, + + // `#`,`?` in path + `#` in query + '/path/to/%%23%3F+=&.txt?foo=the%231#bar': { + href: '/path/to/%%23%3F+=&.txt?foo=the%231#bar', + pathname: '/path/to/%#?+=&.txt', + query: { + foo: 'the#1' + }, + hash: '#bar' + }, + + // `?` and `#` in path and search + 'http://ex.com/foo%3F100%m%23r?abc=the%231?&foo=bar#frag': { + href: 'http://ex.com/foo%3F100%m%23r?abc=the%231?&foo=bar#frag', + protocol: 'http:', + hostname: 'ex.com', + hash: '#frag', + search: '?abc=the#1?&foo=bar', + pathname: '/foo?100%m#r' + }, + + // `?` and `#` in search only + 'http://ex.com/fooA100%mBr?abc=the%231?&foo=bar#frag': { + href: 'http://ex.com/fooA100%mBr?abc=the%231?&foo=bar#frag', + protocol: 'http:', + hostname: 'ex.com', + hash: '#frag', + search: '?abc=the#1?&foo=bar', + pathname: '/fooA100%mBr' + } +}; + +Object.keys(formatTests).forEach(function (u) { + test('format(' + u + ')', function () { + var expect = formatTests[u].href; + delete formatTests[u].href; + var actual = url.format(u); + var actualObj = url.format(formatTests[u]); + assert.equal(actual, expect, 'wonky format(' + u + ') == ' + expect + '\nactual:' + actual); + assert.equal(actualObj, expect, 'wonky format(' + JSON.stringify(formatTests[u]) + ') == ' + expect + '\nactual: ' + actualObj); + }); +}); + +/* + *[from, path, expected] + */ +var relativeTests = [ + [ + '/foo/bar/baz', 'quux', '/foo/bar/quux' + ], + [ + '/foo/bar/baz', 'quux/asdf', '/foo/bar/quux/asdf' + ], + [ + '/foo/bar/baz', 'quux/baz', '/foo/bar/quux/baz' + ], + [ + '/foo/bar/baz', '../quux/baz', '/foo/quux/baz' + ], + [ + '/foo/bar/baz', '/bar', '/bar' + ], + [ + '/foo/bar/baz/', 'quux', '/foo/bar/baz/quux' + ], + [ + '/foo/bar/baz/', 'quux/baz', '/foo/bar/baz/quux/baz' + ], + [ + '/foo/bar/baz', '../../../../../../../../quux/baz', '/quux/baz' + ], + [ + '/foo/bar/baz', '../../../../../../../quux/baz', '/quux/baz' + ], + [ + '/foo', '.', '/' + ], + [ + '/foo', '..', '/' + ], + [ + '/foo/', '.', '/foo/' + ], + [ + '/foo/', '..', '/' + ], + [ + '/foo/bar', '.', '/foo/' + ], + [ + '/foo/bar', '..', '/' + ], + [ + '/foo/bar/', '.', '/foo/bar/' + ], + [ + '/foo/bar/', '..', '/foo/' + ], + [ + 'foo/bar', '../../../baz', '../../baz' + ], + [ + 'foo/bar/', '../../../baz', '../baz' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', 'https:#hash2', 'https:///#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'https:/p/a/t/h?s#hash2', + 'https://p/a/t/h?s#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'https://u:p@h.com/p/a/t/h?s#hash2', + 'https://u:p@h.com/p/a/t/h?s#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'https:/a/b/c/d', + 'https://a/b/c/d' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'http:#hash2', + 'http://example.com/b//c//d;p?q#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'http:/p/a/t/h?s#hash2', + 'http://example.com/p/a/t/h?s#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'http://u:p@h.com/p/a/t/h?s#hash2', + 'http://u:p@h.com/p/a/t/h?s#hash2' + ], + [ + 'http://example.com/b//c//d;p?q#blarg', + 'http:/a/b/c/d', + 'http://example.com/a/b/c/d' + ], + [ + '/foo/bar/baz', '/../etc/passwd', '/etc/passwd' + ] +]; + +relativeTests.forEach(function (relativeTest) { + test('resolve(' + [relativeTest[0], relativeTest[1]] + ')', function () { + var a = url.resolve(relativeTest[0], relativeTest[1]), + e = relativeTest[2]; + assert.equal(a, e, 'resolve(' + [relativeTest[0], relativeTest[1]] + ') == ' + e + '\n actual=' + a); + }); +}); + +// https://github.com/joyent/node/issues/568 +[ + undefined, + null, + true, + false, + 0.0, + 0, + [], + {} +].forEach(function (val) { + test('parse(' + val + ')', function () { + assert['throws'](function () { url.parse(val); }, TypeError); + }); +}); + +/* + * + * Tests below taken from Chiron + * http://code.google.com/p/chironjs/source/browse/trunk/src/test/http/url.js + * + * Copyright (c) 2002-2008 Kris Kowal + * used with permission under MIT License + * + * Changes marked with @isaacs + */ + +var bases = [ + 'http://a/b/c/d;p?q', + 'http://a/b/c/d;p?q=1/2', + 'http://a/b/c/d;p=1/2?q', + 'fred:///s//a/b/c', + 'http:///s//a/b/c' +]; + +// [to, from, result] +var relativeTests2 = [ + // http://lists.w3.org/Archives/Public/uri/2004Feb/0114.html + [ + '../c', 'foo:a/b', 'foo:c' + ], + [ + 'foo:.', 'foo:a', 'foo:' + ], + [ + '/foo/../../../bar', 'zz:abc', 'zz:/bar' + ], + [ + '/foo/../bar', 'zz:abc', 'zz:/bar' + ], + // @isaacs Disagree. Not how web browsers resolve this. + [ + 'foo/../../../bar', 'zz:abc', 'zz:bar' + ], + // ['foo/../../../bar', 'zz:abc', 'zz:../../bar'], // @isaacs Added + [ + 'foo/../bar', 'zz:abc', 'zz:bar' + ], + [ + 'zz:.', 'zz:abc', 'zz:' + ], + [ + '/.', bases[0], 'http://a/' + ], + [ + '/.foo', bases[0], 'http://a/.foo' + ], + [ + '.foo', bases[0], 'http://a/b/c/.foo' + ], + + /* + * http://gbiv.com/protocols/uri/test/rel_examples1.html + * examples from RFC 2396 + */ + [ + 'g:h', bases[0], 'g:h' + ], + [ + 'g', bases[0], 'http://a/b/c/g' + ], + [ + './g', bases[0], 'http://a/b/c/g' + ], + [ + 'g/', bases[0], 'http://a/b/c/g/' + ], + [ + '/g', bases[0], 'http://a/g' + ], + [ + '//g', bases[0], 'http://g/' + ], + /* + * changed with RFC 2396bis + * ('?y', bases[0], 'http://a/b/c/d;p?y'], + */ + [ + '?y', bases[0], 'http://a/b/c/d;p?y' + ], + [ + 'g?y', bases[0], 'http://a/b/c/g?y' + ], + /* + * changed with RFC 2396bis + * ('#s', bases[0], CURRENT_DOC_URI + '#s'], + */ + [ + '#s', bases[0], 'http://a/b/c/d;p?q#s' + ], + [ + 'g#s', bases[0], 'http://a/b/c/g#s' + ], + [ + 'g?y#s', bases[0], 'http://a/b/c/g?y#s' + ], + [ + ';x', bases[0], 'http://a/b/c/;x' + ], + [ + 'g;x', bases[0], 'http://a/b/c/g;x' + ], + [ + 'g;x?y#s', bases[0], 'http://a/b/c/g;x?y#s' + ], + /* + * changed with RFC 2396bis + * ('', bases[0], CURRENT_DOC_URI], + */ + [ + '', bases[0], 'http://a/b/c/d;p?q' + ], + [ + '.', bases[0], 'http://a/b/c/' + ], + [ + './', bases[0], 'http://a/b/c/' + ], + [ + '..', bases[0], 'http://a/b/' + ], + [ + '../', bases[0], 'http://a/b/' + ], + [ + '../g', bases[0], 'http://a/b/g' + ], + [ + '../..', bases[0], 'http://a/' + ], + [ + '../../', bases[0], 'http://a/' + ], + [ + '../../g', bases[0], 'http://a/g' + ], + [ + '../../../g', bases[0], ('http://a/../g', 'http://a/g') + ], + [ + '../../../../g', bases[0], ('http://a/../../g', 'http://a/g') + ], + /* + * changed with RFC 2396bis + * ('/./g', bases[0], 'http://a/./g'], + */ + [ + '/./g', bases[0], 'http://a/g' + ], + /* + * changed with RFC 2396bis + * ('/../g', bases[0], 'http://a/../g'], + */ + [ + '/../g', bases[0], 'http://a/g' + ], + [ + 'g.', bases[0], 'http://a/b/c/g.' + ], + [ + '.g', bases[0], 'http://a/b/c/.g' + ], + [ + 'g..', bases[0], 'http://a/b/c/g..' + ], + [ + '..g', bases[0], 'http://a/b/c/..g' + ], + [ + './../g', bases[0], 'http://a/b/g' + ], + [ + './g/.', bases[0], 'http://a/b/c/g/' + ], + [ + 'g/./h', bases[0], 'http://a/b/c/g/h' + ], + [ + 'g/../h', bases[0], 'http://a/b/c/h' + ], + [ + 'g;x=1/./y', bases[0], 'http://a/b/c/g;x=1/y' + ], + [ + 'g;x=1/../y', bases[0], 'http://a/b/c/y' + ], + [ + 'g?y/./x', bases[0], 'http://a/b/c/g?y/./x' + ], + [ + 'g?y/../x', bases[0], 'http://a/b/c/g?y/../x' + ], + [ + 'g#s/./x', bases[0], 'http://a/b/c/g#s/./x' + ], + [ + 'g#s/../x', bases[0], 'http://a/b/c/g#s/../x' + ], + [ + 'http:g', bases[0], ('http:g', 'http://a/b/c/g') + ], + [ + 'http:', bases[0], ('http:', bases[0]) + ], + // not sure where this one originated + [ + '/a/b/c/./../../g', bases[0], 'http://a/a/g' + ], + + /* + * http://gbiv.com/protocols/uri/test/rel_examples2.html + * slashes in base URI's query args + */ + [ + 'g', bases[1], 'http://a/b/c/g' + ], + [ + './g', bases[1], 'http://a/b/c/g' + ], + [ + 'g/', bases[1], 'http://a/b/c/g/' + ], + [ + '/g', bases[1], 'http://a/g' + ], + [ + '//g', bases[1], 'http://g/' + ], + /* + * changed in RFC 2396bis + * ('?y', bases[1], 'http://a/b/c/?y'], + */ + [ + '?y', bases[1], 'http://a/b/c/d;p?y' + ], + [ + 'g?y', bases[1], 'http://a/b/c/g?y' + ], + [ + 'g?y/./x', bases[1], 'http://a/b/c/g?y/./x' + ], + [ + 'g?y/../x', bases[1], 'http://a/b/c/g?y/../x' + ], + [ + 'g#s', bases[1], 'http://a/b/c/g#s' + ], + [ + 'g#s/./x', bases[1], 'http://a/b/c/g#s/./x' + ], + [ + 'g#s/../x', bases[1], 'http://a/b/c/g#s/../x' + ], + [ + './', bases[1], 'http://a/b/c/' + ], + [ + '../', bases[1], 'http://a/b/' + ], + [ + '../g', bases[1], 'http://a/b/g' + ], + [ + '../../', bases[1], 'http://a/' + ], + [ + '../../g', bases[1], 'http://a/g' + ], + + /* + * http://gbiv.com/protocols/uri/test/rel_examples3.html + * slashes in path params + * all of these changed in RFC 2396bis + */ + [ + 'g', bases[2], 'http://a/b/c/d;p=1/g' + ], + [ + './g', bases[2], 'http://a/b/c/d;p=1/g' + ], + [ + 'g/', bases[2], 'http://a/b/c/d;p=1/g/' + ], + [ + 'g?y', bases[2], 'http://a/b/c/d;p=1/g?y' + ], + [ + ';x', bases[2], 'http://a/b/c/d;p=1/;x' + ], + [ + 'g;x', bases[2], 'http://a/b/c/d;p=1/g;x' + ], + [ + 'g;x=1/./y', bases[2], 'http://a/b/c/d;p=1/g;x=1/y' + ], + [ + 'g;x=1/../y', bases[2], 'http://a/b/c/d;p=1/y' + ], + [ + './', bases[2], 'http://a/b/c/d;p=1/' + ], + [ + '../', bases[2], 'http://a/b/c/' + ], + [ + '../g', bases[2], 'http://a/b/c/g' + ], + [ + '../../', bases[2], 'http://a/b/' + ], + [ + '../../g', bases[2], 'http://a/b/g' + ], + + /* + * http://gbiv.com/protocols/uri/test/rel_examples4.html + * double and triple slash, unknown scheme + */ + [ + 'g:h', bases[3], 'g:h' + ], + [ + 'g', bases[3], 'fred:///s//a/b/g' + ], + [ + './g', bases[3], 'fred:///s//a/b/g' + ], + [ + 'g/', bases[3], 'fred:///s//a/b/g/' + ], + [ + '/g', bases[3], 'fred:///g' + ], // may change to fred:///s//a/g + [ + '//g', bases[3], 'fred://g' + ], // may change to fred:///s//g + [ + '//g/x', bases[3], 'fred://g/x' + ], // may change to fred:///s//g/x + [ + '///g', bases[3], 'fred:///g' + ], + [ + './', bases[3], 'fred:///s//a/b/' + ], + [ + '../', bases[3], 'fred:///s//a/' + ], + [ + '../g', bases[3], 'fred:///s//a/g' + ], + + [ + '../../', bases[3], 'fred:///s//' + ], + [ + '../../g', bases[3], 'fred:///s//g' + ], + [ + '../../../g', bases[3], 'fred:///s/g' + ], + // may change to fred:///s//a/../../../g + [ + '../../../../g', bases[3], 'fred:///g' + ], + + /* + * http://gbiv.com/protocols/uri/test/rel_examples5.html + * double and triple slash, well-known scheme + */ + [ + 'g:h', bases[4], 'g:h' + ], + [ + 'g', bases[4], 'http:///s//a/b/g' + ], + [ + './g', bases[4], 'http:///s//a/b/g' + ], + [ + 'g/', bases[4], 'http:///s//a/b/g/' + ], + [ + '/g', bases[4], 'http:///g' + ], // may change to http:///s//a/g + [ + '//g', bases[4], 'http://g/' + ], // may change to http:///s//g + [ + '//g/x', bases[4], 'http://g/x' + ], // may change to http:///s//g/x + [ + '///g', bases[4], 'http:///g' + ], + [ + './', bases[4], 'http:///s//a/b/' + ], + [ + '../', bases[4], 'http:///s//a/' + ], + [ + '../g', bases[4], 'http:///s//a/g' + ], + [ + '../../', bases[4], 'http:///s//' + ], + [ + '../../g', bases[4], 'http:///s//g' + ], + // may change to http:///s//a/../../g + [ + '../../../g', bases[4], 'http:///s/g' + ], + // may change to http:///s//a/../../../g + [ + '../../../../g', bases[4], 'http:///g' + ], + + // from Dan Connelly's tests in http://www.w3.org/2000/10/swap/uripath.py + [ + 'bar:abc', 'foo:xyz', 'bar:abc' + ], + [ + '../abc', 'http://example/x/y/z', 'http://example/x/abc' + ], + [ + 'http://example/x/abc', 'http://example2/x/y/z', 'http://example/x/abc' + ], + [ + '../r', 'http://ex/x/y/z', 'http://ex/x/r' + ], + [ + 'q/r', 'http://ex/x/y', 'http://ex/x/q/r' + ], + [ + 'q/r#s', 'http://ex/x/y', 'http://ex/x/q/r#s' + ], + [ + 'q/r#s/t', 'http://ex/x/y', 'http://ex/x/q/r#s/t' + ], + [ + 'ftp://ex/x/q/r', 'http://ex/x/y', 'ftp://ex/x/q/r' + ], + [ + '', 'http://ex/x/y', 'http://ex/x/y' + ], + [ + '', 'http://ex/x/y/', 'http://ex/x/y/' + ], + [ + '', 'http://ex/x/y/pdq', 'http://ex/x/y/pdq' + ], + [ + 'z/', 'http://ex/x/y/', 'http://ex/x/y/z/' + ], + [ + '#Animal', + 'file:/swap/test/animal.rdf', + 'file:/swap/test/animal.rdf#Animal' + ], + [ + '../abc', 'file:/e/x/y/z', 'file:/e/x/abc' + ], + [ + '/example/x/abc', 'file:/example2/x/y/z', 'file:/example/x/abc' + ], + [ + '../r', 'file:/ex/x/y/z', 'file:/ex/x/r' + ], + [ + '/r', 'file:/ex/x/y/z', 'file:/r' + ], + [ + 'q/r', 'file:/ex/x/y', 'file:/ex/x/q/r' + ], + [ + 'q/r#s', 'file:/ex/x/y', 'file:/ex/x/q/r#s' + ], + [ + 'q/r#', 'file:/ex/x/y', 'file:/ex/x/q/r#' + ], + [ + 'q/r#s/t', 'file:/ex/x/y', 'file:/ex/x/q/r#s/t' + ], + [ + 'ftp://ex/x/q/r', 'file:/ex/x/y', 'ftp://ex/x/q/r' + ], + [ + '', 'file:/ex/x/y', 'file:/ex/x/y' + ], + [ + '', 'file:/ex/x/y/', 'file:/ex/x/y/' + ], + [ + '', 'file:/ex/x/y/pdq', 'file:/ex/x/y/pdq' + ], + [ + 'z/', 'file:/ex/x/y/', 'file:/ex/x/y/z/' + ], + [ + 'file://meetings.example.com/cal#m1', + 'file:/devel/WWW/2000/10/swap/test/reluri-1.n3', + 'file://meetings.example.com/cal#m1' + ], + [ + 'file://meetings.example.com/cal#m1', + 'file:/home/connolly/w3ccvs/WWW/2000/10/swap/test/reluri-1.n3', + 'file://meetings.example.com/cal#m1' + ], + [ + './#blort', 'file:/some/dir/foo', 'file:/some/dir/#blort' + ], + [ + './#', 'file:/some/dir/foo', 'file:/some/dir/#' + ], + // Ryan Lee + [ + './', 'http://example/x/abc.efg', 'http://example/x/' + ], + + /* + * Graham Klyne's tests + * http://www.ninebynine.org/Software/HaskellUtils/Network/UriTest.xls + * 01-31 are from Connelly's cases + */ + + // 32-49 + [ + './q:r', 'http://ex/x/y', 'http://ex/x/q:r' + ], + [ + './p=q:r', 'http://ex/x/y', 'http://ex/x/p=q:r' + ], + [ + '?pp/rr', 'http://ex/x/y?pp/qq', 'http://ex/x/y?pp/rr' + ], + [ + 'y/z', 'http://ex/x/y?pp/qq', 'http://ex/x/y/z' + ], + [ + 'local/qual@domain.org#frag', + 'mailto:local', + 'mailto:local/qual@domain.org#frag' + ], + [ + 'more/qual2@domain2.org#frag', + 'mailto:local/qual1@domain1.org', + 'mailto:local/more/qual2@domain2.org#frag' + ], + [ + 'y?q', 'http://ex/x/y?q', 'http://ex/x/y?q' + ], + [ + '/x/y?q', 'http://ex?p', 'http://ex/x/y?q' + ], + [ + 'c/d', 'foo:a/b', 'foo:a/c/d' + ], + [ + '/c/d', 'foo:a/b', 'foo:/c/d' + ], + [ + '', 'foo:a/b?c#d', 'foo:a/b?c' + ], + [ + 'b/c', 'foo:a', 'foo:b/c' + ], + [ + '../b/c', 'foo:/a/y/z', 'foo:/a/b/c' + ], + [ + './b/c', 'foo:a', 'foo:b/c' + ], + [ + '/./b/c', 'foo:a', 'foo:/b/c' + ], + [ + '../../d', 'foo://a//b/c', 'foo://a/d' + ], + [ + '.', 'foo:a', 'foo:' + ], + [ + '..', 'foo:a', 'foo:' + ], + + /* + * 50-57[cf. TimBL comments -- + * http://lists.w3.org/Archives/Public/uri/2003Feb/0028.html, + * http://lists.w3.org/Archives/Public/uri/2003Jan/0008.html) + */ + [ + 'abc', 'http://example/x/y%2Fz', 'http://example/x/abc' + ], + [ + '../../x%2Fabc', 'http://example/a/x/y/z', 'http://example/a/x%2Fabc' + ], + [ + '../x%2Fabc', 'http://example/a/x/y%2Fz', 'http://example/a/x%2Fabc' + ], + [ + 'abc', 'http://example/x%2Fy/z', 'http://example/x%2Fy/abc' + ], + [ + 'q%3Ar', 'http://ex/x/y', 'http://ex/x/q%3Ar' + ], + [ + '/x%2Fabc', 'http://example/x/y%2Fz', 'http://example/x%2Fabc' + ], + [ + '/x%2Fabc', 'http://example/x/y/z', 'http://example/x%2Fabc' + ], + [ + '/x%2Fabc', 'http://example/x/y%2Fz', 'http://example/x%2Fabc' + ], + + // 70-77 + [ + 'local2@domain2', 'mailto:local1@domain1?query1', 'mailto:local2@domain2' + ], + [ + 'local2@domain2?query2', + 'mailto:local1@domain1', + 'mailto:local2@domain2?query2' + ], + [ + 'local2@domain2?query2', + 'mailto:local1@domain1?query1', + 'mailto:local2@domain2?query2' + ], + [ + '?query2', 'mailto:local@domain?query1', 'mailto:local@domain?query2' + ], + [ + 'local@domain?query2', 'mailto:?query1', 'mailto:local@domain?query2' + ], + [ + '?query2', 'mailto:local@domain?query1', 'mailto:local@domain?query2' + ], + [ + 'http://example/a/b?c/../d', 'foo:bar', 'http://example/a/b?c/../d' + ], + [ + 'http://example/a/b#c/../d', 'foo:bar', 'http://example/a/b#c/../d' + ], + + /* + * 82-88 + * @isaacs Disagree. Not how browsers do it. + * ['http:this', 'http://example.org/base/uri', 'http:this'], + * @isaacs Added + */ + [ + 'http:this', 'http://example.org/base/uri', 'http://example.org/base/this' + ], + [ + 'http:this', 'http:base', 'http:this' + ], + [ + './/g', 'f:/a', 'f://g' + ], + [ + 'b/c//d/e', 'f://example.org/base/a', 'f://example.org/base/b/c//d/e' + ], + [ + 'm2@example.ord/c2@example.org', + 'mid:m@example.ord/c@example.org', + 'mid:m@example.ord/m2@example.ord/c2@example.org' + ], + [ + 'mini1.xml', + 'file:///C:/DEV/Haskell/lib/HXmlToolbox-3.01/examples/', + 'file:///C:/DEV/Haskell/lib/HXmlToolbox-3.01/examples/mini1.xml' + ], + [ + '../b/c', 'foo:a/y/z', 'foo:a/b/c' + ], + + // changeing auth + [ + 'http://diff:auth@www.example.com', + 'http://asdf:qwer@www.example.com', + 'http://diff:auth@www.example.com/' + ] +]; + +relativeTests2.forEach(function (relativeTest) { + test('resolve(' + [relativeTest[1], relativeTest[0]] + ')', function () { + var a = url.resolve(relativeTest[1], relativeTest[0]), + e = relativeTest[2]; + assert.equal(a, e, 'resolve(' + [relativeTest[1], relativeTest[0]] + ') == ' + e + '\n actual=' + a); + }); +}); + +/* + * if format and parse are inverse operations then + * resolveObject(parse(x), y) == parse(resolve(x, y)) + */ + +// host and hostname are special, in this case a '' value is important +/* eslint no-unused-vars: 1 */ +var emptyIsImportant = { host: true, hostname: '' }; + +// format: [from, path, expected] +relativeTests.forEach(function (relativeTest) { + test('resolveObject(' + [relativeTest[0], relativeTest[1]] + ')', function () { + var actual = url.resolveObject(url.parse(relativeTest[0]), relativeTest[1]); + var expected = url.parse(relativeTest[2]); + + assert.deepEqual(actual, expected); + + expected = relativeTest[2]; + actual = url.format(actual); + + assert.equal(actual, expected, 'format(' + actual + ') == ' + expected + '\nactual:' + actual); + }); +}); + +/* + * format: [to, from, result] + * the test: ['.//g', 'f:/a', 'f://g'] is a fundamental problem + * url.parse('f:/a') does not have a host + * url.resolve('f:/a', './/g') does not have a host because you have moved + * down to the g directory. i.e. f: //g, however when this url is parsed + * f:// will indicate that the host is g which is not the case. + * it is unclear to me how to keep this information from being lost + * it may be that a pathname of ////g should collapse to /g but this seems + * to be a lot of work for an edge case. Right now I remove the test + */ +if (relativeTests2[181][0] === './/g' && relativeTests2[181][1] === 'f:/a' && relativeTests2[181][2] === 'f://g') { + relativeTests2.splice(181, 1); +} + +relativeTests2.forEach(function (relativeTest) { + test('resolveObject(' + [relativeTest[1], relativeTest[0]] + ')', function () { + var actual = url.resolveObject(url.parse(relativeTest[1]), relativeTest[0]), + expected = url.parse(relativeTest[2]); + + assert.deepEqual(actual, expected); + + var expected = relativeTest[2], + actual = url.format(actual); + + assert.equal(actual, expected, 'format(' + relativeTest[1] + ') == ' + expected + '\nactual:' + actual); + }); +}); diff --git a/node_modules/url/test/mocha.opts b/node_modules/url/test/mocha.opts new file mode 100644 index 0000000..9e2cb5e --- /dev/null +++ b/node_modules/url/test/mocha.opts @@ -0,0 +1,2 @@ +test/*.js +--recursive diff --git a/node_modules/url/url.js b/node_modules/url/url.js index 23ac6f5..44dd207 100644 --- a/node_modules/url/url.js +++ b/node_modules/url/url.js @@ -1,35 +1,29 @@ -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. +/* + * Copyright Joyent, Inc. and other Node contributors. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to permit + * persons to whom the Software is furnished to do so, subject to the + * following conditions: + * + * The above copyright notice and this permission notice shall be included + * in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS + * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN + * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR + * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE + * USE OR OTHER DEALINGS IN THE SOFTWARE. + */ 'use strict'; var punycode = require('punycode'); -var util = require('./util'); - -exports.parse = urlParse; -exports.resolve = urlResolve; -exports.resolveObject = urlResolveObject; -exports.format = urlFormat; - -exports.Url = Url; function Url() { this.protocol = null; @@ -48,85 +42,102 @@ function Url() { // Reference: RFC 3986, RFC 1808, RFC 2396 -// define these here so at least they only have to be -// compiled once on the first module load. +/* + * define these here so at least they only have to be + * compiled once on the first module load. + */ var protocolPattern = /^([a-z0-9.+-]+:)/i, - portPattern = /:[0-9]*$/, - - // Special case for a simple path URL - simplePathPattern = /^(\/\/?(?!\/)[^\?\s]*)(\?[^\s]*)?$/, - - // RFC 2396: characters reserved for delimiting URLs. - // We actually just auto-escape these. - delims = ['<', '>', '"', '`', ' ', '\r', '\n', '\t'], - - // RFC 2396: characters not allowed for various reasons. - unwise = ['{', '}', '|', '\\', '^', '`'].concat(delims), - - // Allowed by RFCs, but cause of XSS attacks. Always escape these. - autoEscape = ['\''].concat(unwise), - // Characters that are never ever allowed in a hostname. - // Note that any invalid chars are also handled, but these - // are the ones that are *expected* to be seen, so we fast-path - // them. - nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape), - hostEndingChars = ['/', '?', '#'], - hostnameMaxLen = 255, - hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, - hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, - // protocols that can allow "unsafe" and "unwise" chars. - unsafeProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that never have a hostname. - hostlessProtocol = { - 'javascript': true, - 'javascript:': true - }, - // protocols that always contain a // bit. - slashedProtocol = { - 'http': true, - 'https': true, - 'ftp': true, - 'gopher': true, - 'file': true, - 'http:': true, - 'https:': true, - 'ftp:': true, - 'gopher:': true, - 'file:': true - }, - querystring = require('querystring'); + portPattern = /:[0-9]*$/, + + // Special case for a simple path URL + simplePathPattern = /^(\/\/?(?!\/)[^?\s]*)(\?[^\s]*)?$/, + + /* + * RFC 2396: characters reserved for delimiting URLs. + * We actually just auto-escape these. + */ + delims = [ + '<', '>', '"', '`', ' ', '\r', '\n', '\t' + ], + + // RFC 2396: characters not allowed for various reasons. + unwise = [ + '{', '}', '|', '\\', '^', '`' + ].concat(delims), + + // Allowed by RFCs, but cause of XSS attacks. Always escape these. + autoEscape = ['\''].concat(unwise), + /* + * Characters that are never ever allowed in a hostname. + * Note that any invalid chars are also handled, but these + * are the ones that are *expected* to be seen, so we fast-path + * them. + */ + nonHostChars = [ + '%', '/', '?', ';', '#' + ].concat(autoEscape), + hostEndingChars = [ + '/', '?', '#' + ], + hostnameMaxLen = 255, + hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/, + hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/, + // protocols that can allow "unsafe" and "unwise" chars. + unsafeProtocol = { + javascript: true, + 'javascript:': true + }, + // protocols that never have a hostname. + hostlessProtocol = { + javascript: true, + 'javascript:': true + }, + // protocols that always contain a // bit. + slashedProtocol = { + http: true, + https: true, + ftp: true, + gopher: true, + file: true, + 'http:': true, + 'https:': true, + 'ftp:': true, + 'gopher:': true, + 'file:': true + }, + querystring = require('qs'); function urlParse(url, parseQueryString, slashesDenoteHost) { - if (url && util.isObject(url) && url instanceof Url) return url; + if (url && typeof url === 'object' && url instanceof Url) { return url; } - var u = new Url; + var u = new Url(); u.parse(url, parseQueryString, slashesDenoteHost); return u; } -Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { - if (!util.isString(url)) { +Url.prototype.parse = function (url, parseQueryString, slashesDenoteHost) { + if (typeof url !== 'string') { throw new TypeError("Parameter 'url' must be a string, not " + typeof url); } - // Copy chrome, IE, opera backslash-handling behavior. - // Back slashes before the query string get converted to forward slashes - // See: https://code.google.com/p/chromium/issues/detail?id=25916 + /* + * Copy chrome, IE, opera backslash-handling behavior. + * Back slashes before the query string get converted to forward slashes + * See: https://code.google.com/p/chromium/issues/detail?id=25916 + */ var queryIndex = url.indexOf('?'), - splitter = - (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#', - uSplit = url.split(splitter), - slashRegex = /\\/g; + splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#', + uSplit = url.split(splitter), + slashRegex = /\\/g; uSplit[0] = uSplit[0].replace(slashRegex, '/'); url = uSplit.join(splitter); var rest = url; - // trim before proceeding. - // This is to support parse stuff like " http://foo.com \n" + /* + * trim before proceeding. + * This is to support parse stuff like " http://foo.com \n" + */ rest = rest.trim(); if (!slashesDenoteHost && url.split('#').length === 1) { @@ -159,11 +170,13 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { rest = rest.substr(proto.length); } - // figure out if it's got a host - // user@server is *always* interpreted as a hostname, and url - // resolution will treat //foo/bar as host=foo,path=bar because that's - // how the browser resolves relative URLs. - if (slashesDenoteHost || proto || rest.match(/^\/\/[^@\/]+@[^@\/]+/)) { + /* + * figure out if it's got a host + * user@server is *always* interpreted as a hostname, and url + * resolution will treat //foo/bar as host=foo,path=bar because that's + * how the browser resolves relative URLs. + */ + if (slashesDenoteHost || proto || rest.match(/^\/\/[^@/]+@[^@/]+/)) { var slashes = rest.substr(0, 2) === '//'; if (slashes && !(proto && hostlessProtocol[proto])) { rest = rest.substr(2); @@ -171,46 +184,54 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { } } - if (!hostlessProtocol[proto] && - (slashes || (proto && !slashedProtocol[proto]))) { - - // there's a hostname. - // the first instance of /, ?, ;, or # ends the host. - // - // If there is an @ in the hostname, then non-host chars *are* allowed - // to the left of the last @ sign, unless some host-ending character - // comes *before* the @-sign. - // URLs are obnoxious. - // - // ex: - // http://a@b@c/ => user:a@b host:c - // http://a@b?@c => user:a host:c path:/?@c - - // v0.12 TODO(isaacs): This is not quite how Chrome does things. - // Review our test case against browsers more comprehensively. + if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) { + + /* + * there's a hostname. + * the first instance of /, ?, ;, or # ends the host. + * + * If there is an @ in the hostname, then non-host chars *are* allowed + * to the left of the last @ sign, unless some host-ending character + * comes *before* the @-sign. + * URLs are obnoxious. + * + * ex: + * http://a@b@c/ => user:a@b host:c + * http://a@b?@c => user:a host:c path:/?@c + */ + + /* + * v0.12 TODO(isaacs): This is not quite how Chrome does things. + * Review our test case against browsers more comprehensively. + */ // find the first instance of any hostEndingChars var hostEnd = -1; for (var i = 0; i < hostEndingChars.length; i++) { var hec = rest.indexOf(hostEndingChars[i]); - if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) - hostEnd = hec; + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; } } - // at this point, either we have an explicit point where the - // auth portion cannot go past, or the last @ char is the decider. + /* + * at this point, either we have an explicit point where the + * auth portion cannot go past, or the last @ char is the decider. + */ var auth, atSign; if (hostEnd === -1) { // atSign can be anywhere. atSign = rest.lastIndexOf('@'); } else { - // atSign must be in auth portion. - // http://a@b/c@d => host:b auth:a path:/c@d + /* + * atSign must be in auth portion. + * http://a@b/c@d => host:b auth:a path:/c@d + */ atSign = rest.lastIndexOf('@', hostEnd); } - // Now we have a portion which is definitely the auth. - // Pull that off. + /* + * Now we have a portion which is definitely the auth. + * Pull that off. + */ if (atSign !== -1) { auth = rest.slice(0, atSign); rest = rest.slice(atSign + 1); @@ -221,12 +242,10 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { hostEnd = -1; for (var i = 0; i < nonHostChars.length; i++) { var hec = rest.indexOf(nonHostChars[i]); - if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) - hostEnd = hec; + if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; } } // if we still have not hit it, then the entire thing is a host. - if (hostEnd === -1) - hostEnd = rest.length; + if (hostEnd === -1) { hostEnd = rest.length; } this.host = rest.slice(0, hostEnd); rest = rest.slice(hostEnd); @@ -234,28 +253,33 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { // pull out port. this.parseHost(); - // we've indicated that there is a hostname, - // so even if it's empty, it has to be present. + /* + * we've indicated that there is a hostname, + * so even if it's empty, it has to be present. + */ this.hostname = this.hostname || ''; - // if hostname begins with [ and ends with ] - // assume that it's an IPv6 address. - var ipv6Hostname = this.hostname[0] === '[' && - this.hostname[this.hostname.length - 1] === ']'; + /* + * if hostname begins with [ and ends with ] + * assume that it's an IPv6 address. + */ + var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little. if (!ipv6Hostname) { var hostparts = this.hostname.split(/\./); for (var i = 0, l = hostparts.length; i < l; i++) { var part = hostparts[i]; - if (!part) continue; + if (!part) { continue; } if (!part.match(hostnamePartPattern)) { var newpart = ''; for (var j = 0, k = part.length; j < k; j++) { if (part.charCodeAt(j) > 127) { - // we replace non-ASCII char with a temporary placeholder - // we need this to make sure size of hostname is not - // broken by replacing non-ASCII by nothing + /* + * we replace non-ASCII char with a temporary placeholder + * we need this to make sure size of hostname is not + * broken by replacing non-ASCII by nothing + */ newpart += 'x'; } else { newpart += part[j]; @@ -288,10 +312,12 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { } if (!ipv6Hostname) { - // IDNA Support: Returns a punycoded representation of "domain". - // It only converts parts of the domain name that - // have non-ASCII characters, i.e. it doesn't matter if - // you call it with a domain that already is ASCII-only. + /* + * IDNA Support: Returns a punycoded representation of "domain". + * It only converts parts of the domain name that + * have non-ASCII characters, i.e. it doesn't matter if + * you call it with a domain that already is ASCII-only. + */ this.hostname = punycode.toASCII(this.hostname); } @@ -300,8 +326,10 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { this.host = h + p; this.href += this.host; - // strip [ and ] from the hostname - // the host field still retains them, though + /* + * strip [ and ] from the hostname + * the host field still retains them, though + */ if (ipv6Hostname) { this.hostname = this.hostname.substr(1, this.hostname.length - 2); if (rest[0] !== '/') { @@ -310,17 +338,20 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { } } - // now rest is set to the post-host stuff. - // chop off any delim chars. + /* + * now rest is set to the post-host stuff. + * chop off any delim chars. + */ if (!unsafeProtocol[lowerProto]) { - // First, make 100% sure that any "autoEscape" chars get - // escaped, even if encodeURIComponent doesn't think they - // need to be. + /* + * First, make 100% sure that any "autoEscape" chars get + * escaped, even if encodeURIComponent doesn't think they + * need to be. + */ for (var i = 0, l = autoEscape.length; i < l; i++) { var ae = autoEscape[i]; - if (rest.indexOf(ae) === -1) - continue; + if (rest.indexOf(ae) === -1) { continue; } var esc = encodeURIComponent(ae); if (esc === ae) { esc = escape(ae); @@ -329,7 +360,6 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { } } - // chop off from the tail first. var hash = rest.indexOf('#'); if (hash !== -1) { @@ -350,13 +380,12 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { this.search = ''; this.query = {}; } - if (rest) this.pathname = rest; - if (slashedProtocol[lowerProto] && - this.hostname && !this.pathname) { + if (rest) { this.pathname = rest; } + if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) { this.pathname = '/'; } - //to support http.request + // to support http.request if (this.pathname || this.search) { var p = this.pathname || ''; var s = this.search || ''; @@ -370,16 +399,18 @@ Url.prototype.parse = function(url, parseQueryString, slashesDenoteHost) { // format a parsed object into a url string function urlFormat(obj) { - // ensure it's an object, and not a string url. - // If it's an obj, this is a no-op. - // this way, you can call url_format() on strings - // to clean up potentially wonky urls. - if (util.isString(obj)) obj = urlParse(obj); - if (!(obj instanceof Url)) return Url.prototype.format.call(obj); + /* + * ensure it's an object, and not a string url. + * If it's an obj, this is a no-op. + * this way, you can call url_format() on strings + * to clean up potentially wonky urls. + */ + if (typeof obj === 'string') { obj = urlParse(obj); } + if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); } return obj.format(); } -Url.prototype.format = function() { +Url.prototype.format = function () { var auth = this.auth || ''; if (auth) { auth = encodeURIComponent(auth); @@ -388,46 +419,43 @@ Url.prototype.format = function() { } var protocol = this.protocol || '', - pathname = this.pathname || '', - hash = this.hash || '', - host = false, - query = ''; + pathname = this.pathname || '', + hash = this.hash || '', + host = false, + query = ''; if (this.host) { host = auth + this.host; } else if (this.hostname) { - host = auth + (this.hostname.indexOf(':') === -1 ? - this.hostname : - '[' + this.hostname + ']'); + host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']'); if (this.port) { host += ':' + this.port; } } - if (this.query && - util.isObject(this.query) && - Object.keys(this.query).length) { + if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) { query = querystring.stringify(this.query); } var search = this.search || (query && ('?' + query)) || ''; - if (protocol && protocol.substr(-1) !== ':') protocol += ':'; + if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; } - // only the slashedProtocols get the //. Not mailto:, xmpp:, etc. - // unless they had them to begin with. - if (this.slashes || - (!protocol || slashedProtocol[protocol]) && host !== false) { + /* + * only the slashedProtocols get the //. Not mailto:, xmpp:, etc. + * unless they had them to begin with. + */ + if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) { host = '//' + (host || ''); - if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname; + if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; } } else if (!host) { host = ''; } - if (hash && hash.charAt(0) !== '#') hash = '#' + hash; - if (search && search.charAt(0) !== '?') search = '?' + search; + if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; } + if (search && search.charAt(0) !== '?') { search = '?' + search; } - pathname = pathname.replace(/[?#]/g, function(match) { + pathname = pathname.replace(/[?#]/g, function (match) { return encodeURIComponent(match); }); search = search.replace('#', '%23'); @@ -439,17 +467,17 @@ function urlResolve(source, relative) { return urlParse(source, false, true).resolve(relative); } -Url.prototype.resolve = function(relative) { +Url.prototype.resolve = function (relative) { return this.resolveObject(urlParse(relative, false, true)).format(); }; function urlResolveObject(source, relative) { - if (!source) return relative; + if (!source) { return relative; } return urlParse(source, false, true).resolveObject(relative); } -Url.prototype.resolveObject = function(relative) { - if (util.isString(relative)) { +Url.prototype.resolveObject = function (relative) { + if (typeof relative === 'string') { var rel = new Url(); rel.parse(relative, false, true); relative = rel; @@ -462,8 +490,10 @@ Url.prototype.resolveObject = function(relative) { result[tkey] = this[tkey]; } - // hash is always overridden, no matter what. - // even href="" will remove it. + /* + * hash is always overridden, no matter what. + * even href="" will remove it. + */ result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here. @@ -478,14 +508,13 @@ Url.prototype.resolveObject = function(relative) { var rkeys = Object.keys(relative); for (var rk = 0; rk < rkeys.length; rk++) { var rkey = rkeys[rk]; - if (rkey !== 'protocol') - result[rkey] = relative[rkey]; + if (rkey !== 'protocol') { result[rkey] = relative[rkey]; } } - //urlParse appends trailing / to urls like http://www.example.com - if (slashedProtocol[result.protocol] && - result.hostname && !result.pathname) { - result.path = result.pathname = '/'; + // urlParse appends trailing / to urls like http://www.example.com + if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) { + result.pathname = '/'; + result.path = result.pathname; } result.href = result.format(); @@ -493,14 +522,16 @@ Url.prototype.resolveObject = function(relative) { } if (relative.protocol && relative.protocol !== result.protocol) { - // if it's a known url protocol, then changing - // the protocol does weird things - // first, if it's not file:, then we MUST have a host, - // and if there was a path - // to begin with, then we MUST have a path. - // if it is file:, then the host is dropped, - // because that's known to be hostless. - // anything else is assumed to be absolute. + /* + * if it's a known url protocol, then changing + * the protocol does weird things + * first, if it's not file:, then we MUST have a host, + * and if there was a path + * to begin with, then we MUST have a path. + * if it is file:, then the host is dropped, + * because that's known to be hostless. + * anything else is assumed to be absolute. + */ if (!slashedProtocol[relative.protocol]) { var keys = Object.keys(relative); for (var v = 0; v < keys.length; v++) { @@ -514,11 +545,11 @@ Url.prototype.resolveObject = function(relative) { result.protocol = relative.protocol; if (!relative.host && !hostlessProtocol[relative.protocol]) { var relPath = (relative.pathname || '').split('/'); - while (relPath.length && !(relative.host = relPath.shift())); - if (!relative.host) relative.host = ''; - if (!relative.hostname) relative.hostname = ''; - if (relPath[0] !== '') relPath.unshift(''); - if (relPath.length < 2) relPath.unshift(''); + while (relPath.length && !(relative.host = relPath.shift())) { } + if (!relative.host) { relative.host = ''; } + if (!relative.hostname) { relative.hostname = ''; } + if (relPath[0] !== '') { relPath.unshift(''); } + if (relPath.length < 2) { relPath.unshift(''); } result.pathname = relPath.join('/'); } else { result.pathname = relative.pathname; @@ -540,37 +571,33 @@ Url.prototype.resolveObject = function(relative) { return result; } - var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'), - isRelAbs = ( - relative.host || - relative.pathname && relative.pathname.charAt(0) === '/' - ), - mustEndAbs = (isRelAbs || isSourceAbs || - (result.host && relative.pathname)), - removeAllDots = mustEndAbs, - srcPath = result.pathname && result.pathname.split('/') || [], - relPath = relative.pathname && relative.pathname.split('/') || [], - psychotic = result.protocol && !slashedProtocol[result.protocol]; - - // if the url is a non-slashed url, then relative - // links like ../.. should be able - // to crawl up to the hostname, as well. This is strange. - // result.protocol has already been set by now. - // Later on, put the first path part into the host field. + var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/', + isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/', + mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname), + removeAllDots = mustEndAbs, + srcPath = result.pathname && result.pathname.split('/') || [], + relPath = relative.pathname && relative.pathname.split('/') || [], + psychotic = result.protocol && !slashedProtocol[result.protocol]; + + /* + * if the url is a non-slashed url, then relative + * links like ../.. should be able + * to crawl up to the hostname, as well. This is strange. + * result.protocol has already been set by now. + * Later on, put the first path part into the host field. + */ if (psychotic) { result.hostname = ''; result.port = null; if (result.host) { - if (srcPath[0] === '') srcPath[0] = result.host; - else srcPath.unshift(result.host); + if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); } } result.host = ''; if (relative.protocol) { relative.hostname = null; relative.port = null; if (relative.host) { - if (relPath[0] === '') relPath[0] = relative.host; - else relPath.unshift(relative.host); + if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); } } relative.host = null; } @@ -579,54 +606,60 @@ Url.prototype.resolveObject = function(relative) { if (isRelAbs) { // it's absolute. - result.host = (relative.host || relative.host === '') ? - relative.host : result.host; - result.hostname = (relative.hostname || relative.hostname === '') ? - relative.hostname : result.hostname; + result.host = relative.host || relative.host === '' ? relative.host : result.host; + result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname; result.search = relative.search; result.query = relative.query; srcPath = relPath; // fall through to the dot-handling below. } else if (relPath.length) { - // it's relative - // throw away the existing file, and take the new path instead. - if (!srcPath) srcPath = []; + /* + * it's relative + * throw away the existing file, and take the new path instead. + */ + if (!srcPath) { srcPath = []; } srcPath.pop(); srcPath = srcPath.concat(relPath); result.search = relative.search; result.query = relative.query; - } else if (!util.isNullOrUndefined(relative.search)) { - // just pull out the search. - // like href='?foo'. - // Put this after the other two cases because it simplifies the booleans + } else if (relative.search != null) { + /* + * just pull out the search. + * like href='?foo'. + * Put this after the other two cases because it simplifies the booleans + */ if (psychotic) { - result.hostname = result.host = srcPath.shift(); - //occationaly the auth can get stuck only in host - //this especially happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = result.host && result.host.indexOf('@') > 0 ? - result.host.split('@') : false; + result.host = srcPath.shift(); + result.hostname = result.host; + /* + * occationaly the auth can get stuck only in host + * this especially happens in cases like + * url.resolveObject('mailto:local1@domain1', 'local2@domain2') + */ + var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false; if (authInHost) { result.auth = authInHost.shift(); - result.host = result.hostname = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; } } result.search = relative.search; result.query = relative.query; - //to support http.request - if (!util.isNull(result.pathname) || !util.isNull(result.search)) { - result.path = (result.pathname ? result.pathname : '') + - (result.search ? result.search : ''); + // to support http.request + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : ''); } result.href = result.format(); return result; } if (!srcPath.length) { - // no path at all. easy. - // we've already handled the other stuff above. + /* + * no path at all. easy. + * we've already handled the other stuff above. + */ result.pathname = null; - //to support http.request + // to support http.request if (result.search) { result.path = '/' + result.search; } else { @@ -636,16 +669,18 @@ Url.prototype.resolveObject = function(relative) { return result; } - // if a url ENDs in . or .., then it must get a trailing slash. - // however, if it ends in anything else non-slashy, - // then it must NOT get a trailing slash. + /* + * if a url ENDs in . or .., then it must get a trailing slash. + * however, if it ends in anything else non-slashy, + * then it must NOT get a trailing slash. + */ var last = srcPath.slice(-1)[0]; - var hasTrailingSlash = ( - (result.host || relative.host || srcPath.length > 1) && - (last === '.' || last === '..') || last === ''); + var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''; - // strip single dots, resolve double dots to parent dir - // if the path tries to go above the root, `up` ends up > 0 + /* + * strip single dots, resolve double dots to parent dir + * if the path tries to go above the root, `up` ends up > 0 + */ var up = 0; for (var i = srcPath.length; i >= 0; i--) { last = srcPath[i]; @@ -667,8 +702,7 @@ Url.prototype.resolveObject = function(relative) { } } - if (mustEndAbs && srcPath[0] !== '' && - (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { + if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) { srcPath.unshift(''); } @@ -676,21 +710,22 @@ Url.prototype.resolveObject = function(relative) { srcPath.push(''); } - var isAbsolute = srcPath[0] === '' || - (srcPath[0] && srcPath[0].charAt(0) === '/'); + var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/'); // put the host back if (psychotic) { - result.hostname = result.host = isAbsolute ? '' : - srcPath.length ? srcPath.shift() : ''; - //occationaly the auth can get stuck only in host - //this especially happens in cases like - //url.resolveObject('mailto:local1@domain1', 'local2@domain2') - var authInHost = result.host && result.host.indexOf('@') > 0 ? - result.host.split('@') : false; + result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; + result.host = result.hostname; + /* + * occationaly the auth can get stuck only in host + * this especially happens in cases like + * url.resolveObject('mailto:local1@domain1', 'local2@domain2') + */ + var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false; if (authInHost) { result.auth = authInHost.shift(); - result.host = result.hostname = authInHost.shift(); + result.hostname = authInHost.shift(); + result.host = result.hostname; } } @@ -700,17 +735,16 @@ Url.prototype.resolveObject = function(relative) { srcPath.unshift(''); } - if (!srcPath.length) { + if (srcPath.length > 0) { + result.pathname = srcPath.join('/'); + } else { result.pathname = null; result.path = null; - } else { - result.pathname = srcPath.join('/'); } - //to support request.http - if (!util.isNull(result.pathname) || !util.isNull(result.search)) { - result.path = (result.pathname ? result.pathname : '') + - (result.search ? result.search : ''); + // to support request.http + if (result.pathname !== null || result.search !== null) { + result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : ''); } result.auth = relative.auth || result.auth; result.slashes = result.slashes || relative.slashes; @@ -718,7 +752,7 @@ Url.prototype.resolveObject = function(relative) { return result; }; -Url.prototype.parseHost = function() { +Url.prototype.parseHost = function () { var host = this.host; var port = portPattern.exec(host); if (port) { @@ -728,5 +762,12 @@ Url.prototype.parseHost = function() { } host = host.substr(0, host.length - port.length); } - if (host) this.hostname = host; + if (host) { this.hostname = host; } }; + +exports.parse = urlParse; +exports.resolve = urlResolve; +exports.resolveObject = urlResolveObject; +exports.format = urlFormat; + +exports.Url = Url; diff --git a/node_modules/url/util.js b/node_modules/url/util.js deleted file mode 100644 index 97dcf31..0000000 --- a/node_modules/url/util.js +++ /dev/null @@ -1,16 +0,0 @@ -'use strict'; - -module.exports = { - isString: function(arg) { - return typeof(arg) === 'string'; - }, - isObject: function(arg) { - return typeof(arg) === 'object' && arg !== null; - }, - isNull: function(arg) { - return arg === null; - }, - isNullOrUndefined: function(arg) { - return arg == null; - } -}; diff --git a/node_modules/util/README.md b/node_modules/util/README.md index eb63058..faced97 100644 --- a/node_modules/util/README.md +++ b/node_modules/util/README.md @@ -6,7 +6,7 @@ This implements the Node.js [`util`][util] module for environments that do not h ## Install -You usually do not have to install `util` yourself. If your code runs in Node.js, `util` is built in. If your code runs in the browser, bundlers like [browserify](https://github.com/browserify/browserify) or [webpack](https://github.com/webpack/webpack) also include the `util` module. +You usually do not have to install `util` yourself. If your code runs in Node.js, `util` is built in. If your code runs in the browser, bundlers like [browserify](https://github.com/browserify/browserify) or [webpack](https://github.com/webpack/webpack) (up to version 4 -- [see this documentation](https://webpack.js.org/configuration/resolve/#resolvefallback) for how to include polyfills like `util` in webpack 5+) also include the `util` module. But if none of those apply, with npm do: diff --git a/node_modules/util/package.json b/node_modules/util/package.json index 3b10431..2099ec0 100644 --- a/node_modules/util/package.json +++ b/node_modules/util/package.json @@ -1,7 +1,7 @@ { "name": "util", "description": "Node.js's util module for all engines", - "version": "0.12.4", + "version": "0.12.5", "author": { "name": "Joyent", "url": "http://www.joyent.com" @@ -14,7 +14,6 @@ "is-arguments": "^1.0.4", "is-generator-function": "^1.0.7", "is-typed-array": "^1.1.3", - "safe-buffer": "^5.1.2", "which-typed-array": "^1.1.2" }, "devDependencies": { @@ -24,6 +23,7 @@ "object.assign": "~4.1.0", "object.entries": "^1.1.0", "run-series": "~1.1.4", + "safe-buffer": "^5.1.2", "tape": "~4.9.0" }, "files": [ diff --git a/node_modules/util/util.js b/node_modules/util/util.js index 6eea657..6db393e 100644 --- a/node_modules/util/util.js +++ b/node_modules/util/util.js @@ -410,7 +410,7 @@ function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { if (array) { str = str.split('\n').map(function(line) { return ' ' + line; - }).join('\n').substr(2); + }).join('\n').slice(2); } else { str = '\n' + str.split('\n').map(function(line) { return ' ' + line; @@ -427,7 +427,7 @@ function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) { } name = JSON.stringify('' + key); if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) { - name = name.substr(1, name.length - 2); + name = name.slice(1, -1); name = ctx.stylize(name, 'name'); } else { name = name.replace(/'/g, "\\'") diff --git a/node_modules/uuid/package.json b/node_modules/uuid/package.json index 157da07..efc07b8 100644 --- a/node_modules/uuid/package.json +++ b/node_modules/uuid/package.json @@ -1,68 +1,21 @@ { - "_from": "uuid@^3.3.2", - "_id": "uuid@3.4.0", - "_inBundle": false, - "_integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "_location": "/uuid", - "_phantomChildren": {}, - "_requested": { - "type": "range", - "registry": true, - "raw": "uuid@^3.3.2", - "name": "uuid", - "escapedName": "uuid", - "rawSpec": "^3.3.2", - "saveSpec": null, - "fetchSpec": "^3.3.2" - }, - "_requiredBy": [ - "/request" - ], - "_resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "_shasum": "b23e4358afa8a202fe7a100af1f5f883f02007ee", - "_spec": "uuid@^3.3.2", - "_where": "/Users/sallysteuterman/Development/LaunchCode/JavaScript/Launch-Checklist-Form-Github-Classroom/node_modules/request", - "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" - }, - "bundleDependencies": false, + "name": "uuid", + "version": "3.4.0", + "description": "RFC4122 (v1, v4, and v5) UUIDs", "commitlint": { "extends": [ "@commitlint/config-conventional" ] }, - "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" - } + "keywords": [ + "uuid", + "guid", + "rfc4122" ], - "deprecated": false, - "description": "RFC4122 (v1, v4, and v5) UUIDs", + "license": "MIT", + "bin": { + "uuid": "./bin/uuid" + }, "devDependencies": { "@commitlint/cli": "~8.2.0", "@commitlint/config-conventional": "~8.2.0", @@ -72,29 +25,25 @@ "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", - "test": "npm run lint && mocha test/test.js" + "prepare": "runmd --output=README.md README_js.md" }, - "version": "3.4.0" + "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" + } + } } diff --git a/node_modules/which-boxed-primitive/.editorconfig b/node_modules/which-boxed-primitive/.editorconfig deleted file mode 100644 index bc228f8..0000000 --- a/node_modules/which-boxed-primitive/.editorconfig +++ /dev/null @@ -1,20 +0,0 @@ -root = true - -[*] -indent_style = tab -indent_size = 4 -end_of_line = lf -charset = utf-8 -trim_trailing_whitespace = true -insert_final_newline = true -max_line_length = 150 - -[CHANGELOG.md] -indent_style = space -indent_size = 2 - -[*.json] -max_line_length = off - -[Makefile] -max_line_length = off diff --git a/node_modules/which-boxed-primitive/.eslintignore b/node_modules/which-boxed-primitive/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/which-boxed-primitive/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/which-boxed-primitive/.eslintrc b/node_modules/which-boxed-primitive/.eslintrc deleted file mode 100644 index bfa96d1..0000000 --- a/node_modules/which-boxed-primitive/.eslintrc +++ /dev/null @@ -1,9 +0,0 @@ -{ - "root": true, - - "extends": "@ljharb", - - "rules": { - "max-statements": [2, 12], - }, -} diff --git a/node_modules/which-boxed-primitive/.github/FUNDING.yml b/node_modules/which-boxed-primitive/.github/FUNDING.yml deleted file mode 100644 index 0cdbbd8..0000000 --- a/node_modules/which-boxed-primitive/.github/FUNDING.yml +++ /dev/null @@ -1,12 +0,0 @@ -# These are supported funding model platforms - -github: [ljharb] -patreon: # Replace with a single Patreon username -open_collective: # Replace with a single Open Collective username -ko_fi: # Replace with a single Ko-fi username -tidelift: npm/which-boxed-primitive -community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry -liberapay: # Replace with a single Liberapay username -issuehunt: # Replace with a single IssueHunt username -otechie: # Replace with a single Otechie username -custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/node_modules/which-boxed-primitive/.nycrc b/node_modules/which-boxed-primitive/.nycrc deleted file mode 100644 index 1826526..0000000 --- a/node_modules/which-boxed-primitive/.nycrc +++ /dev/null @@ -1,13 +0,0 @@ -{ - "all": true, - "check-coverage": false, - "reporter": ["text-summary", "text", "html", "json"], - "lines": 86, - "statements": 85.93, - "functions": 82.43, - "branches": 76.06, - "exclude": [ - "coverage", - "test" - ] -} diff --git a/node_modules/which-boxed-primitive/CHANGELOG.md b/node_modules/which-boxed-primitive/CHANGELOG.md deleted file mode 100644 index 23e5422..0000000 --- a/node_modules/which-boxed-primitive/CHANGELOG.md +++ /dev/null @@ -1,54 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - -## [v1.0.2](https://github.com/inspect-js/which-boxed-primitive/compare/v1.0.1...v1.0.2) - 2020-12-14 - -### Commits - -- [Tests] use shared travis-ci configs [`8674582`](https://github.com/inspect-js/which-boxed-primitive/commit/86745829b6a92cff2cfb0d3c0414ec9afdc2a087) -- [Tests] migrate tests to Github Actions [`dff6643`](https://github.com/inspect-js/which-boxed-primitive/commit/dff6643405ba4d6dc6694a25904c8f72f273ece8) -- [meta] do not publish github action workflow files [`b26112a`](https://github.com/inspect-js/which-boxed-primitive/commit/b26112a4e4ac6beec8f54c734135dbf9e9ba16f9) -- [meta] make `auto-changelog` config consistent [`8d10175`](https://github.com/inspect-js/which-boxed-primitive/commit/8d10175171154cd6c8f8a016aa7fb71b5044acf6) -- [readme] fix repo URLs, remove defunct badges [`ab8db24`](https://github.com/inspect-js/which-boxed-primitive/commit/ab8db247573723dbcda68469118d08c7c2692c67) -- [Tests] run `nyc` on all tests; use `tape` runner [`7d084df`](https://github.com/inspect-js/which-boxed-primitive/commit/7d084dfc5251230e9399a81782c0b9d7ae5d1901) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `object-inspect`, `tape` [`576f6f3`](https://github.com/inspect-js/which-boxed-primitive/commit/576f6f308aed35ef1d3392bb9472def59482ed13) -- [actions] add automatic rebasing / merge commit blocking [`97efa53`](https://github.com/inspect-js/which-boxed-primitive/commit/97efa53a307678323e63f576c07db9ff84846fd3) -- [actions] add "Allow Edits" workflow [`fb1b4f7`](https://github.com/inspect-js/which-boxed-primitive/commit/fb1b4f7cd753fcced74ac054b20c8b2bfafe7953) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `has-symbols`, `object-inspect`, `safe-publish-latest` [`1e03c61`](https://github.com/inspect-js/which-boxed-primitive/commit/1e03c6153693d385833acc15178f675e6ce5ddd0) -- [Deps] update `is-boolean-object`, `is-number-object`, `is-string`, `is-symbol` [`13673df`](https://github.com/inspect-js/which-boxed-primitive/commit/13673dff6e43f0a915377c3e5740ec24e86d6bb7) -- [Dev Deps] update `auto-changelog`, `in-publish`, `tape` [`65a0e15`](https://github.com/inspect-js/which-boxed-primitive/commit/65a0e155fc46a9237692233a51ec9573621135d2) -- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `tape` [`f8a0afe`](https://github.com/inspect-js/which-boxed-primitive/commit/f8a0afea82938d64f3d2d240268afbd346d0c4da) -- [Deps] update `is-bigint`, `is-boolean-object` [`e7a1ce2`](https://github.com/inspect-js/which-boxed-primitive/commit/e7a1ce25371c00ee726f1c0cc5b6acf10d51ec50) -- [actions] switch Automatic Rebase workflow to `pull_request_target` event [`e46f193`](https://github.com/inspect-js/which-boxed-primitive/commit/e46f193298b158db5c8aba889803513e4ee38957) -- [Dev Deps] update `@ljharb/eslint-config`, `tape` [`df3da14`](https://github.com/inspect-js/which-boxed-primitive/commit/df3da1424552a5d22e203a0abf1710106bfd4ae2) -- [Dev Deps] update `auto-changelog`; add `aud` [`e2e8a12`](https://github.com/inspect-js/which-boxed-primitive/commit/e2e8a12c6fbf8c48e760ea1d1ccd5e8d2d6fbf24) -- [meta] add `funding` field [`7df404b`](https://github.com/inspect-js/which-boxed-primitive/commit/7df404b20cd50b2b87e6645b130fefa8ee98810e) -- [Dev Deps] update `auto-changelog` [`0d6b76d`](https://github.com/inspect-js/which-boxed-primitive/commit/0d6b76dbbe760581fa86a0c3f254988fe5d27770) -- [Tests] only audit prod deps [`246151c`](https://github.com/inspect-js/which-boxed-primitive/commit/246151cc1407b3b1ef42014db993f62670bd82ff) -- [meta] fix changelog [`c2d1685`](https://github.com/inspect-js/which-boxed-primitive/commit/c2d16856deffbf86e0b5029e69b65d8aa758ec3d) -- [readme] Fix spelling error [`25fb2b5`](https://github.com/inspect-js/which-boxed-primitive/commit/25fb2b56e1f708c6364923e4bae384f818ecf57f) - -## [v1.0.1](https://github.com/inspect-js/which-boxed-primitive/compare/v1.0.0...v1.0.1) - 2019-08-10 - -### Commits - -- [meta] avoid running `safe-publish-latest` when not publishing [`df44b27`](https://github.com/inspect-js/which-boxed-primitive/commit/df44b27875a8f5c3c596663ecb4a063f9fc7bde3) - -## v1.0.0 - 2019-08-10 - -### Commits - -- [Tests] add `.travis.yml` [`764b0cf`](https://github.com/inspect-js/which-boxed-primitive/commit/764b0cf75f8d2b3a0ad2056de5f4ad85d5d1b765) -- Initial commit [`da7d068`](https://github.com/inspect-js/which-boxed-primitive/commit/da7d068913d591294bf155db5d438f7804d71b9a) -- readme [`1395bb2`](https://github.com/inspect-js/which-boxed-primitive/commit/1395bb27b72137ac01e48ee398a0f54e93fd87f5) -- [Tests] add tests [`0ff580f`](https://github.com/inspect-js/which-boxed-primitive/commit/0ff580f99579cd4424af7b814bd76fcb69a2b04e) -- implementation [`8811c32`](https://github.com/inspect-js/which-boxed-primitive/commit/8811c3262a57963634cdc83ceb5bb2c5e9ae4e7e) -- npm init [`cffdea9`](https://github.com/inspect-js/which-boxed-primitive/commit/cffdea9755eabfa2f9ec62a6fcbce0c28f04495b) -- [Tests] add `npm run lint` [`a8be993`](https://github.com/inspect-js/which-boxed-primitive/commit/a8be9933fec1b21267acd847df77f6438e07e3b9) -- [meta] add FUNDING.yml [`941258c`](https://github.com/inspect-js/which-boxed-primitive/commit/941258c70c9a397466e05b614126cb8c7be77b99) -- Only apps should have lockfiles [`6857316`](https://github.com/inspect-js/which-boxed-primitive/commit/68573165d8ce842cdf15d94af82f8cccb961b8cf) -- [Tests] use `npx aud` in `posttest` [`ee48a91`](https://github.com/inspect-js/which-boxed-primitive/commit/ee48a9144bea23bde5cc47788a54d5aa7969d489) diff --git a/node_modules/which-boxed-primitive/LICENSE b/node_modules/which-boxed-primitive/LICENSE deleted file mode 100644 index 3900dd7..0000000 --- a/node_modules/which-boxed-primitive/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019 Jordan Harband - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/node_modules/which-boxed-primitive/README.md b/node_modules/which-boxed-primitive/README.md deleted file mode 100644 index e08f26a..0000000 --- a/node_modules/which-boxed-primitive/README.md +++ /dev/null @@ -1,73 +0,0 @@ -# which-boxed-primitive [![Version Badge][2]][1] - -[![dependency status][5]][6] -[![dev dependency status][7]][8] -[![License][license-image]][license-url] -[![Downloads][downloads-image]][downloads-url] - -[![npm badge][11]][1] - -Which kind of boxed JS primitive is this? This module works cross-realm/iframe, does not depend on `instanceof` or mutable properties, and works despite ES6 Symbol.toStringTag. - -## Example - -```js -var whichBoxedPrimitive = require('which-boxed-primitive'); -var assert = require('assert'); - -// unboxed primitives return `null` -// boxed primitives return the builtin constructor name - -assert.equal(whichBoxedPrimitive(undefined), null); -assert.equal(whichBoxedPrimitive(null), null); - -assert.equal(whichBoxedPrimitive(false), null); -assert.equal(whichBoxedPrimitive(true), null); -assert.equal(whichBoxedPrimitive(new Boolean(false)), 'Boolean'); -assert.equal(whichBoxedPrimitive(new Boolean(true)), 'Boolean'); - -assert.equal(whichBoxedPrimitive(42), null); -assert.equal(whichBoxedPrimitive(NaN), null); -assert.equal(whichBoxedPrimitive(Infinity), null); -assert.equal(whichBoxedPrimitive(new Number(42)), 'Number'); -assert.equal(whichBoxedPrimitive(new Number(NaN)), 'Number'); -assert.equal(whichBoxedPrimitive(new Number(Infinity)), 'Number'); - -assert.equal(whichBoxedPrimitive(''), null); -assert.equal(whichBoxedPrimitive('foo'), null); -assert.equal(whichBoxedPrimitive(new String('')), 'String'); -assert.equal(whichBoxedPrimitive(new String('foo')), 'String'); - -assert.equal(whichBoxedPrimitive(Symbol()), null); -assert.equal(whichBoxedPrimitive(Object(Symbol()), 'Symbol'); - -assert.equal(whichBoxedPrimitive(42n), null); -assert.equal(whichBoxedPrimitive(Object(42n), 'BigInt'); - -// non-boxed-primitive objects return `undefined` -assert.equal(whichBoxedPrimitive([]), undefined); -assert.equal(whichBoxedPrimitive({}), undefined); -assert.equal(whichBoxedPrimitive(/a/g), undefined); -assert.equal(whichBoxedPrimitive(new RegExp('a', 'g')), undefined); -assert.equal(whichBoxedPrimitive(new Date()), undefined); -assert.equal(whichBoxedPrimitive(function () {}), undefined); -assert.equal(whichBoxedPrimitive(function* () {}), undefined); -assert.equal(whichBoxedPrimitive(x => x * x), undefined); -assert.equal(whichBoxedPrimitive([]), undefined); - -``` - -## Tests -Simply clone the repo, `npm install`, and run `npm test` - -[1]: https://npmjs.org/package/which-boxed-primitive -[2]: https://versionbadg.es/inspect-js/which-boxed-primitive.svg -[5]: https://david-dm.org/inspect-js/which-boxed-primitive.svg -[6]: https://david-dm.org/inspect-js/which-boxed-primitive -[7]: https://david-dm.org/inspect-js/which-boxed-primitive/dev-status.svg -[8]: https://david-dm.org/inspect-js/which-boxed-primitive#info=devDependencies -[11]: https://nodei.co/npm/which-boxed-primitive.png?downloads=true&stars=true -[license-image]: https://img.shields.io/npm/l/which-boxed-primitive.svg -[license-url]: LICENSE -[downloads-image]: https://img.shields.io/npm/dm/which-boxed-primitive.svg -[downloads-url]: https://npm-stat.com/charts.html?package=which-boxed-primitive diff --git a/node_modules/which-boxed-primitive/index.js b/node_modules/which-boxed-primitive/index.js deleted file mode 100644 index f8ea564..0000000 --- a/node_modules/which-boxed-primitive/index.js +++ /dev/null @@ -1,30 +0,0 @@ -'use strict'; - -var isString = require('is-string'); -var isNumber = require('is-number-object'); -var isBoolean = require('is-boolean-object'); -var isSymbol = require('is-symbol'); -var isBigInt = require('is-bigint'); - -// eslint-disable-next-line consistent-return -module.exports = function whichBoxedPrimitive(value) { - // eslint-disable-next-line eqeqeq - if (value == null || (typeof value !== 'object' && typeof value !== 'function')) { - return null; - } - if (isString(value)) { - return 'String'; - } - if (isNumber(value)) { - return 'Number'; - } - if (isBoolean(value)) { - return 'Boolean'; - } - if (isSymbol(value)) { - return 'Symbol'; - } - if (isBigInt(value)) { - return 'BigInt'; - } -}; diff --git a/node_modules/which-boxed-primitive/package.json b/node_modules/which-boxed-primitive/package.json deleted file mode 100644 index 0ef53eb..0000000 --- a/node_modules/which-boxed-primitive/package.json +++ /dev/null @@ -1,65 +0,0 @@ -{ - "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 - } -} diff --git a/node_modules/which-boxed-primitive/test/index.js b/node_modules/which-boxed-primitive/test/index.js deleted file mode 100644 index f9ea998..0000000 --- a/node_modules/which-boxed-primitive/test/index.js +++ /dev/null @@ -1,66 +0,0 @@ -'use strict'; - -var test = require('tape'); -var inspect = require('object-inspect'); -var whichBoxedPrimitive = require('..'); - -var debug = function (v, m) { return inspect(v) + ' ' + m; }; - -var forEach = function (arr, func) { - var i; - for (i = 0; i < arr.length; ++i) { - func(arr[i], i, arr); - } -}; - -var hasSymbols = require('has-symbols')(); -var hasBigInts = typeof BigInt === 'function'; - -var primitives = [ - true, - false, - 42, - NaN, - Infinity, - '', - 'foo' -].concat( - hasSymbols ? [Symbol(), Symbol.iterator] : [], - hasBigInts ? BigInt(42) : [] -); - -var objects = [ - /a/g, - new Date(), - function () {}, - [], - {} -]; - -test('isBoxedPrimitive', function (t) { - t.test('unboxed primitives', function (st) { - forEach([null, undefined].concat(primitives), function (primitive) { - st.equal(null, whichBoxedPrimitive(primitive), debug(primitive, 'is a primitive, but not a boxed primitive')); - }); - st.end(); - }); - - t.test('boxed primitives', function (st) { - forEach(primitives, function (primitive) { - var boxed = Object(primitive); - var expected = boxed.constructor.name; - st.equal(typeof expected, 'string', 'expected is string'); - st.equal(whichBoxedPrimitive(boxed), expected, debug(boxed, 'is a boxed primitive: ' + expected)); - }); - st.end(); - }); - - t.test('non-primitive objects', function (st) { - forEach(objects, function (object) { - st.equal(undefined, whichBoxedPrimitive(object), debug(object, 'is not a primitive, boxed or otherwise')); - }); - st.end(); - }); - - t.end(); -}); diff --git a/node_modules/which-typed-array/.eslintignore b/node_modules/which-typed-array/.eslintignore deleted file mode 100644 index 404abb2..0000000 --- a/node_modules/which-typed-array/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -coverage/ diff --git a/node_modules/which-typed-array/CHANGELOG.md b/node_modules/which-typed-array/CHANGELOG.md index 2c4f969..300d527 100644 --- a/node_modules/which-typed-array/CHANGELOG.md +++ b/node_modules/which-typed-array/CHANGELOG.md @@ -5,7 +5,74 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -Generated by [`auto-changelog`](https://github.com/CookPete/auto-changelog). +## [v1.1.11](https://github.com/inspect-js/which-typed-array/compare/v1.1.10...v1.1.11) - 2023-07-17 + +### Commits + +- [Fix] `node < v0.6` lacks proper Object toString behavior [`b8fd654`](https://github.com/inspect-js/which-typed-array/commit/b8fd65479c0bd18385378cfae79750ebf7cb6ee7) +- [Dev Deps] update `tape` [`e1734c9`](https://github.com/inspect-js/which-typed-array/commit/e1734c99d79880ab11efa55220498a7a1e887834) + +## [v1.1.10](https://github.com/inspect-js/which-typed-array/compare/v1.1.9...v1.1.10) - 2023-07-10 + +### Commits + +- [actions] update rebase action to use reusable workflow [`2c10582`](https://github.com/inspect-js/which-typed-array/commit/2c105820d77274c079cb6d040cb348396e516ef5) +- [Robustness] use `call-bind` [`b2335fd`](https://github.com/inspect-js/which-typed-array/commit/b2335fdfca80840995eea5e6fcfffc6d712279a1) +- [Dev Deps] update `@ljharb/eslint-config`, `aud`, `tape` [`ad5e41b`](https://github.com/inspect-js/which-typed-array/commit/ad5e41ba18e7d23af1f9b211215c43a64bf75d70) + +## [v1.1.9](https://github.com/inspect-js/which-typed-array/compare/v1.1.8...v1.1.9) - 2022-11-02 + +### Commits + +- [Dev Deps] update `aud`, `is-callable`, `tape` [`9a20b3c`](https://github.com/inspect-js/which-typed-array/commit/9a20b3cb8f5d087789a8160395517bffe27b4339) +- [Refactor] use `gopd` instead of `es-abstract` helper [`00157af`](https://github.com/inspect-js/which-typed-array/commit/00157af909842b8b5affa5485d3574ec92d94065) +- [Deps] update `is-typed-array` [`6714240`](https://github.com/inspect-js/which-typed-array/commit/6714240e748cbbb634cb1e405ad762bc52acde66) +- [meta] add `sideEffects` flag [`89b96cc`](https://github.com/inspect-js/which-typed-array/commit/89b96cc3decc78d9621598e94fa1c2bb87eabf2e) + +## [v1.1.8](https://github.com/inspect-js/which-typed-array/compare/v1.1.7...v1.1.8) - 2022-05-14 + +### Commits + +- [actions] reuse common workflows [`95ea6c0`](https://github.com/inspect-js/which-typed-array/commit/95ea6c02dc5ec4ed0ee1b9c4692bb060108c8637) +- [meta] use `npmignore` to autogenerate an npmignore file [`d08436a`](https://github.com/inspect-js/which-typed-array/commit/d08436a19cdd76219732f5040a01cdb92ef2820e) +- [readme] add github actions/codecov badges [`35ae3af`](https://github.com/inspect-js/which-typed-array/commit/35ae3af6a0bb328c9d9b9bbb53e47122f269d81a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `safe-publish-latest`, `tape` [`86e6e3a`](https://github.com/inspect-js/which-typed-array/commit/86e6e3af60b2436f0ff34968d9d6240a23f40528) +- [actions] update codecov uploader [`0aa6e30`](https://github.com/inspect-js/which-typed-array/commit/0aa6e3026ab4198c4364737ed4f0315a2ecc432a) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `tape` [`a881a78`](https://github.com/inspect-js/which-typed-array/commit/a881a785f094e823e1cefe2ae9e4ebe31a8e996e) +- [Refactor] use `for-each` instead of `foreach` [`9dafa03`](https://github.com/inspect-js/which-typed-array/commit/9dafa0377fc5c690059a9d454f1dd4d365c5c902) +- [Deps] update `es-abstract`, `is-typed-array` [`0684022`](https://github.com/inspect-js/which-typed-array/commit/068402297608f321a4ec99ebce741b3eb38fcfdd) +- [Deps] update `es-abstract`, `is-typed-array` [`633a529`](https://github.com/inspect-js/which-typed-array/commit/633a529081b5c48d9675abb8aea425e6e33d528e) + +## [v1.1.7](https://github.com/inspect-js/which-typed-array/compare/v1.1.6...v1.1.7) - 2021-08-30 + +### Commits + +- [Refactor] use `globalThis` if available [`2a16d1f`](https://github.com/inspect-js/which-typed-array/commit/2a16d1fd520871ce6b23c60f0bd2113cf33b2533) +- [meta] changelog cleanup [`ba99f56`](https://github.com/inspect-js/which-typed-array/commit/ba99f56b45e6acde7aef4a1f34bb00e44088ccee) +- [Dev Deps] update `@ljharb/eslint-config` [`19a6e04`](https://github.com/inspect-js/which-typed-array/commit/19a6e04ce0094fb3fd6d0d2cbc58d320556ddf50) +- [Deps] update `available-typed-arrays` [`50dbc58`](https://github.com/inspect-js/which-typed-array/commit/50dbc5810a24c468b49409e1f0a79d03501e3dd6) +- [Deps] update `is-typed-array` [`c1b83ea`](https://github.com/inspect-js/which-typed-array/commit/c1b83eae65f042e46b6ae941ac4e814b7965a0f7) + +## [v1.1.6](https://github.com/inspect-js/which-typed-array/compare/v1.1.5...v1.1.6) - 2021-08-06 + +### Fixed + +- [Fix] if Symbol.toStringTag exists but is not present, use Object.prototype.toString [`#51`](https://github.com/inspect-js/which-typed-array/issues/51) [`#49`](https://github.com/inspect-js/which-typed-array/issues/49) + +### Commits + +- [Dev Deps] update `is-callable`, `tape` [`63eb1e3`](https://github.com/inspect-js/which-typed-array/commit/63eb1e3faede3f328bbbb4a5fcffc2e4769cf4ec) +- [Deps] update `is-typed-array` [`c5056f0`](https://github.com/inspect-js/which-typed-array/commit/c5056f0007d4c9434f1fa69eff183109468b4769) + +## [v1.1.5](https://github.com/inspect-js/which-typed-array/compare/v1.1.4...v1.1.5) - 2021-08-05 + +### Commits + +- [actions] use `node/install` instead of `node/run`; use `codecov` action [`63fa8dd`](https://github.com/inspect-js/which-typed-array/commit/63fa8dd1dc9c0f0dbbaa16d1de0eb89797324c5d) +- [Dev Deps] update `eslint`, `@ljharb/eslint-config`, `aud`, `auto-changelog`, `is-callable`, `tape` [`1107c74`](https://github.com/inspect-js/which-typed-array/commit/1107c74c52ed6eb4a719faec88e16c4343976d73) +- [Deps] update `available-typed-arrays`, `call-bind`, `es-abstract`, `is-typed-array` [`f953454`](https://github.com/inspect-js/which-typed-array/commit/f953454b2c6f589f09573ddc961431f970c2e1b6) +- [Fix] use `has-tostringtag` to behave correctly in the presence of symbol shams [`8aee720`](https://github.com/inspect-js/which-typed-array/commit/8aee7207abcd72c799ac324b214fbb6ca7ae4a28) +- [meta] use `prepublishOnly` script for npm 7+ [`6c5167b`](https://github.com/inspect-js/which-typed-array/commit/6c5167b4cd06cb62a5487a2e797d8e41cc2970b1) ## [v1.1.4](https://github.com/inspect-js/which-typed-array/compare/v1.1.3...v1.1.4) - 2020-12-05 diff --git a/node_modules/which-typed-array/README.md b/node_modules/which-typed-array/README.md index cda64c0..1b922cd 100644 --- a/node_modules/which-typed-array/README.md +++ b/node_modules/which-typed-array/README.md @@ -1,12 +1,13 @@ -# which-typed-array [![Version Badge][2]][1] +# which-typed-array [![Version Badge][npm-version-svg]][package-url] -[![Build Status][3]][4] -[![dependency status][5]][6] -[![dev dependency status][7]][8] +[![github actions][actions-image]][actions-url] +[![coverage][codecov-image]][codecov-url] +[![dependency status][deps-svg]][deps-url] +[![dev dependency status][dev-deps-svg]][dev-deps-url] [![License][license-image]][license-url] [![Downloads][downloads-image]][downloads-url] -[![npm badge][11]][1] +[![npm badge][npm-badge-png]][package-url] Which kind of Typed Array is this JavaScript value? Works cross-realm, without `instanceof`, and despite Symbol.toStringTag. @@ -52,16 +53,18 @@ assert.equal('BigUint64Array', whichTypedArray(new BigUint64Array())); ## Tests Simply clone the repo, `npm install`, and run `npm test` -[1]: https://npmjs.org/package/which-typed-array -[2]: http://versionbadg.es/inspect-js/which-typed-array.svg -[3]: https://travis-ci.org/inspect-js/which-typed-array.svg -[4]: https://travis-ci.org/inspect-js/which-typed-array -[5]: https://david-dm.org/inspect-js/which-typed-array.svg -[6]: https://david-dm.org/inspect-js/which-typed-array -[7]: https://david-dm.org/inspect-js/which-typed-array/dev-status.svg -[8]: https://david-dm.org/inspect-js/which-typed-array#info=devDependencies -[11]: https://nodei.co/npm/which-typed-array.png?downloads=true&stars=true -[license-image]: http://img.shields.io/npm/l/which-typed-array.svg +[package-url]: https://npmjs.org/package/which-typed-array +[npm-version-svg]: https://versionbadg.es/inspect-js/which-typed-array.svg +[deps-svg]: https://david-dm.org/inspect-js/which-typed-array.svg +[deps-url]: https://david-dm.org/inspect-js/which-typed-array +[dev-deps-svg]: https://david-dm.org/inspect-js/which-typed-array/dev-status.svg +[dev-deps-url]: https://david-dm.org/inspect-js/which-typed-array#info=devDependencies +[npm-badge-png]: https://nodei.co/npm/which-typed-array.png?downloads=true&stars=true +[license-image]: https://img.shields.io/npm/l/which-typed-array.svg [license-url]: LICENSE -[downloads-image]: http://img.shields.io/npm/dm/which-typed-array.svg -[downloads-url]: http://npm-stat.com/charts.html?package=which-typed-array +[downloads-image]: https://img.shields.io/npm/dm/which-typed-array.svg +[downloads-url]: https://npm-stat.com/charts.html?package=which-typed-array +[codecov-image]: https://codecov.io/gh/inspect-js/which-typed-array/branch/main/graphs/badge.svg +[codecov-url]: https://app.codecov.io/gh/inspect-js/which-typed-array/ +[actions-image]: https://img.shields.io/endpoint?url=https://github-actions-badge-u3jn4tfpocch.runkit.sh/inspect-js/which-typed-array +[actions-url]: https://github.com/inspect-js/which-typed-array/actions diff --git a/node_modules/which-typed-array/index.js b/node_modules/which-typed-array/index.js index a49a04d..16d4b5b 100644 --- a/node_modules/which-typed-array/index.js +++ b/node_modules/which-typed-array/index.js @@ -1,56 +1,89 @@ 'use strict'; -var forEach = require('foreach'); +var forEach = require('for-each'); var availableTypedArrays = require('available-typed-arrays'); +var callBind = require('call-bind'); var callBound = require('call-bind/callBound'); +var gOPD = require('gopd'); var $toString = callBound('Object.prototype.toString'); -var hasSymbols = require('has-symbols')(); -var hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); +var g = typeof globalThis === 'undefined' ? global : globalThis; var typedArrays = availableTypedArrays(); var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var gOPD = require('es-abstract/helpers/getOwnPropertyDescriptor'); var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); + +var $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) { + for (var i = 0; i < array.length; i += 1) { + if (array[i] === value) { + return i; + } + } + return -1; +}; +var cache = { __proto__: null }; if (hasToStringTag && gOPD && getPrototypeOf) { forEach(typedArrays, function (typedArray) { - if (typeof global[typedArray] === 'function') { - var arr = new global[typedArray](); - if (!(Symbol.toStringTag in arr)) { - throw new EvalError('this engine has support for Symbol.toStringTag, but ' + typedArray + ' does not have the property! Please report this.'); - } + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { var proto = getPrototypeOf(arr); var descriptor = gOPD(proto, Symbol.toStringTag); if (!descriptor) { var superProto = getPrototypeOf(proto); descriptor = gOPD(superProto, Symbol.toStringTag); } - toStrTags[typedArray] = descriptor.get; + cache['$' + typedArray] = callBind(descriptor.get); } }); +} else { + forEach(typedArrays, function (typedArray) { + var arr = new g[typedArray](); + cache['$' + typedArray] = callBind(arr.slice); + }); } var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach(toStrTags, function (getter, typedArray) { - if (!foundName) { + var found = false; + forEach(cache, function (getter, typedArray) { + if (!found) { try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; + if ('$' + getter(value) === typedArray) { + found = $slice(typedArray, 1); } - } catch (e) {} + } catch (e) { /**/ } } }); - return foundName; + return found; }; -var isTypedArray = require('is-typed-array'); +var trySlices = function tryAllSlices(value) { + var found = false; + forEach(cache, function (getter, name) { + if (!found) { + try { + getter(value); + found = $slice(name, 1); + } catch (e) { /**/ } + } + }); + return found; +}; module.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { return false; } - if (!hasToStringTag) { return $slice($toString(value), 8, -1); } + if (!value || typeof value !== 'object') { return false; } + if (!hasToStringTag) { + var tag = $slice($toString(value), 8, -1); + if ($indexOf(typedArrays, tag) > -1) { + return tag; + } + if (tag !== 'Object') { + return false; + } + // node < 0.6 hits here on real Typed Arrays + return trySlices(value); + } + if (!gOPD) { return null; } // unknown engine return tryTypedArrays(value); }; diff --git a/node_modules/which-typed-array/package.json b/node_modules/which-typed-array/package.json index 56654ca..e425746 100644 --- a/node_modules/which-typed-array/package.json +++ b/node_modules/which-typed-array/package.json @@ -1,6 +1,6 @@ { "name": "which-typed-array", - "version": "1.1.4", + "version": "1.1.11", "author": { "name": "Jordan Harband", "email": "ljharb@gmail.com", @@ -19,14 +19,17 @@ "description": "Which kind of Typed Array is this JavaScript value? Works cross-realm, without `instanceof`, and despite Symbol.toStringTag.", "license": "MIT", "main": "index.js", + "sideEffects": false, "scripts": { - "prepublish": "safe-publish-latest", + "prepack": "npmignore --auto --commentLines=autogenerated", + "prepublishOnly": "safe-publish-latest", + "prepublish": "not-in-publish || npm run prepublishOnly", "pretest": "npm run --silent lint", "test": "npm run tests-only && npm run test:harmony", "tests-only": "nyc tape test", "test:harmony": "nyc node --harmony --es-staging test", - "posttest": "npx aud --production", - "lint": "eslint .", + "posttest": "aud --production", + "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)\")\"" }, @@ -55,25 +58,25 @@ "@@toStringTag" ], "dependencies": { - "available-typed-arrays": "^1.0.2", - "call-bind": "^1.0.0", - "es-abstract": "^1.18.0-next.1", - "foreach": "^2.0.5", - "function-bind": "^1.1.1", - "has-symbols": "^1.0.1", - "is-typed-array": "^1.1.3" + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" }, "devDependencies": { - "@ljharb/eslint-config": "^17.3.0", - "aud": "^1.1.3", - "auto-changelog": "^2.2.1", - "eslint": "^7.15.0", - "is-callable": "^1.2.2", + "@ljharb/eslint-config": "^21.1.0", + "aud": "^2.0.3", + "auto-changelog": "^2.4.0", + "eslint": "=8.8.0", + "in-publish": "^2.0.1", + "is-callable": "^1.2.7", "make-arrow-function": "^1.2.0", "make-generator-function": "^2.0.0", + "npmignore": "^0.3.0", "nyc": "^10.3.2", - "safe-publish-latest": "^1.1.4", - "tape": "^5.0.1" + "safe-publish-latest": "^2.0.0", + "tape": "^5.6.5" }, "testling": { "files": "test/index.js", @@ -101,6 +104,12 @@ "template": "keepachangelog", "unreleased": false, "commitLimit": false, - "backfillLimit": false + "backfillLimit": false, + "hideCredit": true + }, + "publishConfig": { + "ignore": [ + ".github/workflows" + ] } } diff --git a/node_modules/which-typed-array/test/index.js b/node_modules/which-typed-array/test/index.js index eafe676..6d79a36 100644 --- a/node_modules/which-typed-array/test/index.js +++ b/node_modules/which-typed-array/test/index.js @@ -3,10 +3,10 @@ var test = require('tape'); var whichTypedArray = require('../'); var isCallable = require('is-callable'); -var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; +var hasToStringTag = require('has-tostringtag/shams')(); var generators = require('make-generator-function')(); var arrows = require('make-arrow-function').list(); -var forEach = require('foreach'); +var forEach = require('for-each'); var typedArrayNames = [ 'Int8Array', @@ -72,7 +72,7 @@ test('Arrow functions', { skip: arrows.length === 0 }, function (t) { t.end(); }); -test('@@toStringTag', { skip: !hasSymbols || !Symbol.toStringTag }, function (t) { +test('@@toStringTag', { skip: !hasToStringTag }, function (t) { forEach(typedArrayNames, function (typedArray) { if (typeof global[typedArray] === 'function') { var fakeTypedArray = []; @@ -90,7 +90,7 @@ test('Typed Arrays', function (t) { var TypedArray = global[typedArray]; if (isCallable(TypedArray)) { var arr = new TypedArray(10); - t.equal(typedArray, whichTypedArray(arr), 'new ' + typedArray + '(10) is typed array of type ' + typedArray); + t.equal(whichTypedArray(arr), typedArray, 'new ' + typedArray + '(10) is typed array of type ' + typedArray); } else { t.comment('# SKIP ' + typedArray + ' is not supported'); } diff --git a/package-lock.json b/package-lock.json index 7a5ba5b..fad645a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,86 +1,105 @@ { "name": "assignment5", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 3, "requires": true, - "dependencies": { - "@babel/code-frame": { + "packages": { + "": { + "name": "assignment5", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "jsdom": "^16.4.0" + }, + "devDependencies": { + "@testing-library/dom": "^7.29.0", + "@testing-library/jasmine-dom": "^1.2.0", + "browserify": "^17.0.0", + "isomorphic-fetch": "^3.0.0", + "jasmine": "^3.6.3" + } + }, + "node_modules/@babel/code-frame": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, - "requires": { + "dependencies": { "@babel/highlight": "^7.10.4" } }, - "@babel/helper-validator-identifier": { + "node_modules/@babel/helper-validator-identifier": { "version": "7.12.11", "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "@babel/highlight": { + "node_modules/@babel/highlight": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, - "requires": { + "dependencies": { "@babel/helper-validator-identifier": "^7.10.4", "chalk": "^2.0.0", "js-tokens": "^4.0.0" - }, + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, "dependencies": { - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - } + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" } }, - "@babel/runtime": { + "node_modules/@babel/runtime": { "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", "dev": true, - "requires": { + "dependencies": { "regenerator-runtime": "^0.13.4" } }, - "@babel/runtime-corejs3": { + "node_modules/@babel/runtime-corejs3": { "version": "7.12.5", "resolved": "https://registry.npmjs.org/@babel/runtime-corejs3/-/runtime-corejs3-7.12.5.tgz", "integrity": "sha512-roGr54CsTmNPPzZoCP1AmDXuBoNao7tnSA83TXTwt+UK5QVyh1DIJnrgYRPWKCF2flqZQXwa7Yr8v7VmLzF0YQ==", "dev": true, - "requires": { + "dependencies": { "core-js-pure": "^3.0.0", "regenerator-runtime": "^0.13.4" } }, - "@jest/types": { + "node_modules/@jest/types": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "^2.0.0", "@types/istanbul-reports": "^3.0.0", "@types/node": "*", "@types/yargs": "^15.0.0", "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" } }, - "@testing-library/dom": { + "node_modules/@testing-library/dom": { "version": "7.29.0", "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.29.0.tgz", "integrity": "sha512-0hhuJSmw/zLc6ewR9cVm84TehuTd7tbqBX9pRNSp8znJ9gTmSgesdbiGZtt8R6dL+2rgaPFp9Yjr7IU1HWm49w==", "dev": true, - "requires": { + "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", "@types/aria-query": "^4.2.0", @@ -89,14 +108,17 @@ "dom-accessibility-api": "^0.5.4", "lz-string": "^1.4.4", "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">=10" } }, - "@testing-library/jasmine-dom": { + "node_modules/@testing-library/jasmine-dom": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@testing-library/jasmine-dom/-/jasmine-dom-1.2.0.tgz", "integrity": "sha512-GgXkbHt6O20yWAituKUxqHc2JydHILpGNSBO6ZBSyNxawA2v5FqHvgq8myXR3cClqMl54OUYDYWCMVCgVZRbGg==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.12.5", "@types/testing-library__jasmine-dom": "^1.0.3", "aria-query": "^4.2.2", @@ -106,554 +128,1665 @@ "lodash": "^4.17.20" } }, - "@types/aria-query": { + "node_modules/@types/aria-query": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-4.2.0.tgz", "integrity": "sha512-iIgQNzCm0v7QMhhe4Jjn9uRh+I6GoPmt03CbEtwx3ao8/EfoQcmgtqH4vQ5Db/lxiIGaWDv6nwvunuh0RyX0+A==", "dev": true }, - "@types/istanbul-lib-coverage": { + "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==", "dev": true }, - "@types/istanbul-lib-report": { + "node_modules/@types/istanbul-lib-report": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-coverage": "*" } }, - "@types/istanbul-reports": { + "node_modules/@types/istanbul-reports": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.0.tgz", "integrity": "sha512-nwKNbvnwJ2/mndE9ItP/zc2TCzw6uuodnF4EHYWD+gCQDVBuRQL5UzbZD0/ezy1iKsFU2ZQiDqg4M9dN4+wZgA==", "dev": true, - "requires": { + "dependencies": { "@types/istanbul-lib-report": "*" } }, - "@types/jasmine": { + "node_modules/@types/jasmine": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.6.2.tgz", "integrity": "sha512-AzfesNFLvOs6Q1mHzIsVJXSeUnqVh4ZHG8ngygKJfbkcSLwzrBVm/LKa+mR8KrOfnWtUL47112gde1MC0IXqpQ==", "dev": true }, - "@types/node": { + "node_modules/@types/node": { "version": "14.14.16", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.16.tgz", "integrity": "sha512-naXYePhweTi+BMv11TgioE2/FXU4fSl29HAH1ffxVciNsH3rYXjNP2yM8wqmSm7jS20gM8TIklKiTen+1iVncw==", "dev": true }, - "@types/testing-library__jasmine-dom": { + "node_modules/@types/testing-library__jasmine-dom": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/testing-library__jasmine-dom/-/testing-library__jasmine-dom-1.0.3.tgz", "integrity": "sha512-5EdYMvXLBs8CJymNtersZcXlhTVUWb0Z3W5E57tjwglZrztCr8TXxfTqFj4fVAKDGb7YiFa/9AYrfu6N+thcdQ==", "dev": true, - "requires": { + "dependencies": { "@types/jasmine": "*" } }, - "@types/yargs": { + "node_modules/@types/yargs": { "version": "15.0.12", "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.12.tgz", "integrity": "sha512-f+fD/fQAo3BCbCDlrUpznF1A5Zp9rB0noS5vnoormHSIPFKL0Z2DcUJ3Gxp5ytH4uLRNxy7AwYUC9exZzqGMAw==", "dev": true, - "requires": { + "dependencies": { "@types/yargs-parser": "*" } }, - "@types/yargs-parser": { + "node_modules/@types/yargs-parser": { "version": "20.2.0", "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==", "dev": true }, - "abab": { + "node_modules/abab": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" }, - "acorn": { + "node_modules/acorn": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==" + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } }, - "acorn-globals": { + "node_modules/acorn-globals": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", - "requires": { + "dependencies": { "acorn": "^7.1.1", "acorn-walk": "^7.1.1" } }, - "acorn-walk": { + "node_modules/acorn-node": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/acorn-node/-/acorn-node-1.8.2.tgz", + "integrity": "sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==", + "dev": true, + "dependencies": { + "acorn": "^7.0.0", + "acorn-walk": "^7.0.0", + "xtend": "^4.0.2" + } + }, + "node_modules/acorn-walk": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", - "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==" + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } }, - "ajv": { + "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "requires": { + "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" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" } }, - "ansi-regex": { + "node_modules/ansi-regex": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true + "dev": true, + "engines": { + "node": ">=8" + } }, - "ansi-styles": { + "node_modules/ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, - "requires": { + "dependencies": { "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" } }, - "aria-query": { + "node_modules/aria-query": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-4.2.2.tgz", "integrity": "sha512-o/HelwhuKpTj/frsOsbNLNgnNGVIFsVP/SW2BSF14gVl7kAfMOJ6/8wUAUvG1R1NHKrfG+2sHZTu0yauT1qBrA==", "dev": true, - "requires": { + "dependencies": { "@babel/runtime": "^7.10.2", "@babel/runtime-corejs3": "^7.10.2" + }, + "engines": { + "node": ">=6.0" } }, - "asn1": { + "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "requires": { + "dependencies": { "safer-buffer": "~2.1.0" } }, - "assert-plus": { + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", + "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha512-8nWq2nLTAwd02jTqJExUYFSD/fKq6VH9Y/oG2accc/kdI0V98Bag8d5a4gi3XHz73rDWa2PvTtvcWYquKqSENA==", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha512-5KiHfsmkqacuKjkRkdV7SsfDJ2EGiPsK92s2MhNSY0craxjTdKTtqKsJaCWp4LW33ZZ0OPUv1WO/TFvNQRiQxQ==", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } }, - "asynckit": { + "node_modules/asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, - "atob": { + "node_modules/atob": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/available-typed-arrays": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", + "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "aws-sign2": { + "node_modules/aws-sign2": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "engines": { + "node": "*" + } }, - "aws4": { + "node_modules/aws4": { "version": "1.11.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, - "bcrypt-pbkdf": { + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bcrypt-pbkdf": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "requires": { + "dependencies": { "tweetnacl": "^0.14.3" } }, - "browser-process-hrtime": { + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==", + "dev": true + }, + "node_modules/browser-pack": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/browser-pack/-/browser-pack-6.1.0.tgz", + "integrity": "sha512-erYug8XoqzU3IfcU8fUgyHqyOXqIE4tUTTQ+7mqUjQlvnXkOO6OlT9c/ZoJVHYoAaqGxr09CN53G7XIsO4KtWA==", + "dev": true, + "dependencies": { + "combine-source-map": "~0.8.0", + "defined": "^1.0.0", + "JSONStream": "^1.0.3", + "safe-buffer": "^5.1.1", + "through2": "^2.0.0", + "umd": "^3.0.0" + }, + "bin": { + "browser-pack": "bin/cmd.js" + } + }, + "node_modules/browser-process-hrtime": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" }, - "caseless": { + "node_modules/browser-resolve": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-2.0.0.tgz", + "integrity": "sha512-7sWsQlYL2rGLy2IWm8WL8DCTJvYLc/qlOnsakDac87SOoCd16WLsaAMdCiAqsTNHIe+SXfaqyxyo6THoWqs8WQ==", + "dev": true, + "dependencies": { + "resolve": "^1.17.0" + } + }, + "node_modules/browserify": { + "version": "17.0.0", + "resolved": "https://registry.npmjs.org/browserify/-/browserify-17.0.0.tgz", + "integrity": "sha512-SaHqzhku9v/j6XsQMRxPyBrSP3gnwmE27gLJYZgMT2GeK3J0+0toN+MnuNYDfHwVGQfLiMZ7KSNSIXHemy905w==", + "dev": true, + "dependencies": { + "assert": "^1.4.0", + "browser-pack": "^6.0.1", + "browser-resolve": "^2.0.0", + "browserify-zlib": "~0.2.0", + "buffer": "~5.2.1", + "cached-path-relative": "^1.0.0", + "concat-stream": "^1.6.0", + "console-browserify": "^1.1.0", + "constants-browserify": "~1.0.0", + "crypto-browserify": "^3.0.0", + "defined": "^1.0.0", + "deps-sort": "^2.0.1", + "domain-browser": "^1.2.0", + "duplexer2": "~0.1.2", + "events": "^3.0.0", + "glob": "^7.1.0", + "has": "^1.0.0", + "htmlescape": "^1.1.0", + "https-browserify": "^1.0.0", + "inherits": "~2.0.1", + "insert-module-globals": "^7.2.1", + "JSONStream": "^1.0.3", + "labeled-stream-splicer": "^2.0.0", + "mkdirp-classic": "^0.5.2", + "module-deps": "^6.2.3", + "os-browserify": "~0.3.0", + "parents": "^1.0.1", + "path-browserify": "^1.0.0", + "process": "~0.11.0", + "punycode": "^1.3.2", + "querystring-es3": "~0.2.0", + "read-only-stream": "^2.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.1.4", + "shasum-object": "^1.0.0", + "shell-quote": "^1.6.1", + "stream-browserify": "^3.0.0", + "stream-http": "^3.0.0", + "string_decoder": "^1.1.1", + "subarg": "^1.0.0", + "syntax-error": "^1.1.1", + "through2": "^2.0.0", + "timers-browserify": "^1.0.1", + "tty-browserify": "0.0.1", + "url": "~0.11.0", + "util": "~0.12.0", + "vm-browserify": "^1.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "browserify": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dev": true, + "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.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dev": true, + "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.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dev": true, + "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.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dev": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", + "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserify/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.2.1.tgz", + "integrity": "sha512-c+Ko0loDaFfuPWiL02ls9Xd3GO3cPVmUobQ6t3rXNUk304u6hGq+8N/kFi+QEIKhzK3uwolVhLzszmfLmMLnqg==", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", + "dev": true + }, + "node_modules/cached-path-relative": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/cached-path-relative/-/cached-path-relative-1.1.0.tgz", + "integrity": "sha512-WF0LihfemtesFcJgO7xfOoOcnWzY/QHR4qeDqV44jPU3HTI54+LnfXK3SA27AVVGCdZFgjjFFaqUA9Jx7dMJZA==", + "dev": true + }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/caseless": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" }, - "chalk": { + "node_modules/chalk": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", "dev": true, - "requires": { + "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/chalk/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/chalk/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/chalk/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/chalk/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/chalk/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" } }, - "color-convert": { + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, - "requires": { + "dependencies": { "color-name": "1.1.3" } }, - "color-name": { + "node_modules/color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, - "combined-stream": { + "node_modules/combine-source-map": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/combine-source-map/-/combine-source-map-0.8.0.tgz", + "integrity": "sha512-UlxQ9Vw0b/Bt/KYwCFqdEwsQ1eL8d1gibiFb7lxQJFdvTgc2hIZi6ugsg+kyhzhPV+QEpUiEIwInIAIrgoEkrg==", + "dev": true, + "dependencies": { + "convert-source-map": "~1.1.0", + "inline-source-map": "~0.6.0", + "lodash.memoize": "~3.0.3", + "source-map": "~0.5.3" + } + }, + "node_modules/combine-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/combined-stream": { "version": "1.0.8", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { + "dependencies": { "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" } }, - "core-js-pure": { + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", + "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", + "dev": true + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.1.3.tgz", + "integrity": "sha512-Y8L5rp6jo+g9VEPgvqNfEopjTR4OTYct8lXlS8iVQdmnjDvbdbzYe9rjtFCB9egC86JoNCU61WRY+ScjkZpnIg==", + "dev": true + }, + "node_modules/core-js-pure": { "version": "3.8.1", "resolved": "https://registry.npmjs.org/core-js-pure/-/core-js-pure-3.8.1.tgz", "integrity": "sha512-Se+LaxqXlVXGvmexKGPvnUIYC1jwXu1H6Pkyb3uBM5d8/NELMYCHs/4/roD7721NxrTLyv7e5nXd5/QLBO+10g==", - "dev": true + "deprecated": "core-js-pure@<3.23.3 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. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js-pure.", + "dev": true, + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } }, - "core-util-is": { + "node_modules/core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "css": { + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dev": true, + "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.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dev": true, + "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/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dev": true, + "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": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, - "requires": { + "dependencies": { "inherits": "^2.0.4", "source-map": "^0.6.1", "source-map-resolve": "^0.6.0" } }, - "css.escape": { + "node_modules/css.escape": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/css.escape/-/css.escape-1.5.1.tgz", "integrity": "sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=", "dev": true }, - "cssom": { + "node_modules/cssom": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" }, - "cssstyle": { + "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "requires": { + "dependencies": { "cssom": "~0.3.6" }, - "dependencies": { - "cssom": { - "version": "0.3.8", - "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", - "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" - } + "engines": { + "node": ">=8" } }, - "dashdash": { + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/dash-ast": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dash-ast/-/dash-ast-1.0.0.tgz", + "integrity": "sha512-Vy4dx7gquTeMcQR/hDkYLGUnwVil6vk4FOOct+djUnHOUWt+zJPJAaRIXaAFkPXtJjvlY7o3rfRu0/3hpnwoUA==", + "dev": true + }, + "node_modules/dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "requires": { + "dependencies": { "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" } }, - "data-urls": { + "node_modules/data-urls": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", - "requires": { + "dependencies": { "abab": "^2.0.3", "whatwg-mimetype": "^2.3.0", "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" } }, - "decimal.js": { + "node_modules/decimal.js": { "version": "10.2.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" }, - "decode-uri-component": { + "node_modules/decode-uri-component": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.10" + } }, - "deep-is": { + "node_modules/deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, - "delayed-stream": { + "node_modules/defined": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.1.tgz", + "integrity": "sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/deps-sort": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/deps-sort/-/deps-sort-2.0.1.tgz", + "integrity": "sha512-1orqXQr5po+3KI6kQb9A4jnXT1PBwggGl2d7Sq2xsnOeI9GPcE/tGcF9UiSZtZBM7MukY4cAh7MemS6tZYipfw==", + "dev": true, + "dependencies": { + "JSONStream": "^1.0.3", + "shasum-object": "^1.0.0", + "subarg": "^1.0.0", + "through2": "^2.0.0" + }, + "bin": { + "deps-sort": "bin/cmd.js" + } + }, + "node_modules/des.js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.1.0.tgz", + "integrity": "sha512-r17GxjhUCjSRy8aiJpr8/UadFIzMzJGexI3Nmz4ADi9LYSFx4gTBp80+NaX/YsXWWLhpZ7v/v/ubEc/bCNfKwg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/detective": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/detective/-/detective-5.2.1.tgz", + "integrity": "sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.8.2", + "defined": "^1.0.0", + "minimist": "^1.2.6" + }, + "bin": { + "detective": "bin/detective.js" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true }, - "dom-accessibility-api": { + "node_modules/dom-accessibility-api": { "version": "0.5.4", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.4.tgz", "integrity": "sha512-TvrjBckDy2c6v6RLxPv5QXOnU+SmF9nBII5621Ve5fu6Z/BDrENurBEvlC1f44lKEUVqOpK4w9E5Idc5/EgkLQ==", "dev": true }, - "domexception": { + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", + "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domexception": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", - "requires": { + "dependencies": { "webidl-conversions": "^5.0.0" }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/duplexer2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", + "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==", + "dev": true, "dependencies": { - "webidl-conversions": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", - "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" - } + "readable-stream": "^2.0.2" } }, - "ecc-jsbn": { + "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "requires": { + "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, - "escape-string-regexp": { + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true + "dev": true, + "engines": { + "node": ">=0.8.0" + } }, - "escodegen": { + "node_modules/escodegen": { "version": "1.14.3", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz", "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==", - "requires": { + "dependencies": { "esprima": "^4.0.1", "estraverse": "^4.2.0", "esutils": "^2.0.2", - "optionator": "^0.8.1", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { "source-map": "~0.6.1" } }, - "esprima": { + "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } }, - "estraverse": { + "node_modules/estraverse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "engines": { + "node": ">=4.0" + } }, - "esutils": { + "node_modules/esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } }, - "extend": { + "node_modules/extend": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" }, - "extsprintf": { + "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "engines": [ + "node >=0.6.0" + ] }, - "fast-deep-equal": { + "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, - "fast-json-stable-stringify": { + "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" }, - "fast-levenshtein": { + "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" }, - "forever-agent": { + "node_modules/fast-safe-stringify": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz", + "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==", + "dev": true + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "engines": { + "node": "*" + } }, - "form-data": { + "node_modules/form-data": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "requires": { + "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.6", "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-assigned-identifiers": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", + "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==", + "dev": true + }, + "node_modules/get-intrinsic": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", + "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "getpass": { + "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "requires": { + "dependencies": { "assert-plus": "^1.0.0" } }, - "har-schema": { + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "engines": { + "node": ">=4" + } }, - "har-validator": { + "node_modules/har-validator": { "version": "5.1.5", "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "requires": { + "deprecated": "this library is no longer supported", + "dependencies": { "ajv": "^6.12.3", "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" } }, - "has-flag": { + "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", + "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dev": true, + "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.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } }, - "html-encoding-sniffer": { + "node_modules/html-encoding-sniffer": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", - "requires": { + "dependencies": { "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/htmlescape": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/htmlescape/-/htmlescape-1.1.1.tgz", + "integrity": "sha512-eVcrzgbR4tim7c7soKQKtxa/kQM4TzjnlU83rcZ9bHU6t31ehfV7SktN6McWgwPWg+JYMA/O3qpGxBvFq1z2Jg==", + "dev": true, + "engines": { + "node": ">=0.10" } }, - "http-signature": { + "node_modules/http-signature": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "requires": { + "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^1.2.2", "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" } }, - "iconv-lite": { + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", + "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", + "dev": true + }, + "node_modules/iconv-lite": { "version": "0.4.24", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "requires": { + "dependencies": { "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" } }, - "inherits": { + "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "ip-regex": { + "node_modules/inline-source-map": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/inline-source-map/-/inline-source-map-0.6.2.tgz", + "integrity": "sha512-0mVWSSbNDvedDWIN4wxLsdPM4a7cIPcpyMxj3QZ406QRwQ6ePGB1YIHxVPjqpcUGbWQ5C+nHTwGNWAGvt7ggVA==", + "dev": true, + "dependencies": { + "source-map": "~0.5.3" + } + }, + "node_modules/inline-source-map/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/insert-module-globals": { + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/insert-module-globals/-/insert-module-globals-7.2.1.tgz", + "integrity": "sha512-ufS5Qq9RZN+Bu899eA9QCAYThY+gGW7oRkmb0vC93Vlyu/CFGcH0OYPEjVkDXA5FEbTt1+VWzdoOD3Ny9N+8tg==", + "dev": true, + "dependencies": { + "acorn-node": "^1.5.2", + "combine-source-map": "^0.8.0", + "concat-stream": "^1.6.1", + "is-buffer": "^1.1.0", + "JSONStream": "^1.0.3", + "path-is-absolute": "^1.0.1", + "process": "~0.11.0", + "through2": "^2.0.0", + "undeclared-identifiers": "^1.1.2", + "xtend": "^4.0.0" + }, + "bin": { + "insert-module-globals": "bin/cmd.js" + } + }, + "node_modules/ip-regex": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "engines": { + "node": ">=4" + } + }, + "node_modules/is-arguments": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz", + "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "dev": true + }, + "node_modules/is-callable": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-core-module": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", + "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-generator-function": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", + "integrity": "sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "is-potential-custom-element-name": { + "node_modules/is-potential-custom-element-name": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz", "integrity": "sha1-DFLlS8yjkbssSUsh6GJtczbG45c=" }, - "is-typedarray": { + "node_modules/is-typed-array": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", + "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.11" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" }, - "isomorphic-fetch": { + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==", + "dev": true + }, + "node_modules/isomorphic-fetch": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-3.0.0.tgz", "integrity": "sha512-qvUtwJ3j6qwsF3jLxkZ72qCgjMysPzDfeV240JHiGZsANBYd+EEuu35v7dfrJ9Up0Ak07D7GGSkGhCHTqg/5wA==", "dev": true, - "requires": { + "dependencies": { "node-fetch": "^2.6.1", "whatwg-fetch": "^3.4.1" } }, - "isstream": { + "node_modules/isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, - "js-tokens": { + "node_modules/jasmine": { + "version": "3.99.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-3.99.0.tgz", + "integrity": "sha512-YIThBuHzaIIcjxeuLmPD40SjxkEcc8i//sGMDKCgkRMVgIwRJf5qyExtlJpQeh7pkeoBSOe6lQEdg+/9uKg9mw==", + "dev": true, + "dependencies": { + "glob": "^7.1.6", + "jasmine-core": "~3.99.0" + }, + "bin": { + "jasmine": "bin/jasmine.js" + } + }, + "node_modules/jasmine-core": { + "version": "3.99.1", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.99.1.tgz", + "integrity": "sha512-Hu1dmuoGcZ7AfyynN3LsfruwMbxMALMka+YtZeGoLuDEySVmVAPaonkNoBRIw/ectu8b9tVQCJNgp4a4knp+tg==", + "dev": true + }, + "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, - "jsbn": { + "node_modules/jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=" }, - "jsdom": { + "node_modules/jsdom": { "version": "16.4.0", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.4.0.tgz", "integrity": "sha512-lYMm3wYdgPhrl7pDcRmvzPhhrGVBeVhPIqeHjzeiHN3DFmD1RBpbExbi8vU7BJdH8VAZYovR8DMt0PNNDM7k8w==", - "requires": { + "dependencies": { "abab": "^2.0.3", "acorn": "^7.1.1", "acorn-globals": "^6.0.0", @@ -680,186 +1813,589 @@ "whatwg-url": "^8.0.0", "ws": "^7.2.3", "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "canvas": "^2.5.0" + }, + "peerDependenciesMeta": { + "canvas": { + "optional": true + } } }, - "json-schema": { + "node_modules/json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" }, - "json-schema-traverse": { + "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" }, - "json-stringify-safe": { + "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" }, - "jsprim": { + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "dev": true, + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dev": true, + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "requires": { + "engines": [ + "node >=0.6.0" + ], + "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.2.3", "verror": "1.10.0" } }, - "levn": { + "node_modules/labeled-stream-splicer": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/labeled-stream-splicer/-/labeled-stream-splicer-2.0.2.tgz", + "integrity": "sha512-Ca4LSXFFZUjPScRaqOcFxneA0VpKZr4MMYCljyQr4LIewTLb3Y0IUTIsnBBsVubIeEfxeSZpSjSsRM8APEQaAw==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "stream-splicer": "^2.0.0" + } + }, + "node_modules/levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "requires": { + "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" } }, - "lodash": { + "node_modules/lodash": { "version": "4.17.20", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==" }, - "lodash.sortby": { + "node_modules/lodash.memoize": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", + "integrity": "sha512-eDn9kqrAmVUC1wmZvlQ6Uhde44n+tXpqPrN8olQJbttgh0oKclk+SF54P47VEGE9CEiMeRwAP8BaM7UHvBkz2A==", + "dev": true + }, + "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=" }, - "lz-string": { + "node_modules/lz-string": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.4.4.tgz", "integrity": "sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=", + "dev": true, + "bin": { + "lz-string": "bin/bin.js" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", "dev": true }, - "mime-db": { + "node_modules/mime-db": { "version": "1.44.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz", - "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==" + "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg==", + "engines": { + "node": ">= 0.6" + } }, - "mime-types": { + "node_modules/mime-types": { "version": "2.1.27", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz", "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==", - "requires": { + "dependencies": { "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, + "node_modules/module-deps": { + "version": "6.2.3", + "resolved": "https://registry.npmjs.org/module-deps/-/module-deps-6.2.3.tgz", + "integrity": "sha512-fg7OZaQBcL4/L+AK5f4iVqf9OMbCclXfy/znXRxTVhJSeW5AIlS9AwheYwDaXM3lVW7OBeaeUEY3gbaC6cLlSA==", + "dev": true, + "dependencies": { + "browser-resolve": "^2.0.0", + "cached-path-relative": "^1.0.2", + "concat-stream": "~1.6.0", + "defined": "^1.0.0", + "detective": "^5.2.0", + "duplexer2": "^0.1.2", + "inherits": "^2.0.1", + "JSONStream": "^1.0.3", + "parents": "^1.0.0", + "readable-stream": "^2.0.2", + "resolve": "^1.4.0", + "stream-combiner2": "^1.1.1", + "subarg": "^1.0.0", + "through2": "^2.0.0", + "xtend": "^4.0.0" + }, + "bin": { + "module-deps": "bin/cmd.js" + }, + "engines": { + "node": ">= 0.8.0" } }, - "node-fetch": { + "node_modules/node-fetch": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "dev": true + "dev": true, + "engines": { + "node": "4.x || >=6.0.0" + } }, - "nwsapi": { + "node_modules/nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" }, - "oauth-sign": { + "node_modules/oauth-sign": { "version": "0.9.0", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==" + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "engines": { + "node": "*" + } }, - "optionator": { + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", + "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "requires": { + "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/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", + "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", + "dev": true + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", + "dev": true + }, + "node_modules/parents": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parents/-/parents-1.0.1.tgz", + "integrity": "sha512-mXKF3xkoUt5td2DoxpLmtOmZvko9VfFpwRwkKDHSNvgmpLAeBo18YDhcPbBzJq+QLCHMbGOfzia2cX4U+0v9Mg==", + "dev": true, + "dependencies": { + "path-platform": "~0.11.15" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dev": true, + "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" } }, - "parse5": { + "node_modules/parse5": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==" }, - "performance-now": { + "node_modules/path-browserify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", + "dev": true + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-platform": { + "version": "0.11.15", + "resolved": "https://registry.npmjs.org/path-platform/-/path-platform-0.11.15.tgz", + "integrity": "sha512-Y30dB6rab1A/nfEKsZxmr01nUotHX0c/ZiIAsCTatEe1CmS5Pm5He7fZ195bPT7RdquoaL8lLxFCMQi/bS7IJg==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dev": true, + "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.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" }, - "prelude-ls": { + "node_modules/prelude-ls": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", - "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=" + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } }, - "pretty-format": { + "node_modules/pretty-format": { "version": "26.6.2", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", "dev": true, - "requires": { + "dependencies": { "@jest/types": "^26.6.2", "ansi-regex": "^5.0.0", "ansi-styles": "^4.0.0", "react-is": "^17.0.1" }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - } + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/pretty-format/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, - "psl": { + "node_modules/pretty-format/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "node_modules/psl": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" }, - "punycode": { + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dev": true, + "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.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "dev": true + }, + "node_modules/punycode": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } }, - "qs": { + "node_modules/qs": { "version": "6.5.2", "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==" + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", + "dev": true, + "engines": { + "node": ">=0.4.x" + } }, - "react-is": { + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { "version": "17.0.1", "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz", "integrity": "sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==", "dev": true }, - "regenerator-runtime": { + "node_modules/read-only-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-only-stream/-/read-only-stream-2.0.0.tgz", + "integrity": "sha512-3ALe0bjBVZtkdWKIcThYpQCLbBMd/+Tbh2CDSrAIDO3UsZ4Xs+tnyjv2MjCOMMgBG+AsUOeuP1cgtY1INISc8w==", + "dev": true, + "dependencies": { + "readable-stream": "^2.0.2" + } + }, + "node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readable-stream/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "node_modules/readable-stream/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/regenerator-runtime": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", "dev": true }, - "request": { + "node_modules/request": { "version": "2.88.2", "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "requires": { + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", @@ -881,85 +2417,217 @@ "tunnel-agent": "^0.6.0", "uuid": "^3.3.2" }, - "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } + "engines": { + "node": ">= 6" } }, - "request-promise-core": { + "node_modules/request-promise-core": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.4.tgz", "integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==", - "requires": { + "dependencies": { "lodash": "^4.17.19" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" } }, - "request-promise-native": { + "node_modules/request-promise-native": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.9.tgz", "integrity": "sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g==", - "requires": { + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dependencies": { "request-promise-core": "1.1.4", "stealthy-require": "^1.1.1", "tough-cookie": "^2.3.3" }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dependencies": { - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - } - } + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" } }, - "safe-buffer": { + "node_modules/request/node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/resolve": { + "version": "1.22.4", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.4.tgz", + "integrity": "sha512-PXNdCiPqDqeUou+w1C2eTQbNfxKSuMxqTCuvlmmMsk1NWHL5fRrhY6Pl0qEYYc6+QqGClco1Qj8XnjPego4wfg==", + "dev": true, + "dependencies": { + "is-core-module": "^2.13.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] }, - "safer-buffer": { + "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, - "saxes": { + "node_modules/saxes": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", - "requires": { + "dependencies": { "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shasum-object": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shasum-object/-/shasum-object-1.0.0.tgz", + "integrity": "sha512-Iqo5rp/3xVi6M4YheapzZhhGPVs0yZwHj7wvwQ1B9z8H6zk+FEnI7y3Teq7qwnekfEhu8WmG2z0z4iWZaxLWVg==", + "dev": true, + "dependencies": { + "fast-safe-stringify": "^2.0.7" + } + }, + "node_modules/shell-quote": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "source-map": { + "node_modules/simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "devOptional": true, + "engines": { + "node": ">=0.10.0" + } }, - "source-map-resolve": { + "node_modules/source-map-resolve": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", "dev": true, - "requires": { + "dependencies": { "atob": "^2.1.2", "decode-uri-component": "^0.2.0" } }, - "sshpk": { + "node_modules/sshpk": { "version": "1.16.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "requires": { + "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", @@ -969,158 +2637,483 @@ "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" } }, - "stealthy-require": { + "node_modules/stealthy-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", - "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=" + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "engines": { + "node": ">=0.10.0" + } }, - "supports-color": { + "node_modules/stream-browserify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-3.0.0.tgz", + "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", + "dev": true, + "dependencies": { + "inherits": "~2.0.4", + "readable-stream": "^3.5.0" + } + }, + "node_modules/stream-browserify/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-combiner2": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/stream-combiner2/-/stream-combiner2-1.1.1.tgz", + "integrity": "sha512-3PnJbYgS56AeWgtKF5jtJRT6uFJe56Z0Hc5Ngg/6sI6rIt8iiMBTa9cvdyFfpMQjaVHr8dusbNeFGIIonxOvKw==", + "dev": true, + "dependencies": { + "duplexer2": "~0.1.0", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-http": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-3.2.0.tgz", + "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "xtend": "^4.0.2" + } + }, + "node_modules/stream-http/node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/stream-splicer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-splicer/-/stream-splicer-2.0.1.tgz", + "integrity": "sha512-Xizh4/NPuYSyAXyT7g8IvdJ9HJpxIGL9PjyhtywCZvvP0OPIdqyrr4dMikeuvY8xahpdKEBlBTySe583totajg==", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dev": true, + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/subarg": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/subarg/-/subarg-1.0.0.tgz", + "integrity": "sha512-RIrIdRY0X1xojthNcVtgT9sjpOGagEUKpZdgBUi054OEPFo282yg+zE+t1Rj3+RqKq2xStL7uUHhY+AjbC4BXg==", + "dev": true, + "dependencies": { + "minimist": "^1.1.0" + } + }, + "node_modules/supports-color": { "version": "5.5.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "dev": true, - "requires": { + "dependencies": { "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "symbol-tree": { + "node_modules/symbol-tree": { "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, - "tough-cookie": { + "node_modules/syntax-error": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/syntax-error/-/syntax-error-1.4.0.tgz", + "integrity": "sha512-YPPlu67mdnHGTup2A8ff7BC2Pjq0e0Yp/IyTFN03zWO0RcK07uLcbi7C2KpGR2FvWbaB0+bfE27a+sBKebSo7w==", + "dev": true, + "dependencies": { + "acorn-node": "^1.2.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", + "dev": true + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/timers-browserify": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-1.4.2.tgz", + "integrity": "sha512-PIxwAupJZiYU4JmVZYwXp9FKsHMXb5h0ZEFyuXTAn8WLHOlcij+FEcbrvDsom1o5dr1YggEtFbECvGCW2sT53Q==", + "dev": true, + "dependencies": { + "process": "~0.11.0" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/tough-cookie": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-3.0.1.tgz", "integrity": "sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg==", - "requires": { + "dependencies": { "ip-regex": "^2.1.0", "psl": "^1.1.28", "punycode": "^2.1.1" + }, + "engines": { + "node": ">=6" } }, - "tr46": { + "node_modules/tr46": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.0.2.tgz", "integrity": "sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg==", - "requires": { + "dependencies": { "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" } }, - "tunnel-agent": { + "node_modules/tty-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", + "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", + "dev": true + }, + "node_modules/tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "requires": { + "dependencies": { "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" } }, - "tweetnacl": { + "node_modules/tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=" }, - "type-check": { + "node_modules/type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "requires": { + "dependencies": { "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", + "dev": true + }, + "node_modules/umd": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/umd/-/umd-3.0.3.tgz", + "integrity": "sha512-4IcGSufhFshvLNcMCV80UnQVlZ5pMOC8mvNPForqwA4+lzYQuetTESLDQkeLmihq8bRcnpbQa48Wb8Lh16/xow==", + "dev": true, + "bin": { + "umd": "bin/cli.js" + } + }, + "node_modules/undeclared-identifiers": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/undeclared-identifiers/-/undeclared-identifiers-1.1.3.tgz", + "integrity": "sha512-pJOW4nxjlmfwKApE4zvxLScM/njmwj/DiUBv7EabwE4O8kRUy+HIwxQtZLBPll/jx1LJyBcqNfB3/cpv9EZwOw==", + "dev": true, + "dependencies": { + "acorn-node": "^1.3.0", + "dash-ast": "^1.0.0", + "get-assigned-identifiers": "^1.2.0", + "simple-concat": "^1.0.0", + "xtend": "^4.0.1" + }, + "bin": { + "undeclared-identifiers": "bin.js" } }, - "uri-js": { + "node_modules/uri-js": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", - "requires": { + "dependencies": { "punycode": "^2.1.0" } }, - "uuid": { + "node_modules/url": { + "version": "0.11.1", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.1.tgz", + "integrity": "sha512-rWS3H04/+mzzJkv0eZ7vEDGiQbgquI1fGfOad6zKvgYQi1SzMmhl7c/DdRGxhaWrVH6z0qWITo8rpnxK/RfEhA==", + "dev": true, + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", + "dev": true + }, + "node_modules/url/node_modules/qs": { + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", + "dev": true, + "dependencies": { + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">=0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util": { + "version": "0.12.5", + "resolved": "https://registry.npmjs.org/util/-/util-0.12.5.tgz", + "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "is-arguments": "^1.0.4", + "is-generator-function": "^1.0.7", + "is-typed-array": "^1.1.3", + "which-typed-array": "^1.1.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "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" + } }, - "verror": { + "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "requires": { + "engines": [ + "node >=0.6.0" + ], + "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, - "w3c-hr-time": { + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", + "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", + "dev": true + }, + "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", - "requires": { + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dependencies": { "browser-process-hrtime": "^1.0.0" } }, - "w3c-xmlserializer": { + "node_modules/w3c-xmlserializer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", - "requires": { + "dependencies": { "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" } }, - "webidl-conversions": { + "node_modules/webidl-conversions": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", - "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==" + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } }, - "whatwg-encoding": { + "node_modules/whatwg-encoding": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", - "requires": { + "dependencies": { "iconv-lite": "0.4.24" } }, - "whatwg-fetch": { + "node_modules/whatwg-fetch": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz", "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==", "dev": true }, - "whatwg-mimetype": { + "node_modules/whatwg-mimetype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" }, - "whatwg-url": { + "node_modules/whatwg-url": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.4.0.tgz", "integrity": "sha512-vwTUFf6V4zhcPkWp/4CQPr1TW9Ml6SF4lVyaIMBdJw5i6qUUJ1QWM4Z6YYVkfka0OUIzVo/0aNtGVGk256IKWw==", - "requires": { + "dependencies": { "lodash.sortby": "^4.7.0", "tr46": "^2.0.2", "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" } }, - "word-wrap": { + "node_modules/which-typed-array": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz", + "integrity": "sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.5", + "call-bind": "^1.0.2", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==" + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } }, - "ws": { + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/ws": { "version": "7.4.1", "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz", - "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==" + "integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } }, - "xml-name-validator": { + "node_modules/xml-name-validator": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, - "xmlchars": { + "node_modules/xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "dev": true, + "engines": { + "node": ">=0.4" + } } } } diff --git a/script.js b/script.js index 80569e3..50c9570 100644 --- a/script.js +++ b/script.js @@ -1,16 +1,42 @@ + +//const { formSubmission } = require("./scriptHelper"); + +//const { pickPlanet } = require("./scriptHelper"); + +//const { formSubmission } = require("./scriptHelper"); + // Write your JavaScript code here! window.addEventListener("load", function() { - - let listedPlanets; + let form = document.querySelector("form"); + + form.addEventListener("submit", function(event) { + event.preventDefault(); + let faultyItems1 = document.getElementById("faultyItems"); + faultyItems1.visibility = "invisible"; + let pilotName1 = document.querySelector("input[name=pilotName]").value; + let copilotName1 = document.querySelector("input[name=copilotName]").value; + let fuelLevel1 = document.querySelector("input[name=fuelLevel]").value; + let cargoLevel1 = document.querySelector("input[name=cargoMass]").value; + if (pilotName1 === "" || copilotName1 === "" || fuelLevel1 === "" || cargoLevel1 === "") { + alert("All fields are required!"); + + } + formSubmission(document, faultyItems1, pilotName1, copilotName1, fuelLevel1, cargoLevel1) + let form = document.querySelector("form"); + }); + + let listedPlanets; // Set listedPlanetsResponse equal to the value returned by calling myFetch() - let listedPlanetsResponse; + let listedPlanetsResponse = myFetch(); listedPlanetsResponse.then(function (result) { listedPlanets = result; console.log(listedPlanets); }).then(function () { console.log(listedPlanets); // Below this comment call the appropriate helper functions to pick a planet fom the list of planets and add that information to your destination. + let assignedPlanet = pickPlanet(listedPlanets) + addDestinationInfo(document, assignedPlanet.name, assignedPlanet.diameter, assignedPlanet.star, assignedPlanet.distance, assignedPlanet.moons, assignedPlanet.image) }) - -}); \ No newline at end of file + }); + diff --git a/scriptHelper.js b/scriptHelper.js index 132331f..26240b9 100644 --- a/scriptHelper.js +++ b/scriptHelper.js @@ -2,40 +2,82 @@ require('isomorphic-fetch'); function addDestinationInfo(document, name, diameter, star, distance, moons, imageUrl) { - // Here is the HTML formatting for our mission target div. - /* + let info = document.getElementById("missionTarget") + info.innerHTML = + `

Mission Destination

    -
  1. Name:
  2. -
  3. Diameter:
  4. +
  5. Name:${name}
  6. +
  7. Diameter:${diameter}
  8. Star: ${star}
  9. -
  10. Distance from Earth:
  11. -
  12. Number of Moons:
  13. +
  14. Distance from Earth:${distance}
  15. +
  16. Number of Moons:${moons}
- - */ + + ` } + + function validateInput(testInput) { - + if(testInput === ""){ + return "Empty"; + } else if(isNaN(testInput)){ + return "Not a Number"; + } else if(!isNaN(testInput)){ + return "is a Number"; + } + + } + function formSubmission(document, list, pilot, copilot, fuelLevel, cargoLevel) { - + let pStatus = document.getElementById("pilotStatus") + let cpStatus = document.getElementById("copilotStatus") + if(validateInput(pilot) == "Empty" || validateInput(pilot) == "is a Number"){ + return alert("pilot name required")} else {pStatus.innerText = `${pilot} is ready`} + if(validateInput(copilot) == "Empty" || validateInput(copilot) == "is a Number"){ + return alert("copilot name required")} else {cpStatus.innerText = `${copilot} is ready`} + let fuelStatus = document.getElementById("fuelStatus") + let cargoStatus = document.getElementById("cargoStatus") + let launchStatus = document.getElementById("launchStatus") + + if((validateInput(fuelLevel) == "Not a Number") || validateInput(fuelLevel) == "Empty"){ + return alert("fuel number required")} else if(fuelLevel < 10000) { + list.style.visibility = "visible"; + fuelStatus.innerText = "Not enough fuel for launch"; + launchStatus.innerText = "Shuttle not ready for launch"; + launchStatus.style.color = 'red'; + } + if((validateInput(cargoLevel) == "Not a Number") || validateInput(cargoLevel) == "Empty"){ + return alert("cargo number required")} else if(cargoLevel > 10000) { + list.style.visibility = "visible"; + cargoStatus.innerText = "Too much mass for the shuttle to take off"; + launchStatus.innerText = "Shuttle not ready for launch"; + launchStatus.style.color = "#C7254E"; + } + if(cargoLevel < 10000 && fuelLevel > 10000){ + launchStatus.innerText = "Shuttle ready for launch"; + launchStatus.style.color = "#419F6A"; + } } async function myFetch() { let planetsReturned; - planetsReturned = await fetch().then( function(response) { - }); + planetsReturned = await fetch("https://handlers.education.launchcode.org/static/planets.json").then( function(response) { + return response.json()}); return planetsReturned; } function pickPlanet(planets) { + randPlanet = Math.floor(Math.random()*planets.length) + return planets[randPlanet]; } + module.exports.addDestinationInfo = addDestinationInfo; module.exports.validateInput = validateInput; module.exports.formSubmission = formSubmission;