Compare commits
1 Commits
renovate/g
...
add-devcon
| Author | SHA1 | Date | |
|---|---|---|---|
|
eb3a74b709
|
0
.devcontainer/Dockerfile
Normal file
0
.devcontainer/Dockerfile
Normal file
42
.devcontainer/devcontainer.json
Normal file
42
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"name": "Gemini Agent Quality Ops",
|
||||||
|
"build": {
|
||||||
|
"dockerfile": "Dockerfile"
|
||||||
|
},
|
||||||
|
"features": {
|
||||||
|
"ghcr.io/devcontainers/features/python:1": {
|
||||||
|
"version": "3.11",
|
||||||
|
"installTools": true,
|
||||||
|
"optimize": true
|
||||||
|
},
|
||||||
|
"ghcr.io/devcontainers/features/git:1": {},
|
||||||
|
"ghcr.io/devcontainers/features/git-lfs:1": {},
|
||||||
|
"ghcr.io/devcontainers-extra/features/pipx-package:1": {
|
||||||
|
"packages": "pre-commit, ruff"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"customizations": {
|
||||||
|
"vscode": {
|
||||||
|
"extensions": [
|
||||||
|
"ms-python.python",
|
||||||
|
"esbenp.prettier-vscode",
|
||||||
|
"vitest.explorer",
|
||||||
|
"google.gemini-cli-vscode-ide-companion",
|
||||||
|
"google.geminicodeassist"
|
||||||
|
],
|
||||||
|
"settings": {
|
||||||
|
"editor.formatOnSave": true,
|
||||||
|
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"postCreateCommand": "npm install",
|
||||||
|
"postStartCommand": "bash .devcontainer/setup.sh",
|
||||||
|
"remoteUser": "node",
|
||||||
|
"mounts": [
|
||||||
|
"source=pipx-venvs,target=/home/node/.local/share/pipx,type=volume",
|
||||||
|
"source=pipx-bin,target=/home/node/.local/bin,type=volume",
|
||||||
|
"source=pre-commit-cache,target=/home/node/.cache/pre-commit,type=volume",
|
||||||
|
"source=${localEnv:HOME}/.gemini,target=/home/node/.gemini,type=bind"
|
||||||
|
]
|
||||||
|
}
|
||||||
16
.devcontainer/setup.sh
Normal file
16
.devcontainer/setup.sh
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# 1. Fix Git Permissions (Critical in Docker)
|
||||||
|
sudo chown -R $(whoami) .git
|
||||||
|
git config --global --add safe.directory $(pwd)
|
||||||
|
|
||||||
|
# 2. Re-connect Git Hooks
|
||||||
|
# 'pre-commit install' is idempotent (it checks if the hook exists and exits fast).
|
||||||
|
# It's safe to run on every start.
|
||||||
|
if command -v pre-commit &> /dev/null; then
|
||||||
|
pre-commit install
|
||||||
|
else
|
||||||
|
echo "⚠️ Warning: pre-commit not found. Skipping hook installation."
|
||||||
|
fi
|
||||||
|
|
||||||
|
# We REMOVED 'npm install' from here to speed up your daily workflow.
|
||||||
17
node_modules/.bin/glob.cmd
generated
vendored
Normal file
17
node_modules/.bin/glob.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\glob\dist\esm\bin.mjs" %*
|
||||||
28
node_modules/.bin/glob.ps1
generated
vendored
Normal file
28
node_modules/.bin/glob.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../glob/dist/esm/bin.mjs" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../glob/dist/esm/bin.mjs" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../glob/dist/esm/bin.mjs" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../glob/dist/esm/bin.mjs" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/json2yaml.cmd
generated
vendored
Normal file
17
node_modules/.bin/json2yaml.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\yamljs\bin\json2yaml" %*
|
||||||
28
node_modules/.bin/json2yaml.ps1
generated
vendored
Normal file
28
node_modules/.bin/json2yaml.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../yamljs/bin/json2yaml" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../yamljs/bin/json2yaml" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../yamljs/bin/json2yaml" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../yamljs/bin/json2yaml" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/node-gyp-build-optional.cmd
generated
vendored
Normal file
17
node_modules/.bin/node-gyp-build-optional.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build\optional.js" %*
|
||||||
28
node_modules/.bin/node-gyp-build-optional.ps1
generated
vendored
Normal file
28
node_modules/.bin/node-gyp-build-optional.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build/optional.js" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../node-gyp-build/optional.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../node-gyp-build/optional.js" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../node-gyp-build/optional.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/node-gyp-build-test.cmd
generated
vendored
Normal file
17
node_modules/.bin/node-gyp-build-test.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build\build-test.js" %*
|
||||||
28
node_modules/.bin/node-gyp-build-test.ps1
generated
vendored
Normal file
28
node_modules/.bin/node-gyp-build-test.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build/build-test.js" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../node-gyp-build/build-test.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../node-gyp-build/build-test.js" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../node-gyp-build/build-test.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/node-gyp-build.cmd
generated
vendored
Normal file
17
node_modules/.bin/node-gyp-build.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\node-gyp-build\bin.js" %*
|
||||||
28
node_modules/.bin/node-gyp-build.ps1
generated
vendored
Normal file
28
node_modules/.bin/node-gyp-build.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../node-gyp-build/bin.js" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../node-gyp-build/bin.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../node-gyp-build/bin.js" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../node-gyp-build/bin.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/node-which.cmd
generated
vendored
Normal file
17
node_modules/.bin/node-which.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\which\bin\node-which" %*
|
||||||
28
node_modules/.bin/node-which.ps1
generated
vendored
Normal file
28
node_modules/.bin/node-which.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../which/bin/node-which" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../which/bin/node-which" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../which/bin/node-which" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../which/bin/node-which" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/screeps-api.cmd
generated
vendored
Normal file
17
node_modules/.bin/screeps-api.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\screeps-api\bin\screeps-api.js" %*
|
||||||
28
node_modules/.bin/screeps-api.ps1
generated
vendored
Normal file
28
node_modules/.bin/screeps-api.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../screeps-api/bin/screeps-api.js" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../screeps-api/bin/screeps-api.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../screeps-api/bin/screeps-api.js" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../screeps-api/bin/screeps-api.js" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
17
node_modules/.bin/yaml2json.cmd
generated
vendored
Normal file
17
node_modules/.bin/yaml2json.cmd
generated
vendored
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
@ECHO off
|
||||||
|
GOTO start
|
||||||
|
:find_dp0
|
||||||
|
SET dp0=%~dp0
|
||||||
|
EXIT /b
|
||||||
|
:start
|
||||||
|
SETLOCAL
|
||||||
|
CALL :find_dp0
|
||||||
|
|
||||||
|
IF EXIST "%dp0%\node.exe" (
|
||||||
|
SET "_prog=%dp0%\node.exe"
|
||||||
|
) ELSE (
|
||||||
|
SET "_prog=node"
|
||||||
|
SET PATHEXT=%PATHEXT:;.JS;=;%
|
||||||
|
)
|
||||||
|
|
||||||
|
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\yamljs\bin\yaml2json" %*
|
||||||
28
node_modules/.bin/yaml2json.ps1
generated
vendored
Normal file
28
node_modules/.bin/yaml2json.ps1
generated
vendored
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
#!/usr/bin/env pwsh
|
||||||
|
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
|
||||||
|
|
||||||
|
$exe=""
|
||||||
|
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
|
||||||
|
# Fix case when both the Windows and Linux builds of Node
|
||||||
|
# are installed in the same directory
|
||||||
|
$exe=".exe"
|
||||||
|
}
|
||||||
|
$ret=0
|
||||||
|
if (Test-Path "$basedir/node$exe") {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "$basedir/node$exe" "$basedir/../yamljs/bin/yaml2json" $args
|
||||||
|
} else {
|
||||||
|
& "$basedir/node$exe" "$basedir/../yamljs/bin/yaml2json" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
} else {
|
||||||
|
# Support pipeline input
|
||||||
|
if ($MyInvocation.ExpectingInput) {
|
||||||
|
$input | & "node$exe" "$basedir/../yamljs/bin/yaml2json" $args
|
||||||
|
} else {
|
||||||
|
& "node$exe" "$basedir/../yamljs/bin/yaml2json" $args
|
||||||
|
}
|
||||||
|
$ret=$LASTEXITCODE
|
||||||
|
}
|
||||||
|
exit $ret
|
||||||
46
node_modules/.package-lock.json
generated
vendored
46
node_modules/.package-lock.json
generated
vendored
@@ -132,6 +132,20 @@
|
|||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/bufferutil": {
|
||||||
|
"version": "4.0.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz",
|
||||||
|
"integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/call-bind-apply-helpers": {
|
"node_modules/call-bind-apply-helpers": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||||
@@ -398,14 +412,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "11.1.0",
|
"version": "11.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
|
||||||
"integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
|
"integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"foreground-child": "^3.3.1",
|
"foreground-child": "^3.3.1",
|
||||||
"jackspeak": "^4.1.1",
|
"jackspeak": "^4.1.1",
|
||||||
"minimatch": "^10.1.1",
|
"minimatch": "^10.0.3",
|
||||||
"minipass": "^7.1.2",
|
"minipass": "^7.1.2",
|
||||||
"package-json-from-dist": "^1.0.0",
|
"package-json-from-dist": "^1.0.0",
|
||||||
"path-scurry": "^2.0.0"
|
"path-scurry": "^2.0.0"
|
||||||
@@ -553,10 +567,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/minimatch": {
|
"node_modules/minimatch": {
|
||||||
"version": "10.1.1",
|
"version": "10.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
|
||||||
"integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
|
"integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@isaacs/brace-expansion": "^5.0.0"
|
"@isaacs/brace-expansion": "^5.0.0"
|
||||||
},
|
},
|
||||||
@@ -805,6 +819,20 @@
|
|||||||
"node": ">=14.0"
|
"node": ">=14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/utf-8-validate": {
|
||||||
|
"version": "5.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
|
||||||
|
"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
|||||||
20
node_modules/bufferutil/LICENSE
generated
vendored
Normal file
20
node_modules/bufferutil/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com>
|
||||||
|
Copyright (c) 2013 Arnout Kazemier and contributors
|
||||||
|
Copyright (c) 2016 Luigi Pinca and contributors
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
79
node_modules/bufferutil/README.md
generated
vendored
Normal file
79
node_modules/bufferutil/README.md
generated
vendored
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
# bufferutil
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/bufferutil)
|
||||||
|
[](https://github.com/websockets/bufferutil/actions?query=workflow%3ACI+branch%3Amaster)
|
||||||
|
|
||||||
|
`bufferutil` is what makes `ws` fast. It provides some utilities to efficiently
|
||||||
|
perform some operations such as masking and unmasking the data payload of
|
||||||
|
WebSocket frames.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install bufferutil --save-optional
|
||||||
|
```
|
||||||
|
|
||||||
|
The `--save-optional` flag tells npm to save the package in your package.json
|
||||||
|
under the
|
||||||
|
[`optionalDependencies`](https://docs.npmjs.com/files/package.json#optionaldependencies)
|
||||||
|
key.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
The module exports two functions. To maximize performance, parameters are not
|
||||||
|
validated. It is the caller's responsibility to ensure that they are correct.
|
||||||
|
|
||||||
|
### `bufferUtil.mask(source, mask, output, offset, length)`
|
||||||
|
|
||||||
|
Masks a buffer using the given masking-key as specified by the WebSocket
|
||||||
|
protocol.
|
||||||
|
|
||||||
|
#### Arguments
|
||||||
|
|
||||||
|
- `source` - The buffer to mask.
|
||||||
|
- `mask` - A buffer representing the masking-key.
|
||||||
|
- `output` - The buffer where to store the result.
|
||||||
|
- `offset` - The offset at which to start writing.
|
||||||
|
- `length` - The number of bytes to mask.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const bufferUtil = require('bufferutil');
|
||||||
|
const crypto = require('crypto');
|
||||||
|
|
||||||
|
const source = crypto.randomBytes(10);
|
||||||
|
const mask = crypto.randomBytes(4);
|
||||||
|
|
||||||
|
bufferUtil.mask(source, mask, source, 0, source.length);
|
||||||
|
```
|
||||||
|
|
||||||
|
### `bufferUtil.unmask(buffer, mask)`
|
||||||
|
|
||||||
|
Unmasks a buffer using the given masking-key as specified by the WebSocket
|
||||||
|
protocol.
|
||||||
|
|
||||||
|
#### Arguments
|
||||||
|
|
||||||
|
- `buffer` - The buffer to unmask.
|
||||||
|
- `mask` - A buffer representing the masking-key.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const bufferUtil = require('bufferutil');
|
||||||
|
const crypto = require('crypto');
|
||||||
|
|
||||||
|
const buffer = crypto.randomBytes(10);
|
||||||
|
const mask = crypto.randomBytes(4);
|
||||||
|
|
||||||
|
bufferUtil.unmask(buffer, mask);
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
32
node_modules/bufferutil/binding.gyp
generated
vendored
Normal file
32
node_modules/bufferutil/binding.gyp
generated
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
'variables': {
|
||||||
|
'openssl_fips': ''
|
||||||
|
},
|
||||||
|
'targets': [
|
||||||
|
{
|
||||||
|
'target_name': 'bufferutil',
|
||||||
|
'sources': ['src/bufferutil.c'],
|
||||||
|
'cflags': ['-std=c99'],
|
||||||
|
'conditions': [
|
||||||
|
["OS=='mac'", {
|
||||||
|
'variables': {
|
||||||
|
'clang_version':
|
||||||
|
'<!(cc -v 2>&1 | perl -ne \'print $1 if /clang version ([0-9]+(\\.[0-9]+){2,})/\')'
|
||||||
|
},
|
||||||
|
'xcode_settings': {
|
||||||
|
'MACOSX_DEPLOYMENT_TARGET': '10.7'
|
||||||
|
},
|
||||||
|
'conditions': [
|
||||||
|
# Use Perl v-strings to compare versions.
|
||||||
|
['clang_version and <!(perl -e \'print <(clang_version) cmp 12.0.0\')==1', {
|
||||||
|
'xcode_settings': {
|
||||||
|
'OTHER_CFLAGS': ['-arch arm64'],
|
||||||
|
'OTHER_LDFLAGS': ['-arch arm64']
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
34
node_modules/bufferutil/fallback.js
generated
vendored
Normal file
34
node_modules/bufferutil/fallback.js
generated
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Masks a buffer using the given mask.
|
||||||
|
*
|
||||||
|
* @param {Buffer} source The buffer to mask
|
||||||
|
* @param {Buffer} mask The mask to use
|
||||||
|
* @param {Buffer} output The buffer where to store the result
|
||||||
|
* @param {Number} offset The offset at which to start writing
|
||||||
|
* @param {Number} length The number of bytes to mask.
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
const mask = (source, mask, output, offset, length) => {
|
||||||
|
for (var i = 0; i < length; i++) {
|
||||||
|
output[offset + i] = source[i] ^ mask[i & 3];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unmasks a buffer using the given mask.
|
||||||
|
*
|
||||||
|
* @param {Buffer} buffer The buffer to unmask
|
||||||
|
* @param {Buffer} mask The mask to use
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
const unmask = (buffer, mask) => {
|
||||||
|
// Required until https://github.com/nodejs/node/issues/9006 is resolved.
|
||||||
|
const length = buffer.length;
|
||||||
|
for (var i = 0; i < length; i++) {
|
||||||
|
buffer[i] ^= mask[i & 3];
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
module.exports = { mask, unmask };
|
||||||
7
node_modules/bufferutil/index.js
generated
vendored
Normal file
7
node_modules/bufferutil/index.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
try {
|
||||||
|
module.exports = require('node-gyp-build')(__dirname);
|
||||||
|
} catch (e) {
|
||||||
|
module.exports = require('./fallback');
|
||||||
|
}
|
||||||
36
node_modules/bufferutil/package.json
generated
vendored
Normal file
36
node_modules/bufferutil/package.json
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "bufferutil",
|
||||||
|
"version": "4.0.9",
|
||||||
|
"description": "WebSocket buffer utils",
|
||||||
|
"main": "index.js",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"install": "node-gyp-build",
|
||||||
|
"prebuild": "prebuildify --napi --strip --target=8.11.2",
|
||||||
|
"prebuild-darwin-x64+arm64": "prebuildify --arch x64+arm64 --napi --strip --target=8.11.2",
|
||||||
|
"test": "mocha"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/websockets/bufferutil"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"bufferutil"
|
||||||
|
],
|
||||||
|
"author": "Einar Otto Stangvik <einaros@gmail.com> (http://2x.io)",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/websockets/bufferutil/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/websockets/bufferutil",
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"mocha": "^11.0.1",
|
||||||
|
"node-gyp": "^11.0.0",
|
||||||
|
"prebuildify": "^6.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
node_modules/bufferutil/prebuilds/darwin-x64+arm64/bufferutil.node
generated
vendored
Normal file
BIN
node_modules/bufferutil/prebuilds/darwin-x64+arm64/bufferutil.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/bufferutil/prebuilds/linux-x64/bufferutil.node
generated
vendored
Normal file
BIN
node_modules/bufferutil/prebuilds/linux-x64/bufferutil.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/bufferutil/prebuilds/win32-ia32/bufferutil.node
generated
vendored
Normal file
BIN
node_modules/bufferutil/prebuilds/win32-ia32/bufferutil.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/bufferutil/prebuilds/win32-x64/bufferutil.node
generated
vendored
Normal file
BIN
node_modules/bufferutil/prebuilds/win32-x64/bufferutil.node
generated
vendored
Normal file
Binary file not shown.
171
node_modules/bufferutil/src/bufferutil.c
generated
vendored
Normal file
171
node_modules/bufferutil/src/bufferutil.c
generated
vendored
Normal file
@@ -0,0 +1,171 @@
|
|||||||
|
#define NAPI_VERSION 1
|
||||||
|
#include <assert.h>
|
||||||
|
#include <node_api.h>
|
||||||
|
|
||||||
|
napi_value Mask(napi_env env, napi_callback_info info) {
|
||||||
|
napi_status status;
|
||||||
|
size_t argc = 5;
|
||||||
|
napi_value argv[5];
|
||||||
|
|
||||||
|
status = napi_get_cb_info(env, info, &argc, argv, NULL, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
uint8_t *source;
|
||||||
|
uint8_t *mask;
|
||||||
|
uint8_t *destination;
|
||||||
|
uint32_t offset;
|
||||||
|
uint32_t length;
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[0], (void **)&source, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[1], (void **)&mask, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[2], (void **)&destination, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_get_value_uint32(env, argv[3], &offset);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_get_value_uint32(env, argv[4], &length);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
destination += offset;
|
||||||
|
uint32_t index = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Alignment preamble.
|
||||||
|
//
|
||||||
|
while (index < length && ((size_t)source % 8)) {
|
||||||
|
*destination++ = *source++ ^ mask[index % 4];
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
length -= index;
|
||||||
|
if (!length)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Realign mask and convert to 64 bit.
|
||||||
|
//
|
||||||
|
uint8_t maskAlignedArray[8];
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 8; i++, index++) {
|
||||||
|
maskAlignedArray[i] = mask[index % 4];
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Apply 64 bit mask in 8 byte chunks.
|
||||||
|
//
|
||||||
|
uint32_t loop = length / 8;
|
||||||
|
uint64_t *pMask8 = (uint64_t *)maskAlignedArray;
|
||||||
|
|
||||||
|
while (loop--) {
|
||||||
|
uint64_t *pFrom8 = (uint64_t *)source;
|
||||||
|
uint64_t *pTo8 = (uint64_t *)destination;
|
||||||
|
*pTo8 = *pFrom8 ^ *pMask8;
|
||||||
|
source += 8;
|
||||||
|
destination += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Apply mask to remaining data.
|
||||||
|
//
|
||||||
|
uint8_t *pmaskAlignedArray = maskAlignedArray;
|
||||||
|
|
||||||
|
length %= 8;
|
||||||
|
while (length--) {
|
||||||
|
*destination++ = *source++ ^ *pmaskAlignedArray++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
napi_value Unmask(napi_env env, napi_callback_info info) {
|
||||||
|
napi_status status;
|
||||||
|
size_t argc = 2;
|
||||||
|
napi_value argv[2];
|
||||||
|
|
||||||
|
status = napi_get_cb_info(env, info, &argc, argv, NULL, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
uint8_t *source;
|
||||||
|
size_t length;
|
||||||
|
uint8_t *mask;
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[0], (void **)&source, &length);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[1], (void **)&mask, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
uint32_t index = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Alignment preamble.
|
||||||
|
//
|
||||||
|
while (index < length && ((size_t)source % 8)) {
|
||||||
|
*source++ ^= mask[index % 4];
|
||||||
|
index++;
|
||||||
|
}
|
||||||
|
|
||||||
|
length -= index;
|
||||||
|
if (!length)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
//
|
||||||
|
// Realign mask and convert to 64 bit.
|
||||||
|
//
|
||||||
|
uint8_t maskAlignedArray[8];
|
||||||
|
|
||||||
|
for (uint8_t i = 0; i < 8; i++, index++) {
|
||||||
|
maskAlignedArray[i] = mask[index % 4];
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Apply 64 bit mask in 8 byte chunks.
|
||||||
|
//
|
||||||
|
uint32_t loop = length / 8;
|
||||||
|
uint64_t *pMask8 = (uint64_t *)maskAlignedArray;
|
||||||
|
|
||||||
|
while (loop--) {
|
||||||
|
uint64_t *pSource8 = (uint64_t *)source;
|
||||||
|
*pSource8 ^= *pMask8;
|
||||||
|
source += 8;
|
||||||
|
}
|
||||||
|
|
||||||
|
//
|
||||||
|
// Apply mask to remaining data.
|
||||||
|
//
|
||||||
|
uint8_t *pmaskAlignedArray = maskAlignedArray;
|
||||||
|
|
||||||
|
length %= 8;
|
||||||
|
while (length--) {
|
||||||
|
*source++ ^= *pmaskAlignedArray++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
napi_value Init(napi_env env, napi_value exports) {
|
||||||
|
napi_status status;
|
||||||
|
napi_value mask;
|
||||||
|
napi_value unmask;
|
||||||
|
|
||||||
|
status = napi_create_function(env, NULL, 0, Mask, NULL, &mask);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_create_function(env, NULL, 0, Unmask, NULL, &unmask);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_set_named_property(env, exports, "mask", mask);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
status = napi_set_named_property(env, exports, "unmask", unmask);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
return exports;
|
||||||
|
}
|
||||||
|
|
||||||
|
NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
|
||||||
15
node_modules/glob/LICENSE
generated
vendored
Normal file
15
node_modules/glob/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
The ISC License
|
||||||
|
|
||||||
|
Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
|
copyright notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||||
|
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
63
node_modules/glob/LICENSE.md
generated
vendored
63
node_modules/glob/LICENSE.md
generated
vendored
@@ -1,63 +0,0 @@
|
|||||||
All packages under `src/` are licensed according to the terms in
|
|
||||||
their respective `LICENSE` or `LICENSE.md` files.
|
|
||||||
|
|
||||||
The remainder of this project is licensed under the Blue Oak
|
|
||||||
Model License, as follows:
|
|
||||||
|
|
||||||
-----
|
|
||||||
|
|
||||||
# Blue Oak Model License
|
|
||||||
|
|
||||||
Version 1.0.0
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
This license gives everyone as much permission to work with
|
|
||||||
this software as possible, while protecting contributors
|
|
||||||
from liability.
|
|
||||||
|
|
||||||
## Acceptance
|
|
||||||
|
|
||||||
In order to receive this license, you must agree to its
|
|
||||||
rules. The rules of this license are both obligations
|
|
||||||
under that agreement and conditions to your license.
|
|
||||||
You must not do anything with this software that triggers
|
|
||||||
a rule that you cannot or will not follow.
|
|
||||||
|
|
||||||
## Copyright
|
|
||||||
|
|
||||||
Each contributor licenses you to do everything with this
|
|
||||||
software that would otherwise infringe that contributor's
|
|
||||||
copyright in it.
|
|
||||||
|
|
||||||
## Notices
|
|
||||||
|
|
||||||
You must ensure that everyone who gets a copy of
|
|
||||||
any part of this software from you, with or without
|
|
||||||
changes, also gets the text of this license or a link to
|
|
||||||
<https://blueoakcouncil.org/license/1.0.0>.
|
|
||||||
|
|
||||||
## Excuse
|
|
||||||
|
|
||||||
If anyone notifies you in writing that you have not
|
|
||||||
complied with [Notices](#notices), you can keep your
|
|
||||||
license by taking all practical steps to comply within 30
|
|
||||||
days after the notice. If you do not do so, your license
|
|
||||||
ends immediately.
|
|
||||||
|
|
||||||
## Patent
|
|
||||||
|
|
||||||
Each contributor licenses you to do everything with this
|
|
||||||
software that would otherwise infringe any patent claims
|
|
||||||
they can license or become able to license.
|
|
||||||
|
|
||||||
## Reliability
|
|
||||||
|
|
||||||
No contributor can revoke this license.
|
|
||||||
|
|
||||||
## No Liability
|
|
||||||
|
|
||||||
***As far as the law allows, this software comes as is,
|
|
||||||
without any warranty or condition, and no contributor
|
|
||||||
will be liable to anyone for any damages related to this
|
|
||||||
software or this license, under any kind of legal claim.***
|
|
||||||
221
node_modules/glob/README.md
generated
vendored
221
node_modules/glob/README.md
generated
vendored
@@ -3,12 +3,10 @@
|
|||||||
Match files using the patterns the shell uses.
|
Match files using the patterns the shell uses.
|
||||||
|
|
||||||
The most correct and second fastest glob implementation in
|
The most correct and second fastest glob implementation in
|
||||||
JavaScript. (See [**Comparison to Other JavaScript Glob
|
JavaScript. (See **Comparison to Other JavaScript Glob
|
||||||
Implementations**](#comparisons-to-other-fnmatchglob-implementations)
|
Implementations** at the bottom of this readme.)
|
||||||
at the bottom of this readme.)
|
|
||||||
|
|
||||||

|
||||||
characters](https://github.com/isaacs/node-glob/raw/main/logo/glob.png)
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
@@ -18,9 +16,8 @@ Install with npm
|
|||||||
npm i glob
|
npm i glob
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
**Note** the npm package name is _not_ `node-glob` that's a
|
||||||
> The npm package name is _not_ `node-glob` that's a
|
different thing that was abandoned years ago. Just `glob`.
|
||||||
> different thing that was abandoned years ago. Just `glob`.
|
|
||||||
|
|
||||||
```js
|
```js
|
||||||
// load using import
|
// load using import
|
||||||
@@ -72,9 +69,8 @@ for (const file of g2) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// you can also pass withFileTypes: true to get Path objects
|
// you can also pass withFileTypes: true to get Path objects
|
||||||
// these are like a fs.Dirent, but with some more added powers
|
// these are like a Dirent, but with some more added powers
|
||||||
// check out https://isaacs.github.io/path-scurry/classes/PathBase.html
|
// check out http://npm.im/path-scurry for more info on their API
|
||||||
// for more info on their API
|
|
||||||
const g3 = new Glob('**/baz/**', { withFileTypes: true })
|
const g3 = new Glob('**/baz/**', { withFileTypes: true })
|
||||||
g3.stream().on('data', path => {
|
g3.stream().on('data', path => {
|
||||||
console.log(
|
console.log(
|
||||||
@@ -139,14 +135,13 @@ const newFiles = await glob('**', {
|
|||||||
})
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
> [!NOTE]
|
**Note** Glob patterns should always use `/` as a path separator,
|
||||||
> Glob patterns should always use `/` as a path separator,
|
even on Windows systems, as `\` is used to escape glob
|
||||||
> even on Windows systems, as `\` is used to escape glob
|
characters. If you wish to use `\` as a path separator _instead
|
||||||
> characters. If you wish to use `\` as a path separator _instead
|
of_ using it as an escape character on Windows platforms, you may
|
||||||
> of_ using it as an escape character on Windows platforms, you may
|
set `windowsPathsNoEscape:true` in the options. In this mode,
|
||||||
> set `windowsPathsNoEscape:true` in the options. In this mode,
|
special glob characters cannot be escaped, making it impossible
|
||||||
> special glob characters cannot be escaped, making it impossible
|
to match a literal `*` `?` and so on in filenames.
|
||||||
> to match a literal `*` `?` and so on in filenames.
|
|
||||||
|
|
||||||
## Command Line Interface
|
## Command Line Interface
|
||||||
|
|
||||||
@@ -192,7 +187,7 @@ paths found.
|
|||||||
-x --posix Always resolve to posix style paths, using '/' as the
|
-x --posix Always resolve to posix style paths, using '/' as the
|
||||||
directory separator, even on Windows. Drive letter
|
directory separator, even on Windows. Drive letter
|
||||||
absolute matches on Windows will be expanded to their
|
absolute matches on Windows will be expanded to their
|
||||||
full resolved UNC paths, eg instead of 'C:\foo\bar', it
|
full resolved UNC maths, eg instead of 'C:\foo\bar', it
|
||||||
will expand to '//?/C:/foo/bar'.
|
will expand to '//?/C:/foo/bar'.
|
||||||
|
|
||||||
-f --follow Follow symlinked directories when expanding '**'
|
-f --follow Follow symlinked directories when expanding '**'
|
||||||
@@ -367,17 +362,16 @@ Options object is required.
|
|||||||
|
|
||||||
See full options descriptions below.
|
See full options descriptions below.
|
||||||
|
|
||||||
> [!NOTE]
|
Note that a previous `Glob` object can be passed as the
|
||||||
> A previous `Glob` object can be passed as the
|
`GlobOptions` to another `Glob` instantiation to re-use settings
|
||||||
> `GlobOptions` to another `Glob` instantiation to re-use settings
|
and caches with a new pattern.
|
||||||
> and caches with a new pattern.
|
|
||||||
|
|
||||||
Traversal functions can be called multiple times to run the walk
|
Traversal functions can be called multiple times to run the walk
|
||||||
again.
|
again.
|
||||||
|
|
||||||
### `g.stream()`
|
### `g.stream()`
|
||||||
|
|
||||||
Stream results asynchronously.
|
Stream results asynchronously,
|
||||||
|
|
||||||
### `g.streamSync()`
|
### `g.streamSync()`
|
||||||
|
|
||||||
@@ -435,37 +429,35 @@ share the previously loaded cache.
|
|||||||
is used as the starting point for absolute patterns that start
|
is used as the starting point for absolute patterns that start
|
||||||
with `/`, (but not drive letters or UNC paths on Windows).
|
with `/`, (but not drive letters or UNC paths on Windows).
|
||||||
|
|
||||||
To start absolute and non-absolute patterns in the same path,
|
Note that this _doesn't_ necessarily limit the walk to the
|
||||||
you can use `{root:''}`. However, be aware that on Windows
|
`root` directory, and doesn't affect the cwd starting point for
|
||||||
systems, a pattern like `x:/*` or `//host/share/*` will
|
non-absolute patterns. A pattern containing `..` will still be
|
||||||
_always_ start in the `x:/` or `//host/share` directory,
|
able to traverse out of the root directory, if it is not an
|
||||||
regardless of the `root` setting.
|
actual root directory on the filesystem, and any non-absolute
|
||||||
|
patterns will be matched in the `cwd`. For example, the
|
||||||
|
pattern `/../*` with `{root:'/some/path'}` will return all
|
||||||
|
files in `/some`, not all files in `/some/path`. The pattern
|
||||||
|
`*` with `{root:'/some/path'}` will return all the entries in
|
||||||
|
the cwd, not the entries in `/some/path`.
|
||||||
|
|
||||||
> [!NOTE] This _doesn't_ necessarily limit the walk to the
|
To start absolute and non-absolute patterns in the same
|
||||||
> `root` directory, and doesn't affect the cwd starting point
|
path, you can use `{root:''}`. However, be aware that on
|
||||||
> for non-absolute patterns. A pattern containing `..` will
|
Windows systems, a pattern like `x:/*` or `//host/share/*` will
|
||||||
> still be able to traverse out of the root directory, if it
|
_always_ start in the `x:/` or `//host/share` directory,
|
||||||
> is not an actual root directory on the filesystem, and any
|
regardless of the `root` setting.
|
||||||
> non-absolute patterns will be matched in the `cwd`. For
|
|
||||||
> example, the pattern `/../*` with `{root:'/some/path'}`
|
|
||||||
> will return all files in `/some`, not all files in
|
|
||||||
> `/some/path`. The pattern `*` with `{root:'/some/path'}`
|
|
||||||
> will return all the entries in the cwd, not the entries in
|
|
||||||
> `/some/path`.
|
|
||||||
|
|
||||||
- `windowsPathsNoEscape` Use `\\` as a path separator _only_, and
|
- `windowsPathsNoEscape` Use `\\` as a path separator _only_, and
|
||||||
_never_ as an escape character. If set, all `\\` characters are
|
_never_ as an escape character. If set, all `\\` characters are
|
||||||
replaced with `/` in the pattern.
|
replaced with `/` in the pattern.
|
||||||
|
|
||||||
> [!NOTE]
|
Note that this makes it **impossible** to match against paths
|
||||||
> This makes it **impossible** to match against paths
|
containing literal glob pattern characters, but allows matching
|
||||||
> containing literal glob pattern characters, but allows matching
|
with patterns constructed using `path.join()` and
|
||||||
> with patterns constructed using `path.join()` and
|
`path.resolve()` on Windows platforms, mimicking the (buggy!)
|
||||||
> `path.resolve()` on Windows platforms, mimicking the (buggy!)
|
behavior of Glob v7 and before on Windows. Please use with
|
||||||
> behavior of Glob v7 and before on Windows. Please use with
|
caution, and be mindful of [the caveat below about Windows
|
||||||
> caution, and be mindful of [the caveat below about Windows
|
paths](#windows). (For legacy reasons, this is also set if
|
||||||
> paths](#windows). (For legacy reasons, this is also set if
|
`allowWindowsEscape` is set to the exact value `false`.)
|
||||||
> `allowWindowsEscape` is set to the exact value `false`.)
|
|
||||||
|
|
||||||
- `dot` Include `.dot` files in normal matches and `globstar`
|
- `dot` Include `.dot` files in normal matches and `globstar`
|
||||||
matches. Note that an explicit dot in a portion of the pattern
|
matches. Note that an explicit dot in a portion of the pattern
|
||||||
@@ -500,12 +492,11 @@ share the previously loaded cache.
|
|||||||
- `nocase` Perform a case-insensitive match. This defaults to
|
- `nocase` Perform a case-insensitive match. This defaults to
|
||||||
`true` on macOS and Windows systems, and `false` on all others.
|
`true` on macOS and Windows systems, and `false` on all others.
|
||||||
|
|
||||||
> [!NOTE]
|
**Note** `nocase` should only be explicitly set when it is
|
||||||
> `nocase` should only be explicitly set when it is
|
known that the filesystem's case sensitivity differs from the
|
||||||
> known that the filesystem's case sensitivity differs from the
|
platform default. If set `true` on case-sensitive file
|
||||||
> platform default. If set `true` on case-sensitive file
|
systems, or `false` on case-insensitive file systems, then the
|
||||||
> systems, or `false` on case-insensitive file systems, then the
|
walk may return more or less results than expected.
|
||||||
> walk may return more or less results than expected.
|
|
||||||
|
|
||||||
- `maxDepth` Specify a number to limit the depth of the directory
|
- `maxDepth` Specify a number to limit the depth of the directory
|
||||||
traversal to this many levels below the `cwd`.
|
traversal to this many levels below the `cwd`.
|
||||||
@@ -518,9 +509,8 @@ share the previously loaded cache.
|
|||||||
- `nodir` Do not match directories, only files. (Note: to match
|
- `nodir` Do not match directories, only files. (Note: to match
|
||||||
_only_ directories, put a `/` at the end of the pattern.)
|
_only_ directories, put a `/` at the end of the pattern.)
|
||||||
|
|
||||||
> [!NOTE]
|
Note: when `follow` and `nodir` are both set, then symbolic
|
||||||
> When `follow` and `nodir` are both set, then symbolic
|
links to directories are also omitted.
|
||||||
> links to directories are also omitted.
|
|
||||||
|
|
||||||
- `stat` Call `lstat()` on all entries, whether required or not
|
- `stat` Call `lstat()` on all entries, whether required or not
|
||||||
to determine whether it's a valid match. When used with
|
to determine whether it's a valid match. When used with
|
||||||
@@ -531,30 +521,19 @@ share the previously loaded cache.
|
|||||||
- `ignore` string or string[], or an object with `ignored` and
|
- `ignore` string or string[], or an object with `ignored` and
|
||||||
`childrenIgnored` methods.
|
`childrenIgnored` methods.
|
||||||
|
|
||||||
If a string or string[] is provided, then this is treated as
|
If a string or string[] is provided, then this is treated as a
|
||||||
a glob pattern or array of glob patterns to exclude from
|
glob pattern or array of glob patterns to exclude from matches.
|
||||||
matches. To ignore all children within a directory, as well
|
To ignore all children within a directory, as well as the entry
|
||||||
as the entry itself, append `'/**'` to the ignore pattern.
|
itself, append `'/**'` to the ignore pattern.
|
||||||
|
|
||||||
|
**Note** `ignore` patterns are _always_ in `dot:true` mode,
|
||||||
|
regardless of any other settings.
|
||||||
|
|
||||||
If an object is provided that has `ignored(path)` and/or
|
If an object is provided that has `ignored(path)` and/or
|
||||||
`childrenIgnored(path)` methods, then these methods will be
|
`childrenIgnored(path)` methods, then these methods will be
|
||||||
called to determine whether any Path is a match or if its
|
called to determine whether any Path is a match or if its
|
||||||
children should be traversed, respectively.
|
children should be traversed, respectively.
|
||||||
|
|
||||||
The `path` argument to the methods will be a
|
|
||||||
[`path-scurry`](https://isaacs.github.io/path-scurry/index.html)
|
|
||||||
[`Path`](https://isaacs.github.io/path-scurry/classes/PathBase)
|
|
||||||
object, which extends
|
|
||||||
[`fs.Dirent`](https://nodejs.org/docs/latest/api/fs.html#class-fsdirent)
|
|
||||||
with additional useful methods like
|
|
||||||
[`.fullpath()`](https://isaacs.github.io/path-scurry/classes/PathBase.html#fullpath),
|
|
||||||
[`.relative()`](https://isaacs.github.io/path-scurry/classes/PathBase.html#relative),
|
|
||||||
and more.
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> `ignore` patterns are _always_ in `dot:true` mode,
|
|
||||||
> regardless of any other settings.
|
|
||||||
|
|
||||||
- `follow` Follow symlinked directories when expanding `**`
|
- `follow` Follow symlinked directories when expanding `**`
|
||||||
patterns. This can result in a lot of duplicate references in
|
patterns. This can result in a lot of duplicate references in
|
||||||
the presence of cyclic links, and make performance quite bad.
|
the presence of cyclic links, and make performance quite bad.
|
||||||
@@ -563,9 +542,8 @@ share the previously loaded cache.
|
|||||||
it is not the first item in the pattern, or none if it is the
|
it is not the first item in the pattern, or none if it is the
|
||||||
first item in the pattern, following the same behavior as Bash.
|
first item in the pattern, following the same behavior as Bash.
|
||||||
|
|
||||||
> [!NOTE]
|
Note: when `follow` and `nodir` are both set, then symbolic
|
||||||
> When `follow` and `nodir` are both set, then symbolic
|
links to directories are also omitted.
|
||||||
> links to directories are also omitted.
|
|
||||||
|
|
||||||
- `realpath` Set to true to call `fs.realpath` on all of the
|
- `realpath` Set to true to call `fs.realpath` on all of the
|
||||||
results. In the case of an entry that cannot be resolved, the
|
results. In the case of an entry that cannot be resolved, the
|
||||||
@@ -586,21 +564,20 @@ share the previously loaded cache.
|
|||||||
`absolute` may not be used along with `withFileTypes`.
|
`absolute` may not be used along with `withFileTypes`.
|
||||||
|
|
||||||
- `posix` Set to true to use `/` as the path separator in
|
- `posix` Set to true to use `/` as the path separator in
|
||||||
returned results. On POSIX systems, this has no effect. On
|
returned results. On posix systems, this has no effect. On
|
||||||
Windows systems, this will return `/` delimited path results,
|
Windows systems, this will return `/` delimited path results,
|
||||||
and absolute paths will be returned in their fully resolved UNC
|
and absolute paths will be returned in their full resolved UNC
|
||||||
path form, e.g. instead of `'C:\\foo\\bar'`, it will return
|
path form, eg insted of `'C:\\foo\\bar'`, it will return
|
||||||
`//?/C:/foo/bar`.
|
`//?/C:/foo/bar`.
|
||||||
|
|
||||||
- `platform` Defaults to the value of `process.platform` if
|
- `platform` Defaults to value of `process.platform` if
|
||||||
available, or `'linux'` if not. Setting `platform:'win32'` on
|
available, or `'linux'` if not. Setting `platform:'win32'` on
|
||||||
non-Windows systems may cause strange behavior.
|
non-Windows systems may cause strange behavior.
|
||||||
|
|
||||||
- `withFileTypes` Return
|
- `withFileTypes` Return [PathScurry](http://npm.im/path-scurry)
|
||||||
[`path-scurry`](http://npm.im/path-scurry)
|
`Path` objects instead of strings. These are similar to a
|
||||||
[`Path`](https://isaacs.github.io/path-scurry/classes/PathBase.html)
|
NodeJS `Dirent` object, but with additional methods and
|
||||||
objects instead of strings. These are similar to a NodeJS
|
properties.
|
||||||
`fs.Dirent` object, but with additional methods and properties.
|
|
||||||
|
|
||||||
`withFileTypes` may not be used along with `absolute`.
|
`withFileTypes` may not be used along with `absolute`.
|
||||||
|
|
||||||
@@ -608,15 +585,13 @@ share the previously loaded cache.
|
|||||||
triggered.
|
triggered.
|
||||||
|
|
||||||
- `fs` An override object to pass in custom filesystem methods.
|
- `fs` An override object to pass in custom filesystem methods.
|
||||||
See [`path-scurry`
|
See [PathScurry docs](http://npm.im/path-scurry) for what can
|
||||||
docs](https://isaacs.github.io/path-scurry/interfaces/FSOption.html)
|
be overridden.
|
||||||
for what can be overridden.
|
|
||||||
|
|
||||||
- `scurry` A
|
- `scurry` A [PathScurry](http://npm.im/path-scurry) object used
|
||||||
[`PathScurry`](https://isaacs.github.io/path-scurry/classes/PathScurryBase.html)
|
to traverse the file system. If the `nocase` option is set
|
||||||
object used to traverse the file system. If the `nocase` option
|
explicitly, then any provided `scurry` object must match this
|
||||||
is set explicitly, then any provided `scurry` object must match
|
setting.
|
||||||
this setting.
|
|
||||||
|
|
||||||
- `includeChildMatches` boolean, default `true`. Do not match any
|
- `includeChildMatches` boolean, default `true`. Do not match any
|
||||||
children of any matches. For example, the pattern `**\/foo`
|
children of any matches. For example, the pattern `**\/foo`
|
||||||
@@ -631,6 +606,13 @@ share the previously loaded cache.
|
|||||||
`false`, and a custom `Ignore` is provided that does not have
|
`false`, and a custom `Ignore` is provided that does not have
|
||||||
an `add()` method, then it will throw an error.
|
an `add()` method, then it will throw an error.
|
||||||
|
|
||||||
|
**Caveat** It _only_ ignores matches that would be a descendant
|
||||||
|
of a previous match, and only if that descendant is matched
|
||||||
|
_after_ the ancestor is encountered. Since the file system walk
|
||||||
|
happens in indeterminate order, it's possible that a match will
|
||||||
|
already be added before its ancestor, if multiple or braced
|
||||||
|
patterns are used.
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
|
||||||
```js
|
```js
|
||||||
@@ -656,15 +638,6 @@ share the previously loaded cache.
|
|||||||
one another's file system descendants, or if the occasional
|
one another's file system descendants, or if the occasional
|
||||||
included child entry will not cause problems.
|
included child entry will not cause problems.
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> It _only_ ignores matches that would be a descendant
|
|
||||||
> of a previous match, and only if that descendant is matched
|
|
||||||
> _after_ the ancestor is encountered. Since the file system walk
|
|
||||||
> happens in indeterminate order, it's possible that a match will
|
|
||||||
> already be added before its ancestor, if multiple or braced
|
|
||||||
> patterns are used.
|
|
||||||
|
|
||||||
|
|
||||||
## Glob Primer
|
## Glob Primer
|
||||||
|
|
||||||
Much more information about glob pattern expansion can be found
|
Much more information about glob pattern expansion can be found
|
||||||
@@ -764,12 +737,11 @@ bsdglob and bash 5, where `**` only has special significance if
|
|||||||
it is the only thing in a path part. That is, `a/**/b` will match
|
it is the only thing in a path part. That is, `a/**/b` will match
|
||||||
`a/x/y/b`, but `a/**b` will not.
|
`a/x/y/b`, but `a/**b` will not.
|
||||||
|
|
||||||
> [!NOTE]
|
Note that symlinked directories are not traversed as part of a
|
||||||
> Symlinked directories are not traversed as part of a
|
`**`, though their contents may match against subsequent portions
|
||||||
> `**`, though their contents may match against subsequent portions
|
of the pattern. This prevents infinite loops and duplicates and
|
||||||
> of the pattern. This prevents infinite loops and duplicates and
|
the like. You can force glob to traverse symlinks with `**` by
|
||||||
> the like. You can force glob to traverse symlinks with `**` by
|
setting `{follow:true}` in the options.
|
||||||
> setting `{follow:true}` in the options.
|
|
||||||
|
|
||||||
There is no equivalent of the `nonull` option. A pattern that
|
There is no equivalent of the `nonull` option. A pattern that
|
||||||
does not find any matches simply resolves to nothing. (An empty
|
does not find any matches simply resolves to nothing. (An empty
|
||||||
@@ -782,8 +754,8 @@ expanded **first** into the set of `+(a|b)` and `+(a|c)`, and
|
|||||||
those patterns are checked for validity. Since those two are
|
those patterns are checked for validity. Since those two are
|
||||||
valid, matching proceeds.
|
valid, matching proceeds.
|
||||||
|
|
||||||
The character class patterns `[:class:]` (POSIX standard named
|
The character class patterns `[:class:]` (posix standard named
|
||||||
classes) style class patterns are supported and Unicode-aware,
|
classes) style class patterns are supported and unicode-aware,
|
||||||
but `[=c=]` (locale-specific character collation weight), and
|
but `[=c=]` (locale-specific character collation weight), and
|
||||||
`[.symbol.]` (collating symbol), are not.
|
`[.symbol.]` (collating symbol), are not.
|
||||||
|
|
||||||
@@ -807,13 +779,13 @@ To specify things that should not match, use the `ignore` option.
|
|||||||
|
|
||||||
**Please only use forward-slashes in glob expressions.**
|
**Please only use forward-slashes in glob expressions.**
|
||||||
|
|
||||||
Though Windows uses either `/` or `\` as its path separator, only
|
Though windows uses either `/` or `\` as its path separator, only
|
||||||
`/` characters are used by this glob implementation. You must use
|
`/` characters are used by this glob implementation. You must use
|
||||||
forward-slashes **only** in glob expressions. Back-slashes will
|
forward-slashes **only** in glob expressions. Back-slashes will
|
||||||
always be interpreted as escape characters, not path separators.
|
always be interpreted as escape characters, not path separators.
|
||||||
|
|
||||||
Results from absolute patterns such as `/foo/*` are mounted onto
|
Results from absolute patterns such as `/foo/*` are mounted onto
|
||||||
the root setting using `path.join`. On Windows, this will by
|
the root setting using `path.join`. On windows, this will by
|
||||||
default result in `/foo/*` matching `C:\foo\bar.txt`.
|
default result in `/foo/*` matching `C:\foo\bar.txt`.
|
||||||
|
|
||||||
To automatically coerce all `\` characters to `/` in pattern
|
To automatically coerce all `\` characters to `/` in pattern
|
||||||
@@ -823,7 +795,7 @@ characters**, you may set the `windowsPathsNoEscape` option to
|
|||||||
|
|
||||||
### Windows, CWDs, Drive Letters, and UNC Paths
|
### Windows, CWDs, Drive Letters, and UNC Paths
|
||||||
|
|
||||||
On POSIX systems, when a pattern starts with `/`, any `cwd`
|
On posix systems, when a pattern starts with `/`, any `cwd`
|
||||||
option is ignored, and the traversal starts at `/`, plus any
|
option is ignored, and the traversal starts at `/`, plus any
|
||||||
non-magic path portions specified in the pattern.
|
non-magic path portions specified in the pattern.
|
||||||
|
|
||||||
@@ -983,11 +955,10 @@ performing a glob pattern expansion as faithfully as possible to
|
|||||||
the behavior of Bash and other sh-like shells, with as much speed
|
the behavior of Bash and other sh-like shells, with as much speed
|
||||||
as possible.
|
as possible.
|
||||||
|
|
||||||
> [!NOTE]
|
Note that prior versions of `node-glob` are _not_ on this list.
|
||||||
> Prior versions of `node-glob` are _not_ on this list.
|
Former versions of this module are far too slow for any cases
|
||||||
> Former versions of this module are far too slow for any cases
|
where performance matters at all, and were designed with APIs
|
||||||
> where performance matters at all, and were designed with APIs
|
that are extremely dated by current JavaScript standards.
|
||||||
> that are extremely dated by current JavaScript standards.
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -999,9 +970,9 @@ course.</small>
|
|||||||
|
|
||||||
### Benchmark Results
|
### Benchmark Results
|
||||||
|
|
||||||
The first number is time, smaller is better.
|
First number is time, smaller is better.
|
||||||
|
|
||||||
The second number is the count of results returned.
|
Second number is the count of results returned.
|
||||||
|
|
||||||
```
|
```
|
||||||
--- pattern: '**' ---
|
--- pattern: '**' ---
|
||||||
|
|||||||
2
node_modules/glob/dist/commonjs/has-magic.d.ts.map
generated
vendored
2
node_modules/glob/dist/commonjs/has-magic.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GACnB,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1B,UAAS,WAAgB,KACxB,OAQF,CAAA"}
|
{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"}
|
||||||
4
node_modules/glob/dist/commonjs/index.d.ts
generated
vendored
4
node_modules/glob/dist/commonjs/index.d.ts
generated
vendored
@@ -91,7 +91,7 @@ export declare const glob: typeof glob_ & {
|
|||||||
iterateSync: typeof globIterateSync;
|
iterateSync: typeof globIterateSync;
|
||||||
Glob: typeof Glob;
|
Glob: typeof Glob;
|
||||||
hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
|
hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
|
||||||
escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
escape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
unescape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=index.d.ts.map
|
//# sourceMappingURL=index.d.ts.map
|
||||||
138
node_modules/glob/dist/esm/bin.mjs
generated
vendored
138
node_modules/glob/dist/esm/bin.mjs
generated
vendored
@@ -3,7 +3,7 @@ import { foregroundChild } from 'foreground-child';
|
|||||||
import { existsSync } from 'fs';
|
import { existsSync } from 'fs';
|
||||||
import { jack } from 'jackspeak';
|
import { jack } from 'jackspeak';
|
||||||
import { loadPackageJson } from 'package-json-from-dist';
|
import { loadPackageJson } from 'package-json-from-dist';
|
||||||
import { basename, join } from 'path';
|
import { join } from 'path';
|
||||||
import { globStream } from './index.js';
|
import { globStream } from './index.js';
|
||||||
const { version } = loadPackageJson(import.meta.url, '../package.json');
|
const { version } = loadPackageJson(import.meta.url, '../package.json');
|
||||||
const j = jack({
|
const j = jack({
|
||||||
@@ -30,50 +30,6 @@ const j = jack({
|
|||||||
description: `If no positional arguments are provided, glob will use
|
description: `If no positional arguments are provided, glob will use
|
||||||
this pattern`,
|
this pattern`,
|
||||||
},
|
},
|
||||||
})
|
|
||||||
.flag({
|
|
||||||
shell: {
|
|
||||||
default: false,
|
|
||||||
description: `Interpret the command as a shell command by passing it
|
|
||||||
to the shell, with all matched filesystem paths appended,
|
|
||||||
**even if this cannot be done safely**.
|
|
||||||
|
|
||||||
This is **not** unsafe (and usually unnecessary) when using
|
|
||||||
the known Unix shells sh, bash, zsh, and fish, as these can
|
|
||||||
all be executed in such a way as to pass positional
|
|
||||||
arguments safely.
|
|
||||||
|
|
||||||
**Note**: THIS IS UNSAFE IF THE FILE PATHS ARE UNTRUSTED,
|
|
||||||
because a path like \`'some/path/\\$\\(cmd)'\` will be
|
|
||||||
executed by the shell.
|
|
||||||
|
|
||||||
If you do have positional arguments that you wish to pass to
|
|
||||||
the command ahead of the glob pattern matches, use the
|
|
||||||
\`--cmd-arg\`/\`-g\` option instead.
|
|
||||||
|
|
||||||
The next major release of glob will fully remove the ability
|
|
||||||
to use this option unsafely.`,
|
|
||||||
},
|
|
||||||
})
|
|
||||||
.optList({
|
|
||||||
'cmd-arg': {
|
|
||||||
short: 'g',
|
|
||||||
hint: 'arg',
|
|
||||||
default: [],
|
|
||||||
description: `Pass the provided values to the supplied command, ahead of
|
|
||||||
the glob matches.
|
|
||||||
|
|
||||||
For example, the command:
|
|
||||||
|
|
||||||
glob -c echo -g"hello" -g"world" *.txt
|
|
||||||
|
|
||||||
might output:
|
|
||||||
|
|
||||||
hello world a.txt b.txt
|
|
||||||
|
|
||||||
This is a safer (and future-proof) alternative than putting
|
|
||||||
positional arguments in the \`-c\`/\`--cmd\` option.`,
|
|
||||||
},
|
|
||||||
})
|
})
|
||||||
.flag({
|
.flag({
|
||||||
all: {
|
all: {
|
||||||
@@ -118,7 +74,7 @@ const j = jack({
|
|||||||
description: `Always resolve to posix style paths, using '/' as the
|
description: `Always resolve to posix style paths, using '/' as the
|
||||||
directory separator, even on Windows. Drive letter
|
directory separator, even on Windows. Drive letter
|
||||||
absolute matches on Windows will be expanded to their
|
absolute matches on Windows will be expanded to their
|
||||||
full resolved UNC paths, eg instead of 'C:\\foo\\bar',
|
full resolved UNC maths, eg instead of 'C:\\foo\\bar',
|
||||||
it will expand to '//?/C:/foo/bar'.
|
it will expand to '//?/C:/foo/bar'.
|
||||||
`,
|
`,
|
||||||
},
|
},
|
||||||
@@ -264,78 +220,52 @@ const j = jack({
|
|||||||
});
|
});
|
||||||
try {
|
try {
|
||||||
const { positionals, values } = j.parse();
|
const { positionals, values } = j.parse();
|
||||||
const { cmd, shell, all, default: def, version: showVersion, help, absolute, cwd, dot, 'dot-relative': dotRelative, follow, ignore, 'match-base': matchBase, 'max-depth': maxDepth, mark, nobrace, nocase, nodir, noext, noglobstar, platform, realpath, root, stat, debug, posix, 'cmd-arg': cmdArg, } = values;
|
if (values.version) {
|
||||||
if (showVersion) {
|
|
||||||
console.log(version);
|
console.log(version);
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
if (help) {
|
if (values.help) {
|
||||||
console.log(j.usage());
|
console.log(j.usage());
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
}
|
}
|
||||||
//const { shell, help } = values
|
if (positionals.length === 0 && !values.default)
|
||||||
if (positionals.length === 0 && !def)
|
|
||||||
throw 'No patterns provided';
|
throw 'No patterns provided';
|
||||||
if (positionals.length === 0 && def)
|
if (positionals.length === 0 && values.default)
|
||||||
positionals.push(def);
|
positionals.push(values.default);
|
||||||
const patterns = all ? positionals : positionals.filter(p => !existsSync(p));
|
const patterns = values.all ? positionals : positionals.filter(p => !existsSync(p));
|
||||||
const matches = all ? [] : positionals.filter(p => existsSync(p)).map(p => join(p));
|
const matches = values.all ?
|
||||||
|
[]
|
||||||
|
: positionals.filter(p => existsSync(p)).map(p => join(p));
|
||||||
const stream = globStream(patterns, {
|
const stream = globStream(patterns, {
|
||||||
absolute,
|
absolute: values.absolute,
|
||||||
cwd,
|
cwd: values.cwd,
|
||||||
dot,
|
dot: values.dot,
|
||||||
dotRelative,
|
dotRelative: values['dot-relative'],
|
||||||
follow,
|
follow: values.follow,
|
||||||
ignore,
|
ignore: values.ignore,
|
||||||
mark,
|
mark: values.mark,
|
||||||
matchBase,
|
matchBase: values['match-base'],
|
||||||
maxDepth,
|
maxDepth: values['max-depth'],
|
||||||
nobrace,
|
nobrace: values.nobrace,
|
||||||
nocase,
|
nocase: values.nocase,
|
||||||
nodir,
|
nodir: values.nodir,
|
||||||
noext,
|
noext: values.noext,
|
||||||
noglobstar,
|
noglobstar: values.noglobstar,
|
||||||
platform: platform,
|
platform: values.platform,
|
||||||
realpath,
|
realpath: values.realpath,
|
||||||
root,
|
root: values.root,
|
||||||
stat,
|
stat: values.stat,
|
||||||
debug,
|
debug: values.debug,
|
||||||
posix,
|
posix: values.posix,
|
||||||
});
|
});
|
||||||
|
const cmd = values.cmd;
|
||||||
if (!cmd) {
|
if (!cmd) {
|
||||||
matches.forEach(m => console.log(m));
|
matches.forEach(m => console.log(m));
|
||||||
stream.on('data', f => console.log(f));
|
stream.on('data', f => console.log(f));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
cmdArg.push(...matches);
|
stream.on('data', f => matches.push(f));
|
||||||
stream.on('data', f => cmdArg.push(f));
|
stream.on('end', () => foregroundChild(cmd, matches, { shell: true }));
|
||||||
// Attempt to support commands that contain spaces and otherwise require
|
|
||||||
// shell interpretation, but do NOT shell-interpret the arguments, to avoid
|
|
||||||
// injections via filenames. This affordance can only be done on known Unix
|
|
||||||
// shells, unfortunately.
|
|
||||||
//
|
|
||||||
// 'bash', ['-c', cmd + ' "$@"', 'bash', ...matches]
|
|
||||||
// 'zsh', ['-c', cmd + ' "$@"', 'zsh', ...matches]
|
|
||||||
// 'fish', ['-c', cmd + ' "$argv"', ...matches]
|
|
||||||
const { SHELL = 'unknown' } = process.env;
|
|
||||||
const shellBase = basename(SHELL);
|
|
||||||
const knownShells = ['sh', 'ksh', 'zsh', 'bash', 'fish'];
|
|
||||||
if ((shell || /[ "']/.test(cmd)) &&
|
|
||||||
knownShells.includes(shellBase)) {
|
|
||||||
const cmdWithArgs = `${cmd} "\$${shellBase === 'fish' ? 'argv' : '@'}"`;
|
|
||||||
if (shellBase !== 'fish') {
|
|
||||||
cmdArg.unshift(SHELL);
|
|
||||||
}
|
|
||||||
cmdArg.unshift('-c', cmdWithArgs);
|
|
||||||
stream.on('end', () => foregroundChild(SHELL, cmdArg));
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
if (shell) {
|
|
||||||
process.emitWarning('The --shell option is unsafe, and will be removed. To pass ' +
|
|
||||||
'positional arguments to the subprocess, use -g/--cmd-arg instead.', 'DeprecationWarning', 'GLOB_SHELL');
|
|
||||||
}
|
|
||||||
stream.on('end', () => foregroundChild(cmd, cmdArg, { shell }));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (e) {
|
catch (e) {
|
||||||
|
|||||||
2
node_modules/glob/dist/esm/bin.mjs.map
generated
vendored
2
node_modules/glob/dist/esm/bin.mjs.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/glob/dist/esm/has-magic.d.ts.map
generated
vendored
2
node_modules/glob/dist/esm/has-magic.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,GACnB,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1B,UAAS,WAAgB,KACxB,OAQF,CAAA"}
|
{"version":3,"file":"has-magic.d.ts","sourceRoot":"","sources":["../../src/has-magic.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAA;AAEvC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,QAAQ,YACV,MAAM,GAAG,MAAM,EAAE,YACjB,WAAW,KACnB,OAQF,CAAA"}
|
||||||
4
node_modules/glob/dist/esm/index.d.ts
generated
vendored
4
node_modules/glob/dist/esm/index.d.ts
generated
vendored
@@ -91,7 +91,7 @@ export declare const glob: typeof glob_ & {
|
|||||||
iterateSync: typeof globIterateSync;
|
iterateSync: typeof globIterateSync;
|
||||||
Glob: typeof Glob;
|
Glob: typeof Glob;
|
||||||
hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
|
hasMagic: (pattern: string | string[], options?: GlobOptions) => boolean;
|
||||||
escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
escape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
unescape: (s: string, { windowsPathsNoEscape, }?: Pick<import("minimatch").MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=index.d.ts.map
|
//# sourceMappingURL=index.d.ts.map
|
||||||
22
node_modules/glob/package.json
generated
vendored
22
node_modules/glob/package.json
generated
vendored
@@ -2,7 +2,7 @@
|
|||||||
"author": "Isaac Z. Schlueter <i@izs.me> (https://blog.izs.me/)",
|
"author": "Isaac Z. Schlueter <i@izs.me> (https://blog.izs.me/)",
|
||||||
"name": "glob",
|
"name": "glob",
|
||||||
"description": "the most correct and second fastest glob implementation in JavaScript",
|
"description": "the most correct and second fastest glob implementation in JavaScript",
|
||||||
"version": "11.1.0",
|
"version": "11.0.3",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"tshy": {
|
"tshy": {
|
||||||
"main": true,
|
"main": true,
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:isaacs/node-glob.git"
|
"url": "git://github.com/isaacs/node-glob.git"
|
||||||
},
|
},
|
||||||
"files": [
|
"files": [
|
||||||
"dist"
|
"dist"
|
||||||
@@ -68,25 +68,25 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"foreground-child": "^3.3.1",
|
"foreground-child": "^3.3.1",
|
||||||
"jackspeak": "^4.1.1",
|
"jackspeak": "^4.1.1",
|
||||||
"minimatch": "^10.1.1",
|
"minimatch": "^10.0.3",
|
||||||
"minipass": "^7.1.2",
|
"minipass": "^7.1.2",
|
||||||
"package-json-from-dist": "^1.0.0",
|
"package-json-from-dist": "^1.0.0",
|
||||||
"path-scurry": "^2.0.0"
|
"path-scurry": "^2.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/node": "^24.10.0",
|
"@types/node": "^24.0.1",
|
||||||
"memfs": "^4.50.0",
|
"memfs": "^4.17.2",
|
||||||
"mkdirp": "^3.0.1",
|
"mkdirp": "^3.0.1",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.5.3",
|
||||||
"rimraf": "^6.1.0",
|
"rimraf": "^6.0.1",
|
||||||
"tap": "^21.1.3",
|
"tap": "^21.1.0",
|
||||||
"tshy": "^3.0.3",
|
"tshy": "^3.0.2",
|
||||||
"typedoc": "^0.28.14"
|
"typedoc": "^0.28.5"
|
||||||
},
|
},
|
||||||
"tap": {
|
"tap": {
|
||||||
"before": "test/00-setup.ts"
|
"before": "test/00-setup.ts"
|
||||||
},
|
},
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
},
|
},
|
||||||
|
|||||||
15
node_modules/minimatch/LICENSE
generated
vendored
Normal file
15
node_modules/minimatch/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
The ISC License
|
||||||
|
|
||||||
|
Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software for any
|
||||||
|
purpose with or without fee is hereby granted, provided that the above
|
||||||
|
copyright notice and this permission notice appear in all copies.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||||
|
WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||||
|
MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||||
|
ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||||
|
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||||
|
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR
|
||||||
|
IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
55
node_modules/minimatch/LICENSE.md
generated
vendored
55
node_modules/minimatch/LICENSE.md
generated
vendored
@@ -1,55 +0,0 @@
|
|||||||
# Blue Oak Model License
|
|
||||||
|
|
||||||
Version 1.0.0
|
|
||||||
|
|
||||||
## Purpose
|
|
||||||
|
|
||||||
This license gives everyone as much permission to work with
|
|
||||||
this software as possible, while protecting contributors
|
|
||||||
from liability.
|
|
||||||
|
|
||||||
## Acceptance
|
|
||||||
|
|
||||||
In order to receive this license, you must agree to its
|
|
||||||
rules. The rules of this license are both obligations
|
|
||||||
under that agreement and conditions to your license.
|
|
||||||
You must not do anything with this software that triggers
|
|
||||||
a rule that you cannot or will not follow.
|
|
||||||
|
|
||||||
## Copyright
|
|
||||||
|
|
||||||
Each contributor licenses you to do everything with this
|
|
||||||
software that would otherwise infringe that contributor's
|
|
||||||
copyright in it.
|
|
||||||
|
|
||||||
## Notices
|
|
||||||
|
|
||||||
You must ensure that everyone who gets a copy of
|
|
||||||
any part of this software from you, with or without
|
|
||||||
changes, also gets the text of this license or a link to
|
|
||||||
<https://blueoakcouncil.org/license/1.0.0>.
|
|
||||||
|
|
||||||
## Excuse
|
|
||||||
|
|
||||||
If anyone notifies you in writing that you have not
|
|
||||||
complied with [Notices](#notices), you can keep your
|
|
||||||
license by taking all practical steps to comply within 30
|
|
||||||
days after the notice. If you do not do so, your license
|
|
||||||
ends immediately.
|
|
||||||
|
|
||||||
## Patent
|
|
||||||
|
|
||||||
Each contributor licenses you to do everything with this
|
|
||||||
software that would otherwise infringe any patent claims
|
|
||||||
they can license or become able to license.
|
|
||||||
|
|
||||||
## Reliability
|
|
||||||
|
|
||||||
No contributor can revoke this license.
|
|
||||||
|
|
||||||
## No Liability
|
|
||||||
|
|
||||||
**_As far as the law allows, this software comes as is,
|
|
||||||
without any warranty or condition, and no contributor
|
|
||||||
will be liable to anyone for any damages related to this
|
|
||||||
software or this license, under any kind of legal claim._**
|
|
||||||
5
node_modules/minimatch/README.md
generated
vendored
5
node_modules/minimatch/README.md
generated
vendored
@@ -163,7 +163,7 @@ var javascripts = fileList.filter(minimatch.filter('*.js', { matchBase: true }))
|
|||||||
### minimatch.escape(pattern, options = {})
|
### minimatch.escape(pattern, options = {})
|
||||||
|
|
||||||
Escape all magic characters in a glob pattern, so that it will
|
Escape all magic characters in a glob pattern, so that it will
|
||||||
only ever match literal strings.
|
only ever match literal strings
|
||||||
|
|
||||||
If the `windowsPathsNoEscape` option is used, then characters are
|
If the `windowsPathsNoEscape` option is used, then characters are
|
||||||
escaped by wrapping in `[]`, because a magic character wrapped in
|
escaped by wrapping in `[]`, because a magic character wrapped in
|
||||||
@@ -238,7 +238,7 @@ Perform a case-insensitive match.
|
|||||||
|
|
||||||
When used with `{nocase: true}`, create regular expressions that
|
When used with `{nocase: true}`, create regular expressions that
|
||||||
are case-insensitive, but leave string match portions untouched.
|
are case-insensitive, but leave string match portions untouched.
|
||||||
Has no effect when used without `{nocase: true}`.
|
Has no effect when used without `{nocase: true}`
|
||||||
|
|
||||||
Useful when some other form of case-insensitive matching is used,
|
Useful when some other form of case-insensitive matching is used,
|
||||||
or if the original string representation is useful in some other
|
or if the original string representation is useful in some other
|
||||||
@@ -354,6 +354,7 @@ is equivalent in all cases).
|
|||||||
pattern are preserved.
|
pattern are preserved.
|
||||||
- `2` (or higher) - Much more aggressive optimizations, suitable
|
- `2` (or higher) - Much more aggressive optimizations, suitable
|
||||||
for use with file-walking cases:
|
for use with file-walking cases:
|
||||||
|
|
||||||
- Remove cases where a double-dot `..` follows a pattern
|
- Remove cases where a double-dot `..` follows a pattern
|
||||||
portion that is not `**`, `.`, or empty `''`. Remove empty
|
portion that is not `**`, `.`, or empty `''`. Remove empty
|
||||||
and `.` portions of the pattern, where safe to do so (ie,
|
and `.` portions of the pattern, where safe to do so (ie,
|
||||||
|
|||||||
2
node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/assert-valid-pattern.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AAC7B,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n pattern: any,\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n"]}
|
{"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":";;;AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AAC7B,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA;AAVY,QAAA,kBAAkB,sBAU9B","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n pattern: any\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n"]}
|
||||||
2
node_modules/minimatch/dist/commonjs/ast.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/ast.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAmMjE"}
|
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
|
||||||
9
node_modules/minimatch/dist/commonjs/ast.js
generated
vendored
9
node_modules/minimatch/dist/commonjs/ast.js
generated
vendored
@@ -415,9 +415,7 @@ class AST {
|
|||||||
if (this.#root === this)
|
if (this.#root === this)
|
||||||
this.#fillNegs();
|
this.#fillNegs();
|
||||||
if (!this.type) {
|
if (!this.type) {
|
||||||
const noEmpty = this.isStart() &&
|
const noEmpty = this.isStart() && this.isEnd();
|
||||||
this.isEnd() &&
|
|
||||||
!this.#parts.some(s => typeof s !== 'string');
|
|
||||||
const src = this.#parts
|
const src = this.#parts
|
||||||
.map(p => {
|
.map(p => {
|
||||||
const [re, _, hasMagic, uflag] = typeof p === 'string'
|
const [re, _, hasMagic, uflag] = typeof p === 'string'
|
||||||
@@ -573,7 +571,10 @@ class AST {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (c === '*') {
|
if (c === '*') {
|
||||||
re += noEmpty && glob === '*' ? starNoEmpty : star;
|
if (noEmpty && glob === '*')
|
||||||
|
re += starNoEmpty;
|
||||||
|
else
|
||||||
|
re += star;
|
||||||
hasMagic = true;
|
hasMagic = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
2
node_modules/minimatch/dist/commonjs/ast.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/ast.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/minimatch/dist/commonjs/brace-expressions.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/brace-expressions.js.map
generated
vendored
File diff suppressed because one or more lines are too long
7
node_modules/minimatch/dist/commonjs/escape.d.ts
generated
vendored
7
node_modules/minimatch/dist/commonjs/escape.d.ts
generated
vendored
@@ -2,14 +2,11 @@ import { MinimatchOptions } from './index.js';
|
|||||||
/**
|
/**
|
||||||
* Escape all magic characters in a glob pattern.
|
* Escape all magic characters in a glob pattern.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape}
|
* If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
|
||||||
* option is used, then characters are escaped by wrapping in `[]`, because
|
* option is used, then characters are escaped by wrapping in `[]`, because
|
||||||
* a magic character wrapped in a character class can only be satisfied by
|
* a magic character wrapped in a character class can only be satisfied by
|
||||||
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
||||||
* not interpreted as a magic character, but instead as a path separator.
|
* not interpreted as a magic character, but instead as a path separator.
|
||||||
*
|
|
||||||
* If the {@link MinimatchOptions.magicalBraces} option is used,
|
|
||||||
* then braces (`{` and `}`) will be escaped.
|
|
||||||
*/
|
*/
|
||||||
export declare const escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
export declare const escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
//# sourceMappingURL=escape.d.ts.map
|
//# sourceMappingURL=escape.d.ts.map
|
||||||
2
node_modules/minimatch/dist/commonjs/escape.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/escape.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,MACd,MAAM,6CAIN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,eAAe,CAAC,WAapE,CAAA"}
|
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,MACd,MAAM,8BAGN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,WAQlD,CAAA"}
|
||||||
12
node_modules/minimatch/dist/commonjs/escape.js
generated
vendored
12
node_modules/minimatch/dist/commonjs/escape.js
generated
vendored
@@ -4,24 +4,16 @@ exports.escape = void 0;
|
|||||||
/**
|
/**
|
||||||
* Escape all magic characters in a glob pattern.
|
* Escape all magic characters in a glob pattern.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape}
|
* If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
|
||||||
* option is used, then characters are escaped by wrapping in `[]`, because
|
* option is used, then characters are escaped by wrapping in `[]`, because
|
||||||
* a magic character wrapped in a character class can only be satisfied by
|
* a magic character wrapped in a character class can only be satisfied by
|
||||||
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
||||||
* not interpreted as a magic character, but instead as a path separator.
|
* not interpreted as a magic character, but instead as a path separator.
|
||||||
*
|
|
||||||
* If the {@link MinimatchOptions.magicalBraces} option is used,
|
|
||||||
* then braces (`{` and `}`) will be escaped.
|
|
||||||
*/
|
*/
|
||||||
const escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => {
|
const escape = (s, { windowsPathsNoEscape = false, } = {}) => {
|
||||||
// don't need to escape +@! because we escape the parens
|
// don't need to escape +@! because we escape the parens
|
||||||
// that make those magic, and escaping ! as [!] isn't valid,
|
// that make those magic, and escaping ! as [!] isn't valid,
|
||||||
// because [!]] is a valid glob class meaning not ']'.
|
// because [!]] is a valid glob class meaning not ']'.
|
||||||
if (magicalBraces) {
|
|
||||||
return windowsPathsNoEscape
|
|
||||||
? s.replace(/[?*()[\]{}]/g, '[$&]')
|
|
||||||
: s.replace(/[?*()[\]\\{}]/g, '\\$&');
|
|
||||||
}
|
|
||||||
return windowsPathsNoEscape
|
return windowsPathsNoEscape
|
||||||
? s.replace(/[?*()[\]]/g, '[$&]')
|
? s.replace(/[?*()[\]]/g, '[$&]')
|
||||||
: s.replace(/[?*()[\]\\]/g, '\\$&');
|
: s.replace(/[?*()[\]\\]/g, '\\$&');
|
||||||
|
|||||||
2
node_modules/minimatch/dist/commonjs/escape.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/escape.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;GAWG;AACI,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,EAC5B,aAAa,GAAG,KAAK,MAC+C,EAAE,EACxE,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB;YACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAlBY,QAAA,MAAM,UAkBlB","sourcesContent":["import { MinimatchOptions } from './index.js'\n\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n *\n * If the {@link MinimatchOptions.magicalBraces} option is used,\n * then braces (`{` and `}`) will be escaped.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape' | 'magicalBraces'> = {},\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n if (magicalBraces) {\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]{}]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\{}]/g, '\\\\$&')\n }\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]}
|
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;GAQG;AACI,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA;AAZY,QAAA,MAAM,UAYlB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]}
|
||||||
8
node_modules/minimatch/dist/commonjs/index.d.ts
generated
vendored
8
node_modules/minimatch/dist/commonjs/index.d.ts
generated
vendored
@@ -1,5 +1,5 @@
|
|||||||
import { AST } from './ast.js';
|
import { AST } from './ast.js';
|
||||||
export type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
|
type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
|
||||||
export interface MinimatchOptions {
|
export interface MinimatchOptions {
|
||||||
nobrace?: boolean;
|
nobrace?: boolean;
|
||||||
nocomment?: boolean;
|
nocomment?: boolean;
|
||||||
@@ -33,10 +33,10 @@ export declare const minimatch: {
|
|||||||
match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];
|
match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];
|
||||||
AST: typeof AST;
|
AST: typeof AST;
|
||||||
Minimatch: typeof Minimatch;
|
Minimatch: typeof Minimatch;
|
||||||
escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
};
|
};
|
||||||
export type Sep = '\\' | '/';
|
type Sep = '\\' | '/';
|
||||||
export declare const sep: Sep;
|
export declare const sep: Sep;
|
||||||
export declare const GLOBSTAR: unique symbol;
|
export declare const GLOBSTAR: unique symbol;
|
||||||
export declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;
|
export declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;
|
||||||
|
|||||||
2
node_modules/minimatch/dist/commonjs/index.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/index.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
||||||
21
node_modules/minimatch/dist/commonjs/index.js
generated
vendored
21
node_modules/minimatch/dist/commonjs/index.js
generated
vendored
@@ -640,7 +640,7 @@ class Minimatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// resolve and reduce . and .. portions in the file as well.
|
// resolve and reduce . and .. portions in the file as well.
|
||||||
// don't need to do the second phase, because it's only one string[]
|
// dont' need to do the second phase, because it's only one string[]
|
||||||
const { optimizationLevel = 1 } = this.options;
|
const { optimizationLevel = 1 } = this.options;
|
||||||
if (optimizationLevel >= 2) {
|
if (optimizationLevel >= 2) {
|
||||||
file = this.levelTwoFileOptimize(file);
|
file = this.levelTwoFileOptimize(file);
|
||||||
@@ -893,25 +893,14 @@ class Minimatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (next === undefined) {
|
else if (next === undefined) {
|
||||||
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + ')?';
|
pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?';
|
||||||
}
|
}
|
||||||
else if (next !== exports.GLOBSTAR) {
|
else if (next !== exports.GLOBSTAR) {
|
||||||
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
|
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
|
||||||
pp[i + 1] = exports.GLOBSTAR;
|
pp[i + 1] = exports.GLOBSTAR;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const filtered = pp.filter(p => p !== exports.GLOBSTAR);
|
return pp.filter(p => p !== exports.GLOBSTAR).join('/');
|
||||||
// For partial matches, we need to make the pattern match
|
|
||||||
// any prefix of the full path. We do this by generating
|
|
||||||
// alternative patterns that match progressively longer prefixes.
|
|
||||||
if (this.partial && filtered.length >= 1) {
|
|
||||||
const prefixes = [];
|
|
||||||
for (let i = 1; i <= filtered.length; i++) {
|
|
||||||
prefixes.push(filtered.slice(0, i).join('/'));
|
|
||||||
}
|
|
||||||
return '(?:' + prefixes.join('|') + ')';
|
|
||||||
}
|
|
||||||
return filtered.join('/');
|
|
||||||
})
|
})
|
||||||
.join('|');
|
.join('|');
|
||||||
// need to wrap in parens if we had more than one thing with |,
|
// need to wrap in parens if we had more than one thing with |,
|
||||||
@@ -920,10 +909,6 @@ class Minimatch {
|
|||||||
// must match entire pattern
|
// must match entire pattern
|
||||||
// ending in a * or ** will make it less strict.
|
// ending in a * or ** will make it less strict.
|
||||||
re = '^' + open + re + close + '$';
|
re = '^' + open + re + close + '$';
|
||||||
// In partial mode, '/' should always match as it's a valid prefix for any pattern
|
|
||||||
if (this.partial) {
|
|
||||||
re = '^(?:\\/|' + open + re.slice(1, -1) + close + ')$';
|
|
||||||
}
|
|
||||||
// can match anything, as long as it's not this.
|
// can match anything, as long as it's not this.
|
||||||
if (this.negate)
|
if (this.negate)
|
||||||
re = '^(?!' + re + ').+$';
|
re = '^(?!' + re + ').+$';
|
||||||
|
|||||||
2
node_modules/minimatch/dist/commonjs/index.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
17
node_modules/minimatch/dist/commonjs/unescape.d.ts
generated
vendored
17
node_modules/minimatch/dist/commonjs/unescape.d.ts
generated
vendored
@@ -2,21 +2,16 @@ import { MinimatchOptions } from './index.js';
|
|||||||
/**
|
/**
|
||||||
* Un-escape a string that has been escaped with {@link escape}.
|
* Un-escape a string that has been escaped with {@link escape}.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then
|
* If the {@link windowsPathsNoEscape} option is used, then square-brace
|
||||||
* square-bracket escapes are removed, but not backslash escapes.
|
* escapes are removed, but not backslash escapes. For example, it will turn
|
||||||
|
* the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
|
||||||
|
* becuase `\` is a path separator in `windowsPathsNoEscape` mode.
|
||||||
*
|
*
|
||||||
* For example, it will turn the string `'[*]'` into `*`, but it will not
|
* When `windowsPathsNoEscape` is not set, then both brace escapes and
|
||||||
* turn `'\\*'` into `'*'`, because `\` is a path separator in
|
|
||||||
* `windowsPathsNoEscape` mode.
|
|
||||||
*
|
|
||||||
* When `windowsPathsNoEscape` is not set, then both square-bracket escapes and
|
|
||||||
* backslash escapes are removed.
|
* backslash escapes are removed.
|
||||||
*
|
*
|
||||||
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
||||||
* or unescaped.
|
* or unescaped.
|
||||||
*
|
|
||||||
* When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be
|
|
||||||
* unescaped.
|
|
||||||
*/
|
*/
|
||||||
export declare const unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
export declare const unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
//# sourceMappingURL=unescape.d.ts.map
|
//# sourceMappingURL=unescape.d.ts.map
|
||||||
2
node_modules/minimatch/dist/commonjs/unescape.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/unescape.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,QAAQ,MAChB,MAAM,6CAIN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,eAAe,CAAC,WAcpE,CAAA"}
|
{"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,8BAGN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,WAKlD,CAAA"}
|
||||||
30
node_modules/minimatch/dist/commonjs/unescape.js
generated
vendored
30
node_modules/minimatch/dist/commonjs/unescape.js
generated
vendored
@@ -4,35 +4,21 @@ exports.unescape = void 0;
|
|||||||
/**
|
/**
|
||||||
* Un-escape a string that has been escaped with {@link escape}.
|
* Un-escape a string that has been escaped with {@link escape}.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then
|
* If the {@link windowsPathsNoEscape} option is used, then square-brace
|
||||||
* square-bracket escapes are removed, but not backslash escapes.
|
* escapes are removed, but not backslash escapes. For example, it will turn
|
||||||
|
* the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
|
||||||
|
* becuase `\` is a path separator in `windowsPathsNoEscape` mode.
|
||||||
*
|
*
|
||||||
* For example, it will turn the string `'[*]'` into `*`, but it will not
|
* When `windowsPathsNoEscape` is not set, then both brace escapes and
|
||||||
* turn `'\\*'` into `'*'`, because `\` is a path separator in
|
|
||||||
* `windowsPathsNoEscape` mode.
|
|
||||||
*
|
|
||||||
* When `windowsPathsNoEscape` is not set, then both square-bracket escapes and
|
|
||||||
* backslash escapes are removed.
|
* backslash escapes are removed.
|
||||||
*
|
*
|
||||||
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
||||||
* or unescaped.
|
* or unescaped.
|
||||||
*
|
|
||||||
* When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be
|
|
||||||
* unescaped.
|
|
||||||
*/
|
*/
|
||||||
const unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => {
|
const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
|
||||||
if (magicalBraces) {
|
|
||||||
return windowsPathsNoEscape
|
|
||||||
? s.replace(/\[([^\/\\])\]/g, '$1')
|
|
||||||
: s
|
|
||||||
.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2')
|
|
||||||
.replace(/\\([^\/])/g, '$1');
|
|
||||||
}
|
|
||||||
return windowsPathsNoEscape
|
return windowsPathsNoEscape
|
||||||
? s.replace(/\[([^\/\\{}])\]/g, '$1')
|
? s.replace(/\[([^\/\\])\]/g, '$1')
|
||||||
: s
|
: s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
|
||||||
.replace(/((?!\\).|^)\[([^\/\\{}])\]/g, '$1$2')
|
|
||||||
.replace(/\\([^\/{}])/g, '$1');
|
|
||||||
};
|
};
|
||||||
exports.unescape = unescape;
|
exports.unescape = unescape;
|
||||||
//# sourceMappingURL=unescape.js.map
|
//# sourceMappingURL=unescape.js.map
|
||||||
2
node_modules/minimatch/dist/commonjs/unescape.js.map
generated
vendored
2
node_modules/minimatch/dist/commonjs/unescape.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":";;;AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEI,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,EAC5B,aAAa,GAAG,IAAI,MACgD,EAAE,EACxE,EAAE;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB;YACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;iBACE,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC;iBAC5C,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC;aACE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;aAC9C,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC,CAAA;AAnBY,QAAA,QAAQ,YAmBpB","sourcesContent":["import { MinimatchOptions } from './index.js'\n\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then\n * square-bracket escapes are removed, but not backslash escapes.\n *\n * For example, it will turn the string `'[*]'` into `*`, but it will not\n * turn `'\\\\*'` into `'*'`, because `\\` is a path separator in\n * `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n *\n * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be\n * unescaped.\n */\n\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = true,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape' | 'magicalBraces'> = {},\n) => {\n if (magicalBraces) {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2')\n .replace(/\\\\([^\\/])/g, '$1')\n }\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\{}])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g, '$1$2')\n .replace(/\\\\([^\\/{}])/g, '$1')\n}\n"]}
|
{"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":";;;AACA;;;;;;;;;;;;;GAaG;AACI,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA;AATY,QAAA,QAAQ,YASpB","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes. For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n"]}
|
||||||
2
node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/assert-valid-pattern.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n pattern: any,\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n"]}
|
{"version":3,"file":"assert-valid-pattern.js","sourceRoot":"","sources":["../../src/assert-valid-pattern.ts"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAE,CAAA;AACpC,MAAM,CAAC,MAAM,kBAAkB,GAA2B,CACxD,OAAY,EACe,EAAE;IAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,SAAS,CAAC,iBAAiB,CAAC,CAAA;IACxC,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,kBAAkB,EAAE,CAAC;QACxC,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAA;IAC5C,CAAC;AACH,CAAC,CAAA","sourcesContent":["const MAX_PATTERN_LENGTH = 1024 * 64\nexport const assertValidPattern: (pattern: any) => void = (\n pattern: any\n): asserts pattern is string => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern')\n }\n\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long')\n }\n}\n"]}
|
||||||
2
node_modules/minimatch/dist/esm/ast.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/esm/ast.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAmMjE"}
|
{"version":3,"file":"ast.d.ts","sourceRoot":"","sources":["../../src/ast.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAwCvD,MAAM,MAAM,WAAW,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAA;AAkCrD,qBAAa,GAAG;;IACd,IAAI,EAAE,WAAW,GAAG,IAAI,CAAA;gBAiBtB,IAAI,EAAE,WAAW,GAAG,IAAI,EACxB,MAAM,CAAC,EAAE,GAAG,EACZ,OAAO,GAAE,gBAAqB;IAahC,IAAI,QAAQ,IAAI,OAAO,GAAG,SAAS,CAUlC;IAGD,QAAQ,IAAI,MAAM;IA+ClB,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,EAAE;IAY/B,MAAM;IAgBN,OAAO,IAAI,OAAO;IAgBlB,KAAK,IAAI,OAAO;IAYhB,MAAM,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM;IAKzB,KAAK,CAAC,MAAM,EAAE,GAAG;IAsIjB,MAAM,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB;IAQ/D,WAAW,IAAI,QAAQ,GAAG,MAAM;IA2BhC,IAAI,OAAO,qBAEV;IAuED,cAAc,CACZ,QAAQ,CAAC,EAAE,OAAO,GACjB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC;CAiMjE"}
|
||||||
9
node_modules/minimatch/dist/esm/ast.js
generated
vendored
9
node_modules/minimatch/dist/esm/ast.js
generated
vendored
@@ -412,9 +412,7 @@ export class AST {
|
|||||||
if (this.#root === this)
|
if (this.#root === this)
|
||||||
this.#fillNegs();
|
this.#fillNegs();
|
||||||
if (!this.type) {
|
if (!this.type) {
|
||||||
const noEmpty = this.isStart() &&
|
const noEmpty = this.isStart() && this.isEnd();
|
||||||
this.isEnd() &&
|
|
||||||
!this.#parts.some(s => typeof s !== 'string');
|
|
||||||
const src = this.#parts
|
const src = this.#parts
|
||||||
.map(p => {
|
.map(p => {
|
||||||
const [re, _, hasMagic, uflag] = typeof p === 'string'
|
const [re, _, hasMagic, uflag] = typeof p === 'string'
|
||||||
@@ -570,7 +568,10 @@ export class AST {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (c === '*') {
|
if (c === '*') {
|
||||||
re += noEmpty && glob === '*' ? starNoEmpty : star;
|
if (noEmpty && glob === '*')
|
||||||
|
re += starNoEmpty;
|
||||||
|
else
|
||||||
|
re += star;
|
||||||
hasMagic = true;
|
hasMagic = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|||||||
2
node_modules/minimatch/dist/esm/ast.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/ast.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/minimatch/dist/esm/brace-expressions.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/brace-expressions.js.map
generated
vendored
File diff suppressed because one or more lines are too long
7
node_modules/minimatch/dist/esm/escape.d.ts
generated
vendored
7
node_modules/minimatch/dist/esm/escape.d.ts
generated
vendored
@@ -2,14 +2,11 @@ import { MinimatchOptions } from './index.js';
|
|||||||
/**
|
/**
|
||||||
* Escape all magic characters in a glob pattern.
|
* Escape all magic characters in a glob pattern.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape}
|
* If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
|
||||||
* option is used, then characters are escaped by wrapping in `[]`, because
|
* option is used, then characters are escaped by wrapping in `[]`, because
|
||||||
* a magic character wrapped in a character class can only be satisfied by
|
* a magic character wrapped in a character class can only be satisfied by
|
||||||
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
||||||
* not interpreted as a magic character, but instead as a path separator.
|
* not interpreted as a magic character, but instead as a path separator.
|
||||||
*
|
|
||||||
* If the {@link MinimatchOptions.magicalBraces} option is used,
|
|
||||||
* then braces (`{` and `}`) will be escaped.
|
|
||||||
*/
|
*/
|
||||||
export declare const escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
export declare const escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
//# sourceMappingURL=escape.d.ts.map
|
//# sourceMappingURL=escape.d.ts.map
|
||||||
2
node_modules/minimatch/dist/esm/escape.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/esm/escape.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,MAAM,MACd,MAAM,6CAIN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,eAAe,CAAC,WAapE,CAAA"}
|
{"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,MACd,MAAM,8BAGN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,WAQlD,CAAA"}
|
||||||
12
node_modules/minimatch/dist/esm/escape.js
generated
vendored
12
node_modules/minimatch/dist/esm/escape.js
generated
vendored
@@ -1,24 +1,16 @@
|
|||||||
/**
|
/**
|
||||||
* Escape all magic characters in a glob pattern.
|
* Escape all magic characters in a glob pattern.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape}
|
* If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}
|
||||||
* option is used, then characters are escaped by wrapping in `[]`, because
|
* option is used, then characters are escaped by wrapping in `[]`, because
|
||||||
* a magic character wrapped in a character class can only be satisfied by
|
* a magic character wrapped in a character class can only be satisfied by
|
||||||
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
* that exact character. In this mode, `\` is _not_ escaped, because it is
|
||||||
* not interpreted as a magic character, but instead as a path separator.
|
* not interpreted as a magic character, but instead as a path separator.
|
||||||
*
|
|
||||||
* If the {@link MinimatchOptions.magicalBraces} option is used,
|
|
||||||
* then braces (`{` and `}`) will be escaped.
|
|
||||||
*/
|
*/
|
||||||
export const escape = (s, { windowsPathsNoEscape = false, magicalBraces = false, } = {}) => {
|
export const escape = (s, { windowsPathsNoEscape = false, } = {}) => {
|
||||||
// don't need to escape +@! because we escape the parens
|
// don't need to escape +@! because we escape the parens
|
||||||
// that make those magic, and escaping ! as [!] isn't valid,
|
// that make those magic, and escaping ! as [!] isn't valid,
|
||||||
// because [!]] is a valid glob class meaning not ']'.
|
// because [!]] is a valid glob class meaning not ']'.
|
||||||
if (magicalBraces) {
|
|
||||||
return windowsPathsNoEscape
|
|
||||||
? s.replace(/[?*()[\]{}]/g, '[$&]')
|
|
||||||
: s.replace(/[?*()[\]\\{}]/g, '\\$&');
|
|
||||||
}
|
|
||||||
return windowsPathsNoEscape
|
return windowsPathsNoEscape
|
||||||
? s.replace(/[?*()[\]]/g, '[$&]')
|
? s.replace(/[?*()[\]]/g, '[$&]')
|
||||||
: s.replace(/[?*()[\]\\]/g, '\\$&');
|
: s.replace(/[?*()[\]\\]/g, '\\$&');
|
||||||
|
|||||||
2
node_modules/minimatch/dist/esm/escape.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/escape.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,EAC5B,aAAa,GAAG,KAAK,MAC+C,EAAE,EACxE,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB;YACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC;YACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IACzC,CAAC;IACD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA","sourcesContent":["import { MinimatchOptions } from './index.js'\n\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n *\n * If the {@link MinimatchOptions.magicalBraces} option is used,\n * then braces (`{` and `}`) will be escaped.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape' | 'magicalBraces'> = {},\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n if (magicalBraces) {\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]{}]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\{}]/g, '\\\\$&')\n }\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]}
|
{"version":3,"file":"escape.js","sourceRoot":"","sources":["../../src/escape.ts"],"names":[],"mappings":"AACA;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CACpB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,wDAAwD;IACxD,4DAA4D;IAC5D,sDAAsD;IACtD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC,CAAA","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character. In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n // don't need to escape +@! because we escape the parens\n // that make those magic, and escaping ! as [!] isn't valid,\n // because [!]] is a valid glob class meaning not ']'.\n return windowsPathsNoEscape\n ? s.replace(/[?*()[\\]]/g, '[$&]')\n : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&')\n}\n"]}
|
||||||
8
node_modules/minimatch/dist/esm/index.d.ts
generated
vendored
8
node_modules/minimatch/dist/esm/index.d.ts
generated
vendored
@@ -1,5 +1,5 @@
|
|||||||
import { AST } from './ast.js';
|
import { AST } from './ast.js';
|
||||||
export type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
|
type Platform = 'aix' | 'android' | 'darwin' | 'freebsd' | 'haiku' | 'linux' | 'openbsd' | 'sunos' | 'win32' | 'cygwin' | 'netbsd';
|
||||||
export interface MinimatchOptions {
|
export interface MinimatchOptions {
|
||||||
nobrace?: boolean;
|
nobrace?: boolean;
|
||||||
nocomment?: boolean;
|
nocomment?: boolean;
|
||||||
@@ -33,10 +33,10 @@ export declare const minimatch: {
|
|||||||
match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];
|
match: (list: string[], pattern: string, options?: MinimatchOptions) => string[];
|
||||||
AST: typeof AST;
|
AST: typeof AST;
|
||||||
Minimatch: typeof Minimatch;
|
Minimatch: typeof Minimatch;
|
||||||
escape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
escape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
};
|
};
|
||||||
export type Sep = '\\' | '/';
|
type Sep = '\\' | '/';
|
||||||
export declare const sep: Sep;
|
export declare const sep: Sep;
|
||||||
export declare const GLOBSTAR: unique symbol;
|
export declare const GLOBSTAR: unique symbol;
|
||||||
export declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;
|
export declare const filter: (pattern: string, options?: MinimatchOptions) => (p: string) => boolean;
|
||||||
|
|||||||
2
node_modules/minimatch/dist/esm/index.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/esm/index.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
||||||
21
node_modules/minimatch/dist/esm/index.js
generated
vendored
21
node_modules/minimatch/dist/esm/index.js
generated
vendored
@@ -631,7 +631,7 @@ export class Minimatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// resolve and reduce . and .. portions in the file as well.
|
// resolve and reduce . and .. portions in the file as well.
|
||||||
// don't need to do the second phase, because it's only one string[]
|
// dont' need to do the second phase, because it's only one string[]
|
||||||
const { optimizationLevel = 1 } = this.options;
|
const { optimizationLevel = 1 } = this.options;
|
||||||
if (optimizationLevel >= 2) {
|
if (optimizationLevel >= 2) {
|
||||||
file = this.levelTwoFileOptimize(file);
|
file = this.levelTwoFileOptimize(file);
|
||||||
@@ -884,25 +884,14 @@ export class Minimatch {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (next === undefined) {
|
else if (next === undefined) {
|
||||||
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + ')?';
|
pp[i - 1] = prev + '(?:\\/|' + twoStar + ')?';
|
||||||
}
|
}
|
||||||
else if (next !== GLOBSTAR) {
|
else if (next !== GLOBSTAR) {
|
||||||
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
|
pp[i - 1] = prev + '(?:\\/|\\/' + twoStar + '\\/)' + next;
|
||||||
pp[i + 1] = GLOBSTAR;
|
pp[i + 1] = GLOBSTAR;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
const filtered = pp.filter(p => p !== GLOBSTAR);
|
return pp.filter(p => p !== GLOBSTAR).join('/');
|
||||||
// For partial matches, we need to make the pattern match
|
|
||||||
// any prefix of the full path. We do this by generating
|
|
||||||
// alternative patterns that match progressively longer prefixes.
|
|
||||||
if (this.partial && filtered.length >= 1) {
|
|
||||||
const prefixes = [];
|
|
||||||
for (let i = 1; i <= filtered.length; i++) {
|
|
||||||
prefixes.push(filtered.slice(0, i).join('/'));
|
|
||||||
}
|
|
||||||
return '(?:' + prefixes.join('|') + ')';
|
|
||||||
}
|
|
||||||
return filtered.join('/');
|
|
||||||
})
|
})
|
||||||
.join('|');
|
.join('|');
|
||||||
// need to wrap in parens if we had more than one thing with |,
|
// need to wrap in parens if we had more than one thing with |,
|
||||||
@@ -911,10 +900,6 @@ export class Minimatch {
|
|||||||
// must match entire pattern
|
// must match entire pattern
|
||||||
// ending in a * or ** will make it less strict.
|
// ending in a * or ** will make it less strict.
|
||||||
re = '^' + open + re + close + '$';
|
re = '^' + open + re + close + '$';
|
||||||
// In partial mode, '/' should always match as it's a valid prefix for any pattern
|
|
||||||
if (this.partial) {
|
|
||||||
re = '^(?:\\/|' + open + re.slice(1, -1) + close + ')$';
|
|
||||||
}
|
|
||||||
// can match anything, as long as it's not this.
|
// can match anything, as long as it's not this.
|
||||||
if (this.negate)
|
if (this.negate)
|
||||||
re = '^(?!' + re + ').+$';
|
re = '^(?!' + re + ').+$';
|
||||||
|
|||||||
2
node_modules/minimatch/dist/esm/index.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/index.js.map
generated
vendored
File diff suppressed because one or more lines are too long
17
node_modules/minimatch/dist/esm/unescape.d.ts
generated
vendored
17
node_modules/minimatch/dist/esm/unescape.d.ts
generated
vendored
@@ -2,21 +2,16 @@ import { MinimatchOptions } from './index.js';
|
|||||||
/**
|
/**
|
||||||
* Un-escape a string that has been escaped with {@link escape}.
|
* Un-escape a string that has been escaped with {@link escape}.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then
|
* If the {@link windowsPathsNoEscape} option is used, then square-brace
|
||||||
* square-bracket escapes are removed, but not backslash escapes.
|
* escapes are removed, but not backslash escapes. For example, it will turn
|
||||||
|
* the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
|
||||||
|
* becuase `\` is a path separator in `windowsPathsNoEscape` mode.
|
||||||
*
|
*
|
||||||
* For example, it will turn the string `'[*]'` into `*`, but it will not
|
* When `windowsPathsNoEscape` is not set, then both brace escapes and
|
||||||
* turn `'\\*'` into `'*'`, because `\` is a path separator in
|
|
||||||
* `windowsPathsNoEscape` mode.
|
|
||||||
*
|
|
||||||
* When `windowsPathsNoEscape` is not set, then both square-bracket escapes and
|
|
||||||
* backslash escapes are removed.
|
* backslash escapes are removed.
|
||||||
*
|
*
|
||||||
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
||||||
* or unescaped.
|
* or unescaped.
|
||||||
*
|
|
||||||
* When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be
|
|
||||||
* unescaped.
|
|
||||||
*/
|
*/
|
||||||
export declare const unescape: (s: string, { windowsPathsNoEscape, magicalBraces, }?: Pick<MinimatchOptions, "windowsPathsNoEscape" | "magicalBraces">) => string;
|
export declare const unescape: (s: string, { windowsPathsNoEscape, }?: Pick<MinimatchOptions, "windowsPathsNoEscape">) => string;
|
||||||
//# sourceMappingURL=unescape.d.ts.map
|
//# sourceMappingURL=unescape.d.ts.map
|
||||||
2
node_modules/minimatch/dist/esm/unescape.d.ts.map
generated
vendored
2
node_modules/minimatch/dist/esm/unescape.d.ts.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAE7C;;;;;;;;;;;;;;;;;;GAkBG;AAEH,eAAO,MAAM,QAAQ,MAChB,MAAM,6CAIN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,GAAG,eAAe,CAAC,WAcpE,CAAA"}
|
{"version":3,"file":"unescape.d.ts","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,QAAQ,MAChB,MAAM,8BAGN,IAAI,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,WAKlD,CAAA"}
|
||||||
30
node_modules/minimatch/dist/esm/unescape.js
generated
vendored
30
node_modules/minimatch/dist/esm/unescape.js
generated
vendored
@@ -1,34 +1,20 @@
|
|||||||
/**
|
/**
|
||||||
* Un-escape a string that has been escaped with {@link escape}.
|
* Un-escape a string that has been escaped with {@link escape}.
|
||||||
*
|
*
|
||||||
* If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then
|
* If the {@link windowsPathsNoEscape} option is used, then square-brace
|
||||||
* square-bracket escapes are removed, but not backslash escapes.
|
* escapes are removed, but not backslash escapes. For example, it will turn
|
||||||
|
* the string `'[*]'` into `*`, but it will not turn `'\\*'` into `'*'`,
|
||||||
|
* becuase `\` is a path separator in `windowsPathsNoEscape` mode.
|
||||||
*
|
*
|
||||||
* For example, it will turn the string `'[*]'` into `*`, but it will not
|
* When `windowsPathsNoEscape` is not set, then both brace escapes and
|
||||||
* turn `'\\*'` into `'*'`, because `\` is a path separator in
|
|
||||||
* `windowsPathsNoEscape` mode.
|
|
||||||
*
|
|
||||||
* When `windowsPathsNoEscape` is not set, then both square-bracket escapes and
|
|
||||||
* backslash escapes are removed.
|
* backslash escapes are removed.
|
||||||
*
|
*
|
||||||
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
* Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped
|
||||||
* or unescaped.
|
* or unescaped.
|
||||||
*
|
|
||||||
* When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be
|
|
||||||
* unescaped.
|
|
||||||
*/
|
*/
|
||||||
export const unescape = (s, { windowsPathsNoEscape = false, magicalBraces = true, } = {}) => {
|
export const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {
|
||||||
if (magicalBraces) {
|
|
||||||
return windowsPathsNoEscape
|
|
||||||
? s.replace(/\[([^\/\\])\]/g, '$1')
|
|
||||||
: s
|
|
||||||
.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2')
|
|
||||||
.replace(/\\([^\/])/g, '$1');
|
|
||||||
}
|
|
||||||
return windowsPathsNoEscape
|
return windowsPathsNoEscape
|
||||||
? s.replace(/\[([^\/\\{}])\]/g, '$1')
|
? s.replace(/\[([^\/\\])\]/g, '$1')
|
||||||
: s
|
: s.replace(/((?!\\).|^)\[([^\/\\])\]/g, '$1$2').replace(/\\([^\/])/g, '$1');
|
||||||
.replace(/((?!\\).|^)\[([^\/\\{}])\]/g, '$1$2')
|
|
||||||
.replace(/\\([^\/{}])/g, '$1');
|
|
||||||
};
|
};
|
||||||
//# sourceMappingURL=unescape.js.map
|
//# sourceMappingURL=unescape.js.map
|
||||||
2
node_modules/minimatch/dist/esm/unescape.js.map
generated
vendored
2
node_modules/minimatch/dist/esm/unescape.js.map
generated
vendored
@@ -1 +1 @@
|
|||||||
{"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,EAC5B,aAAa,GAAG,IAAI,MACgD,EAAE,EACxE,EAAE;IACF,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,oBAAoB;YACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC;iBACE,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC;iBAC5C,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,EAAE,IAAI,CAAC;QACrC,CAAC,CAAC,CAAC;aACE,OAAO,CAAC,6BAA6B,EAAE,MAAM,CAAC;aAC9C,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC,CAAA","sourcesContent":["import { MinimatchOptions } from './index.js'\n\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link MinimatchOptions.windowsPathsNoEscape} option is used, then\n * square-bracket escapes are removed, but not backslash escapes.\n *\n * For example, it will turn the string `'[*]'` into `*`, but it will not\n * turn `'\\\\*'` into `'*'`, because `\\` is a path separator in\n * `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both square-bracket escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n *\n * When `magicalBraces` is not set, escapes of braces (`{` and `}`) will not be\n * unescaped.\n */\n\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n magicalBraces = true,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape' | 'magicalBraces'> = {},\n) => {\n if (magicalBraces) {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2')\n .replace(/\\\\([^\\/])/g, '$1')\n }\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\{}])\\]/g, '$1')\n : s\n .replace(/((?!\\\\).|^)\\[([^\\/\\\\{}])\\]/g, '$1$2')\n .replace(/\\\\([^\\/{}])/g, '$1')\n}\n"]}
|
{"version":3,"file":"unescape.js","sourceRoot":"","sources":["../../src/unescape.ts"],"names":[],"mappings":"AACA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,CAAS,EACT,EACE,oBAAoB,GAAG,KAAK,MACsB,EAAE,EACtD,EAAE;IACF,OAAO,oBAAoB;QACzB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,2BAA2B,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;AAChF,CAAC,CAAA","sourcesContent":["import { MinimatchOptions } from './index.js'\n/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes. For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (\n s: string,\n {\n windowsPathsNoEscape = false,\n }: Pick<MinimatchOptions, 'windowsPathsNoEscape'> = {}\n) => {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1')\n}\n"]}
|
||||||
13
node_modules/minimatch/package.json
generated
vendored
13
node_modules/minimatch/package.json
generated
vendored
@@ -2,10 +2,10 @@
|
|||||||
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
|
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me)",
|
||||||
"name": "minimatch",
|
"name": "minimatch",
|
||||||
"description": "a glob matcher in javascript",
|
"description": "a glob matcher in javascript",
|
||||||
"version": "10.1.1",
|
"version": "10.0.3",
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "git@github.com:isaacs/minimatch"
|
"url": "git://github.com/isaacs/minimatch.git"
|
||||||
},
|
},
|
||||||
"main": "./dist/commonjs/index.js",
|
"main": "./dist/commonjs/index.js",
|
||||||
"types": "./dist/commonjs/index.d.ts",
|
"types": "./dist/commonjs/index.d.ts",
|
||||||
@@ -34,9 +34,9 @@
|
|||||||
"presnap": "npm run prepare",
|
"presnap": "npm run prepare",
|
||||||
"test": "tap",
|
"test": "tap",
|
||||||
"snap": "tap",
|
"snap": "tap",
|
||||||
"format": "prettier --write . --log-level warn",
|
"format": "prettier --write . --loglevel warn",
|
||||||
"benchmark": "node benchmark/index.js",
|
"benchmark": "node benchmark/index.js",
|
||||||
"typedoc": "typedoc --tsconfig .tshy/esm.json ./src/*.ts"
|
"typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts"
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"semi": false,
|
"semi": false,
|
||||||
@@ -53,9 +53,10 @@
|
|||||||
"node": "20 || >=22"
|
"node": "20 || >=22"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/brace-expansion": "^1.1.2",
|
||||||
"@types/node": "^24.0.0",
|
"@types/node": "^24.0.0",
|
||||||
"mkdirp": "^3.0.1",
|
"mkdirp": "^3.0.1",
|
||||||
"prettier": "^3.6.2",
|
"prettier": "^3.3.2",
|
||||||
"tap": "^21.1.0",
|
"tap": "^21.1.0",
|
||||||
"tshy": "^3.0.2",
|
"tshy": "^3.0.2",
|
||||||
"typedoc": "^0.28.5"
|
"typedoc": "^0.28.5"
|
||||||
@@ -63,7 +64,7 @@
|
|||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
},
|
},
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"tshy": {
|
"tshy": {
|
||||||
"exports": {
|
"exports": {
|
||||||
"./package.json": "./package.json",
|
"./package.json": "./package.json",
|
||||||
|
|||||||
30
node_modules/utf-8-validate/LICENSE
generated
vendored
Normal file
30
node_modules/utf-8-validate/LICENSE
generated
vendored
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
This project is licensed for use as follows:
|
||||||
|
|
||||||
|
"""
|
||||||
|
Copyright (c) 2011 Einar Otto Stangvik <einaros@gmail.com> (http://2x.io)
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
|
||||||
|
the Software, and to permit persons to whom the Software is furnished to do so,
|
||||||
|
subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
|
||||||
|
COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
|
||||||
|
IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
||||||
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
"""
|
||||||
|
|
||||||
|
This license applies to parts originating from
|
||||||
|
https://www.cl.cam.ac.uk/~mgk25/ucs/utf8_check.c:
|
||||||
|
|
||||||
|
"""
|
||||||
|
Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/> -- 2005-03-30
|
||||||
|
License: http://www.cl.cam.ac.uk/~mgk25/short-license.html
|
||||||
|
"""
|
||||||
50
node_modules/utf-8-validate/README.md
generated
vendored
Normal file
50
node_modules/utf-8-validate/README.md
generated
vendored
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
# utf-8-validate
|
||||||
|
|
||||||
|
[](https://www.npmjs.com/package/utf-8-validate)
|
||||||
|
[](https://github.com/websockets/utf-8-validate/actions?query=workflow%3ACI+branch%3Amaster)
|
||||||
|
|
||||||
|
Check if a buffer contains valid UTF-8 encoded text.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```
|
||||||
|
npm install utf-8-validate --save-optional
|
||||||
|
```
|
||||||
|
|
||||||
|
The `--save-optional` flag tells npm to save the package in your package.json
|
||||||
|
under the
|
||||||
|
[`optionalDependencies`](https://docs.npmjs.com/files/package.json#optionaldependencies)
|
||||||
|
key.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
The module exports a single function which takes one argument.
|
||||||
|
|
||||||
|
### `isValidUTF8(buffer)`
|
||||||
|
|
||||||
|
Checks whether a buffer contains valid UTF-8.
|
||||||
|
|
||||||
|
#### Arguments
|
||||||
|
|
||||||
|
- `buffer` - The buffer to check.
|
||||||
|
|
||||||
|
#### Return value
|
||||||
|
|
||||||
|
`true` if the buffer contains only correct UTF-8, else `false`.
|
||||||
|
|
||||||
|
#### Example
|
||||||
|
|
||||||
|
```js
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
const isValidUTF8 = require('utf-8-validate');
|
||||||
|
|
||||||
|
const buf = Buffer.from([0xf0, 0x90, 0x80, 0x80]);
|
||||||
|
|
||||||
|
console.log(isValidUTF8(buf));
|
||||||
|
// => true
|
||||||
|
```
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
[MIT](LICENSE)
|
||||||
18
node_modules/utf-8-validate/binding.gyp
generated
vendored
Normal file
18
node_modules/utf-8-validate/binding.gyp
generated
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
'targets': [
|
||||||
|
{
|
||||||
|
'target_name': 'validation',
|
||||||
|
'sources': ['src/validation.c'],
|
||||||
|
'cflags': ['-std=c99'],
|
||||||
|
'conditions': [
|
||||||
|
["OS=='mac'", {
|
||||||
|
'xcode_settings': {
|
||||||
|
'MACOSX_DEPLOYMENT_TARGET': '10.7',
|
||||||
|
'OTHER_CFLAGS': ['-arch x86_64', '-arch arm64'],
|
||||||
|
'OTHER_LDFLAGS': ['-arch x86_64', '-arch arm64']
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
62
node_modules/utf-8-validate/fallback.js
generated
vendored
Normal file
62
node_modules/utf-8-validate/fallback.js
generated
vendored
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Checks if a given buffer contains only correct UTF-8.
|
||||||
|
* Ported from https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c by
|
||||||
|
* Markus Kuhn.
|
||||||
|
*
|
||||||
|
* @param {Buffer} buf The buffer to check
|
||||||
|
* @return {Boolean} `true` if `buf` contains only correct UTF-8, else `false`
|
||||||
|
* @public
|
||||||
|
*/
|
||||||
|
function isValidUTF8(buf) {
|
||||||
|
const len = buf.length;
|
||||||
|
let i = 0;
|
||||||
|
|
||||||
|
while (i < len) {
|
||||||
|
if ((buf[i] & 0x80) === 0x00) { // 0xxxxxxx
|
||||||
|
i++;
|
||||||
|
} else if ((buf[i] & 0xe0) === 0xc0) { // 110xxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 1 === len ||
|
||||||
|
(buf[i + 1] & 0xc0) !== 0x80 ||
|
||||||
|
(buf[i] & 0xfe) === 0xc0 // overlong
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 2;
|
||||||
|
} else if ((buf[i] & 0xf0) === 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 2 >= len ||
|
||||||
|
(buf[i + 1] & 0xc0) !== 0x80 ||
|
||||||
|
(buf[i + 2] & 0xc0) !== 0x80 ||
|
||||||
|
buf[i] === 0xe0 && (buf[i + 1] & 0xe0) === 0x80 || // overlong
|
||||||
|
buf[i] === 0xed && (buf[i + 1] & 0xe0) === 0xa0 // surrogate (U+D800 - U+DFFF)
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 3;
|
||||||
|
} else if ((buf[i] & 0xf8) === 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 3 >= len ||
|
||||||
|
(buf[i + 1] & 0xc0) !== 0x80 ||
|
||||||
|
(buf[i + 2] & 0xc0) !== 0x80 ||
|
||||||
|
(buf[i + 3] & 0xc0) !== 0x80 ||
|
||||||
|
buf[i] === 0xf0 && (buf[i + 1] & 0xf0) === 0x80 || // overlong
|
||||||
|
buf[i] === 0xf4 && buf[i + 1] > 0x8f || buf[i] > 0xf4 // > U+10FFFF
|
||||||
|
) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 4;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = isValidUTF8;
|
||||||
7
node_modules/utf-8-validate/index.js
generated
vendored
Normal file
7
node_modules/utf-8-validate/index.js
generated
vendored
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
try {
|
||||||
|
module.exports = require('node-gyp-build')(__dirname);
|
||||||
|
} catch (e) {
|
||||||
|
module.exports = require('./fallback');
|
||||||
|
}
|
||||||
36
node_modules/utf-8-validate/package.json
generated
vendored
Normal file
36
node_modules/utf-8-validate/package.json
generated
vendored
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"name": "utf-8-validate",
|
||||||
|
"version": "5.0.10",
|
||||||
|
"description": "Check if a buffer contains valid UTF-8",
|
||||||
|
"main": "index.js",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
},
|
||||||
|
"scripts": {
|
||||||
|
"install": "node-gyp-build",
|
||||||
|
"prebuild": "prebuildify --napi --strip --target=14.0.0",
|
||||||
|
"prebuild-darwin-x64+arm64": "prebuildify --arch x64+arm64 --napi --strip --target=14.0.0",
|
||||||
|
"test": "mocha"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/websockets/utf-8-validate"
|
||||||
|
},
|
||||||
|
"keywords": [
|
||||||
|
"utf-8-validate"
|
||||||
|
],
|
||||||
|
"author": "Einar Otto Stangvik <einaros@gmail.com> (http://2x.io)",
|
||||||
|
"license": "MIT",
|
||||||
|
"bugs": {
|
||||||
|
"url": "https://github.com/websockets/utf-8-validate/issues"
|
||||||
|
},
|
||||||
|
"homepage": "https://github.com/websockets/utf-8-validate",
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"mocha": "^10.0.0",
|
||||||
|
"node-gyp": "^9.1.0",
|
||||||
|
"prebuildify": "^5.0.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
BIN
node_modules/utf-8-validate/prebuilds/darwin-x64+arm64/node.napi.node
generated
vendored
Normal file
BIN
node_modules/utf-8-validate/prebuilds/darwin-x64+arm64/node.napi.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/utf-8-validate/prebuilds/linux-x64/node.napi.node
generated
vendored
Normal file
BIN
node_modules/utf-8-validate/prebuilds/linux-x64/node.napi.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/utf-8-validate/prebuilds/win32-ia32/node.napi.node
generated
vendored
Normal file
BIN
node_modules/utf-8-validate/prebuilds/win32-ia32/node.napi.node
generated
vendored
Normal file
Binary file not shown.
BIN
node_modules/utf-8-validate/prebuilds/win32-x64/node.napi.node
generated
vendored
Normal file
BIN
node_modules/utf-8-validate/prebuilds/win32-x64/node.napi.node
generated
vendored
Normal file
Binary file not shown.
109
node_modules/utf-8-validate/src/validation.c
generated
vendored
Normal file
109
node_modules/utf-8-validate/src/validation.c
generated
vendored
Normal file
@@ -0,0 +1,109 @@
|
|||||||
|
#define NAPI_VERSION 1
|
||||||
|
#include <assert.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <node_api.h>
|
||||||
|
|
||||||
|
napi_value IsValidUTF8(napi_env env, napi_callback_info info) {
|
||||||
|
napi_status status;
|
||||||
|
size_t argc = 1;
|
||||||
|
napi_value argv[1];
|
||||||
|
|
||||||
|
status = napi_get_cb_info(env, info, &argc, argv, NULL, NULL);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
uint8_t *buf;
|
||||||
|
size_t len;
|
||||||
|
|
||||||
|
status = napi_get_buffer_info(env, argv[0], (void **)&buf, &len);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
size_t i = 0;
|
||||||
|
|
||||||
|
//
|
||||||
|
// This code has been taken from utf8_check.c which was developed by
|
||||||
|
// Markus Kuhn <http://www.cl.cam.ac.uk/~mgk25/>.
|
||||||
|
//
|
||||||
|
// For original code / licensing please refer to
|
||||||
|
// https://www.cl.cam.ac.uk/%7Emgk25/ucs/utf8_check.c
|
||||||
|
//
|
||||||
|
while (i < len) {
|
||||||
|
size_t j = i + 8;
|
||||||
|
|
||||||
|
if (j <= len) {
|
||||||
|
//
|
||||||
|
// Read 8 bytes and check if they are ASCII.
|
||||||
|
//
|
||||||
|
uint64_t chunk;
|
||||||
|
memcpy(&chunk, buf + i, 8);
|
||||||
|
|
||||||
|
if ((chunk & 0x8080808080808080) == 0x00) {
|
||||||
|
i = j;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while ((buf[i] & 0x80) == 0x00) { // 0xxxxxxx
|
||||||
|
if (++i == len) {
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((buf[i] & 0xe0) == 0xc0) { // 110xxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 1 == len ||
|
||||||
|
(buf[i + 1] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i] & 0xfe) == 0xc0 // overlong
|
||||||
|
) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 2;
|
||||||
|
} else if ((buf[i] & 0xf0) == 0xe0) { // 1110xxxx 10xxxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 2 >= len ||
|
||||||
|
(buf[i + 1] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i + 2] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i] == 0xe0 && (buf[i + 1] & 0xe0) == 0x80) || // overlong
|
||||||
|
(buf[i] == 0xed && (buf[i + 1] & 0xe0) == 0xa0) // surrogate (U+D800 - U+DFFF)
|
||||||
|
) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 3;
|
||||||
|
} else if ((buf[i] & 0xf8) == 0xf0) { // 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
|
||||||
|
if (
|
||||||
|
i + 3 >= len ||
|
||||||
|
(buf[i + 1] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i + 2] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i + 3] & 0xc0) != 0x80 ||
|
||||||
|
(buf[i] == 0xf0 && (buf[i + 1] & 0xf0) == 0x80) || // overlong
|
||||||
|
(buf[i] == 0xf4 && buf[i + 1] > 0x8f) || buf[i] > 0xf4 // > U+10FFFF
|
||||||
|
) {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
i += 4;
|
||||||
|
} else {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
exit:;
|
||||||
|
napi_value result;
|
||||||
|
status = napi_get_boolean(env, i == len, &result);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
napi_value Init(napi_env env, napi_value exports) {
|
||||||
|
napi_status status;
|
||||||
|
napi_value isValidUTF8;
|
||||||
|
|
||||||
|
status = napi_create_function(env, NULL, 0, IsValidUTF8, NULL, &isValidUTF8);
|
||||||
|
assert(status == napi_ok);
|
||||||
|
|
||||||
|
return isValidUTF8;
|
||||||
|
}
|
||||||
|
|
||||||
|
NAPI_MODULE(NODE_GYP_MODULE_NAME, Init)
|
||||||
46
package-lock.json
generated
46
package-lock.json
generated
@@ -141,6 +141,20 @@
|
|||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
"integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
|
||||||
},
|
},
|
||||||
|
"node_modules/bufferutil": {
|
||||||
|
"version": "4.0.9",
|
||||||
|
"resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.9.tgz",
|
||||||
|
"integrity": "sha512-WDtdLmJvAuNNPzByAYpRo2rF1Mmradw6gvWsQKf63476DDXmomT9zUiGypLcG4ibIM67vhAj8jJRdbmEws2Aqw==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/call-bind-apply-helpers": {
|
"node_modules/call-bind-apply-helpers": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
|
||||||
@@ -407,14 +421,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "11.1.0",
|
"version": "11.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-11.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
|
||||||
"integrity": "sha512-vuNwKSaKiqm7g0THUBu2x7ckSs3XJLXE+2ssL7/MfTGPLLcrJQ/4Uq1CjPTtO5cCIiRxqvN6Twy1qOwhL0Xjcw==",
|
"integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"foreground-child": "^3.3.1",
|
"foreground-child": "^3.3.1",
|
||||||
"jackspeak": "^4.1.1",
|
"jackspeak": "^4.1.1",
|
||||||
"minimatch": "^10.1.1",
|
"minimatch": "^10.0.3",
|
||||||
"minipass": "^7.1.2",
|
"minipass": "^7.1.2",
|
||||||
"package-json-from-dist": "^1.0.0",
|
"package-json-from-dist": "^1.0.0",
|
||||||
"path-scurry": "^2.0.0"
|
"path-scurry": "^2.0.0"
|
||||||
@@ -562,10 +576,10 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/minimatch": {
|
"node_modules/minimatch": {
|
||||||
"version": "10.1.1",
|
"version": "10.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
|
||||||
"integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==",
|
"integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
|
||||||
"license": "BlueOak-1.0.0",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@isaacs/brace-expansion": "^5.0.0"
|
"@isaacs/brace-expansion": "^5.0.0"
|
||||||
},
|
},
|
||||||
@@ -814,6 +828,20 @@
|
|||||||
"node": ">=14.0"
|
"node": ">=14.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/utf-8-validate": {
|
||||||
|
"version": "5.0.10",
|
||||||
|
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz",
|
||||||
|
"integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==",
|
||||||
|
"hasInstallScript": true,
|
||||||
|
"license": "MIT",
|
||||||
|
"optional": true,
|
||||||
|
"dependencies": {
|
||||||
|
"node-gyp-build": "^4.3.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.14.2"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||||
|
|||||||
Reference in New Issue
Block a user