Upload 656 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +2 -0
- bottaiko/Novo Documento de Texto.txt +0 -0
- bottaiko/macro.exe +0 -0
- bottaiko/node_modules/.bin/detect-libc +12 -0
- bottaiko/node_modules/.bin/detect-libc.cmd +17 -0
- bottaiko/node_modules/.bin/detect-libc.ps1 +28 -0
- bottaiko/node_modules/.bin/mkdirp +12 -0
- bottaiko/node_modules/.bin/mkdirp.cmd +17 -0
- bottaiko/node_modules/.bin/mkdirp.ps1 +28 -0
- bottaiko/node_modules/.bin/nugget +12 -0
- bottaiko/node_modules/.bin/nugget.cmd +17 -0
- bottaiko/node_modules/.bin/nugget.ps1 +28 -0
- bottaiko/node_modules/.bin/prebuild-install +12 -0
- bottaiko/node_modules/.bin/prebuild-install.cmd +17 -0
- bottaiko/node_modules/.bin/prebuild-install.ps1 +28 -0
- bottaiko/node_modules/.bin/rc +12 -0
- bottaiko/node_modules/.bin/rc.cmd +17 -0
- bottaiko/node_modules/.bin/rc.ps1 +28 -0
- bottaiko/node_modules/.bin/semver +12 -0
- bottaiko/node_modules/.bin/semver.cmd +17 -0
- bottaiko/node_modules/.bin/semver.ps1 +28 -0
- bottaiko/node_modules/.bin/sshpk-conv +12 -0
- bottaiko/node_modules/.bin/sshpk-conv.cmd +17 -0
- bottaiko/node_modules/.bin/sshpk-conv.ps1 +28 -0
- bottaiko/node_modules/.bin/sshpk-sign +12 -0
- bottaiko/node_modules/.bin/sshpk-sign.cmd +17 -0
- bottaiko/node_modules/.bin/sshpk-sign.ps1 +28 -0
- bottaiko/node_modules/.bin/sshpk-verify +12 -0
- bottaiko/node_modules/.bin/sshpk-verify.cmd +17 -0
- bottaiko/node_modules/.bin/sshpk-verify.ps1 +28 -0
- bottaiko/node_modules/.bin/uuid +12 -0
- bottaiko/node_modules/.bin/uuid.cmd +17 -0
- bottaiko/node_modules/.bin/uuid.ps1 +28 -0
- bottaiko/node_modules/.package-lock.json +622 -0
- bottaiko/node_modules/ahk/.editorconfig +9 -0
- bottaiko/node_modules/ahk/.eslintrc.json +15 -0
- bottaiko/node_modules/ahk/README.md +239 -0
- bottaiko/node_modules/ahk/index.js +1 -0
- bottaiko/node_modules/ahk/jest.config.js +191 -0
- bottaiko/node_modules/ahk/lib/ahk.js +63 -0
- bottaiko/node_modules/ahk/package.json +37 -0
- bottaiko/node_modules/ahk/test/ahk.test.js +297 -0
- bottaiko/node_modules/ansi-regex/index.js +4 -0
- bottaiko/node_modules/ansi-regex/license +21 -0
- bottaiko/node_modules/ansi-regex/package.json +64 -0
- bottaiko/node_modules/ansi-regex/readme.md +39 -0
- bottaiko/node_modules/aproba/LICENSE +14 -0
- bottaiko/node_modules/aproba/README.md +94 -0
- bottaiko/node_modules/aproba/index.js +105 -0
- bottaiko/node_modules/aproba/package.json +34 -0
.gitattributes
CHANGED
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
36 |
+
bottaiko/node_modules/robotjs/build/Release/obj/robotjs/src/robotjs.obj filter=lfs diff=lfs merge=lfs -text
|
37 |
+
bottaiko/node_modules/robotjs/build/Release/robotjs.pdb filter=lfs diff=lfs merge=lfs -text
|
bottaiko/Novo Documento de Texto.txt
ADDED
File without changes
|
bottaiko/macro.exe
ADDED
Binary file (916 kB). View file
|
|
bottaiko/node_modules/.bin/detect-libc
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../detect-libc/bin/detect-libc.js" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../detect-libc/bin/detect-libc.js" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/detect-libc.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\detect-libc\bin\detect-libc.js" %*
|
bottaiko/node_modules/.bin/detect-libc.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../detect-libc/bin/detect-libc.js" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/mkdirp
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../mkdirp/bin/cmd.js" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../mkdirp/bin/cmd.js" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/mkdirp.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\mkdirp\bin\cmd.js" %*
|
bottaiko/node_modules/.bin/mkdirp.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../mkdirp/bin/cmd.js" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/nugget
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../nugget/bin.js" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../nugget/bin.js" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/nugget.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nugget\bin.js" %*
|
bottaiko/node_modules/.bin/nugget.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../nugget/bin.js" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../nugget/bin.js" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../nugget/bin.js" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../nugget/bin.js" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/prebuild-install
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../prebuild-install/bin.js" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../prebuild-install/bin.js" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/prebuild-install.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\prebuild-install\bin.js" %*
|
bottaiko/node_modules/.bin/prebuild-install.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../prebuild-install/bin.js" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../prebuild-install/bin.js" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../prebuild-install/bin.js" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../prebuild-install/bin.js" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/rc
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../rc/cli.js" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../rc/cli.js" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/rc.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rc\cli.js" %*
|
bottaiko/node_modules/.bin/rc.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../rc/cli.js" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../rc/cli.js" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../rc/cli.js" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../rc/cli.js" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/semver
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../semver/bin/semver" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../semver/bin/semver" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/semver.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\semver\bin\semver" %*
|
bottaiko/node_modules/.bin/semver.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../semver/bin/semver" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../semver/bin/semver" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../semver/bin/semver" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../semver/bin/semver" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/sshpk-conv
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../sshpk/bin/sshpk-conv" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/sshpk-conv.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-conv" %*
|
bottaiko/node_modules/.bin/sshpk-conv.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../sshpk/bin/sshpk-conv" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/sshpk-sign
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../sshpk/bin/sshpk-sign" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/sshpk-sign.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-sign" %*
|
bottaiko/node_modules/.bin/sshpk-sign.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../sshpk/bin/sshpk-sign" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/sshpk-verify
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../sshpk/bin/sshpk-verify" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/sshpk-verify.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\sshpk\bin\sshpk-verify" %*
|
bottaiko/node_modules/.bin/sshpk-verify.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../sshpk/bin/sshpk-verify" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.bin/uuid
ADDED
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/bin/sh
|
2 |
+
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
|
3 |
+
|
4 |
+
case `uname` in
|
5 |
+
*CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;;
|
6 |
+
esac
|
7 |
+
|
8 |
+
if [ -x "$basedir/node" ]; then
|
9 |
+
exec "$basedir/node" "$basedir/../uuid/bin/uuid" "$@"
|
10 |
+
else
|
11 |
+
exec node "$basedir/../uuid/bin/uuid" "$@"
|
12 |
+
fi
|
bottaiko/node_modules/.bin/uuid.cmd
ADDED
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
@ECHO off
|
2 |
+
GOTO start
|
3 |
+
:find_dp0
|
4 |
+
SET dp0=%~dp0
|
5 |
+
EXIT /b
|
6 |
+
:start
|
7 |
+
SETLOCAL
|
8 |
+
CALL :find_dp0
|
9 |
+
|
10 |
+
IF EXIST "%dp0%\node.exe" (
|
11 |
+
SET "_prog=%dp0%\node.exe"
|
12 |
+
) ELSE (
|
13 |
+
SET "_prog=node"
|
14 |
+
SET PATHEXT=%PATHEXT:;.JS;=;%
|
15 |
+
)
|
16 |
+
|
17 |
+
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\uuid\bin\uuid" %*
|
bottaiko/node_modules/.bin/uuid.ps1
ADDED
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
#!/usr/bin/env pwsh
|
2 |
+
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
3 |
+
|
4 |
+
$exe=""
|
5 |
+
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
6 |
+
# Fix case when both the Windows and Linux builds of Node
|
7 |
+
# are installed in the same directory
|
8 |
+
$exe=".exe"
|
9 |
+
}
|
10 |
+
$ret=0
|
11 |
+
if (Test-Path "$basedir/node$exe") {
|
12 |
+
# Support pipeline input
|
13 |
+
if ($MyInvocation.ExpectingInput) {
|
14 |
+
$input | & "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args
|
15 |
+
} else {
|
16 |
+
& "$basedir/node$exe" "$basedir/../uuid/bin/uuid" $args
|
17 |
+
}
|
18 |
+
$ret=$LASTEXITCODE
|
19 |
+
} else {
|
20 |
+
# Support pipeline input
|
21 |
+
if ($MyInvocation.ExpectingInput) {
|
22 |
+
$input | & "node$exe" "$basedir/../uuid/bin/uuid" $args
|
23 |
+
} else {
|
24 |
+
& "node$exe" "$basedir/../uuid/bin/uuid" $args
|
25 |
+
}
|
26 |
+
$ret=$LASTEXITCODE
|
27 |
+
}
|
28 |
+
exit $ret
|
bottaiko/node_modules/.package-lock.json
ADDED
@@ -0,0 +1,622 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "bottaiko",
|
3 |
+
"version": "1.0.0",
|
4 |
+
"lockfileVersion": 3,
|
5 |
+
"requires": true,
|
6 |
+
"packages": {
|
7 |
+
"node_modules/ahk": {
|
8 |
+
"version": "1.0.2",
|
9 |
+
"resolved": "https://registry.npmjs.org/ahk/-/ahk-1.0.2.tgz",
|
10 |
+
"integrity": "sha512-wlc87NHSY4eBRGee2uMmSb2iuI+Lt1hSGIlghFQIrCmP7s7fv4bgaRJQGwVKwu4dTZJPQ7d8A3/HzyLn37z/1A=="
|
11 |
+
},
|
12 |
+
"node_modules/ansi-regex": {
|
13 |
+
"version": "2.1.1",
|
14 |
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
15 |
+
"integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
|
16 |
+
"engines": {
|
17 |
+
"node": ">=0.10.0"
|
18 |
+
}
|
19 |
+
},
|
20 |
+
"node_modules/aproba": {
|
21 |
+
"version": "1.2.0",
|
22 |
+
"resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
|
23 |
+
"integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
|
24 |
+
},
|
25 |
+
"node_modules/are-we-there-yet": {
|
26 |
+
"version": "1.1.7",
|
27 |
+
"resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
|
28 |
+
"integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
|
29 |
+
"dependencies": {
|
30 |
+
"delegates": "^1.0.0",
|
31 |
+
"readable-stream": "^2.0.6"
|
32 |
+
}
|
33 |
+
},
|
34 |
+
"node_modules/base64-js": {
|
35 |
+
"version": "1.5.1",
|
36 |
+
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
37 |
+
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
38 |
+
"funding": [
|
39 |
+
{
|
40 |
+
"type": "github",
|
41 |
+
"url": "https://github.com/sponsors/feross"
|
42 |
+
},
|
43 |
+
{
|
44 |
+
"type": "patreon",
|
45 |
+
"url": "https://www.patreon.com/feross"
|
46 |
+
},
|
47 |
+
{
|
48 |
+
"type": "consulting",
|
49 |
+
"url": "https://feross.org/support"
|
50 |
+
}
|
51 |
+
]
|
52 |
+
},
|
53 |
+
"node_modules/bl": {
|
54 |
+
"version": "4.1.0",
|
55 |
+
"resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz",
|
56 |
+
"integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==",
|
57 |
+
"dependencies": {
|
58 |
+
"buffer": "^5.5.0",
|
59 |
+
"inherits": "^2.0.4",
|
60 |
+
"readable-stream": "^3.4.0"
|
61 |
+
}
|
62 |
+
},
|
63 |
+
"node_modules/bl/node_modules/readable-stream": {
|
64 |
+
"version": "3.6.2",
|
65 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
66 |
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
67 |
+
"dependencies": {
|
68 |
+
"inherits": "^2.0.3",
|
69 |
+
"string_decoder": "^1.1.1",
|
70 |
+
"util-deprecate": "^1.0.1"
|
71 |
+
},
|
72 |
+
"engines": {
|
73 |
+
"node": ">= 6"
|
74 |
+
}
|
75 |
+
},
|
76 |
+
"node_modules/buffer": {
|
77 |
+
"version": "5.7.1",
|
78 |
+
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
79 |
+
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
80 |
+
"funding": [
|
81 |
+
{
|
82 |
+
"type": "github",
|
83 |
+
"url": "https://github.com/sponsors/feross"
|
84 |
+
},
|
85 |
+
{
|
86 |
+
"type": "patreon",
|
87 |
+
"url": "https://www.patreon.com/feross"
|
88 |
+
},
|
89 |
+
{
|
90 |
+
"type": "consulting",
|
91 |
+
"url": "https://feross.org/support"
|
92 |
+
}
|
93 |
+
],
|
94 |
+
"dependencies": {
|
95 |
+
"base64-js": "^1.3.1",
|
96 |
+
"ieee754": "^1.1.13"
|
97 |
+
}
|
98 |
+
},
|
99 |
+
"node_modules/chownr": {
|
100 |
+
"version": "1.1.4",
|
101 |
+
"resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
|
102 |
+
"integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
|
103 |
+
},
|
104 |
+
"node_modules/code-point-at": {
|
105 |
+
"version": "1.1.0",
|
106 |
+
"resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
|
107 |
+
"integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
|
108 |
+
"engines": {
|
109 |
+
"node": ">=0.10.0"
|
110 |
+
}
|
111 |
+
},
|
112 |
+
"node_modules/console-control-strings": {
|
113 |
+
"version": "1.1.0",
|
114 |
+
"resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
|
115 |
+
"integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
|
116 |
+
},
|
117 |
+
"node_modules/core-util-is": {
|
118 |
+
"version": "1.0.3",
|
119 |
+
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
|
120 |
+
"integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
|
121 |
+
},
|
122 |
+
"node_modules/decompress-response": {
|
123 |
+
"version": "4.2.1",
|
124 |
+
"resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
|
125 |
+
"integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
|
126 |
+
"dependencies": {
|
127 |
+
"mimic-response": "^2.0.0"
|
128 |
+
},
|
129 |
+
"engines": {
|
130 |
+
"node": ">=8"
|
131 |
+
}
|
132 |
+
},
|
133 |
+
"node_modules/deep-extend": {
|
134 |
+
"version": "0.6.0",
|
135 |
+
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
|
136 |
+
"integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
|
137 |
+
"engines": {
|
138 |
+
"node": ">=4.0.0"
|
139 |
+
}
|
140 |
+
},
|
141 |
+
"node_modules/delegates": {
|
142 |
+
"version": "1.0.0",
|
143 |
+
"resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
|
144 |
+
"integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
|
145 |
+
},
|
146 |
+
"node_modules/detect-libc": {
|
147 |
+
"version": "1.0.3",
|
148 |
+
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
|
149 |
+
"integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
|
150 |
+
"bin": {
|
151 |
+
"detect-libc": "bin/detect-libc.js"
|
152 |
+
},
|
153 |
+
"engines": {
|
154 |
+
"node": ">=0.10"
|
155 |
+
}
|
156 |
+
},
|
157 |
+
"node_modules/end-of-stream": {
|
158 |
+
"version": "1.4.4",
|
159 |
+
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
|
160 |
+
"integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
|
161 |
+
"dependencies": {
|
162 |
+
"once": "^1.4.0"
|
163 |
+
}
|
164 |
+
},
|
165 |
+
"node_modules/expand-template": {
|
166 |
+
"version": "2.0.3",
|
167 |
+
"resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
|
168 |
+
"integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==",
|
169 |
+
"engines": {
|
170 |
+
"node": ">=6"
|
171 |
+
}
|
172 |
+
},
|
173 |
+
"node_modules/fs-constants": {
|
174 |
+
"version": "1.0.0",
|
175 |
+
"resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
|
176 |
+
"integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
|
177 |
+
},
|
178 |
+
"node_modules/gauge": {
|
179 |
+
"version": "2.7.4",
|
180 |
+
"resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
|
181 |
+
"integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
|
182 |
+
"dependencies": {
|
183 |
+
"aproba": "^1.0.3",
|
184 |
+
"console-control-strings": "^1.0.0",
|
185 |
+
"has-unicode": "^2.0.0",
|
186 |
+
"object-assign": "^4.1.0",
|
187 |
+
"signal-exit": "^3.0.0",
|
188 |
+
"string-width": "^1.0.1",
|
189 |
+
"strip-ansi": "^3.0.1",
|
190 |
+
"wide-align": "^1.1.0"
|
191 |
+
}
|
192 |
+
},
|
193 |
+
"node_modules/github-from-package": {
|
194 |
+
"version": "0.0.0",
|
195 |
+
"resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
|
196 |
+
"integrity": "sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw=="
|
197 |
+
},
|
198 |
+
"node_modules/has-unicode": {
|
199 |
+
"version": "2.0.1",
|
200 |
+
"resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
|
201 |
+
"integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
|
202 |
+
},
|
203 |
+
"node_modules/ieee754": {
|
204 |
+
"version": "1.2.1",
|
205 |
+
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
206 |
+
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
207 |
+
"funding": [
|
208 |
+
{
|
209 |
+
"type": "github",
|
210 |
+
"url": "https://github.com/sponsors/feross"
|
211 |
+
},
|
212 |
+
{
|
213 |
+
"type": "patreon",
|
214 |
+
"url": "https://www.patreon.com/feross"
|
215 |
+
},
|
216 |
+
{
|
217 |
+
"type": "consulting",
|
218 |
+
"url": "https://feross.org/support"
|
219 |
+
}
|
220 |
+
]
|
221 |
+
},
|
222 |
+
"node_modules/inherits": {
|
223 |
+
"version": "2.0.4",
|
224 |
+
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
225 |
+
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
|
226 |
+
},
|
227 |
+
"node_modules/ini": {
|
228 |
+
"version": "1.3.8",
|
229 |
+
"resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
|
230 |
+
"integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
|
231 |
+
},
|
232 |
+
"node_modules/is-fullwidth-code-point": {
|
233 |
+
"version": "1.0.0",
|
234 |
+
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
235 |
+
"integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
|
236 |
+
"dependencies": {
|
237 |
+
"number-is-nan": "^1.0.0"
|
238 |
+
},
|
239 |
+
"engines": {
|
240 |
+
"node": ">=0.10.0"
|
241 |
+
}
|
242 |
+
},
|
243 |
+
"node_modules/isarray": {
|
244 |
+
"version": "1.0.0",
|
245 |
+
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
246 |
+
"integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
|
247 |
+
},
|
248 |
+
"node_modules/mimic-response": {
|
249 |
+
"version": "2.1.0",
|
250 |
+
"resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
|
251 |
+
"integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==",
|
252 |
+
"engines": {
|
253 |
+
"node": ">=8"
|
254 |
+
},
|
255 |
+
"funding": {
|
256 |
+
"url": "https://github.com/sponsors/sindresorhus"
|
257 |
+
}
|
258 |
+
},
|
259 |
+
"node_modules/minimist": {
|
260 |
+
"version": "1.2.8",
|
261 |
+
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
|
262 |
+
"integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
|
263 |
+
"funding": {
|
264 |
+
"url": "https://github.com/sponsors/ljharb"
|
265 |
+
}
|
266 |
+
},
|
267 |
+
"node_modules/mkdirp-classic": {
|
268 |
+
"version": "0.5.3",
|
269 |
+
"resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
|
270 |
+
"integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
|
271 |
+
},
|
272 |
+
"node_modules/ms": {
|
273 |
+
"version": "2.1.3",
|
274 |
+
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
275 |
+
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
|
276 |
+
},
|
277 |
+
"node_modules/nan": {
|
278 |
+
"version": "2.18.0",
|
279 |
+
"resolved": "https://registry.npmjs.org/nan/-/nan-2.18.0.tgz",
|
280 |
+
"integrity": "sha512-W7tfG7vMOGtD30sHoZSSc/JVYiyDPEyQVso/Zz+/uQd0B0L46gtC+pHha5FFMRpil6fm/AoEcRWyOVi4+E/f8w=="
|
281 |
+
},
|
282 |
+
"node_modules/napi-build-utils": {
|
283 |
+
"version": "1.0.2",
|
284 |
+
"resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
|
285 |
+
"integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
|
286 |
+
},
|
287 |
+
"node_modules/node-abi": {
|
288 |
+
"version": "2.30.1",
|
289 |
+
"resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
|
290 |
+
"integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
|
291 |
+
"dependencies": {
|
292 |
+
"semver": "^5.4.1"
|
293 |
+
}
|
294 |
+
},
|
295 |
+
"node_modules/node-ahk": {
|
296 |
+
"version": "1.0.7",
|
297 |
+
"resolved": "https://registry.npmjs.org/node-ahk/-/node-ahk-1.0.7.tgz",
|
298 |
+
"integrity": "sha512-lGpe2ncq65eAIog1vP/QrxcF0OV1Py+sYylRpur0f3rurApeeN8rhrxxiMzN55DWJAF4zV5bpuu478MsRH8UfA==",
|
299 |
+
"dependencies": {
|
300 |
+
"ms": "^2.1.2",
|
301 |
+
"read-ini-file": "^3.0.0"
|
302 |
+
}
|
303 |
+
},
|
304 |
+
"node_modules/noop-logger": {
|
305 |
+
"version": "0.1.1",
|
306 |
+
"resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
|
307 |
+
"integrity": "sha512-6kM8CLXvuW5crTxsAtva2YLrRrDaiTIkIePWs9moLHqbFWT94WpNFjwS/5dfLfECg5i/lkmw3aoqVidxt23TEQ=="
|
308 |
+
},
|
309 |
+
"node_modules/npmlog": {
|
310 |
+
"version": "4.1.2",
|
311 |
+
"resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
|
312 |
+
"integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
|
313 |
+
"dependencies": {
|
314 |
+
"are-we-there-yet": "~1.1.2",
|
315 |
+
"console-control-strings": "~1.1.0",
|
316 |
+
"gauge": "~2.7.3",
|
317 |
+
"set-blocking": "~2.0.0"
|
318 |
+
}
|
319 |
+
},
|
320 |
+
"node_modules/number-is-nan": {
|
321 |
+
"version": "1.0.1",
|
322 |
+
"resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
|
323 |
+
"integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
|
324 |
+
"engines": {
|
325 |
+
"node": ">=0.10.0"
|
326 |
+
}
|
327 |
+
},
|
328 |
+
"node_modules/object-assign": {
|
329 |
+
"version": "4.1.1",
|
330 |
+
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
|
331 |
+
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
|
332 |
+
"engines": {
|
333 |
+
"node": ">=0.10.0"
|
334 |
+
}
|
335 |
+
},
|
336 |
+
"node_modules/once": {
|
337 |
+
"version": "1.4.0",
|
338 |
+
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
|
339 |
+
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
|
340 |
+
"dependencies": {
|
341 |
+
"wrappy": "1"
|
342 |
+
}
|
343 |
+
},
|
344 |
+
"node_modules/prebuild-install": {
|
345 |
+
"version": "5.3.6",
|
346 |
+
"resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz",
|
347 |
+
"integrity": "sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg==",
|
348 |
+
"dependencies": {
|
349 |
+
"detect-libc": "^1.0.3",
|
350 |
+
"expand-template": "^2.0.3",
|
351 |
+
"github-from-package": "0.0.0",
|
352 |
+
"minimist": "^1.2.3",
|
353 |
+
"mkdirp-classic": "^0.5.3",
|
354 |
+
"napi-build-utils": "^1.0.1",
|
355 |
+
"node-abi": "^2.7.0",
|
356 |
+
"noop-logger": "^0.1.1",
|
357 |
+
"npmlog": "^4.0.1",
|
358 |
+
"pump": "^3.0.0",
|
359 |
+
"rc": "^1.2.7",
|
360 |
+
"simple-get": "^3.0.3",
|
361 |
+
"tar-fs": "^2.0.0",
|
362 |
+
"tunnel-agent": "^0.6.0",
|
363 |
+
"which-pm-runs": "^1.0.0"
|
364 |
+
},
|
365 |
+
"bin": {
|
366 |
+
"prebuild-install": "bin.js"
|
367 |
+
},
|
368 |
+
"engines": {
|
369 |
+
"node": ">=6"
|
370 |
+
}
|
371 |
+
},
|
372 |
+
"node_modules/process-nextick-args": {
|
373 |
+
"version": "2.0.1",
|
374 |
+
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
375 |
+
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
376 |
+
},
|
377 |
+
"node_modules/pump": {
|
378 |
+
"version": "3.0.0",
|
379 |
+
"resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
|
380 |
+
"integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
|
381 |
+
"dependencies": {
|
382 |
+
"end-of-stream": "^1.1.0",
|
383 |
+
"once": "^1.3.1"
|
384 |
+
}
|
385 |
+
},
|
386 |
+
"node_modules/rc": {
|
387 |
+
"version": "1.2.8",
|
388 |
+
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
|
389 |
+
"integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
|
390 |
+
"dependencies": {
|
391 |
+
"deep-extend": "^0.6.0",
|
392 |
+
"ini": "~1.3.0",
|
393 |
+
"minimist": "^1.2.0",
|
394 |
+
"strip-json-comments": "~2.0.1"
|
395 |
+
},
|
396 |
+
"bin": {
|
397 |
+
"rc": "cli.js"
|
398 |
+
}
|
399 |
+
},
|
400 |
+
"node_modules/read-ini-file": {
|
401 |
+
"version": "3.1.0",
|
402 |
+
"resolved": "https://registry.npmjs.org/read-ini-file/-/read-ini-file-3.1.0.tgz",
|
403 |
+
"integrity": "sha512-yfpbqijWt63cx6FWJyOxwUPm7v24Xchr6oROjhYhB0Ca0lbDLHSXDm6k5yMGJU/q1xfzcV4XbgQ98kk65ilNkQ==",
|
404 |
+
"dependencies": {
|
405 |
+
"ini": "^2.0.0",
|
406 |
+
"strip-bom": "^4.0.0"
|
407 |
+
},
|
408 |
+
"engines": {
|
409 |
+
"node": ">=10.13"
|
410 |
+
}
|
411 |
+
},
|
412 |
+
"node_modules/read-ini-file/node_modules/ini": {
|
413 |
+
"version": "2.0.0",
|
414 |
+
"resolved": "https://registry.npmjs.org/ini/-/ini-2.0.0.tgz",
|
415 |
+
"integrity": "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==",
|
416 |
+
"engines": {
|
417 |
+
"node": ">=10"
|
418 |
+
}
|
419 |
+
},
|
420 |
+
"node_modules/readable-stream": {
|
421 |
+
"version": "2.3.8",
|
422 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz",
|
423 |
+
"integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==",
|
424 |
+
"dependencies": {
|
425 |
+
"core-util-is": "~1.0.0",
|
426 |
+
"inherits": "~2.0.3",
|
427 |
+
"isarray": "~1.0.0",
|
428 |
+
"process-nextick-args": "~2.0.0",
|
429 |
+
"safe-buffer": "~5.1.1",
|
430 |
+
"string_decoder": "~1.1.1",
|
431 |
+
"util-deprecate": "~1.0.1"
|
432 |
+
}
|
433 |
+
},
|
434 |
+
"node_modules/robotjs": {
|
435 |
+
"version": "0.6.0",
|
436 |
+
"resolved": "https://registry.npmjs.org/robotjs/-/robotjs-0.6.0.tgz",
|
437 |
+
"integrity": "sha512-6pRWI3d+CBZqCXT/rsJfabbZoELua+jTeXilG27F8Jvix/J2BYZ0O7Tly2WCmXyqw5xYdCvOwvCeLRHEtXkt4w==",
|
438 |
+
"hasInstallScript": true,
|
439 |
+
"dependencies": {
|
440 |
+
"nan": "^2.14.0",
|
441 |
+
"node-abi": "^2.13.0",
|
442 |
+
"prebuild-install": "^5.3.3"
|
443 |
+
}
|
444 |
+
},
|
445 |
+
"node_modules/safe-buffer": {
|
446 |
+
"version": "5.1.2",
|
447 |
+
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
448 |
+
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
449 |
+
},
|
450 |
+
"node_modules/semver": {
|
451 |
+
"version": "5.7.2",
|
452 |
+
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
|
453 |
+
"integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
|
454 |
+
"bin": {
|
455 |
+
"semver": "bin/semver"
|
456 |
+
}
|
457 |
+
},
|
458 |
+
"node_modules/set-blocking": {
|
459 |
+
"version": "2.0.0",
|
460 |
+
"resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
|
461 |
+
"integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
|
462 |
+
},
|
463 |
+
"node_modules/signal-exit": {
|
464 |
+
"version": "3.0.7",
|
465 |
+
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
|
466 |
+
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
|
467 |
+
},
|
468 |
+
"node_modules/simple-concat": {
|
469 |
+
"version": "1.0.1",
|
470 |
+
"resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
|
471 |
+
"integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==",
|
472 |
+
"funding": [
|
473 |
+
{
|
474 |
+
"type": "github",
|
475 |
+
"url": "https://github.com/sponsors/feross"
|
476 |
+
},
|
477 |
+
{
|
478 |
+
"type": "patreon",
|
479 |
+
"url": "https://www.patreon.com/feross"
|
480 |
+
},
|
481 |
+
{
|
482 |
+
"type": "consulting",
|
483 |
+
"url": "https://feross.org/support"
|
484 |
+
}
|
485 |
+
]
|
486 |
+
},
|
487 |
+
"node_modules/simple-get": {
|
488 |
+
"version": "3.1.1",
|
489 |
+
"resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.1.tgz",
|
490 |
+
"integrity": "sha512-CQ5LTKGfCpvE1K0n2us+kuMPbk/q0EKl82s4aheV9oXjFEz6W/Y7oQFVJuU6QG77hRT4Ghb5RURteF5vnWjupA==",
|
491 |
+
"dependencies": {
|
492 |
+
"decompress-response": "^4.2.0",
|
493 |
+
"once": "^1.3.1",
|
494 |
+
"simple-concat": "^1.0.0"
|
495 |
+
}
|
496 |
+
},
|
497 |
+
"node_modules/string_decoder": {
|
498 |
+
"version": "1.1.1",
|
499 |
+
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
500 |
+
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
501 |
+
"dependencies": {
|
502 |
+
"safe-buffer": "~5.1.0"
|
503 |
+
}
|
504 |
+
},
|
505 |
+
"node_modules/string-width": {
|
506 |
+
"version": "1.0.2",
|
507 |
+
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
508 |
+
"integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
|
509 |
+
"dependencies": {
|
510 |
+
"code-point-at": "^1.0.0",
|
511 |
+
"is-fullwidth-code-point": "^1.0.0",
|
512 |
+
"strip-ansi": "^3.0.0"
|
513 |
+
},
|
514 |
+
"engines": {
|
515 |
+
"node": ">=0.10.0"
|
516 |
+
}
|
517 |
+
},
|
518 |
+
"node_modules/strip-ansi": {
|
519 |
+
"version": "3.0.1",
|
520 |
+
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
521 |
+
"integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
|
522 |
+
"dependencies": {
|
523 |
+
"ansi-regex": "^2.0.0"
|
524 |
+
},
|
525 |
+
"engines": {
|
526 |
+
"node": ">=0.10.0"
|
527 |
+
}
|
528 |
+
},
|
529 |
+
"node_modules/strip-bom": {
|
530 |
+
"version": "4.0.0",
|
531 |
+
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
|
532 |
+
"integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
|
533 |
+
"engines": {
|
534 |
+
"node": ">=8"
|
535 |
+
}
|
536 |
+
},
|
537 |
+
"node_modules/strip-json-comments": {
|
538 |
+
"version": "2.0.1",
|
539 |
+
"resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
|
540 |
+
"integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
|
541 |
+
"engines": {
|
542 |
+
"node": ">=0.10.0"
|
543 |
+
}
|
544 |
+
},
|
545 |
+
"node_modules/tar-fs": {
|
546 |
+
"version": "2.1.1",
|
547 |
+
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz",
|
548 |
+
"integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==",
|
549 |
+
"dependencies": {
|
550 |
+
"chownr": "^1.1.1",
|
551 |
+
"mkdirp-classic": "^0.5.2",
|
552 |
+
"pump": "^3.0.0",
|
553 |
+
"tar-stream": "^2.1.4"
|
554 |
+
}
|
555 |
+
},
|
556 |
+
"node_modules/tar-stream": {
|
557 |
+
"version": "2.2.0",
|
558 |
+
"resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz",
|
559 |
+
"integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==",
|
560 |
+
"dependencies": {
|
561 |
+
"bl": "^4.0.3",
|
562 |
+
"end-of-stream": "^1.4.1",
|
563 |
+
"fs-constants": "^1.0.0",
|
564 |
+
"inherits": "^2.0.3",
|
565 |
+
"readable-stream": "^3.1.1"
|
566 |
+
},
|
567 |
+
"engines": {
|
568 |
+
"node": ">=6"
|
569 |
+
}
|
570 |
+
},
|
571 |
+
"node_modules/tar-stream/node_modules/readable-stream": {
|
572 |
+
"version": "3.6.2",
|
573 |
+
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
574 |
+
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
575 |
+
"dependencies": {
|
576 |
+
"inherits": "^2.0.3",
|
577 |
+
"string_decoder": "^1.1.1",
|
578 |
+
"util-deprecate": "^1.0.1"
|
579 |
+
},
|
580 |
+
"engines": {
|
581 |
+
"node": ">= 6"
|
582 |
+
}
|
583 |
+
},
|
584 |
+
"node_modules/tunnel-agent": {
|
585 |
+
"version": "0.6.0",
|
586 |
+
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
|
587 |
+
"integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
|
588 |
+
"dependencies": {
|
589 |
+
"safe-buffer": "^5.0.1"
|
590 |
+
},
|
591 |
+
"engines": {
|
592 |
+
"node": "*"
|
593 |
+
}
|
594 |
+
},
|
595 |
+
"node_modules/util-deprecate": {
|
596 |
+
"version": "1.0.2",
|
597 |
+
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
598 |
+
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
599 |
+
},
|
600 |
+
"node_modules/which-pm-runs": {
|
601 |
+
"version": "1.1.0",
|
602 |
+
"resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.1.0.tgz",
|
603 |
+
"integrity": "sha512-n1brCuqClxfFfq/Rb0ICg9giSZqCS+pLtccdag6C2HyufBrh3fBOiy9nb6ggRMvWOVH5GrdJskj5iGTZNxd7SA==",
|
604 |
+
"engines": {
|
605 |
+
"node": ">=4"
|
606 |
+
}
|
607 |
+
},
|
608 |
+
"node_modules/wide-align": {
|
609 |
+
"version": "1.1.5",
|
610 |
+
"resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
|
611 |
+
"integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
|
612 |
+
"dependencies": {
|
613 |
+
"string-width": "^1.0.2 || 2 || 3 || 4"
|
614 |
+
}
|
615 |
+
},
|
616 |
+
"node_modules/wrappy": {
|
617 |
+
"version": "1.0.2",
|
618 |
+
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
619 |
+
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
|
620 |
+
}
|
621 |
+
}
|
622 |
+
}
|
bottaiko/node_modules/ahk/.editorconfig
ADDED
@@ -0,0 +1,9 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
root = true
|
2 |
+
|
3 |
+
[*]
|
4 |
+
indent_style = spaces
|
5 |
+
indent_size = 2
|
6 |
+
end_of_line = lf
|
7 |
+
charset = utf-8
|
8 |
+
trim_trailing_whitespace = true
|
9 |
+
insert_final_newline = true
|
bottaiko/node_modules/ahk/.eslintrc.json
ADDED
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"env": {
|
3 |
+
"commonjs": true,
|
4 |
+
"es2021": true,
|
5 |
+
"node": true
|
6 |
+
},
|
7 |
+
"extends": [
|
8 |
+
"standard"
|
9 |
+
],
|
10 |
+
"parserOptions": {
|
11 |
+
"ecmaVersion": 12
|
12 |
+
},
|
13 |
+
"rules": {
|
14 |
+
}
|
15 |
+
}
|
bottaiko/node_modules/ahk/README.md
ADDED
@@ -0,0 +1,239 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<h1 align="center">
|
2 |
+
AHK
|
3 |
+
</h1>
|
4 |
+
|
5 |
+
A handler to add conditions on Knex queries.
|
6 |
+
|
7 |
+
Install
|
8 |
+
---
|
9 |
+
|
10 |
+
```bash
|
11 |
+
npm install ahk --save
|
12 |
+
```
|
13 |
+
|
14 |
+
Using
|
15 |
+
---
|
16 |
+
```js
|
17 |
+
const Ahk = require('ahk')
|
18 |
+
```
|
19 |
+
|
20 |
+
Operators
|
21 |
+
---
|
22 |
+
|name|description|
|
23 |
+
|---|:---:|
|
24 |
+
|eq|equal|
|
25 |
+
|neq|not equal|
|
26 |
+
|gte|greater than or equal|
|
27 |
+
|gt|greater than|
|
28 |
+
|lt|less than|
|
29 |
+
|lte|less than or equal|
|
30 |
+
|in|in|
|
31 |
+
|nin|not in|
|
32 |
+
|lk|like|
|
33 |
+
|nlk|not like|
|
34 |
+
|btw|between|
|
35 |
+
|nbtw|not between|
|
36 |
+
|isnull|is null / is not null|
|
37 |
+
|or|or|
|
38 |
+
|
39 |
+
Examples
|
40 |
+
---
|
41 |
+
|
42 |
+
```js
|
43 |
+
// Operator EQ
|
44 |
+
const filter = {
|
45 |
+
param1: {
|
46 |
+
eq: 2
|
47 |
+
}
|
48 |
+
}
|
49 |
+
|
50 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
51 |
+
|
52 |
+
// RESULT
|
53 |
+
// select * from table where (`param1` = 2)
|
54 |
+
```
|
55 |
+
|
56 |
+
```js
|
57 |
+
// Operator NEQ
|
58 |
+
const filter = {
|
59 |
+
param1: {
|
60 |
+
neq: 2
|
61 |
+
}
|
62 |
+
}
|
63 |
+
|
64 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
65 |
+
|
66 |
+
// RESULT
|
67 |
+
// select * from table where (not `param1` = 2)
|
68 |
+
```
|
69 |
+
|
70 |
+
```js
|
71 |
+
// Operator GT
|
72 |
+
const filter = {
|
73 |
+
param1: {
|
74 |
+
gt: 5
|
75 |
+
}
|
76 |
+
}
|
77 |
+
|
78 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
79 |
+
|
80 |
+
// RESULT
|
81 |
+
// select * from table where (`param1` > 5)
|
82 |
+
```
|
83 |
+
|
84 |
+
```js
|
85 |
+
// Operator GTE
|
86 |
+
const filter = {
|
87 |
+
param1: {
|
88 |
+
gte: 5
|
89 |
+
}
|
90 |
+
}
|
91 |
+
|
92 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
93 |
+
|
94 |
+
// RESULT
|
95 |
+
// select * from table where (`param1` >= 5)
|
96 |
+
```
|
97 |
+
|
98 |
+
```js
|
99 |
+
// Operator LT
|
100 |
+
const filter = {
|
101 |
+
param1: {
|
102 |
+
lt: 5
|
103 |
+
}
|
104 |
+
}
|
105 |
+
|
106 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
107 |
+
|
108 |
+
// RESULT
|
109 |
+
// select * from table where (`param1` < 5)
|
110 |
+
```
|
111 |
+
|
112 |
+
```js
|
113 |
+
// Operator LTE
|
114 |
+
const filter = {
|
115 |
+
param1: {
|
116 |
+
lte: 5
|
117 |
+
}
|
118 |
+
}
|
119 |
+
|
120 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
121 |
+
|
122 |
+
// RESULT
|
123 |
+
// select * from table where (`param1` <= 5)
|
124 |
+
```
|
125 |
+
|
126 |
+
```js
|
127 |
+
// Operator LK
|
128 |
+
const filter = {
|
129 |
+
param1: {
|
130 |
+
lk: 'za%'
|
131 |
+
}
|
132 |
+
}
|
133 |
+
|
134 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
135 |
+
|
136 |
+
// RESULT
|
137 |
+
// select * from table where (`param1` like 'za%')
|
138 |
+
```
|
139 |
+
|
140 |
+
```js
|
141 |
+
// Operator NLK
|
142 |
+
const filter = {
|
143 |
+
param1: {
|
144 |
+
nlk: 'za%'
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
149 |
+
|
150 |
+
// RESULT
|
151 |
+
// select * from table where (`param1` not like 'za%')
|
152 |
+
```
|
153 |
+
|
154 |
+
```js
|
155 |
+
// Operator IN
|
156 |
+
const filter = {
|
157 |
+
param1: {
|
158 |
+
in: [1, 2, 3]
|
159 |
+
}
|
160 |
+
}
|
161 |
+
|
162 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
163 |
+
|
164 |
+
// RESULT
|
165 |
+
// select * from table where (`param1` in (1, 2, 3))
|
166 |
+
```
|
167 |
+
```js
|
168 |
+
// Operator NIN
|
169 |
+
const filter = {
|
170 |
+
param1: {
|
171 |
+
nin: [1, 2, 3]
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
176 |
+
|
177 |
+
// RESULT
|
178 |
+
// select * from table where (`param1` not in (1, 2, 3))
|
179 |
+
```
|
180 |
+
```js
|
181 |
+
// Operator BTW
|
182 |
+
const filter = {
|
183 |
+
param1: {
|
184 |
+
btw: [10, 20]
|
185 |
+
}
|
186 |
+
}
|
187 |
+
|
188 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
189 |
+
|
190 |
+
// RESULT
|
191 |
+
// select * from table where (`param1` between 10 and 20)
|
192 |
+
```
|
193 |
+
```js
|
194 |
+
// Operator NBTW
|
195 |
+
const filter = {
|
196 |
+
param1: {
|
197 |
+
nbtw: [10, 20]
|
198 |
+
}
|
199 |
+
}
|
200 |
+
|
201 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
202 |
+
|
203 |
+
// RESULT
|
204 |
+
// select * from table where (`param1` not between 10 and 20)
|
205 |
+
```
|
206 |
+
|
207 |
+
```js
|
208 |
+
// Operator ISNULL
|
209 |
+
const filter = {
|
210 |
+
param1: {
|
211 |
+
isnull: true
|
212 |
+
},
|
213 |
+
param2: {
|
214 |
+
isnull: false
|
215 |
+
}
|
216 |
+
}
|
217 |
+
|
218 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
219 |
+
|
220 |
+
// RESULT
|
221 |
+
// select * from table where (`param1` is null) and (`param2` is not null)
|
222 |
+
```
|
223 |
+
|
224 |
+
```js
|
225 |
+
// Operator OR
|
226 |
+
const filter = {
|
227 |
+
param1: 1,
|
228 |
+
or: {
|
229 |
+
param2: {
|
230 |
+
eq: 'za%'
|
231 |
+
}
|
232 |
+
}
|
233 |
+
}
|
234 |
+
|
235 |
+
const query = knex('table').modify(builder => Ahk(builder, filter))
|
236 |
+
|
237 |
+
// RESULT
|
238 |
+
// select * from table where (`param1` = 1) or (`param2` like 'za%')
|
239 |
+
```
|
bottaiko/node_modules/ahk/index.js
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
module.exports = require('./lib/ahk')
|
bottaiko/node_modules/ahk/jest.config.js
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/*
|
2 |
+
* For a detailed explanation regarding each configuration property, visit:
|
3 |
+
* https://jestjs.io/docs/en/configuration.html
|
4 |
+
*/
|
5 |
+
|
6 |
+
module.exports = {
|
7 |
+
// All imported modules in your tests should be mocked automatically
|
8 |
+
// automock: false,
|
9 |
+
|
10 |
+
// Stop running tests after `n` failures
|
11 |
+
// bail: 0,
|
12 |
+
|
13 |
+
// The directory where Jest should store its cached dependency information
|
14 |
+
// cacheDirectory: "/tmp/jest_rs",
|
15 |
+
|
16 |
+
// Automatically clear mock calls and instances between every test
|
17 |
+
clearMocks: true,
|
18 |
+
|
19 |
+
// Indicates whether the coverage information should be collected while executing the test
|
20 |
+
collectCoverage: true,
|
21 |
+
|
22 |
+
// An array of glob patterns indicating a set of files for which coverage information should be collected
|
23 |
+
// collectCoverageFrom: undefined,
|
24 |
+
|
25 |
+
// The directory where Jest should output its coverage files
|
26 |
+
// coverageDirectory: undefined,
|
27 |
+
|
28 |
+
// An array of regexp pattern strings used to skip coverage collection
|
29 |
+
// coveragePathIgnorePatterns: [
|
30 |
+
// "/node_modules/"
|
31 |
+
// ],
|
32 |
+
|
33 |
+
// Indicates which provider should be used to instrument code for coverage
|
34 |
+
coverageProvider: "v8",
|
35 |
+
|
36 |
+
// A list of reporter names that Jest uses when writing coverage reports
|
37 |
+
// coverageReporters: [
|
38 |
+
// "json",
|
39 |
+
// "text",
|
40 |
+
// "lcov",
|
41 |
+
// "clover"
|
42 |
+
// ],
|
43 |
+
|
44 |
+
// An object that configures minimum threshold enforcement for coverage results
|
45 |
+
// coverageThreshold: undefined,
|
46 |
+
|
47 |
+
// A path to a custom dependency extractor
|
48 |
+
// dependencyExtractor: undefined,
|
49 |
+
|
50 |
+
// Make calling deprecated APIs throw helpful error messages
|
51 |
+
// errorOnDeprecated: false,
|
52 |
+
|
53 |
+
// Force coverage collection from ignored files using an array of glob patterns
|
54 |
+
// forceCoverageMatch: [],
|
55 |
+
|
56 |
+
// A path to a module which exports an async function that is triggered once before all test suites
|
57 |
+
// globalSetup: undefined,
|
58 |
+
|
59 |
+
// A path to a module which exports an async function that is triggered once after all test suites
|
60 |
+
// globalTeardown: undefined,
|
61 |
+
|
62 |
+
// A set of global variables that need to be available in all test environments
|
63 |
+
// globals: {},
|
64 |
+
|
65 |
+
// The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
|
66 |
+
// maxWorkers: "50%",
|
67 |
+
|
68 |
+
// An array of directory names to be searched recursively up from the requiring module's location
|
69 |
+
// moduleDirectories: [
|
70 |
+
// "node_modules"
|
71 |
+
// ],
|
72 |
+
|
73 |
+
// An array of file extensions your modules use
|
74 |
+
// moduleFileExtensions: [
|
75 |
+
// "js",
|
76 |
+
// "json",
|
77 |
+
// "jsx",
|
78 |
+
// "ts",
|
79 |
+
// "tsx",
|
80 |
+
// "node"
|
81 |
+
// ],
|
82 |
+
|
83 |
+
// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
|
84 |
+
// moduleNameMapper: {},
|
85 |
+
|
86 |
+
// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
|
87 |
+
// modulePathIgnorePatterns: [],
|
88 |
+
|
89 |
+
// Activates notifications for test results
|
90 |
+
// notify: false,
|
91 |
+
|
92 |
+
// An enum that specifies notification mode. Requires { notify: true }
|
93 |
+
// notifyMode: "failure-change",
|
94 |
+
|
95 |
+
// A preset that is used as a base for Jest's configuration
|
96 |
+
// preset: undefined,
|
97 |
+
|
98 |
+
// Run tests from one or more projects
|
99 |
+
// projects: undefined,
|
100 |
+
|
101 |
+
// Use this configuration option to add custom reporters to Jest
|
102 |
+
// reporters: undefined,
|
103 |
+
|
104 |
+
// Automatically reset mock state between every test
|
105 |
+
// resetMocks: false,
|
106 |
+
|
107 |
+
// Reset the module registry before running each individual test
|
108 |
+
// resetModules: false,
|
109 |
+
|
110 |
+
// A path to a custom resolver
|
111 |
+
// resolver: undefined,
|
112 |
+
|
113 |
+
// Automatically restore mock state between every test
|
114 |
+
// restoreMocks: false,
|
115 |
+
|
116 |
+
// The root directory that Jest should scan for tests and modules within
|
117 |
+
// rootDir: undefined,
|
118 |
+
|
119 |
+
// A list of paths to directories that Jest should use to search for files in
|
120 |
+
// roots: [
|
121 |
+
// "<rootDir>"
|
122 |
+
// ],
|
123 |
+
|
124 |
+
// Allows you to use a custom runner instead of Jest's default test runner
|
125 |
+
// runner: "jest-runner",
|
126 |
+
|
127 |
+
// The paths to modules that run some code to configure or set up the testing environment before each test
|
128 |
+
// setupFiles: [],
|
129 |
+
|
130 |
+
// A list of paths to modules that run some code to configure or set up the testing framework before each test
|
131 |
+
// setupFilesAfterEnv: [],
|
132 |
+
|
133 |
+
// The number of seconds after which a test is considered as slow and reported as such in the results.
|
134 |
+
// slowTestThreshold: 5,
|
135 |
+
|
136 |
+
// A list of paths to snapshot serializer modules Jest should use for snapshot testing
|
137 |
+
// snapshotSerializers: [],
|
138 |
+
|
139 |
+
// The test environment that will be used for testing
|
140 |
+
testEnvironment: "node",
|
141 |
+
|
142 |
+
// Options that will be passed to the testEnvironment
|
143 |
+
// testEnvironmentOptions: {},
|
144 |
+
|
145 |
+
// Adds a location field to test results
|
146 |
+
// testLocationInResults: false,
|
147 |
+
|
148 |
+
// The glob patterns Jest uses to detect test files
|
149 |
+
testMatch: ["**/test/**/*.test.js"],
|
150 |
+
|
151 |
+
// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
|
152 |
+
// testPathIgnorePatterns: [
|
153 |
+
// "/node_modules/"
|
154 |
+
// ],
|
155 |
+
|
156 |
+
// The regexp pattern or array of patterns that Jest uses to detect test files
|
157 |
+
// testRegex: [],
|
158 |
+
|
159 |
+
// This option allows the use of a custom results processor
|
160 |
+
// testResultsProcessor: undefined,
|
161 |
+
|
162 |
+
// This option allows use of a custom test runner
|
163 |
+
// testRunner: "jasmine2",
|
164 |
+
|
165 |
+
// This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
|
166 |
+
// testURL: "http://localhost",
|
167 |
+
|
168 |
+
// Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
|
169 |
+
// timers: "real",
|
170 |
+
|
171 |
+
// A map from regular expressions to paths to transformers
|
172 |
+
// transform: undefined,
|
173 |
+
|
174 |
+
// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
|
175 |
+
// transformIgnorePatterns: [
|
176 |
+
// "/node_modules/",
|
177 |
+
// "\\.pnp\\.[^\\/]+$"
|
178 |
+
// ],
|
179 |
+
|
180 |
+
// An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
|
181 |
+
// unmockedModulePathPatterns: undefined,
|
182 |
+
|
183 |
+
// Indicates whether each individual test should be reported during the run
|
184 |
+
// verbose: undefined,
|
185 |
+
|
186 |
+
// An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
|
187 |
+
// watchPathIgnorePatterns: [],
|
188 |
+
|
189 |
+
// Whether to use watchman for file crawling
|
190 |
+
// watchman: true,
|
191 |
+
};
|
bottaiko/node_modules/ahk/lib/ahk.js
ADDED
@@ -0,0 +1,63 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const operations = {
|
2 |
+
eq: (query, column, value, options) => options.isJoin ? query.on(column, value) : query.where(column, value),
|
3 |
+
neq: (query, column, value, options) => options.isJoin ? query.on(column, '<>', value) : query.whereNot(column, value),
|
4 |
+
gte: (query, column, value, options) => options.isJoin ? query.on(column, '>=', value) : query.where(column, '>=', value),
|
5 |
+
gt: (query, column, value, options) => options.isJoin ? query.on(column, '>', value) : query.where(column, '>', value),
|
6 |
+
lt: (query, column, value, options) => options.isJoin ? query.on(column, '<', value) : query.where(column, '<', value),
|
7 |
+
lte: (query, column, value, options) => options.isJoin ? query.on(column, '<=', value) : query.where(column, '<=', value),
|
8 |
+
in: (query, column, value, options) => options.isJoin ? query.onIn(column, value) : query.whereIn(column, value),
|
9 |
+
nin: (query, column, value, options) => options.isJoin ? query.onNotIn(column, value) : query.whereNotIn(column, value),
|
10 |
+
lk: (query, column, value, options) => options.isJoin ? query.on(column, 'like', `${value}`) : query.where(column, 'like', `${value}`),
|
11 |
+
nlk: (query, column, value, options) => options.isJoin ? query.on(column, 'not like', `${value}`) : query.where(column, 'not like', `${value}`),
|
12 |
+
btw: (query, column, value, options) => options.isJoin ? query.onBetween(column, value) : query.whereBetween(column, value),
|
13 |
+
nbtw: (query, column, value, options) => options.isJoin ? query.onNotBetween(column, value) : query.whereNotBetween(column, value),
|
14 |
+
isnull: (query, column, value, options) => {
|
15 |
+
if (options.isJoin) {
|
16 |
+
value ? query.onNull(column) : query.onNotNull(column)
|
17 |
+
} else {
|
18 |
+
value ? query.whereNull(column) : query.whereNotNull(column)
|
19 |
+
}
|
20 |
+
},
|
21 |
+
or: (query, column, value, options) => options.isJoin ? query.orOn(query => handler(query, value, options)) : query.orWhere(query => handler(query, value, options))
|
22 |
+
}
|
23 |
+
|
24 |
+
function isObject (value) {
|
25 |
+
return value !== null && typeof value === 'object' && !Array.isArray(value)
|
26 |
+
}
|
27 |
+
|
28 |
+
function handler (query, data, options) {
|
29 |
+
Object.keys(data).forEach(key => {
|
30 |
+
if (key === 'or') {
|
31 |
+
operations.or(query, '', data[key], options)
|
32 |
+
} else if (options.columnNames[key]) {
|
33 |
+
const columnName = options.columnNames[key]/* ? options.columnNames[key] : key*/
|
34 |
+
|
35 |
+
if (isObject(data[key])) {
|
36 |
+
query[options.isJoin ? 'andOn' : 'andWhere'](query => {
|
37 |
+
Object.keys(data[key]).forEach(operation => {
|
38 |
+
const operator = operations[operation]
|
39 |
+
|
40 |
+
if (operator) {
|
41 |
+
operator(query, columnName, data[key][operation], options)
|
42 |
+
}
|
43 |
+
})
|
44 |
+
})
|
45 |
+
} else {
|
46 |
+
const operator = Array.isArray(data[key]) ? operations.in : operations.eq
|
47 |
+
operator(query, columnName, data[key], options)
|
48 |
+
}
|
49 |
+
}
|
50 |
+
})
|
51 |
+
}
|
52 |
+
|
53 |
+
function Akh (builder, values, fields = {}, filterColumn = false) {
|
54 |
+
if (!builder) {
|
55 |
+
throw new Error('Knex not found')
|
56 |
+
}
|
57 |
+
|
58 |
+
if (isObject(values)) {
|
59 |
+
handler(builder, values, { columnNames: fields, isJoin: builder.joinType, filterColumn })
|
60 |
+
}
|
61 |
+
}
|
62 |
+
|
63 |
+
module.exports = Akh
|
bottaiko/node_modules/ahk/package.json
ADDED
@@ -0,0 +1,37 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ahk",
|
3 |
+
"version": "1.0.2",
|
4 |
+
"description": "Another Handler Knex",
|
5 |
+
"main": "index.js",
|
6 |
+
"scripts": {
|
7 |
+
"test": "jest",
|
8 |
+
"eslint": "eslint ./lib --ext .js",
|
9 |
+
"eslint:fix": "eslint ./lib --ext .js --fix"
|
10 |
+
},
|
11 |
+
"repository": {
|
12 |
+
"type": "git",
|
13 |
+
"url": "git+https://github.com/avza/akh.git"
|
14 |
+
},
|
15 |
+
"keywords": [
|
16 |
+
"knex",
|
17 |
+
"handler",
|
18 |
+
"filter",
|
19 |
+
"order"
|
20 |
+
],
|
21 |
+
"author": "Alisson V. de Souza",
|
22 |
+
"license": "ISC",
|
23 |
+
"bugs": {
|
24 |
+
"url": "https://github.com/avza/akh/issues"
|
25 |
+
},
|
26 |
+
"homepage": "https://github.com/avza/akh#readme",
|
27 |
+
"devDependencies": {
|
28 |
+
"eslint": "^7.11.0",
|
29 |
+
"eslint-config-standard": "^15.0.0",
|
30 |
+
"eslint-plugin-import": "^2.22.1",
|
31 |
+
"eslint-plugin-node": "^11.1.0",
|
32 |
+
"eslint-plugin-promise": "^4.2.1",
|
33 |
+
"eslint-plugin-standard": "^4.0.2",
|
34 |
+
"jest": "^26.6.1",
|
35 |
+
"knex": "^0.21.6"
|
36 |
+
}
|
37 |
+
}
|
bottaiko/node_modules/ahk/test/ahk.test.js
ADDED
@@ -0,0 +1,297 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
const Knex = require('knex')({ client: 'sqlite3', useNullAsDefault: true })
|
2 |
+
const Akh = require('../lib/ahk')
|
3 |
+
|
4 |
+
describe('Akh Instance', () => {
|
5 |
+
test('Should return error when the knex instance not found', () => {
|
6 |
+
expect(Akh).toThrowError('Knex not found')
|
7 |
+
})
|
8 |
+
})
|
9 |
+
|
10 |
+
describe('Filter Implementation', () => {
|
11 |
+
test('Should not add condition when the filter is not passed', () => {
|
12 |
+
const query = Knex('profiles').modify(builder => Akh(builder))
|
13 |
+
expect(query.toString()).toBe('select * from `profiles`')
|
14 |
+
})
|
15 |
+
|
16 |
+
test('Should not add condition when the filter empty is passed', () => {
|
17 |
+
const query = Knex('profiles').modify(builder => Akh(builder, {}))
|
18 |
+
expect(query.toString()).toBe('select * from `profiles`')
|
19 |
+
})
|
20 |
+
|
21 |
+
test('Should build simple query', () => {
|
22 |
+
const filter = {
|
23 |
+
id: 1,
|
24 |
+
name: 'avza',
|
25 |
+
surname: null,
|
26 |
+
hobbies: ['soccer', 'volleyball']
|
27 |
+
}
|
28 |
+
|
29 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
30 |
+
expect(query.toString()).toBe('select * from `profiles` where `id` = 1 and `name` = \'avza\' and `surname` is null and `hobbies` in (\'soccer\', \'volleyball\')')
|
31 |
+
})
|
32 |
+
|
33 |
+
test('Should build query with operator "equal"', () => {
|
34 |
+
const filter = { id: { eq: 1 } }
|
35 |
+
|
36 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
37 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` = 1)')
|
38 |
+
})
|
39 |
+
|
40 |
+
test('Should build query with operator "not equal"', () => {
|
41 |
+
const filter = { id: { neq: 1 } }
|
42 |
+
|
43 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
44 |
+
expect(query.toString()).toBe('select * from `profiles` where (not `id` = 1)')
|
45 |
+
})
|
46 |
+
|
47 |
+
test('Should build query with operator "like"', () => {
|
48 |
+
const filter = {
|
49 |
+
name: { lk: '%av' },
|
50 |
+
surname: { lk: 'za%' },
|
51 |
+
login: { lk: '%avza%' }
|
52 |
+
}
|
53 |
+
|
54 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
55 |
+
expect(query.toString()).toBe('select * from `profiles` where (`name` like \'%av\') and (`surname` like \'za%\') and (`login` like \'%avza%\')')
|
56 |
+
})
|
57 |
+
|
58 |
+
test('Should build query with operator "not like"', () => {
|
59 |
+
const filter = { name: { nlk: '%av' } }
|
60 |
+
|
61 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
62 |
+
expect(query.toString()).toBe('select * from `profiles` where (`name` not like \'%av\')')
|
63 |
+
})
|
64 |
+
|
65 |
+
test('Should build query with operator "in"', () => {
|
66 |
+
const filter = { id: { in: [1, 2] } }
|
67 |
+
|
68 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
69 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` in (1, 2))')
|
70 |
+
})
|
71 |
+
|
72 |
+
test('Should build query with operator "not in"', () => {
|
73 |
+
const filter = { id: { nin: [1, 2] } }
|
74 |
+
|
75 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
76 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` not in (1, 2))')
|
77 |
+
})
|
78 |
+
|
79 |
+
test('Should build query with operator "between"', () => {
|
80 |
+
const filter = { id: { btw: [1, 2] } }
|
81 |
+
|
82 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
83 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` between 1 and 2)')
|
84 |
+
})
|
85 |
+
|
86 |
+
test('Should build query with operator "not between"', () => {
|
87 |
+
const filter = { id: { nbtw: [1, 2] } }
|
88 |
+
|
89 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
90 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` not between 1 and 2)')
|
91 |
+
})
|
92 |
+
|
93 |
+
test('Should build query with operators "gte" and "lte"', () => {
|
94 |
+
const filter = {
|
95 |
+
id: {
|
96 |
+
gte: 1,
|
97 |
+
lte: 5
|
98 |
+
}
|
99 |
+
}
|
100 |
+
|
101 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
102 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` >= 1 and `id` <= 5)')
|
103 |
+
})
|
104 |
+
|
105 |
+
test('Should build query with operators "gt" and "lt"', () => {
|
106 |
+
const filter = {
|
107 |
+
id: {
|
108 |
+
gt: 1,
|
109 |
+
lt: 5
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
114 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` > 1 and `id` < 5)')
|
115 |
+
})
|
116 |
+
|
117 |
+
test('Should build query with operators "isnull"', () => {
|
118 |
+
const filter = {
|
119 |
+
name: {
|
120 |
+
isnull: false
|
121 |
+
},
|
122 |
+
surname: {
|
123 |
+
isnull: true
|
124 |
+
}
|
125 |
+
}
|
126 |
+
|
127 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
128 |
+
expect(query.toString()).toBe('select * from `profiles` where (`name` is not null) and (`surname` is null)')
|
129 |
+
})
|
130 |
+
|
131 |
+
test('Should build query with connector OR', () => {
|
132 |
+
const filter = {
|
133 |
+
name: 'avza',
|
134 |
+
or: {
|
135 |
+
surname: 'avza'
|
136 |
+
}
|
137 |
+
}
|
138 |
+
|
139 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
140 |
+
expect(query.toString()).toBe('select * from `profiles` where `name` = \'avza\' or (`surname` = \'avza\')')
|
141 |
+
})
|
142 |
+
|
143 |
+
test('Should build query with connector OR inside another OR', () => {
|
144 |
+
const filter = {
|
145 |
+
id: 1,
|
146 |
+
or: {
|
147 |
+
name: 'avza',
|
148 |
+
or: {
|
149 |
+
surname: 'avza'
|
150 |
+
}
|
151 |
+
}
|
152 |
+
}
|
153 |
+
|
154 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
155 |
+
expect(query.toString()).toBe('select * from `profiles` where `id` = 1 or (`name` = \'avza\' or (`surname` = \'avza\'))')
|
156 |
+
})
|
157 |
+
|
158 |
+
test('Should build complex query', () => {
|
159 |
+
const filter = {
|
160 |
+
id: {
|
161 |
+
in: [1, 2]
|
162 |
+
},
|
163 |
+
or: {
|
164 |
+
id: {
|
165 |
+
gte: 5,
|
166 |
+
lte: 9
|
167 |
+
}
|
168 |
+
},
|
169 |
+
name: 'avza',
|
170 |
+
surname: {
|
171 |
+
lk: 'za%'
|
172 |
+
}
|
173 |
+
}
|
174 |
+
|
175 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter))
|
176 |
+
expect(query.toString()).toBe('select * from `profiles` where (`id` in (1, 2)) or ((`id` >= 5 and `id` <= 9)) and `name` = \'avza\' and (`surname` like \'za%\')')
|
177 |
+
})
|
178 |
+
|
179 |
+
test('Should build query with custom name', () => {
|
180 |
+
const filter = {
|
181 |
+
id: 1,
|
182 |
+
name: { lk: '%avza%' },
|
183 |
+
or: { age: 22 }
|
184 |
+
}
|
185 |
+
|
186 |
+
const columnNames = { id: 'profile_id', name: 'fullname' }
|
187 |
+
|
188 |
+
const query = Knex('profiles').modify(builder => Akh(builder, filter, columnNames))
|
189 |
+
expect(query.toString()).toBe('select * from `profiles` where `profile_id` = 1 and (`fullname` like \'%avza%\') or (`age` = 22)')
|
190 |
+
})
|
191 |
+
|
192 |
+
test('Should build simple query with join and operator "eq" and "neq"', () => {
|
193 |
+
const filter = {
|
194 |
+
id: 1,
|
195 |
+
name: {
|
196 |
+
neq: 'avza'
|
197 |
+
}
|
198 |
+
}
|
199 |
+
|
200 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
201 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on `id` = 1 and (`name` <> `avza`)')
|
202 |
+
})
|
203 |
+
|
204 |
+
test('Should build simple query with join and operator "gte" and "lte"', () => {
|
205 |
+
const filter = {
|
206 |
+
id: {
|
207 |
+
gte: 1,
|
208 |
+
lte: 8
|
209 |
+
}
|
210 |
+
}
|
211 |
+
|
212 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
213 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`id` >= 1 and `id` <= 8)')
|
214 |
+
})
|
215 |
+
|
216 |
+
test('Should build simple query with join and operator "gt" and "lt"', () => {
|
217 |
+
const filter = {
|
218 |
+
id: {
|
219 |
+
gt: 1,
|
220 |
+
lt: 8
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
225 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`id` > 1 and `id` < 8)')
|
226 |
+
})
|
227 |
+
|
228 |
+
test('Should build simple query with join and operator "in" and "nin"', () => {
|
229 |
+
const filter = {
|
230 |
+
id: {
|
231 |
+
in: [1, 2, 3]
|
232 |
+
},
|
233 |
+
type_id: {
|
234 |
+
nin: [1, 2, 3, 4, 5]
|
235 |
+
}
|
236 |
+
}
|
237 |
+
|
238 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
239 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`id` in (1, 2, 3)) and (`type_id` not in (1, 2, 3, 4, 5))')
|
240 |
+
})
|
241 |
+
|
242 |
+
test('Should build simple query with join and operator "lk" and "nlk"', () => {
|
243 |
+
const filter = {
|
244 |
+
name: {
|
245 |
+
lk: 'za%'
|
246 |
+
},
|
247 |
+
surname: {
|
248 |
+
nlk: '%tb'
|
249 |
+
}
|
250 |
+
}
|
251 |
+
|
252 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
253 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`name` like `za%`) and (`surname` not like `%tb`)')
|
254 |
+
})
|
255 |
+
|
256 |
+
test('Should build simple query with join and operator "in" and "nin"', () => {
|
257 |
+
const filter = {
|
258 |
+
id: {
|
259 |
+
btw: [1, 10]
|
260 |
+
},
|
261 |
+
type_id: {
|
262 |
+
nbtw: [1, 5]
|
263 |
+
}
|
264 |
+
}
|
265 |
+
|
266 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
267 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`id` between 1 and 10) and (`type_id` not between 1 and 5)')
|
268 |
+
})
|
269 |
+
|
270 |
+
test('Should build simple query with join and operator "is null"', () => {
|
271 |
+
const filter = {
|
272 |
+
id: {
|
273 |
+
isnull: false
|
274 |
+
},
|
275 |
+
type_id: {
|
276 |
+
isnull: true
|
277 |
+
}
|
278 |
+
}
|
279 |
+
|
280 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
281 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on (`id` is not null) and (`type_id` is null)')
|
282 |
+
})
|
283 |
+
|
284 |
+
test('Should build simple query with join and operator "OR"', () => {
|
285 |
+
const filter = {
|
286 |
+
name: 'avza',
|
287 |
+
or: {
|
288 |
+
surname: {
|
289 |
+
isnull: true
|
290 |
+
}
|
291 |
+
}
|
292 |
+
}
|
293 |
+
|
294 |
+
const query = Knex('profiles').innerJoin({ g: 'games' }, builder => Akh(builder, filter))
|
295 |
+
expect(query.toString()).toBe('select * from `profiles` inner join `games` as `g` on `name` = `avza` or ((`surname` is null))')
|
296 |
+
})
|
297 |
+
})
|
bottaiko/node_modules/ansi-regex/index.js
ADDED
@@ -0,0 +1,4 @@
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict';
|
2 |
+
module.exports = function () {
|
3 |
+
return /[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g;
|
4 |
+
};
|
bottaiko/node_modules/ansi-regex/license
ADDED
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
The MIT License (MIT)
|
2 |
+
|
3 |
+
Copyright (c) Sindre Sorhus <[email protected]> (sindresorhus.com)
|
4 |
+
|
5 |
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6 |
+
of this software and associated documentation files (the "Software"), to deal
|
7 |
+
in the Software without restriction, including without limitation the rights
|
8 |
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9 |
+
copies of the Software, and to permit persons to whom the Software is
|
10 |
+
furnished to do so, subject to the following conditions:
|
11 |
+
|
12 |
+
The above copyright notice and this permission notice shall be included in
|
13 |
+
all copies or substantial portions of the Software.
|
14 |
+
|
15 |
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16 |
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17 |
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18 |
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19 |
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20 |
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21 |
+
THE SOFTWARE.
|
bottaiko/node_modules/ansi-regex/package.json
ADDED
@@ -0,0 +1,64 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "ansi-regex",
|
3 |
+
"version": "2.1.1",
|
4 |
+
"description": "Regular expression for matching ANSI escape codes",
|
5 |
+
"license": "MIT",
|
6 |
+
"repository": "chalk/ansi-regex",
|
7 |
+
"author": {
|
8 |
+
"name": "Sindre Sorhus",
|
9 |
+
"email": "[email protected]",
|
10 |
+
"url": "sindresorhus.com"
|
11 |
+
},
|
12 |
+
"maintainers": [
|
13 |
+
"Sindre Sorhus <[email protected]> (sindresorhus.com)",
|
14 |
+
"Joshua Appelman <[email protected]> (jbnicolai.com)",
|
15 |
+
"JD Ballard <[email protected]> (github.com/qix-)"
|
16 |
+
],
|
17 |
+
"engines": {
|
18 |
+
"node": ">=0.10.0"
|
19 |
+
},
|
20 |
+
"scripts": {
|
21 |
+
"test": "xo && ava --verbose",
|
22 |
+
"view-supported": "node fixtures/view-codes.js"
|
23 |
+
},
|
24 |
+
"files": [
|
25 |
+
"index.js"
|
26 |
+
],
|
27 |
+
"keywords": [
|
28 |
+
"ansi",
|
29 |
+
"styles",
|
30 |
+
"color",
|
31 |
+
"colour",
|
32 |
+
"colors",
|
33 |
+
"terminal",
|
34 |
+
"console",
|
35 |
+
"cli",
|
36 |
+
"string",
|
37 |
+
"tty",
|
38 |
+
"escape",
|
39 |
+
"formatting",
|
40 |
+
"rgb",
|
41 |
+
"256",
|
42 |
+
"shell",
|
43 |
+
"xterm",
|
44 |
+
"command-line",
|
45 |
+
"text",
|
46 |
+
"regex",
|
47 |
+
"regexp",
|
48 |
+
"re",
|
49 |
+
"match",
|
50 |
+
"test",
|
51 |
+
"find",
|
52 |
+
"pattern"
|
53 |
+
],
|
54 |
+
"devDependencies": {
|
55 |
+
"ava": "0.17.0",
|
56 |
+
"xo": "0.16.0"
|
57 |
+
},
|
58 |
+
"xo": {
|
59 |
+
"rules": {
|
60 |
+
"guard-for-in": 0,
|
61 |
+
"no-loop-func": 0
|
62 |
+
}
|
63 |
+
}
|
64 |
+
}
|
bottaiko/node_modules/ansi-regex/readme.md
ADDED
@@ -0,0 +1,39 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
# ansi-regex [![Build Status](https://travis-ci.org/chalk/ansi-regex.svg?branch=master)](https://travis-ci.org/chalk/ansi-regex)
|
2 |
+
|
3 |
+
> Regular expression for matching [ANSI escape codes](http://en.wikipedia.org/wiki/ANSI_escape_code)
|
4 |
+
|
5 |
+
|
6 |
+
## Install
|
7 |
+
|
8 |
+
```
|
9 |
+
$ npm install --save ansi-regex
|
10 |
+
```
|
11 |
+
|
12 |
+
|
13 |
+
## Usage
|
14 |
+
|
15 |
+
```js
|
16 |
+
const ansiRegex = require('ansi-regex');
|
17 |
+
|
18 |
+
ansiRegex().test('\u001b[4mcake\u001b[0m');
|
19 |
+
//=> true
|
20 |
+
|
21 |
+
ansiRegex().test('cake');
|
22 |
+
//=> false
|
23 |
+
|
24 |
+
'\u001b[4mcake\u001b[0m'.match(ansiRegex());
|
25 |
+
//=> ['\u001b[4m', '\u001b[0m']
|
26 |
+
```
|
27 |
+
|
28 |
+
## FAQ
|
29 |
+
|
30 |
+
### Why do you test for codes not in the ECMA 48 standard?
|
31 |
+
|
32 |
+
Some of the codes we run as a test are codes that we acquired finding various lists of non-standard or manufacturer specific codes. If I recall correctly, we test for both standard and non-standard codes, as most of them follow the same or similar format and can be safely matched in strings without the risk of removing actual string content. There are a few non-standard control codes that do not follow the traditional format (i.e. they end in numbers) thus forcing us to exclude them from the test because we cannot reliably match them.
|
33 |
+
|
34 |
+
On the historical side, those ECMA standards were established in the early 90's whereas the VT100, for example, was designed in the mid/late 70's. At that point in time, control codes were still pretty ungoverned and engineers used them for a multitude of things, namely to activate hardware ports that may have been proprietary. Somewhere else you see a similar 'anarchy' of codes is in the x86 architecture for processors; there are a ton of "interrupts" that can mean different things on certain brands of processors, most of which have been phased out.
|
35 |
+
|
36 |
+
|
37 |
+
## License
|
38 |
+
|
39 |
+
MIT © [Sindre Sorhus](http://sindresorhus.com)
|
bottaiko/node_modules/aproba/LICENSE
ADDED
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Copyright (c) 2015, Rebecca Turner <[email protected]>
|
2 |
+
|
3 |
+
Permission to use, copy, modify, and/or distribute this software for any
|
4 |
+
purpose with or without fee is hereby granted, provided that the above
|
5 |
+
copyright notice and this permission notice appear in all copies.
|
6 |
+
|
7 |
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
8 |
+
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
9 |
+
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
10 |
+
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
11 |
+
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
12 |
+
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
13 |
+
OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
14 |
+
|
bottaiko/node_modules/aproba/README.md
ADDED
@@ -0,0 +1,94 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
aproba
|
2 |
+
======
|
3 |
+
|
4 |
+
A ridiculously light-weight function argument validator
|
5 |
+
|
6 |
+
```
|
7 |
+
var validate = require("aproba")
|
8 |
+
|
9 |
+
function myfunc(a, b, c) {
|
10 |
+
// `a` must be a string, `b` a number, `c` a function
|
11 |
+
validate('SNF', arguments) // [a,b,c] is also valid
|
12 |
+
}
|
13 |
+
|
14 |
+
myfunc('test', 23, function () {}) // ok
|
15 |
+
myfunc(123, 23, function () {}) // type error
|
16 |
+
myfunc('test', 23) // missing arg error
|
17 |
+
myfunc('test', 23, function () {}, true) // too many args error
|
18 |
+
|
19 |
+
```
|
20 |
+
|
21 |
+
Valid types are:
|
22 |
+
|
23 |
+
| type | description
|
24 |
+
| :--: | :----------
|
25 |
+
| * | matches any type
|
26 |
+
| A | `Array.isArray` OR an `arguments` object
|
27 |
+
| S | typeof == string
|
28 |
+
| N | typeof == number
|
29 |
+
| F | typeof == function
|
30 |
+
| O | typeof == object and not type A and not type E
|
31 |
+
| B | typeof == boolean
|
32 |
+
| E | `instanceof Error` OR `null` **(special: see below)**
|
33 |
+
| Z | == `null`
|
34 |
+
|
35 |
+
Validation failures throw one of three exception types, distinguished by a
|
36 |
+
`code` property of `EMISSINGARG`, `EINVALIDTYPE` or `ETOOMANYARGS`.
|
37 |
+
|
38 |
+
If you pass in an invalid type then it will throw with a code of
|
39 |
+
`EUNKNOWNTYPE`.
|
40 |
+
|
41 |
+
If an **error** argument is found and is not null then the remaining
|
42 |
+
arguments are optional. That is, if you say `ESO` then that's like using a
|
43 |
+
non-magical `E` in: `E|ESO|ZSO`.
|
44 |
+
|
45 |
+
### But I have optional arguments?!
|
46 |
+
|
47 |
+
You can provide more than one signature by separating them with pipes `|`.
|
48 |
+
If any signature matches the arguments then they'll be considered valid.
|
49 |
+
|
50 |
+
So for example, say you wanted to write a signature for
|
51 |
+
`fs.createWriteStream`. The docs for it describe it thusly:
|
52 |
+
|
53 |
+
```
|
54 |
+
fs.createWriteStream(path[, options])
|
55 |
+
```
|
56 |
+
|
57 |
+
This would be a signature of `SO|S`. That is, a string and and object, or
|
58 |
+
just a string.
|
59 |
+
|
60 |
+
Now, if you read the full `fs` docs, you'll see that actually path can ALSO
|
61 |
+
be a buffer. And options can be a string, that is:
|
62 |
+
```
|
63 |
+
path <String> | <Buffer>
|
64 |
+
options <String> | <Object>
|
65 |
+
```
|
66 |
+
|
67 |
+
To reproduce this you have to fully enumerate all of the possible
|
68 |
+
combinations and that implies a signature of `SO|SS|OO|OS|S|O`. The
|
69 |
+
awkwardness is a feature: It reminds you of the complexity you're adding to
|
70 |
+
your API when you do this sort of thing.
|
71 |
+
|
72 |
+
|
73 |
+
### Browser support
|
74 |
+
|
75 |
+
This has no dependencies and should work in browsers, though you'll have
|
76 |
+
noisier stack traces.
|
77 |
+
|
78 |
+
### Why this exists
|
79 |
+
|
80 |
+
I wanted a very simple argument validator. It needed to do two things:
|
81 |
+
|
82 |
+
1. Be more concise and easier to use than assertions
|
83 |
+
|
84 |
+
2. Not encourage an infinite bikeshed of DSLs
|
85 |
+
|
86 |
+
This is why types are specified by a single character and there's no such
|
87 |
+
thing as an optional argument.
|
88 |
+
|
89 |
+
This is not intended to validate user data. This is specifically about
|
90 |
+
asserting the interface of your functions.
|
91 |
+
|
92 |
+
If you need greater validation, I encourage you to write them by hand or
|
93 |
+
look elsewhere.
|
94 |
+
|
bottaiko/node_modules/aproba/index.js
ADDED
@@ -0,0 +1,105 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
'use strict'
|
2 |
+
|
3 |
+
function isArguments (thingy) {
|
4 |
+
return thingy != null && typeof thingy === 'object' && thingy.hasOwnProperty('callee')
|
5 |
+
}
|
6 |
+
|
7 |
+
var types = {
|
8 |
+
'*': {label: 'any', check: function () { return true }},
|
9 |
+
A: {label: 'array', check: function (thingy) { return Array.isArray(thingy) || isArguments(thingy) }},
|
10 |
+
S: {label: 'string', check: function (thingy) { return typeof thingy === 'string' }},
|
11 |
+
N: {label: 'number', check: function (thingy) { return typeof thingy === 'number' }},
|
12 |
+
F: {label: 'function', check: function (thingy) { return typeof thingy === 'function' }},
|
13 |
+
O: {label: 'object', check: function (thingy) { return typeof thingy === 'object' && thingy != null && !types.A.check(thingy) && !types.E.check(thingy) }},
|
14 |
+
B: {label: 'boolean', check: function (thingy) { return typeof thingy === 'boolean' }},
|
15 |
+
E: {label: 'error', check: function (thingy) { return thingy instanceof Error }},
|
16 |
+
Z: {label: 'null', check: function (thingy) { return thingy == null }}
|
17 |
+
}
|
18 |
+
|
19 |
+
function addSchema (schema, arity) {
|
20 |
+
var group = arity[schema.length] = arity[schema.length] || []
|
21 |
+
if (group.indexOf(schema) === -1) group.push(schema)
|
22 |
+
}
|
23 |
+
|
24 |
+
var validate = module.exports = function (rawSchemas, args) {
|
25 |
+
if (arguments.length !== 2) throw wrongNumberOfArgs(['SA'], arguments.length)
|
26 |
+
if (!rawSchemas) throw missingRequiredArg(0, 'rawSchemas')
|
27 |
+
if (!args) throw missingRequiredArg(1, 'args')
|
28 |
+
if (!types.S.check(rawSchemas)) throw invalidType(0, ['string'], rawSchemas)
|
29 |
+
if (!types.A.check(args)) throw invalidType(1, ['array'], args)
|
30 |
+
var schemas = rawSchemas.split('|')
|
31 |
+
var arity = {}
|
32 |
+
|
33 |
+
schemas.forEach(function (schema) {
|
34 |
+
for (var ii = 0; ii < schema.length; ++ii) {
|
35 |
+
var type = schema[ii]
|
36 |
+
if (!types[type]) throw unknownType(ii, type)
|
37 |
+
}
|
38 |
+
if (/E.*E/.test(schema)) throw moreThanOneError(schema)
|
39 |
+
addSchema(schema, arity)
|
40 |
+
if (/E/.test(schema)) {
|
41 |
+
addSchema(schema.replace(/E.*$/, 'E'), arity)
|
42 |
+
addSchema(schema.replace(/E/, 'Z'), arity)
|
43 |
+
if (schema.length === 1) addSchema('', arity)
|
44 |
+
}
|
45 |
+
})
|
46 |
+
var matching = arity[args.length]
|
47 |
+
if (!matching) {
|
48 |
+
throw wrongNumberOfArgs(Object.keys(arity), args.length)
|
49 |
+
}
|
50 |
+
for (var ii = 0; ii < args.length; ++ii) {
|
51 |
+
var newMatching = matching.filter(function (schema) {
|
52 |
+
var type = schema[ii]
|
53 |
+
var typeCheck = types[type].check
|
54 |
+
return typeCheck(args[ii])
|
55 |
+
})
|
56 |
+
if (!newMatching.length) {
|
57 |
+
var labels = matching.map(function (schema) {
|
58 |
+
return types[schema[ii]].label
|
59 |
+
}).filter(function (schema) { return schema != null })
|
60 |
+
throw invalidType(ii, labels, args[ii])
|
61 |
+
}
|
62 |
+
matching = newMatching
|
63 |
+
}
|
64 |
+
}
|
65 |
+
|
66 |
+
function missingRequiredArg (num) {
|
67 |
+
return newException('EMISSINGARG', 'Missing required argument #' + (num + 1))
|
68 |
+
}
|
69 |
+
|
70 |
+
function unknownType (num, type) {
|
71 |
+
return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1))
|
72 |
+
}
|
73 |
+
|
74 |
+
function invalidType (num, expectedTypes, value) {
|
75 |
+
var valueType
|
76 |
+
Object.keys(types).forEach(function (typeCode) {
|
77 |
+
if (types[typeCode].check(value)) valueType = types[typeCode].label
|
78 |
+
})
|
79 |
+
return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' +
|
80 |
+
englishList(expectedTypes) + ' but got ' + valueType)
|
81 |
+
}
|
82 |
+
|
83 |
+
function englishList (list) {
|
84 |
+
return list.join(', ').replace(/, ([^,]+)$/, ' or $1')
|
85 |
+
}
|
86 |
+
|
87 |
+
function wrongNumberOfArgs (expected, got) {
|
88 |
+
var english = englishList(expected)
|
89 |
+
var args = expected.every(function (ex) { return ex.length === 1 })
|
90 |
+
? 'argument'
|
91 |
+
: 'arguments'
|
92 |
+
return newException('EWRONGARGCOUNT', 'Expected ' + english + ' ' + args + ' but got ' + got)
|
93 |
+
}
|
94 |
+
|
95 |
+
function moreThanOneError (schema) {
|
96 |
+
return newException('ETOOMANYERRORTYPES',
|
97 |
+
'Only one error type per argument signature is allowed, more than one found in "' + schema + '"')
|
98 |
+
}
|
99 |
+
|
100 |
+
function newException (code, msg) {
|
101 |
+
var e = new Error(msg)
|
102 |
+
e.code = code
|
103 |
+
if (Error.captureStackTrace) Error.captureStackTrace(e, validate)
|
104 |
+
return e
|
105 |
+
}
|
bottaiko/node_modules/aproba/package.json
ADDED
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"name": "aproba",
|
3 |
+
"version": "1.2.0",
|
4 |
+
"description": "A ridiculously light-weight argument validator (now browser friendly)",
|
5 |
+
"main": "index.js",
|
6 |
+
"directories": {
|
7 |
+
"test": "test"
|
8 |
+
},
|
9 |
+
"dependencies": {},
|
10 |
+
"devDependencies": {
|
11 |
+
"standard": "^10.0.3",
|
12 |
+
"tap": "^10.0.2"
|
13 |
+
},
|
14 |
+
"files": [
|
15 |
+
"index.js"
|
16 |
+
],
|
17 |
+
"scripts": {
|
18 |
+
"test": "standard && tap -j3 test/*.js"
|
19 |
+
},
|
20 |
+
"repository": {
|
21 |
+
"type": "git",
|
22 |
+
"url": "https://github.com/iarna/aproba"
|
23 |
+
},
|
24 |
+
"keywords": [
|
25 |
+
"argument",
|
26 |
+
"validate"
|
27 |
+
],
|
28 |
+
"author": "Rebecca Turner <[email protected]>",
|
29 |
+
"license": "ISC",
|
30 |
+
"bugs": {
|
31 |
+
"url": "https://github.com/iarna/aproba/issues"
|
32 |
+
},
|
33 |
+
"homepage": "https://github.com/iarna/aproba"
|
34 |
+
}
|