diff --git a/.github/workflows/prebuild-linux.yml b/.github/workflows/prebuild-linux.yml new file mode 100644 index 000000000..10e49713f --- /dev/null +++ b/.github/workflows/prebuild-linux.yml @@ -0,0 +1,73 @@ +name: Use openCV from Apt + +on: + push: + branches: [ "master", "dev" ] + paths: + - "cc/**" + - "install/**" + - "lib/**" + - "test/**" + - "typings/**" + - "package.json" + - ".github/workflows/prebuild-linux.yml" + pull_request: + branches: [ "master" ] + paths: + - "cc/**" + - "install/**" + - "lib/**" + - "test/**" + - "typings/**" + - "package.json" + - ".github/workflows/prebuild-linux.yml" + +env: + OPENCV4NODEJS_DISABLE_AUTOBUILD: 1 + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + opencv_version: + - 4 + node_version: + # - 16 + # - 18 + - 20 + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v3 + with: + version: 8 + - name: Install Node.js ${{ matrix.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node_version }} + cache: 'pnpm' + + - name: Install OpenCV ${{ matrix.opencv_version }} + run: | + sudo apt update + sudo apt install libopencv-dev + + - run: pnpm install --frozen-lockfile + + - name: pnpm run prepack + run: pnpm run prepack + + - name: build native code + run: npx node-gyp rebuild + + - name: install deps in test + working-directory: ./test + run: pnpm install + + - name: run test-appveyor test + working-directory: ./test + run: pnpm run test-appveyor diff --git a/.github/workflows/prebuild-mac.yml b/.github/workflows/prebuild-mac.yml new file mode 100644 index 000000000..01155ac20 --- /dev/null +++ b/.github/workflows/prebuild-mac.yml @@ -0,0 +1,73 @@ +name: Use openCV from Brew + +on: + push: + branches: [ "master", "dev" ] + paths: + - "cc/**" + - "install/**" + - "lib/**" + - "test/**" + - "typings/**" + - "package.json" + - ".github/workflows/prebuild-mac.yml" + pull_request: + branches: [ "master" ] + paths: + - "cc/**" + - "install/**" + - "lib/**" + - "test/**" + - "typings/**" + - "package.json" + - ".github/workflows/prebuild-mac.yml" + +env: + OPENCV4NODEJS_DISABLE_AUTOBUILD: 1 + +permissions: + contents: read + +jobs: + build: + runs-on: macos-latest + strategy: + matrix: + opencv_version: + - 4 + node_version: + # - 16 + # - 18 + - 20 + + steps: + - uses: actions/checkout@v4 + - uses: pnpm/action-setup@v3 + with: + version: 8 + - name: Install Node.js ${{ matrix.node_version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node_version }} + cache: 'pnpm' + + - name: Install OpenCV ${{ matrix.opencv_version }} + run: | + brew install opencv@${{ matrix.opencv_version }} + + - name: run pnpm install + run: pnpm install --frozen-lockfile + + - name: pnpm run prepack + run: pnpm run prepack + + - name: build native code + run: npx node-gyp rebuild + + - name: install deps in test + working-directory: ./test + run: pnpm install --frozen-lockfile + + - name: run test-appveyor test + working-directory: ./test + run: pnpm run test-appveyor diff --git a/.github/workflows/prebuild.yml b/.github/workflows/prebuild-win64.yml similarity index 75% rename from .github/workflows/prebuild.yml rename to .github/workflows/prebuild-win64.yml index 21129ac3d..98e8da8bb 100644 --- a/.github/workflows/prebuild.yml +++ b/.github/workflows/prebuild-win64.yml @@ -1,8 +1,8 @@ -name: Build using prebuild openCV +name: Use openCV from Chocolatey on: push: - branches: [ "master" ] + branches: [ "master", "dev" ] paths: - "cc/**" - "install/**" @@ -10,7 +10,7 @@ on: - "test/**" - "typings/**" - "package.json" - - ".github/workflows/prebuild.yml" + - ".github/workflows/prebuild-win64.yml" pull_request: branches: [ "master" ] paths: @@ -20,7 +20,7 @@ on: - "test/**" - "typings/**" - "package.json" - - ".github/workflows/prebuild.yml" + - ".github/workflows/prebuild-win64.yml" env: # Path to the solution file relative to the root of the project. @@ -30,6 +30,7 @@ env: # OPENCV_LIB_DIR: c:\tools\opencv\build\x64\vc14\lib # OPENCV_BIN_DIR: c:\tools\opencv\build\x64\vc14\bin OPENCV4NODEJS_DISABLE_AUTOBUILD: 1 + OPENCV_BUILD_ROOT: D:\a\opencv\ # Configuration type to build. # You can convert this to a build matrix if you need coverage of multiple configuration types. # https://docs.github.com/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix @@ -45,9 +46,9 @@ jobs: matrix: opencv_version: - 4.9.0 - - 4.8.0 - - 4.7.0 - - 4.6.0 + # - 4.8.0 + # - 4.7.0 + # - 4.6.0 # - 4.5.5 # 2019-12-23 ubuntu 22.04 ###- 4.5.1 # raspberry Pi version # - 4.2.0 # 2019-12-23 ubuntu 20.04 @@ -60,9 +61,9 @@ jobs: - x64 steps: - uses: actions/checkout@v3 - - uses: pnpm/action-setup@v2 + - uses: pnpm/action-setup@v3 with: - version: 8.15.3 + version: 8 - uses: actions/setup-node@v3 with: node-version: ${{ matrix.node_version }} @@ -70,17 +71,16 @@ jobs: cache: 'pnpm' - name: Add MSBuild to PATH - uses: microsoft/setup-msbuild@v1.0.2 + uses: microsoft/setup-msbuild@v2 - name: Install OpenCV run: | - choco install OpenCV -y --version ${{ matrix.opencv_version }} - - - name: add path to PATH environment variable - uses: myci-actions/export-env-var-powershell@1 - with: - name: PATH - value: $env:PATH;$env:OPENCV_BIN_DIR + choco install opencv -y --version ${{ matrix.opencv_version }} + # - name: add path to PATH environment variable + # uses: myci-actions/export-env-var-powershell@1 + # with: + # name: PATH + # value: $env:PATH;$env:OPENCV_BIN_DIR - name: run pnpm install run: pnpm install --frozen-lockfile @@ -88,6 +88,9 @@ jobs: - name: pnpm run prepack run: pnpm run prepack + - name: build native code + run: npx node-gyp rebuild + - name: install deps in test working-directory: ./test run: pnpm install --frozen-lockfile diff --git a/bin/install.ts b/bin/install.ts new file mode 100755 index 000000000..91882e2ea --- /dev/null +++ b/bin/install.ts @@ -0,0 +1,4 @@ +#!/usr/bin/env node +import * as compileLib from "../install/compileLib"; +const {argv} = process; +compileLib.compileLib(argv); diff --git a/binding.gyp b/binding.gyp index e74f1cf38..cbd2f73b8 100644 --- a/binding.gyp +++ b/binding.gyp @@ -2,17 +2,17 @@ "targets": [{ "target_name": "opencv4nodejs", "defines": [ - "self = self; } + virtual ~RQDecomp3x3Worker() {} cv::Vec3d returnValue; cv::Mat mtxR; @@ -66,6 +69,7 @@ namespace MatCalib3dBindings { DecomposeProjectionMatrixWorker(cv::Mat self) { this->self = self; } + virtual ~DecomposeProjectionMatrixWorker() {} cv::Mat cameraMatrix; cv::Mat rotMatrix; @@ -98,7 +102,8 @@ namespace MatCalib3dBindings { MatMulDerivWorker(cv::Mat self) { this->self = self; } - + virtual ~MatMulDerivWorker() {} + cv::Mat B; cv::Mat dABdA; @@ -129,6 +134,7 @@ namespace MatCalib3dBindings { FindChessboardCornersWorker(cv::Mat self) { this->self = self; } + virtual ~FindChessboardCornersWorker() {} cv::Size2d patternSize; int flags = cv::CALIB_CB_ADAPTIVE_THRESH + cv::CALIB_CB_NORMALIZE_IMAGE; @@ -167,7 +173,8 @@ namespace MatCalib3dBindings { DrawChessboardCornersWorker(cv::Mat self) { this->self = self; } - + virtual ~DrawChessboardCornersWorker() {} + cv::Size2d patternSize; std::vector corners; bool patternWasFound; @@ -193,6 +200,7 @@ namespace MatCalib3dBindings { Find4QuadCornerSubpixWorker(cv::Mat self) { this->self = self; } + virtual ~Find4QuadCornerSubpixWorker() {} std::vector corners; cv::Size2d region_size; @@ -222,7 +230,8 @@ namespace MatCalib3dBindings { CalibrationMatrixValuesWorker(cv::Mat self) { this->self = self; } - + virtual ~CalibrationMatrixValuesWorker() {} + cv::Size2d imageSize; double apertureWidth; double apertureHeight; @@ -263,6 +272,7 @@ namespace MatCalib3dBindings { StereoRectifyWorker(cv::Mat self) { this->self = self; } + virtual ~StereoRectifyWorker() {} std::vector distCoeffs1; cv::Mat cameraMatrix2; @@ -338,6 +348,7 @@ namespace MatCalib3dBindings { Rectify3CollinearWorker(cv::Mat self) { this->self = self; } + virtual ~Rectify3CollinearWorker() {} std::vector distCoeffs1; cv::Mat cameraMatrix2; @@ -414,6 +425,7 @@ namespace MatCalib3dBindings { GetOptimalNewCameraMatrixWorker(cv::Mat self) { this->self = self; } + virtual ~GetOptimalNewCameraMatrixWorker() {} std::vector distCoeffs; cv::Size2d imageSize; @@ -470,6 +482,7 @@ namespace MatCalib3dBindings { DecomposeEssentialMatWorker(cv::Mat self) { this->self = self; } + virtual ~DecomposeEssentialMatWorker() {} cv::Mat R1; cv::Mat R2; @@ -495,6 +508,7 @@ namespace MatCalib3dBindings { TriangulatePointsWorker(cv::Mat self) { this->self = self; } + virtual ~TriangulatePointsWorker() {} cv::Mat projMatr2; std::vector projPoints1; @@ -526,7 +540,8 @@ namespace MatCalib3dBindings { CorrectMatchesWorker(cv::Mat self) { this->self = self; } - + virtual ~CorrectMatchesWorker() {} + std::vector points1; std::vector points2; @@ -559,7 +574,8 @@ namespace MatCalib3dBindings { FilterSpecklesWorker(cv::Mat self) { this->self = self; } - + virtual ~FilterSpecklesWorker() {} + double newVal; int maxSpeckleSize; double maxDiff; @@ -589,6 +605,7 @@ namespace MatCalib3dBindings { ValidateDisparityWorker(cv::Mat self) { this->self = self; } + virtual ~ValidateDisparityWorker() {} cv::Mat cost; int minDisparity; @@ -627,6 +644,7 @@ namespace MatCalib3dBindings { ReprojectImageTo3DWorker(cv::Mat self) { this->self = self; } + virtual ~ReprojectImageTo3DWorker() {} cv::Mat Q; bool handleMissingValues = false; @@ -675,6 +693,7 @@ namespace MatCalib3dBindings { DecomposeHomographyMatWorker(cv::Mat self) { this->self = self; } + virtual ~DecomposeHomographyMatWorker() {} cv::Mat K; @@ -711,6 +730,7 @@ namespace MatCalib3dBindings { FindEssentialMatWorker(cv::Mat self) { this->self = self; } + virtual ~FindEssentialMatWorker() {} std::vector points1; std::vector points2; @@ -768,7 +788,8 @@ namespace MatCalib3dBindings { RecoverPoseWorker(cv::Mat self) { this->self = self; } - + virtual ~RecoverPoseWorker() {} + cv::Mat E; std::vector points1; std::vector points2; @@ -812,6 +833,7 @@ namespace MatCalib3dBindings { // since 4.0.0 cv::undistort has been moved from imgproc to calib3d class Undistort : public CvBinding { public: + virtual ~Undistort() {} void setup(cv::Mat self) { auto cameraMatrix = req(); auto distCoeffs = req(); diff --git a/cc/calib3d/calib3dBindings.h b/cc/calib3d/calib3dBindings.h index 91511cebb..1dfe0654e 100644 --- a/cc/calib3d/calib3dBindings.h +++ b/cc/calib3d/calib3dBindings.h @@ -23,6 +23,8 @@ namespace Calib3dBindings { cv::Mat mask; cv::Mat homography; + virtual ~FindHomographyWorker() {} + std::string executeCatchCvExceptionWorker() { homography = cv::findHomography(srcPoints, dstPoints, method, ransacReprojThreshold, mask, maxIters, confidence); return ""; @@ -84,6 +86,8 @@ namespace Calib3dBindings { cv::Mat dt3dr2; cv::Mat dt3dt2; + virtual ~ComposeRTWorker() {} + std::string executeCatchCvExceptionWorker() { cv::composeRT(rvec1, tvec1, rvec2, tvec2, rvec3, tvec3, dr3dr1, dr3dt1, dr3dr2, dr3dt2, dt3dr1, dt3dt1, dt3dr2, dt3dt2); return ""; @@ -148,6 +152,7 @@ namespace Calib3dBindings { bool useExtrinsicGuess = false; int flags = cv::SOLVEPNP_ITERATIVE; + virtual ~SolvePnPWorker() {} std::string executeCatchCvExceptionWorker() { returnValue = cv::solvePnP(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, flags); return ""; @@ -183,10 +188,11 @@ namespace Calib3dBindings { int iterationsCount = 100; float reprojectionError = 8.0; double confidence = 0.99; - int flags = cv::SOLVEPNP_ITERATIVE; - + int flags = cv::SOLVEPNP_ITERATIVE; std::vector inliers; + virtual ~SolvePnPRansacWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::solvePnPRansac(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvec, tvec, useExtrinsicGuess, iterationsCount, reprojectionError, confidence, inliers, flags); return ""; @@ -240,6 +246,8 @@ namespace Calib3dBindings { std::vector imagePoints; cv::Mat jacobian; + virtual ~ProjectPointsWorker() {} + std::string executeCatchCvExceptionWorker() { cv::projectPoints(objectPoints, rvec, tvec, cameraMatrix, distCoeffs, imagePoints, jacobian, aspectRatio); return ""; @@ -274,10 +282,11 @@ namespace Calib3dBindings { std::vector> objectPoints; std::vector> imagePoints; cv::Size2d imageSize; - double aspectRatio = 1.0; - + double aspectRatio = 1.0; cv::Mat returnValue; + virtual ~InitCameraMatrix2DWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::initCameraMatrix2D(objectPoints, imagePoints, imageSize, aspectRatio); return ""; @@ -321,6 +330,8 @@ namespace Calib3dBindings { cv::Mat E; cv::Mat F; + virtual ~StereoCalibrateWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::stereoCalibrate(objectPoints, imagePoints1, imagePoints2, cameraMatrix1, distCoeffs1, cameraMatrix2, distCoeffs2, imageSize, R, T, E, F, flags, criteria); return ""; @@ -383,6 +394,7 @@ namespace Calib3dBindings { cv::Mat H1; cv::Mat H2; + virtual ~StereoRectifyUncalibratedWorker() {} std::string executeCatchCvExceptionWorker() { returnValue = cv::stereoRectifyUncalibrated(points1, points2, F, imgSize, H1, H2, threshold); return ""; @@ -423,6 +435,8 @@ namespace Calib3dBindings { cv::Mat F; cv::Mat mask; + virtual ~FindFundamentalMatWorker() {} + std::string executeCatchCvExceptionWorker() { F = cv::findFundamentalMat(points1, points2, method, param1, param2, mask); return ""; @@ -477,6 +491,8 @@ namespace Calib3dBindings { cv::Mat E; cv::Mat mask = cv::noArray().getMat(); + virtual ~FindEssentialMatWorker() {} + std::string executeCatchCvExceptionWorker() { E = cv::findEssentialMat(points1, points2, focal, pp, method, prob, threshold, mask); return ""; @@ -535,6 +551,8 @@ namespace Calib3dBindings { cv::Mat R; cv::Vec3d T; + virtual ~RecoverPoseWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::recoverPose(E, points1, points2, R, T, focal, pp, mask); return ""; @@ -586,6 +604,8 @@ namespace Calib3dBindings { std::vector lines; + virtual ~ComputeCorrespondEpilinesWorker() {} + std::string executeCatchCvExceptionWorker() { cv::computeCorrespondEpilines(points, whichImage, F, lines); return ""; @@ -614,6 +634,8 @@ namespace Calib3dBindings { cv::Rect2d returnValue; + virtual ~GetValidDisparityROIWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::getValidDisparityROI(roi1, roi2, minDisparity, numberOfDisparities, SADWindowSize); return ""; @@ -645,6 +667,8 @@ namespace Calib3dBindings { cv::Mat out; cv::Mat inliers; + virtual ~EstimateAffine3DWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::estimateAffine3D(src, dst, out, inliers, ransacThreshold, confidence); return ""; @@ -694,6 +718,8 @@ namespace Calib3dBindings { double returnValue; + virtual ~SampsonDistanceWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::sampsonDistance(pt1, pt2, F); return ""; @@ -729,6 +755,8 @@ namespace Calib3dBindings { cv::Mat _rvecs; cv::Mat _tvecs; + virtual ~CalibrateCameraWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, flags, criteria); return ""; @@ -781,6 +809,8 @@ namespace Calib3dBindings { cv::Mat stdDeviationsExtrinsics; std::vector perViewErrors; + virtual ~CalibrateCameraExtendedWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::calibrateCamera(objectPoints, imagePoints, imageSize, cameraMatrix, distCoeffs, rvecs, tvecs, stdDeviationsIntrinsics, stdDeviationsExtrinsics, perViewErrors, flags, criteria); return ""; @@ -808,6 +838,8 @@ namespace Calib3dBindings { cv::Mat out; cv::Mat inliers; + virtual ~EstimateAffine2DWorker() {} + std::string executeCatchCvExceptionWorker() { out = cv::estimateAffine2D(from, to, inliers, method, ransacReprojThreshold, maxIters, confidence, refineIters); return ""; @@ -854,6 +886,7 @@ namespace Calib3dBindings { }; struct EstimateAffinePartial2DWorker : public EstimateAffine2DWorker { + virtual ~EstimateAffinePartial2DWorker() {} std::string executeCatchCvExceptionWorker() { out = cv::estimateAffinePartial2D(from, to, inliers, method, ransacReprojThreshold, maxIters, confidence, refineIters); return ""; @@ -870,6 +903,8 @@ namespace Calib3dBindings { std::vector rvecs; std::vector tvecs; + virtual ~SolveP3PWorker() {} + std::string executeCatchCvExceptionWorker() { returnValue = cv::solveP3P(objectPoints, imagePoints, cameraMatrix, distCoeffs, rvecs, tvecs, flags); return ""; @@ -896,6 +931,8 @@ namespace Calib3dBindings { // since 4.0.0 cv::undistortPoints has been moved from imgproc to calib3d class UndistortPoints : public CvBinding { public: + virtual ~UndistortPoints() {} + void setup() { auto srcPoints = req>(); auto cameraMatrix = req(); diff --git a/cc/core/MatBindings.h b/cc/core/MatBindings.h index 0ef3cec89..afb4b1df1 100644 --- a/cc/core/MatBindings.h +++ b/cc/core/MatBindings.h @@ -67,6 +67,7 @@ namespace MatBindings { Mat::Converter::optArg(1, &mask, info) ); } + virtual ~SetToWorker() {} }; class PushBack : public CvBinding { @@ -78,6 +79,7 @@ namespace MatBindings { res->ref().push_back(mat->ref()); }; }; + virtual ~PushBack() {} }; class PopBack : public CvBinding { @@ -89,6 +91,7 @@ namespace MatBindings { res->ref().pop_back(num->ref()); }; }; + virtual ~PopBack() {} }; struct GetDataWorker : CatchCvExceptionWorker { @@ -122,6 +125,7 @@ namespace MatBindings { free(data); return copyData; } + virtual ~GetDataWorker() {} }; class Copy : public CvBinding { @@ -134,6 +138,7 @@ namespace MatBindings { self.copyTo(dst->ref(), mask->ref()); }; }; + virtual ~Copy() {} }; class CopyTo : public CvBinding { @@ -148,6 +153,7 @@ namespace MatBindings { dstRet->ref() = dst->ref(); }; }; + virtual ~CopyTo() {} }; class ConvertTo : public CvBinding { @@ -162,6 +168,7 @@ namespace MatBindings { self.convertTo(dst->ref(), rtype->ref(), alpha->ref(), beta->ref()); }; }; + virtual ~ConvertTo() {} }; class PadToSquare : public CvBinding { @@ -185,6 +192,7 @@ namespace MatBindings { self.copyTo(roi); }; }; + virtual ~PadToSquare() {} }; // TODO @@ -228,6 +236,7 @@ namespace MatBindings { bool unwrapOptionalArgs(Nan::NAN_METHOD_ARGS_TYPE info) { return FF::IntConverter::optArg(0, &flags, info); } + virtual ~DCTWorker() {} }; struct DFTWorker : public DTWorker { @@ -264,6 +273,7 @@ namespace MatBindings { FF::IntConverter::optProp(&nonzeroRows, "nonzeroRows", opts) ); } + virtual ~DFTWorker() {} }; struct OpWithCodeWorker : public CatchCvExceptionWorker { @@ -302,6 +312,7 @@ namespace MatBindings { cv::flip(self, dst, code); return ""; } + virtual ~FlipWorker() {} }; struct CopyMakeBorderWorker : public CatchCvExceptionWorker { @@ -372,6 +383,7 @@ namespace MatBindings { ) ); } + virtual ~CopyMakeBorderWorker() {} }; @@ -385,10 +397,10 @@ namespace MatBindings { cv::rotate(self, dst, code); return ""; } + virtual ~RotateWorker() {} }; #endif - } #endif diff --git a/cc/core/RectBindings.h b/cc/core/RectBindings.h index bfa6a0ff3..f643b6709 100644 --- a/cc/core/RectBindings.h +++ b/cc/core/RectBindings.h @@ -35,6 +35,7 @@ namespace RectBindings { outRect = rect & rect2; return ""; } + virtual ~AndWorker() {} }; struct OrWorker : public LogicOpWorker { @@ -46,6 +47,7 @@ namespace RectBindings { outRect = rect | rect2; return ""; } + virtual ~OrWorker() {} }; struct ToSquareWorker : CatchCvExceptionWorker { @@ -71,6 +73,7 @@ namespace RectBindings { v8::Local getReturnValue() { return Rect::Converter::wrap(outRect); } + virtual ~ToSquareWorker() {} }; struct PadWorker : CatchCvExceptionWorker { @@ -109,6 +112,7 @@ namespace RectBindings { v8::Local getReturnValue() { return Rect::Converter::wrap(outRect); } + virtual ~PadWorker() {} }; struct RescaleWorker : CatchCvExceptionWorker { @@ -135,9 +139,9 @@ namespace RectBindings { v8::Local getReturnValue() { return Rect::Converter::wrap(outRect); } + virtual ~RescaleWorker() {} }; - } #endif \ No newline at end of file diff --git a/cc/core/coreBindings.h b/cc/core/coreBindings.h index 10c759e96..62a0daf1e 100644 --- a/cc/core/coreBindings.h +++ b/cc/core/coreBindings.h @@ -19,6 +19,7 @@ namespace CoreBindings { cv::cartToPolar(x->ref(), y->ref(), magnitude->ref(), angle->ref(), angleInDegrees->ref()); }; }; + virtual ~CartToPolar() {} }; class PolarToCart : public CvBinding { @@ -34,6 +35,7 @@ namespace CoreBindings { cv::polarToCart(magnitude->ref(), angle->ref(), x->ref(), y->ref(), angleInDegrees->ref()); }; }; + virtual ~PolarToCart() {} }; /* Mat Core Class Methods */ @@ -52,6 +54,7 @@ namespace CoreBindings { cv::addWeighted(self->ref(), alpha->ref(), src2->ref(), beta->ref(), gamma->ref(), dst->ref(), dtype->ref()); }; }; + virtual ~AddWeighted() {} }; class MinMaxLoc : public CvClassMethodBinding { @@ -67,6 +70,7 @@ namespace CoreBindings { cv::minMaxLoc(self->ref(), minVal->ptr(), maxVal->ptr(), minLoc->ptr(), maxLoc->ptr(), mask->ref()); }; }; + virtual ~MinMaxLoc() {} }; class FindNonZero : public CvClassMethodBinding { @@ -78,6 +82,7 @@ namespace CoreBindings { cv::findNonZero(self->ref(), idx->ref()); }; }; + virtual ~FindNonZero() {} }; class CountNonZero : public CvClassMethodBinding { @@ -89,6 +94,7 @@ namespace CoreBindings { num->ref() = cv::countNonZero(self->ref()); }; }; + virtual ~CountNonZero() {} }; class Split : public CvClassMethodBinding { @@ -100,6 +106,7 @@ namespace CoreBindings { cv::split(self->ref(), mv->ref()); }; }; + virtual ~Split() {} }; class MulSpectrums : public CvClassMethodBinding { @@ -114,6 +121,7 @@ namespace CoreBindings { cv::mulSpectrums(self->ref(), mat2->ref(), dst->ref(), flags->ref(), conjB->ref()); }; }; + virtual ~MulSpectrums() {} }; class Transform : public CvClassMethodBinding { @@ -126,6 +134,7 @@ namespace CoreBindings { cv::transform(self->ref(), dst->ref(), m->ref()); }; }; + virtual ~Transform() {} }; class PerspectiveTransform : public CvClassMethodBinding { @@ -138,6 +147,7 @@ namespace CoreBindings { cv::perspectiveTransform(self->ref(), dst->ref(), m->ref()); }; }; + virtual ~PerspectiveTransform() {} }; class Sum : public CvClassMethodBinding { @@ -165,6 +175,7 @@ namespace CoreBindings { return Nan::Undefined(); } } + virtual ~Sum() {} }; class ConvertScaleAbs : public CvClassMethodBinding { @@ -178,6 +189,7 @@ namespace CoreBindings { cv::convertScaleAbs(self->ref(), dst->ref(), alpha->ref(), beta->ref()); }; }; + virtual ~ConvertScaleAbs() {} }; class Mean : public CvClassMethodBinding { @@ -190,6 +202,7 @@ namespace CoreBindings { mean->ref() = cv::mean(self->ref(), mask->ref()); }; }; + virtual ~Mean() {} }; class MeanStdDev : public CvClassMethodBinding { @@ -203,6 +216,7 @@ namespace CoreBindings { cv::meanStdDev(self->ref(), mean->ref(), stddev->ref(), mask->ref()); }; }; + virtual ~MeanStdDev() {} }; class Reduce : public CvClassMethodBinding { @@ -217,6 +231,7 @@ namespace CoreBindings { cv::reduce(self->ref(), result->ref(), dim->ref(), rtype->ref(), dtype->ref()); }; }; + virtual ~Reduce() {} }; class Min: public CvBinding { @@ -230,6 +245,7 @@ namespace CoreBindings { cv::min(src1->ref(), src2->ref(), dest->ref()); }; }; + virtual ~Min() {} }; class Max: public CvBinding { @@ -243,6 +259,7 @@ namespace CoreBindings { cv::max(src1->ref(), src2->ref(), dest->ref()); }; }; + virtual ~Max() {} }; class Eigen : public CvClassMethodBinding { @@ -254,6 +271,7 @@ namespace CoreBindings { cv::eigen(self->ref(), eigenvalues->ref()); }; }; + virtual ~Eigen() {} }; class Solve : public CvClassMethodBinding { @@ -267,6 +285,7 @@ namespace CoreBindings { cv::solve(self->ref(), mat2->ref(), dst->ref(), flags->ref()); }; }; + virtual ~Solve() {} }; class Normalize : public CvClassMethodBinding { @@ -283,6 +302,7 @@ namespace CoreBindings { cv::normalize(self->ref(), dst->ref(), alpha->ref(), beta->ref(), normType->ref(), dtype->ref(), mask->ref()); }; }; + virtual ~Normalize() {} }; class Magnitude : public CvBinding { @@ -296,6 +316,7 @@ namespace CoreBindings { cv::magnitude(x->ref(), y->ref(), magnitude->ref()); }; }; + virtual ~Magnitude() {} }; } diff --git a/cc/dnn/NetBindings.h b/cc/dnn/NetBindings.h index 8d879027c..3a63e3cb9 100644 --- a/cc/dnn/NetBindings.h +++ b/cc/dnn/NetBindings.h @@ -11,6 +11,7 @@ namespace NetBindings { SetInputWorker(cv::dnn::Net self) { this->self = self; } + virtual ~SetInputWorker() {} cv::Mat blob; std::string name = ""; @@ -40,6 +41,7 @@ namespace NetBindings { ForwardWorker(cv::dnn::Net self) { this->self = self; } + virtual ~ForwardWorker() {} std::string outputName = ""; std::vector outBlobNames; @@ -85,6 +87,7 @@ namespace NetBindings { GetLayerNamesWorker(cv::dnn::Net self) { this->self = self; } + virtual ~GetLayerNamesWorker() {} std::vector returnValue; @@ -108,6 +111,7 @@ namespace NetBindings { GetUnconnectedOutLayersWorker(cv::dnn::Net self) { this->self = self; } + virtual ~GetUnconnectedOutLayersWorker() {} std::vector layerIndexes; diff --git a/cc/dnn/dnnBindings.h b/cc/dnn/dnnBindings.h index b6d7236a1..2c3daf5d2 100644 --- a/cc/dnn/dnnBindings.h +++ b/cc/dnn/dnnBindings.h @@ -13,6 +13,7 @@ namespace DnnBindings { cv::dnn::Net net; + virtual ~ReadNetFromDarknetWorker() {} std::string executeCatchCvExceptionWorker() { net = cv::dnn::readNetFromDarknet(cfgFile, darknetModelFile); if (net.empty()) { @@ -46,6 +47,8 @@ struct ReadNetWorker: public CatchCvExceptionWorker { cv::dnn::Net net; + virtual ~ReadNetWorker() {} + std::string executeCatchCvExceptionWorker() { net = cv::dnn::readNet(model, config, framework); if (net.empty()) { @@ -87,6 +90,8 @@ struct ReadNetWorker: public CatchCvExceptionWorker { cv::dnn::Net net; + virtual ~ReadNetFromONNXWorker() {} + std::string executeCatchCvExceptionWorker() { net = cv::dnn::readNetFromONNX(onnxFile); if (net.empty()) { @@ -112,6 +117,8 @@ struct ReadNetWorker: public CatchCvExceptionWorker { cv::dnn::Net net; + virtual ~ReadNetFromTensorflowWorker() {} + std::string executeCatchCvExceptionWorker() { #if CV_VERSION_GREATER_EQUAL(3, 4, 0) net = cv::dnn::readNetFromTensorflow(modelFile, configFile); @@ -144,6 +151,8 @@ struct ReadNetWorker: public CatchCvExceptionWorker { cv::dnn::Net net; + virtual ~ReadNetFromCaffeWorker() {} + std::string executeCatchCvExceptionWorker() { net = cv::dnn::readNetFromCaffe(prototxt, modelFile); if (net.empty()) { @@ -173,6 +182,7 @@ struct ReadNetWorker: public CatchCvExceptionWorker { BlobFromImageWorker(bool isSingleImage = true) { this->isSingleImage = isSingleImage; } + virtual ~BlobFromImageWorker() {} cv::Mat image; std::vector images; @@ -254,6 +264,8 @@ struct ReadNetWorker: public CatchCvExceptionWorker { float eta = 1.0f; int top_k = 0; + virtual ~NMSBoxes() {} + std::string executeCatchCvExceptionWorker() { cv::dnn::NMSBoxes(bboxes, scores, score_threshold, nms_threshold, indices); return ""; diff --git a/cc/face/FaceRecognizerBindings.h b/cc/face/FaceRecognizerBindings.h index de8a76186..19a3b3859 100644 --- a/cc/face/FaceRecognizerBindings.h +++ b/cc/face/FaceRecognizerBindings.h @@ -35,6 +35,7 @@ namespace FaceRecognizerBindings { TrainWorker(cv::Ptr self) { this->self = self; } + virtual ~TrainWorker() {} std::vector images; std::vector labels; @@ -58,6 +59,7 @@ namespace FaceRecognizerBindings { PredictWorker(cv::Ptr self) { this->self = self; } + virtual ~PredictWorker() {} cv::Mat image; int label; diff --git a/cc/face/FacemarkBindings.h b/cc/face/FacemarkBindings.h index 7ed92c219..66593a7f8 100644 --- a/cc/face/FacemarkBindings.h +++ b/cc/face/FacemarkBindings.h @@ -11,10 +11,15 @@ namespace FacemarkBindings { struct LoadModelWorker : public CatchCvExceptionWorker { public: cv::Ptr self; - LoadModelWorker(cv::Ptr self) { this->self = self; } + LoadModelWorker(cv::Ptr self) { + this->self = self; + } + virtual ~LoadModelWorker() {} + std::string model; + std::string executeCatchCvExceptionWorker() { self->loadModel(model); return ""; @@ -28,7 +33,11 @@ namespace FacemarkBindings { struct FitWorker : public CatchCvExceptionWorker { public: cv::Ptr self; - FitWorker(cv::Ptr self) { this->self = self; } + FitWorker(cv::Ptr self) { + this->self = self; + } + virtual ~FitWorker() {} + cv::Mat image; std::vector faces; diff --git a/cc/face/FacemarkLBFParams.h b/cc/face/FacemarkLBFParams.h index e25aec8e0..d3f7555bc 100644 --- a/cc/face/FacemarkLBFParams.h +++ b/cc/face/FacemarkLBFParams.h @@ -35,7 +35,7 @@ class FacemarkLBFParams : public FF::ObjectWrap(info.This())->self.pupils; + // Nan::ObjectWrap::Unwrap(info.This())->self.pupils; v8::Local jsArr = Nan::New(2); for (uint i = 0; i < jsArr->Length(); i++) { Nan::Set(jsArr, i, FF::IntArrayConverter::wrap( diff --git a/cc/features2d/BFMatcherBindings.h b/cc/features2d/BFMatcherBindings.h index 778865ea7..1e531ff74 100644 --- a/cc/features2d/BFMatcherBindings.h +++ b/cc/features2d/BFMatcherBindings.h @@ -6,13 +6,14 @@ namespace BFMatcherBindings { -struct MatchWorker : public CatchCvExceptionWorker { + struct MatchWorker : public CatchCvExceptionWorker { public: cv::BFMatcher bfmatcher; MatchWorker(cv::BFMatcher _bfmatcher) { this->bfmatcher = _bfmatcher; } + virtual ~MatchWorker() {} cv::Mat descFrom; cv::Mat descTo; @@ -31,16 +32,17 @@ struct MatchWorker : public CatchCvExceptionWorker { v8::Local getReturnValue() { return DescriptorMatch::ArrayConverter::wrap(dmatches); } - }; + }; -struct MatchKnnWorker : public CatchCvExceptionWorker { + struct MatchKnnWorker : public CatchCvExceptionWorker { public: cv::BFMatcher bfmatcher; MatchKnnWorker(cv::BFMatcher _bfmatcher) { this->bfmatcher = _bfmatcher; } + virtual ~MatchKnnWorker() {} cv::Mat descFrom; cv::Mat descTo; @@ -61,8 +63,7 @@ struct MatchKnnWorker : public CatchCvExceptionWorker { v8::Local getReturnValue() { return DescriptorMatch::ArrayOfArraysConverter::wrap(dmatches); } -}; - + }; } #endif diff --git a/cc/features2d/FeatureDetectorBindings.h b/cc/features2d/FeatureDetectorBindings.h index beeaca16c..5167e93e3 100644 --- a/cc/features2d/FeatureDetectorBindings.h +++ b/cc/features2d/FeatureDetectorBindings.h @@ -11,7 +11,8 @@ namespace FeatureDetectorBindings { DetectWorker(cv::Ptr _det) { this->det = _det; } - + virtual ~DetectWorker() {} + cv::Mat img; cv::Mat mask; std::vector kps; @@ -42,6 +43,7 @@ namespace FeatureDetectorBindings { ComputeWorker(cv::Ptr _det) { this->det = _det; } + virtual ~ComputeWorker() {} cv::Mat img; std::vector kps; diff --git a/cc/features2d/descriptorMatching.cc b/cc/features2d/descriptorMatching.cc index 796e48f8f..cdd8a300b 100644 --- a/cc/features2d/descriptorMatching.cc +++ b/cc/features2d/descriptorMatching.cc @@ -113,6 +113,7 @@ struct DescriptorMatching::MatchWorker : public CatchCvExceptionWorker { MatchWorker(cv::Ptr _matcher) { this->matcher = _matcher; } + virtual ~MatchWorker() {} cv::Mat descFrom; cv::Mat descTo; diff --git a/cc/features2d/descriptorMatchingKnn.cc b/cc/features2d/descriptorMatchingKnn.cc index cfb30cd4c..df1c34bf5 100644 --- a/cc/features2d/descriptorMatchingKnn.cc +++ b/cc/features2d/descriptorMatchingKnn.cc @@ -113,6 +113,7 @@ struct DescriptorMatchingKnn::MatchKnnWorker : public CatchCvExceptionWorker { MatchKnnWorker(cv::Ptr _matcher) { this->matcher = _matcher; } + virtual ~MatchKnnWorker() {} cv::Mat descFrom; cv::Mat descTo; diff --git a/cc/features2d/detectors/MSERDetector.cc b/cc/features2d/detectors/MSERDetector.cc index d0879a770..c9d4b2e8f 100644 --- a/cc/features2d/detectors/MSERDetector.cc +++ b/cc/features2d/detectors/MSERDetector.cc @@ -66,6 +66,8 @@ struct DetectRegionsWorker : public CatchCvExceptionWorker { this->det = det; } + virtual ~DetectRegionsWorker() {} + cv::Mat img; std::vector> regions; std::vector mser_bbox; diff --git a/cc/img_hash/ImgHashBaseBindings.h b/cc/img_hash/ImgHashBaseBindings.h index def9cdc1a..b5cb5b723 100644 --- a/cc/img_hash/ImgHashBaseBindings.h +++ b/cc/img_hash/ImgHashBaseBindings.h @@ -28,6 +28,8 @@ namespace ImgHashBaseBindings { return (FF::UcharArrayConverter::arg(0, &hashOne, info) || FF::UcharArrayConverter::arg(1, &hashTwo, info)); } + + virtual ~CompareWorker() {} }; struct ComputeWorker : public CatchCvExceptionWorker { @@ -56,6 +58,7 @@ namespace ImgHashBaseBindings { return (FF::UcharArrayConverter::optArg(1, &outputArr, info)); } + virtual ~ComputeWorker() {} }; } diff --git a/cc/imgproc/ContourBindings.h b/cc/imgproc/ContourBindings.h index fdba377f2..20f10d615 100644 --- a/cc/imgproc/ContourBindings.h +++ b/cc/imgproc/ContourBindings.h @@ -11,6 +11,7 @@ namespace ContourBindings { ApproxPolyDPWorker(std::vector self) { this->self = self; } + virtual ~ApproxPolyDPWorker() {} double epsilon; bool closed; diff --git a/cc/imgproc/MatImgprocBindings.h b/cc/imgproc/MatImgprocBindings.h index b0ca1648c..f9a0fde4d 100644 --- a/cc/imgproc/MatImgprocBindings.h +++ b/cc/imgproc/MatImgprocBindings.h @@ -12,6 +12,7 @@ namespace MatImgprocBindings { BaseResizeWorker(cv::Mat self) { this->self = self; } + virtual ~BaseResizeWorker() {} cv::Mat dst; @@ -24,6 +25,7 @@ namespace MatImgprocBindings { public: RescaleWorker(cv::Mat self) : BaseResizeWorker(self) { } + virtual ~RescaleWorker() {} double factor; @@ -101,6 +103,7 @@ namespace MatImgprocBindings { public: ResizeToMaxWorker(cv::Mat self) : BaseResizeWorker(self) { } + virtual ~ResizeToMaxWorker() {} int maxRowsOrCols; @@ -126,6 +129,7 @@ namespace MatImgprocBindings { ThresholdWorker(cv::Mat mat) { this->mat = mat; } + virtual ~ThresholdWorker() {} double thresh; double maxVal; @@ -158,7 +162,8 @@ namespace MatImgprocBindings { AdaptiveThresholdWorker(cv::Mat mat) { this->mat = mat; } - + virtual ~AdaptiveThresholdWorker() {} + double maxVal; int adaptiveMethod; int thresholdType; @@ -194,6 +199,7 @@ namespace MatImgprocBindings { InRangeWorker(cv::Mat mat) { this->mat = mat; } + virtual ~InRangeWorker() {} double lower; double upper; @@ -235,6 +241,7 @@ namespace MatImgprocBindings { CvtColorWorker(cv::Mat self) { this->self = self; } + virtual ~CvtColorWorker() {} int code; int dstCn = 0; @@ -269,7 +276,8 @@ namespace MatImgprocBindings { BgrToGrayWorker(cv::Mat self) { this->self = self; } - + virtual ~BgrToGrayWorker() {} + int code; cv::Mat dst; @@ -292,12 +300,13 @@ namespace MatImgprocBindings { this->mat = mat; this->size = cv::Size2d(mat.cols, mat.rows); } + virtual ~WarpWorker() {} cv::Mat transformationMatrix; cv::Size2d size; int flags = cv::INTER_LINEAR; int borderMode = cv::BORDER_CONSTANT; - cv::Vec3d borderValue = cv::Vec3d(); + cv::Vec3d borderValue = cv::Vec3d(); cv::Mat warpedMat; @@ -362,6 +371,7 @@ namespace MatImgprocBindings { this->mat = mat; this->withOp = withOp; } + virtual ~MorphWorker() {} cv::Mat kernel; @@ -411,6 +421,7 @@ namespace MatImgprocBindings { struct ErodeWorker : public MorphWorker { ErodeWorker(cv::Mat mat) : MorphWorker(mat) { } + virtual ~ErodeWorker() {} std::string executeCatchCvExceptionWorker() { cv::erode(mat, resultMat, kernel, anchor, iterations, borderType, cv::morphologyDefaultBorderValue()); @@ -421,6 +432,7 @@ namespace MatImgprocBindings { struct DilateWorker : public MorphWorker { DilateWorker(cv::Mat mat) : MorphWorker(mat) { } + virtual ~DilateWorker() {} std::string executeCatchCvExceptionWorker() { cv::dilate(mat, resultMat, kernel, anchor, iterations, borderType, cv::morphologyDefaultBorderValue()); @@ -432,6 +444,7 @@ namespace MatImgprocBindings { public: MorphologyExWorker(cv::Mat mat) : MorphWorker(mat, true) { } + virtual ~MorphologyExWorker() {} std::string executeCatchCvExceptionWorker() { cv::morphologyEx(mat, resultMat, op, kernel, anchor, iterations, borderType, cv::morphologyDefaultBorderValue()); @@ -445,7 +458,8 @@ namespace MatImgprocBindings { DistanceTransformWorker(cv::Mat self) { this->self = self; } - + virtual ~DistanceTransformWorker() {} + int distanceType; int maskSize; int dstType = CV_32F; @@ -478,6 +492,7 @@ namespace MatImgprocBindings { struct DistanceTransformWithLabelsWorker : public DistanceTransformWorker { DistanceTransformWithLabelsWorker(cv::Mat self) : DistanceTransformWorker(self) { } + virtual ~DistanceTransformWithLabelsWorker() {} int labelType = cv::DIST_LABEL_CCOMP; cv::Mat labels; @@ -507,7 +522,8 @@ namespace MatImgprocBindings { ConnectedComponentsWorker(cv::Mat self) { this->self = self; } - + virtual ~ConnectedComponentsWorker() {} + int connectivity = 8; int ltype = CV_32S; @@ -561,6 +577,7 @@ namespace MatImgprocBindings { Nan::Set(ret, Nan::New("centroids").ToLocalChecked(), Mat::Converter::wrap(centroids)); return ret; } + virtual ~ConnectedComponentsWithStatsWorker() {} }; struct GrabCutWorker : public CatchCvExceptionWorker { @@ -576,8 +593,7 @@ namespace MatImgprocBindings { cv::Mat fgdModel; int iterCount; int mode = cv::GC_EVAL; - - + std::string executeCatchCvExceptionWorker() { cv::grabCut(self, mask, rect, bgdModel, fgdModel, iterCount, mode); return ""; @@ -602,6 +618,7 @@ namespace MatImgprocBindings { FF::IntConverter::optArg(5, &mode, info) ); } + virtual ~GrabCutWorker() {} }; struct WatershedWorker : public CatchCvExceptionWorker { @@ -627,6 +644,7 @@ namespace MatImgprocBindings { Mat::Converter::arg(0, &markers, info) ); } + virtual ~WatershedWorker() {} }; struct MomentsWorker : public CatchCvExceptionWorker { @@ -654,6 +672,7 @@ namespace MatImgprocBindings { FF::BoolConverter::optArg(0, &binaryImage, info) ); } + virtual ~MomentsWorker() {} }; struct FindContoursWorker : public CatchCvExceptionWorker { @@ -699,6 +718,7 @@ namespace MatImgprocBindings { Point2::Converter::optArg(2, &offset, info) ); } + virtual ~FindContoursWorker() {} }; struct DrawWorker : public CatchCvExceptionWorker { @@ -748,6 +768,7 @@ namespace MatImgprocBindings { FF::IntConverter::optProp(&shift, "shift", opts) ); } + virtual ~DrawWorker() {} }; struct DrawLineWorker : public DrawWorker { @@ -772,6 +793,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 2; } + virtual ~DrawLineWorker() {} }; struct DrawArrowedLineWorker : public DrawWorker { @@ -811,6 +833,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 2; } + virtual ~DrawArrowedLineWorker() {} }; struct DrawRectangleWorker : public DrawWorker { @@ -849,6 +872,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return isArgRect ? 1 : 2; } + virtual ~DrawRectangleWorker() {} }; struct DrawCircleWorker : public DrawWorker { @@ -873,6 +897,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 2; } + virtual ~DrawCircleWorker() {} }; struct DrawEllipseWorker : public DrawWorker { @@ -917,6 +942,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return isArgBox ? 1 : 5; } + virtual ~DrawEllipseWorker() {} }; struct DrawPolylinesWorker : public DrawWorker { @@ -941,6 +967,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 2; } + virtual ~DrawPolylinesWorker() {} }; struct DrawFillPolyWorker : public DrawWorker { @@ -978,6 +1005,7 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 1; } + virtual ~DrawFillPolyWorker() {} }; struct DrawFillConvexPolyWorker : public DrawWorker { @@ -1000,11 +1028,13 @@ namespace MatImgprocBindings { int getDrawParamsIndex() { return 1; } + virtual ~DrawFillConvexPolyWorker() {} }; struct PutTextWorker : public DrawWorker { PutTextWorker(cv::Mat self) : DrawWorker(self) { } + virtual ~PutTextWorker() {} std::string text; cv::Point2d org; @@ -1052,6 +1082,7 @@ namespace MatImgprocBindings { MatchTemplateWorker(cv::Mat mat) { this->mat = mat; } + virtual ~MatchTemplateWorker() {} cv::Mat templ; int method; @@ -1087,6 +1118,7 @@ namespace MatImgprocBindings { CannyWorker(cv::Mat mat) { this->mat = mat; } + virtual ~CannyWorker() {} double threshold1; double threshold2; @@ -1140,6 +1172,7 @@ namespace MatImgprocBindings { this->mat = mat; this->hasKsize = hasKsize; } + virtual ~SobelScharrWorker() {} int ddepth; int dx; @@ -1191,6 +1224,7 @@ namespace MatImgprocBindings { struct SobelWorker : SobelScharrWorker { SobelWorker(cv::Mat mat, bool hasKsize) : SobelScharrWorker(mat, hasKsize) { } + virtual ~SobelWorker() {} std::string executeCatchCvExceptionWorker() { cv::Sobel(mat, resultMat, ddepth, dx, dy, ksize, scale, delta, borderType); @@ -1201,6 +1235,7 @@ namespace MatImgprocBindings { struct ScharrWorker : SobelScharrWorker { ScharrWorker(cv::Mat mat, bool hasKsize) : SobelScharrWorker(mat, hasKsize) { } + virtual ~ScharrWorker() {} std::string executeCatchCvExceptionWorker() { cv::Scharr(mat, resultMat, ddepth, dx, dy, scale, delta, borderType); @@ -1215,6 +1250,7 @@ namespace MatImgprocBindings { LaplacianWorker(cv::Mat mat) { this->mat = mat; } + virtual ~LaplacianWorker() {} int ddepth; int ksize = 1; @@ -1270,6 +1306,7 @@ namespace MatImgprocBindings { this->mat = mat; this->isUp = isUp; } + virtual ~PyrWorker() {} cv::Size2d size = cv::Size2d(); int borderType = cv::BORDER_DEFAULT; @@ -1321,6 +1358,7 @@ namespace MatImgprocBindings { BuildPyramidWorker(cv::Mat mat) { this->mat = mat; } + virtual ~BuildPyramidWorker() {} int maxlevel; int borderType = cv::BORDER_DEFAULT; @@ -1352,6 +1390,7 @@ namespace MatImgprocBindings { HoughLinesWorker(cv::Mat mat) { this->mat = mat; } + virtual ~HoughLinesWorker() {} double rho; double theta; @@ -1408,6 +1447,7 @@ namespace MatImgprocBindings { public: HoughLinesPWorker(cv::Mat mat) : HoughLinesWorker(mat) { } + virtual ~HoughLinesPWorker() {} double minLineLength = 0; double maxLineGap = 0; @@ -1450,6 +1490,7 @@ namespace MatImgprocBindings { HoughCirclesWorker(cv::Mat mat) { this->mat = mat; } + virtual ~HoughCirclesWorker() {} int method; double dp; @@ -1508,6 +1549,7 @@ namespace MatImgprocBindings { EqualizeHistWorker(cv::Mat self) { this->self = self; } + virtual ~EqualizeHistWorker() {} cv::Mat dst; @@ -1527,6 +1569,7 @@ namespace MatImgprocBindings { CompareHistWorker(cv::Mat self) { this->self = self; } + virtual ~CompareHistWorker() {} cv::Mat H2; int method; @@ -1556,6 +1599,7 @@ namespace MatImgprocBindings { FloodFillWorker(cv::Mat self) { this->self = self; } + virtual ~FloodFillWorker() {} cv::Point2d seedPoint; double newVal1 = 0; @@ -1636,6 +1680,7 @@ namespace MatImgprocBindings { BilateralFilterWorker(cv::Mat self) { this->self = self; } + virtual ~BilateralFilterWorker() {} int d; double sigmaColor; @@ -1674,6 +1719,7 @@ namespace MatImgprocBindings { BoxFilterWorker(cv::Mat self) { this->self = self; } + virtual ~BoxFilterWorker() {} int ddepth; cv::Size2d ksize; @@ -1725,6 +1771,7 @@ namespace MatImgprocBindings { public: SqrBoxFilterWorker(cv::Mat self) : BoxFilterWorker(self) { } + virtual ~SqrBoxFilterWorker() {} std::string executeCatchCvExceptionWorker() { cv::sqrBoxFilter(self, dst, ddepth, ksize, anchor, normalize, borderType); @@ -1738,6 +1785,7 @@ namespace MatImgprocBindings { Filter2DWorker(cv::Mat self) { this->self = self; } + virtual ~Filter2DWorker() {} int ddepth; cv::Mat kernel; @@ -1791,6 +1839,7 @@ namespace MatImgprocBindings { SepFilter2DWorker(cv::Mat self) { this->self = self; } + virtual ~SepFilter2DWorker() {} int ddepth; cv::Mat kernelX; @@ -1846,6 +1895,7 @@ namespace MatImgprocBindings { CornerHarrisWorker(cv::Mat self) { this->self = self; } + virtual ~CornerHarrisWorker() {} int blockSize; int ksize; @@ -1884,6 +1934,7 @@ namespace MatImgprocBindings { CornerSubPixWorker(cv::Mat self) { this->self = self; } + virtual ~CornerSubPixWorker() {} std::vector corners; cv::Size2d winSize; @@ -1916,7 +1967,8 @@ namespace MatImgprocBindings { BaseCornerEigenValWorker(cv::Mat self) { this->self = self; } - + virtual ~BaseCornerEigenValWorker() {} + int blockSize; int ksize = 3; int borderType = cv::BORDER_DEFAULT; @@ -1956,8 +2008,9 @@ namespace MatImgprocBindings { struct CornerMinEigenValWorker : public BaseCornerEigenValWorker { public: CornerMinEigenValWorker(cv::Mat self) : BaseCornerEigenValWorker(self) { - } - + } + virtual ~CornerMinEigenValWorker() {} + std::string executeCatchCvExceptionWorker() { cv::cornerMinEigenVal(self, dst, blockSize, ksize, borderType); return ""; @@ -1968,6 +2021,7 @@ namespace MatImgprocBindings { public: CornerEigenValsAndVecsWorker(cv::Mat self) : BaseCornerEigenValWorker(self) { } + virtual ~CornerEigenValsAndVecsWorker() {} std::string executeCatchCvExceptionWorker() { cv::cornerEigenValsAndVecs(self, dst, blockSize, ksize, borderType); @@ -1981,6 +2035,7 @@ namespace MatImgprocBindings { IntegralWorker(cv::Mat self) { this->self = self; } + virtual ~IntegralWorker() {} int sdepth = -1; int sqdepth = -1; @@ -2028,6 +2083,7 @@ namespace MatImgprocBindings { DrawContoursWorker(cv::Mat self) { this->self = self; } + virtual ~DrawContoursWorker() {} std::vector> contours; int contourIdx; @@ -2095,6 +2151,7 @@ namespace MatImgprocBindings { cv::undistort(self, undistortedMat->ref(), cameraMatrix->ref(), distCoeffs->ref()); }; }; + virtual ~Undistort() {} }; #endif } diff --git a/cc/imgproc/imgprocBindings.h b/cc/imgproc/imgprocBindings.h index 5f5aa267d..3bc187e5c 100644 --- a/cc/imgproc/imgprocBindings.h +++ b/cc/imgproc/imgprocBindings.h @@ -37,6 +37,7 @@ namespace ImgprocBindings { FF::IntConverter::arg(3, &thickness, info) ); } + virtual ~GetTextSizeWorker() {} }; #if CV_VERSION_GREATER_EQUAL(3, 2, 0) @@ -74,6 +75,7 @@ namespace ImgprocBindings { FF::BoolConverter::optArg(4, &L2gradient, info) ); } + virtual ~CannyWorker() {} }; #endif @@ -85,6 +87,8 @@ namespace ImgprocBindings { int colormap; bool useUserColor = 0; + virtual ~ApplyColorMapWorker() {} + bool unwrapRequiredArgs(Nan::NAN_METHOD_ARGS_TYPE info) { #if CV_VERSION_GREATER_EQUAL(3, 3, 0) if (info[1]->IsNumber()) { @@ -122,6 +126,7 @@ namespace ImgprocBindings { // since 4.0.0 cv::undistortPoints has been moved from imgproc to calib3d class UndistortPoints : public CvBinding { public: + virtual ~UndistortPoints() {} void setup() { auto srcPoints = req>(); auto cameraMatrix = req(); @@ -137,6 +142,7 @@ namespace ImgprocBindings { class GoodFeaturesToTrack : public CvClassMethodBinding { public: + virtual ~GoodFeaturesToTrack() {} void createBinding(std::shared_ptr> self) { auto maxCorners = req(); auto qualityLevel = req(); @@ -162,6 +168,7 @@ namespace ImgprocBindings { class Blur : public CvClassMethodBinding { public: + virtual ~Blur() {} void createBinding(std::shared_ptr> self) { auto kSize = req(); auto anchor = opt("anchor", cv::Point2d()); @@ -180,6 +187,7 @@ namespace ImgprocBindings { class GaussianBlur : public CvClassMethodBinding { public: + virtual ~GaussianBlur() {} void createBinding(std::shared_ptr> self) { auto kSize = req(); auto sigmaX = req(); @@ -195,6 +203,7 @@ namespace ImgprocBindings { class MedianBlur : public CvClassMethodBinding { public: + virtual ~MedianBlur() {} void createBinding(std::shared_ptr> self) { auto kSize = req(); auto blurMat = ret("blurMat"); @@ -207,7 +216,8 @@ namespace ImgprocBindings { class Accumulate : public CvBinding { public: - void setup() { + virtual ~Accumulate() {} + void setup() { auto src = req(); auto dst = req(); auto mask = opt("mask", cv::noArray().getMat()); @@ -222,6 +232,7 @@ namespace ImgprocBindings { class AccumulateProduct : public CvBinding { public: + virtual ~AccumulateProduct() {} void setup() { auto src1 = req(); auto src2 = req(); @@ -239,6 +250,7 @@ namespace ImgprocBindings { class AccumulateSquare : public CvBinding { public: + virtual ~AccumulateSquare() {} void setup() { auto src = req(); auto dst = req(); @@ -255,6 +267,7 @@ namespace ImgprocBindings { class AccumulateWeighted : public CvBinding { public: + virtual ~AccumulateWeighted() {} void setup() { auto src = req(); auto dst = req(); @@ -272,6 +285,7 @@ namespace ImgprocBindings { class CalcHist : public CvBinding { public: + virtual ~CalcHist() {} void setup() { auto src = req(); diff --git a/cc/io/VideoCaptureBindings.h b/cc/io/VideoCaptureBindings.h index b03ba6763..5d391ec43 100644 --- a/cc/io/VideoCaptureBindings.h +++ b/cc/io/VideoCaptureBindings.h @@ -11,7 +11,8 @@ namespace VideoCaptureBindings { GetWorker(cv::VideoCapture self) { this->self = self; } - int prop; + virtual ~GetWorker() {} + int prop; double val; bool unwrapRequiredArgs(Nan::NAN_METHOD_ARGS_TYPE info) { @@ -36,6 +37,7 @@ namespace VideoCaptureBindings { ReadWorker(cv::VideoCapture self) { this->self = self; } + virtual ~ReadWorker() {} cv::Mat frame; std::string executeCatchCvExceptionWorker() { @@ -54,6 +56,7 @@ namespace VideoCaptureBindings { SetWorker(cv::VideoCapture self) { this->self = self; } + virtual ~SetWorker() {} // required fn args int prop; diff --git a/cc/io/VideoWriterBindings.h b/cc/io/VideoWriterBindings.h index 2617d5c01..e056906ef 100644 --- a/cc/io/VideoWriterBindings.h +++ b/cc/io/VideoWriterBindings.h @@ -37,6 +37,7 @@ namespace VideoWriterBindings { GetWorker(cv::VideoWriter self) { this->self = self; } + virtual ~GetWorker() {} int prop; double val; @@ -62,6 +63,7 @@ namespace VideoWriterBindings { SetWorker(cv::VideoWriter self) { this->self = self; } + virtual ~SetWorker() {} // required fn args int prop; @@ -91,6 +93,8 @@ namespace VideoWriterBindings { int code; + virtual ~FourccWorker() {} + std::string executeCatchCvExceptionWorker() { code = cv::VideoWriter::fourcc(fourcc.at(0), fourcc.at(1), fourcc.at(2), fourcc.at(3)); return ""; @@ -111,6 +115,7 @@ namespace VideoWriterBindings { WriteWorker(cv::VideoWriter writer) { this->writer = writer; } + virtual ~WriteWorker() {} cv::Mat frame; diff --git a/cc/io/ioBindings.h b/cc/io/ioBindings.h index 183a1b99c..d4959af8b 100644 --- a/cc/io/ioBindings.h +++ b/cc/io/ioBindings.h @@ -11,6 +11,8 @@ namespace IoBindings { int flags = cv::IMREAD_COLOR; cv::Mat img; + virtual ~ImreadWorker() {} + std::string executeCatchCvExceptionWorker() { img = cv::imread(path, flags); if (img.rows == 0 && img.cols == 0) { @@ -37,6 +39,7 @@ namespace IoBindings { std::string path; cv::Mat img; std::vector flags; + virtual ~ImwriteWorker() {} std::string executeCatchCvExceptionWorker() { cv::imwrite(path, img); @@ -61,6 +64,8 @@ namespace IoBindings { char *data; size_t dataSize; + virtual ~ImencodeWorker() {} + std::string executeCatchCvExceptionWorker() { std::vector dataVec; cv::imencode(ext, img, dataVec, flags); @@ -93,6 +98,8 @@ namespace IoBindings { char *data; size_t dataSize; + virtual ~ImdecodeWorker() {} + std::string executeCatchCvExceptionWorker() { std::vector vec(dataSize); memcpy(vec.data(), data, dataSize); diff --git a/cc/machinelearning/SVMBindings.h b/cc/machinelearning/SVMBindings.h index 673f2db0e..5b2938c60 100644 --- a/cc/machinelearning/SVMBindings.h +++ b/cc/machinelearning/SVMBindings.h @@ -9,6 +9,8 @@ namespace SVMBindings { public: cv::Ptr svm; + virtual ~TrainFromTrainDataWorker() {} + TrainFromTrainDataWorker(cv::Ptr svm) { this->svm = svm; } @@ -39,7 +41,9 @@ namespace SVMBindings { struct TrainFromMatWorker : CatchCvExceptionWorker { public: cv::Ptr svm; - + + virtual ~TrainFromMatWorker() {} + TrainFromMatWorker(cv::Ptr svm) { this->svm = svm; } @@ -72,6 +76,8 @@ namespace SVMBindings { public: cv::Ptr svm; + virtual ~TrainAutoWorker() {} + TrainAutoWorker(cv::Ptr svm) { this->svm = svm; } diff --git a/cc/native-node-utils/AbstractConverter.h b/cc/native-node-utils/AbstractConverter.h index bbf785ea7..2b0f17a6a 100644 --- a/cc/native-node-utils/AbstractConverter.h +++ b/cc/native-node-utils/AbstractConverter.h @@ -3,6 +3,19 @@ #ifndef __FF_ABSTRACT_CONVERTER_H__ #define __FF_ABSTRACT_CONVERTER_H__ +/** + * @brief used by + * - IntConverter, + * - UintConverter, + * - LongConverter, + * - UlongConverter, + * - CharConverter, + * - UcharConverter, + * - BoolConverter, + * - DoubleConverter, + * - FloatConverter, + * - StringConverter + */ namespace FF { /* @@ -85,7 +98,7 @@ namespace FF { } static bool prop(Type* val, const char* prop, v8::Local opts) { - if (!Nan::HasOwnProperty(opts, Nan::New(prop).ToLocalChecked()).FromJust()) { + if (!FF::hasOwnProperty(opts, prop)) { Nan::ThrowError(FF::newString( std::string("expected object to have property: ") + std::string(prop) @@ -99,7 +112,7 @@ namespace FF { static bool optProp(Type* val, const char* prop, v8::Local opts) { Nan::TryCatch tryCatch; if ( - Nan::HasOwnProperty(opts, Nan::New(prop).ToLocalChecked()).FromJust() + FF::hasOwnProperty(opts, prop) && ConverterImpl::unwrap(val, Nan::Get(opts, Nan::New(prop).ToLocalChecked()).ToLocalChecked()) ) { if (tryCatch.HasCaught()) { diff --git a/cc/native-node-utils/Binding.h b/cc/native-node-utils/Binding.h index 8d14d3bf2..439d17d6a 100644 --- a/cc/native-node-utils/Binding.h +++ b/cc/native-node-utils/Binding.h @@ -6,8 +6,7 @@ #define __FF_BINDING_H__ namespace FF { - - static void executeSyncBinding(std::shared_ptr worker, std::string methodName, Nan::NAN_METHOD_ARGS_TYPE info) { + static inline void executeSyncBinding(std::shared_ptr worker, std::string methodName, Nan::NAN_METHOD_ARGS_TYPE info) { FF::TryCatch tryCatch(methodName); if (worker->applyUnwrappers(info)) { return tryCatch.reThrow(); @@ -22,7 +21,7 @@ namespace FF { info.GetReturnValue().Set(worker->getReturnValue(info)); } - static void executeAsyncBinding(std::shared_ptr worker, std::string methodName, Nan::NAN_METHOD_ARGS_TYPE info) { + static inline void executeAsyncBinding(std::shared_ptr worker, std::string methodName, Nan::NAN_METHOD_ARGS_TYPE info) { FF::TryCatch tryCatch(methodName); if (!hasArg(info, info.Length() - 1) || !info[info.Length() - 1]->IsFunction()) { tryCatch.throwError("callback function required"); diff --git a/cc/native-node-utils/BindingBase.h b/cc/native-node-utils/BindingBase.h index 7bd6c6963..d7df672b4 100644 --- a/cc/native-node-utils/BindingBase.h +++ b/cc/native-node-utils/BindingBase.h @@ -34,6 +34,7 @@ namespace FF { T* ptr() { return &val; } + virtual ~Value() {} private: T val; }; @@ -54,6 +55,8 @@ namespace FF { return name; } + virtual ~NamedValue() {} + private: std::string name; }; @@ -68,6 +71,8 @@ namespace FF { bool unwrapArg(int argN, Nan::NAN_METHOD_ARGS_TYPE info) { return Converter::arg(argN, super::super::ptr(), info); } + + virtual ~Arg() {}; }; template @@ -89,6 +94,8 @@ namespace FF { bool assertType(v8::Local jsVal) { return Converter::assertType(jsVal); } + + virtual ~OptArg() {} }; class BindingBase { diff --git a/cc/objdetect/CascadeClassifierBindings.h b/cc/objdetect/CascadeClassifierBindings.h index 22fb867f3..aeb549371 100644 --- a/cc/objdetect/CascadeClassifierBindings.h +++ b/cc/objdetect/CascadeClassifierBindings.h @@ -22,7 +22,8 @@ namespace CascadeClassifierBindings { public: cv::CascadeClassifier classifier; bool isGpu; - + virtual ~DetectMultiScaleWorker() {} + DetectMultiScaleWorker(cv::CascadeClassifier classifier, bool isGpu = false) { this->classifier = classifier; this->isGpu = isGpu; diff --git a/cc/objdetect/HOGDescriptor.h b/cc/objdetect/HOGDescriptor.h index 9bcfa55f4..d6f2ac27d 100644 --- a/cc/objdetect/HOGDescriptor.h +++ b/cc/objdetect/HOGDescriptor.h @@ -82,6 +82,7 @@ class HOGDescriptor : public FF::ObjectWrap("winSize", cv::Size2d(64, 128)); auto blockSize = opt("blockSize", cv::Size2d(16, 16)); diff --git a/cc/objdetect/HOGDescriptorBindings.h b/cc/objdetect/HOGDescriptorBindings.h index 3b452580b..aebaaf974 100644 --- a/cc/objdetect/HOGDescriptorBindings.h +++ b/cc/objdetect/HOGDescriptorBindings.h @@ -12,6 +12,7 @@ namespace HOGDescriptorBindings { ComputeWorker( std::shared_ptr hog) { this->hog = hog; } + virtual ~ComputeWorker() {} cv::Mat img; cv::Size2d winStride; @@ -62,6 +63,7 @@ namespace HOGDescriptorBindings { ComputeGradientWorker(std::shared_ptr self) { this->self = self; } + virtual ~ComputeGradientWorker() {} cv::Mat img; cv::Size2d paddingTL = cv::Size2d(); @@ -114,6 +116,7 @@ namespace HOGDescriptorBindings { DetectWorker(std::shared_ptr self) { this->self = self; } + virtual ~DetectWorker() {} cv::Mat img; double hitThreshold = 0; @@ -172,6 +175,7 @@ namespace HOGDescriptorBindings { DetectROIWorker(std::shared_ptr self) { this->self = self; } + virtual ~DetectROIWorker() {} cv::Mat img; std::vector locations; @@ -229,6 +233,7 @@ namespace HOGDescriptorBindings { DetectMultiScaleWorker(std::shared_ptr self) { this->self = self; } + virtual ~DetectMultiScaleWorker() {} cv::Mat img; double hitThreshold = 0; @@ -294,6 +299,7 @@ namespace HOGDescriptorBindings { DetectMultiScaleROIWorker(std::shared_ptr self) { this->self = self; } + virtual ~DetectMultiScaleROIWorker() {} cv::Mat img; std::vector locations; @@ -344,6 +350,7 @@ namespace HOGDescriptorBindings { GroupRectanglesWorker(std::shared_ptr self) { this->self = self; } + virtual ~GroupRectanglesWorker() {} std::vector rectList; std::vector weights; diff --git a/cc/photo/photoBindings.h b/cc/photo/photoBindings.h index 92c6a08c5..445f463f0 100644 --- a/cc/photo/photoBindings.h +++ b/cc/photo/photoBindings.h @@ -16,6 +16,8 @@ namespace PhotoBindings { cv::Mat returnValue; + virtual ~FastNlMeansDenoisingColoredWorker() {} + std::string executeCatchCvExceptionWorker() { cv::fastNlMeansDenoisingColored(src, returnValue, h, hColor, templateWindowSize, searchWindowSize); return ""; @@ -65,6 +67,8 @@ namespace PhotoBindings { // function return value cv::Mat dst; + + virtual ~InpaintWorker() {} bool unwrapRequiredArgs(Nan::NAN_METHOD_ARGS_TYPE info) { return ( @@ -90,6 +94,7 @@ namespace PhotoBindings { class SeamlessClone : public CvClassMethodBinding { public: + virtual ~SeamlessClone() {} void createBinding(std::shared_ptr> self) { auto dst = req(); auto mask = req(); diff --git a/cc/text/OCRHMMClassifierBindings.h b/cc/text/OCRHMMClassifierBindings.h index ff8b8a21e..d2b4b7edd 100644 --- a/cc/text/OCRHMMClassifierBindings.h +++ b/cc/text/OCRHMMClassifierBindings.h @@ -12,6 +12,8 @@ namespace OCRHMMClassifierBindings { EvalWorker(cv::Ptr classifier) { this->classifier = classifier; } + + virtual ~EvalWorker() {} cv::Mat img; std::vector clazz; @@ -34,7 +36,6 @@ namespace OCRHMMClassifierBindings { return Mat::Converter::arg(0, &img, info); } }; - } diff --git a/cc/text/OCRHMMDecoderBindings.h b/cc/text/OCRHMMDecoderBindings.h index f328226cc..26e3f1c5c 100644 --- a/cc/text/OCRHMMDecoderBindings.h +++ b/cc/text/OCRHMMDecoderBindings.h @@ -36,6 +36,7 @@ namespace OCRHMMDecoderBindings { BaseRunWorker(cv::Ptr decoder) { this->decoder = decoder; } + virtual ~BaseRunWorker() {} cv::Mat img; int min_confidence; @@ -49,6 +50,7 @@ namespace OCRHMMDecoderBindings { public: RunWorker(cv::Ptr decoder) : BaseRunWorker(decoder) { } + virtual ~RunWorker() {} std::string executeCatchCvExceptionWorker() { #if CV_VERSION_GREATER_EQUAL(3, 1, 0) diff --git a/cc/text/textBindings.h b/cc/text/textBindings.h index f831984ad..3d1b606b0 100644 --- a/cc/text/textBindings.h +++ b/cc/text/textBindings.h @@ -20,6 +20,7 @@ namespace TextBindings { }; struct LoadOCRHMMClassifierNMWorker : public LoadOCRHMMClassifierWorker { + virtual ~LoadOCRHMMClassifierNMWorker() {} std::string executeCatchCvExceptionWorker() { classifier = cv::text::loadOCRHMMClassifierNM(file); return ""; @@ -30,6 +31,7 @@ namespace TextBindings { #if CV_VERSION_GREATER_EQUAL(3, 1, 0) struct LoadOCRHMMClassifierCNNWorker : public LoadOCRHMMClassifierWorker { + virtual ~LoadOCRHMMClassifierCNNWorker() {} std::string executeCatchCvExceptionWorker() { classifier = cv::text::loadOCRHMMClassifierCNN(file); return ""; @@ -43,6 +45,8 @@ namespace TextBindings { cv::Mat transition_probabilities_table; + virtual ~CreateOCRHMMTransitionsTableWorker() {} + std::string executeCatchCvExceptionWorker() { cv::text::createOCRHMMTransitionsTable(vocabulary, lexicon, transition_probabilities_table); return ""; diff --git a/cc/xfeatures2d/SIFTDetector.h b/cc/xfeatures2d/SIFTDetector.h index b9a4dee2a..d19903047 100644 --- a/cc/xfeatures2d/SIFTDetector.h +++ b/cc/xfeatures2d/SIFTDetector.h @@ -72,6 +72,7 @@ class SIFTDetector : public FeatureDetector, public FF::ObjectWrapTemplatesigma = sigma->ref(); }; }; + virtual ~Constructor() {} }; }; diff --git a/cc/xfeatures2d/SURFDetector.h b/cc/xfeatures2d/SURFDetector.h index de9b34939..193d94142 100644 --- a/cc/xfeatures2d/SURFDetector.h +++ b/cc/xfeatures2d/SURFDetector.h @@ -6,7 +6,7 @@ #ifndef __FF_SURFDETECTOR_H__ #define __FF_SURFDETECTOR_H__ -class SURFDetector : public FeatureDetector, public FF::ObjectWrapTemplate> { +class SURFDetector final : public FeatureDetector, public FF::ObjectWrapTemplate> { public: static Nan::Persistent constructor; @@ -50,6 +50,7 @@ class SURFDetector : public FeatureDetector, public FF::ObjectWrapTemplateself = self; } + virtual ~GuidedFilterWorker() {} cv::Mat guide; int radius; diff --git a/examples/package.json b/examples/package.json index df7ea4996..714ce6167 100644 --- a/examples/package.json +++ b/examples/package.json @@ -9,7 +9,7 @@ "author": "", "license": "MIT", "dependencies": { - "@types/lodash.samplesize": "^4.2.7", + "@types/lodash.samplesize": "^4.2.9", "@u4/opencv4nodejs": "link:..", "axios": "^1.2.2", "lodash.samplesize": "^4.2.0", @@ -19,10 +19,11 @@ "progress": "^2.0.3" }, "devDependencies": { - "@types/node": "^18.11.18", - "@types/progress": "^2.0.5", + "@types/mri": "^1.2.0", + "@types/node": "^20.12.7", + "@types/progress": "^2.0.7", "rimraf": "^4.4.0", - "ts-node": "^10.9.1", - "typescript": "^4.9.4" + "ts-node": "^10.9.2", + "typescript": "^5.4.5" } } \ No newline at end of file diff --git a/examples/pnpm-lock.yaml b/examples/pnpm-lock.yaml index 78a6989aa..cfb841a02 100644 --- a/examples/pnpm-lock.yaml +++ b/examples/pnpm-lock.yaml @@ -1,138 +1,145 @@ -lockfileVersion: 5.4 - -specifiers: - '@types/lodash.samplesize': ^4.2.7 - '@types/node': ^18.11.18 - '@types/progress': ^2.0.5 - '@types/rimraf': ^3.0.2 - '@u4/opencv4nodejs': link:.. - axios: ^1.2.2 - lodash.samplesize: ^4.2.0 - mri: ^1.2.0 - p-limit: 3.1.0 - picocolors: ^1.0.0 - progress: ^2.0.3 - rimraf: ^3.0.2 - ts-node: ^10.9.1 - typescript: ^4.9.4 +lockfileVersion: '6.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false dependencies: - '@types/lodash.samplesize': 4.2.7 - '@u4/opencv4nodejs': link:.. - axios: 1.2.2 - lodash.samplesize: 4.2.0 - mri: 1.2.0 - p-limit: 3.1.0 - picocolors: 1.0.0 - progress: 2.0.3 + '@types/lodash.samplesize': + specifier: ^4.2.9 + version: 4.2.9 + '@u4/opencv4nodejs': + specifier: link:.. + version: link:.. + axios: + specifier: ^1.2.2 + version: 1.2.2 + lodash.samplesize: + specifier: ^4.2.0 + version: 4.2.0 + mri: + specifier: ^1.2.0 + version: 1.2.0 + p-limit: + specifier: 3.1.0 + version: 3.1.0 + picocolors: + specifier: ^1.0.0 + version: 1.0.0 + progress: + specifier: ^2.0.3 + version: 2.0.3 devDependencies: - '@types/node': 18.11.18 - '@types/progress': 2.0.5 - '@types/rimraf': 3.0.2 - rimraf: 3.0.2 - ts-node: 10.9.1_awa2wsr5thmg3i7jqycphctjfq - typescript: 4.9.4 + '@types/mri': + specifier: ^1.2.0 + version: 1.2.0 + '@types/node': + specifier: ^20.12.7 + version: 20.12.7 + '@types/progress': + specifier: ^2.0.7 + version: 2.0.7 + rimraf: + specifier: ^4.4.0 + version: 4.4.1 + ts-node: + specifier: ^10.9.2 + version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) + typescript: + specifier: ^5.4.5 + version: 5.4.5 packages: - /@cspotcode/source-map-support/0.8.1: + /@cspotcode/source-map-support@0.8.1: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@jridgewell/resolve-uri/3.1.0: + /@jridgewell/resolve-uri@3.1.0: resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} dev: true - /@jridgewell/sourcemap-codec/1.4.14: + /@jridgewell/sourcemap-codec@1.4.14: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true - /@jridgewell/trace-mapping/0.3.9: + /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: '@jridgewell/resolve-uri': 3.1.0 '@jridgewell/sourcemap-codec': 1.4.14 dev: true - /@tsconfig/node10/1.0.9: + /@tsconfig/node10@1.0.9: resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} dev: true - /@tsconfig/node12/1.0.11: + /@tsconfig/node12@1.0.11: resolution: {integrity: sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==} dev: true - /@tsconfig/node14/1.0.3: + /@tsconfig/node14@1.0.3: resolution: {integrity: sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==} dev: true - /@tsconfig/node16/1.0.3: + /@tsconfig/node16@1.0.3: resolution: {integrity: sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==} dev: true - /@types/glob/8.0.0: - resolution: {integrity: sha512-l6NQsDDyQUVeoTynNpC9uRvCUint/gSUXQA2euwmTuWGvPY5LSDUu6tkCtJB2SvGQlJQzLaKqcGZP4//7EDveA==} - dependencies: - '@types/minimatch': 5.1.2 - '@types/node': 18.11.18 - dev: true - - /@types/lodash.samplesize/4.2.7: - resolution: {integrity: sha512-l4nPeq7tew/T/4zKvVvjR0r4XyDaeTGGSGrdXsjH64LbWsosZBo9/zGpAIBjAH2nKZwZ8fHZ5alhaIZu5LLwmg==} + /@types/lodash.samplesize@4.2.9: + resolution: {integrity: sha512-z193XZXQsZ7nUlj6hai6kCDulX9/XDNdCC6XJvGI1cgWcdyo7iNGPxZjSaH/fDG273uo8xjP+c/tMslQvyu8Sg==} dependencies: '@types/lodash': 4.14.191 dev: false - /@types/lodash/4.14.191: + /@types/lodash@4.14.191: resolution: {integrity: sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ==} dev: false - /@types/minimatch/5.1.2: - resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==} - dev: true - - /@types/node/18.11.18: - resolution: {integrity: sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==} + /@types/mri@1.2.0: + resolution: {integrity: sha512-G4+QT8Plq6q1UnOX6JgtLrEU/4QXF/Z5oNr6TWdiv9EU2hsJPbemH4rCecwNajzij+2CxrxFg2Y98Q+ViDV79Q==} + deprecated: This is a stub types definition. mri provides its own type definitions, so you do not need this installed. + dependencies: + mri: 1.2.0 dev: true - /@types/progress/2.0.5: - resolution: {integrity: sha512-ZYYVc/kSMkhH9W/4dNK/sLNra3cnkfT2nJyOAIDY+C2u6w72wa0s1aXAezVtbTsnN8HID1uhXCrLwDE2ZXpplg==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: - '@types/node': 18.11.18 + undici-types: 5.26.5 dev: true - /@types/rimraf/3.0.2: - resolution: {integrity: sha512-F3OznnSLAUxFrCEu/L5PY8+ny8DtcFRjx7fZZ9bycvXRi3KPTRS9HOitGZwvPg0juRhXFWIeKX58cnX5YqLohQ==} + /@types/progress@2.0.7: + resolution: {integrity: sha512-iadjw02vte8qWx7U0YM++EybBha2CQLPGu9iJ97whVgJUT5Zq9MjAPYUnbfRI2Kpehimf1QjFJYxD0t8nqzu5w==} dependencies: - '@types/glob': 8.0.0 - '@types/node': 18.11.18 + '@types/node': 20.12.7 dev: true - /acorn-walk/8.2.0: + /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn/8.8.1: + /acorn@8.8.1: resolution: {integrity: sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /arg/4.1.3: + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: false - /axios/1.2.2: + /axios@1.2.2: resolution: {integrity: sha512-bz/J4gS2S3I7mpN/YZfGFTqhXTYzRho8Ay38w2otuuDR322KzFIWm/4W2K6gIwvWaws5n+mnb7D1lN9uD+QH6Q==} dependencies: follow-redirects: 1.15.2 @@ -142,43 +149,38 @@ packages: - debug dev: false - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /brace-expansion/1.1.11: - resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} + /brace-expansion@2.0.1: + resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 - concat-map: 0.0.1 dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: false - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} - dev: true - - /create-require/1.1.1: + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} engines: {node: '>=0.4.0'} dev: false - /diff/4.0.2: + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dev: true - /follow-redirects/1.15.2: + /follow-redirects@1.15.2: resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} engines: {node: '>=4.0'} peerDependencies: @@ -188,7 +190,7 @@ packages: optional: true dev: false - /form-data/4.0.0: + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -197,103 +199,104 @@ packages: mime-types: 2.1.35 dev: false - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} dev: true - /glob/7.2.3: - resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + /glob@9.3.5: + resolution: {integrity: sha512-e1LleDykUz2Iu+MTYdkSsuWX8lvAjAcs0Xef0lNIu0S2wOAzuTxCJtcd9S3cijlwYF18EsU3rzb8jPVobxDh9Q==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: fs.realpath: 1.0.0 - inflight: 1.0.6 - inherits: 2.0.4 - minimatch: 3.1.2 - once: 1.4.0 - path-is-absolute: 1.0.1 - dev: true - - /inflight/1.0.6: - resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} - dependencies: - once: 1.4.0 - wrappy: 1.0.2 - dev: true - - /inherits/2.0.4: - resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + minimatch: 8.0.4 + minipass: 4.2.8 + path-scurry: 1.10.2 dev: true - /lodash.samplesize/4.2.0: + /lodash.samplesize@4.2.0: resolution: {integrity: sha512-1ZhKV7/nuISuaQdxfCqrs4HHxXIYN+0Z4f7NMQn2PHkxFZJGavJQ1j/paxyJnLJmN2ZamNN6SMepneV+dCgQTA==} dev: false - /make-error/1.3.6: + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} + engines: {node: 14 || >=16.14} + dev: true + + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: false - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: false - /minimatch/3.1.2: - resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + /minimatch@8.0.4: + resolution: {integrity: sha512-W0Wvr9HyFXZRGIDgCicunpQ299OKXs9RgZfaukz4qAW/pJhcpUfupc9c+OObPOFueNy8VSrZgEmDtk6Kh4WzDA==} + engines: {node: '>=16 || 14 >=14.17'} dependencies: - brace-expansion: 1.1.11 + brace-expansion: 2.0.1 dev: true - /mri/1.2.0: - resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} - engines: {node: '>=4'} - dev: false + /minipass@4.2.8: + resolution: {integrity: sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ==} + engines: {node: '>=8'} + dev: true - /once/1.4.0: - resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} - dependencies: - wrappy: 1.0.2 + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} + engines: {node: '>=16 || 14 >=14.17'} dev: true - /p-limit/3.1.0: + /mri@1.2.0: + resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} + engines: {node: '>=4'} + + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: false - /path-is-absolute/1.0.1: - resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} - engines: {node: '>=0.10.0'} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + lru-cache: 10.2.0 + minipass: 7.0.4 dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} dev: false - /progress/2.0.3: + /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} dev: false - /proxy-from-env/1.1.0: + /proxy-from-env@1.1.0: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: false - /rimraf/3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + /rimraf@4.4.1: + resolution: {integrity: sha512-Gk8NlF062+T9CqNGn6h4tls3k6T1+/nXdOcSZVikNVtlRdYpA7wRJJMoXmuvOnLW844rPjdQ7JgXCYM6PPC/og==} + engines: {node: '>=14'} hasBin: true dependencies: - glob: 7.2.3 + glob: 9.3.5 dev: true - /ts-node/10.9.1_awa2wsr5thmg3i7jqycphctjfq: - resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} + /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): + resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -311,38 +314,38 @@ packages: '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.3 - '@types/node': 18.11.18 + '@types/node': 20.12.7 acorn: 8.8.1 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.9.4 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /typescript/4.9.4: - resolution: {integrity: sha512-Uz+dTXYzxXXbsFpM86Wh3dKCxrQqUcVMxwU54orwlJjOpO3ao8L7j5lH+dWfTwgCwIuM9GQ2kvVotzYJMXTBZg==} - engines: {node: '>=4.2.0'} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} + engines: {node: '>=14.17'} hasBin: true dev: true - /v8-compile-cache-lib/3.0.1: - resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} + /undici-types@5.26.5: + resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==} dev: true - /wrappy/1.0.2: - resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /yn/3.1.1: + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: false diff --git a/install/compileLib.js b/install/compileLib.js index e75a0040e..76ecd9b00 100644 --- a/install/compileLib.js +++ b/install/compileLib.js @@ -4,17 +4,22 @@ exports.compileLib = void 0; const opencv_build_1 = require("@u4/opencv-build"); const child_process = require("child_process"); const fs = require("fs"); -const log = require("npmlog"); +const npmlog = require("npmlog"); const commons_js_1 = require("../lib/commons.js"); const pc = require("picocolors"); const path = require("path"); const os_1 = require("os"); -const tiny_glob_1 = require("@u4/tiny-glob"); +const glob_1 = require("glob"); const cvloader_js_1 = require("../lib/cvloader.js"); const defaultDir = '/usr/local'; const defaultLibDir = `${defaultDir}/lib`; const defaultIncludeDir = `${defaultDir}/include`; const defaultIncludeDirOpenCV4 = `${defaultIncludeDir}/opencv4`; +let silenceMode = false; +function log(level, prefix, message, ...args) { + if (!opencv_build_1.OpenCVBuildEnv.silence) + npmlog.log(level, prefix, message, ...args); +} function toBool(value) { if (!value) return false; @@ -30,7 +35,7 @@ function toBool(value) { * @returns global system include paths */ function getDefaultIncludeDirs(env) { - log.info('install', 'OPENCV_INCLUDE_DIR is not set, looking for default include dir'); + log('info', 'install', 'OPENCV_INCLUDE_DIR is not set, looking for default include dir'); if (env.isWin) { throw new Error('OPENCV_INCLUDE_DIR has to be defined on windows when auto build is disabled'); } @@ -40,7 +45,7 @@ function getDefaultIncludeDirs(env) { * @returns return a path like /usr/local/lib */ function getDefaultLibDir(env) { - log.info('install', 'OPENCV_LIB_DIR is not set, looking for default lib dir'); + log('info', 'install', 'OPENCV_LIB_DIR is not set, looking for default lib dir'); if (env.isWin) { throw new Error('OPENCV_LIB_DIR has to be defined on windows when auto build is disabled'); } @@ -78,10 +83,10 @@ function getOPENCV4NODEJS_LIBRARIES(env, libDir, libsFoundInDir) { if (libs.length > 0) { const dir = path.dirname(libs[0]); const names = libs.map(lib => path.basename(lib)); - log.info('libs', `${os_1.EOL}Setting lib from ${pc.green(dir)} : ${names.map(pc.yellow).join(', ')}`); + log('info', 'libs', `${os_1.EOL}Setting lib from ${pc.green(dir)} : ${names.map(pc.yellow).join(', ')}`); } else { - log.info('libs', `${os_1.EOL}no Libs available`); + log('info', 'libs', `${os_1.EOL}no Libs available`); } return libs; } @@ -93,18 +98,18 @@ function getOPENCV4NODEJS_LIBRARIES(env, libDir, libsFoundInDir) { function getOPENCV4NODEJS_DEFINES(libsFoundInDir) { const defines = libsFoundInDir .map(lib => `OPENCV4NODEJS_FOUND_LIBRARY_${lib.opencvModule.toUpperCase()}`); - log.info('defines', `${os_1.EOL}Setting the following defines:`); + log('info', 'defines', `${os_1.EOL}Setting the following defines:`); const longest = Math.max(...defines.map(a => a.length)); let next = ''; for (const define of defines) { if (next.length > 80) { - log.info('defines', pc.yellow(next)); + log('info', 'defines', pc.yellow(next)); next = ''; } next += define.padEnd(longest + 1, ' '); } if (next) - log.info('defines', pc.yellow(next)); + log('info', 'defines', pc.yellow(next)); return defines; } /** @@ -118,11 +123,25 @@ function getOPENCV4NODEJS_INCLUDES(env) { if (OPENCV_INCLUDE_DIR) { explicitIncludeDir = (0, commons_js_1.resolvePath)(OPENCV_INCLUDE_DIR); } - const includes = env.isAutoBuildDisabled - ? (explicitIncludeDir ? [explicitIncludeDir] : getDefaultIncludeDirs(env)) - : [(0, commons_js_1.resolvePath)(env.opencvInclude), (0, commons_js_1.resolvePath)(env.opencv4Include)]; - log.info('install', `${os_1.EOL}Setting the following includes:`); - includes.forEach(inc => log.info('includes', pc.green(inc))); + let includes = []; + if (env.isAutoBuildDisabled) { + if (explicitIncludeDir) { + if (explicitIncludeDir.endsWith('opencv4')) { + includes = [explicitIncludeDir, path.resolve(explicitIncludeDir, '..')]; + } + else { + includes = [explicitIncludeDir, path.resolve(explicitIncludeDir, 'opencv4')]; + } + } + else { + includes = getDefaultIncludeDirs(env); + } + } + else { + includes = [(0, commons_js_1.resolvePath)(env.opencvInclude), (0, commons_js_1.resolvePath)(env.opencv4Include)]; + } + log('info', 'install', `${os_1.EOL}Setting the following includes:`); + includes.forEach(inc => log('info', 'includes', pc.green(inc))); return includes; } function getExistingNodeModulesBin(dir, name) { @@ -143,15 +162,15 @@ async function compileLib(args) { let builder = null; let dryRun = false; let JOBS = 'max'; - const validAction = ['build', 'clean', 'configure', 'rebuild', 'install', 'list', 'remove', 'auto']; - let action = args[args.length - 1]; - if (args.includes('--help') || args.includes('-h') || !validAction.includes(action)) { + const validAction = ['build', 'clean', 'configure', 'rebuild', 'install', 'list', 'remove', 'auto', "OPENCV4NODEJS_DEFINES", "OPENCV4NODEJS_INCLUDES", "OPENCV4NODEJS_LIBRARIES"]; + const actionOriginal = args[args.length - 1]; + if (args.includes('--help') || args.includes('-h') || !validAction.includes(actionOriginal)) { console.log(`Usage: build-opencv build|rebuild|configure|install [--version=] [--vscode] [--jobs=] [--electron] [--node-gyp-options=] [--dry-run] [--flags=] [--cuda] [--cudaArch=] [--nocontrib] [--nobuild] ${validAction.join('|')}`); console.log((0, opencv_build_1.genHelp)()); return; } const buildOptions = (0, opencv_build_1.args2Option)(args); - if (action === 'list') { + if (actionOriginal === 'list') { const buildDir = opencv_build_1.OpenCVBuildEnv.getBuildDir(buildOptions); const builds = opencv_build_1.OpenCVBuildEnv.listBuild(buildDir); if (!builds.length) { @@ -173,9 +192,14 @@ async function compileLib(args) { } return; } + if (actionOriginal.startsWith('OPENCV4NODEJS_')) { + silenceMode = true; + opencv_build_1.OpenCVBuildEnv.silence = true; + } const env = process.env; const npmEnv = opencv_build_1.OpenCVBuildEnv.readEnvsFromPackageJson() || {}; - if (action === 'auto') { + let action = actionOriginal; + if (actionOriginal === 'auto') { try { const openCV = (0, cvloader_js_1.getOpenCV)({ prebuild: 'latestBuild' }); const version = openCV.version; @@ -202,17 +226,21 @@ async function compileLib(args) { } if (buildOptions.disableAutoBuild || toBool(env.OPENCV4NODEJS_DISABLE_AUTOBUILD) || npmEnv.disableAutoBuild) { const summery = opencv_build_1.OpenCVBuildEnv.autoLocatePrebuild(); - log.info('envAutodetect', `autodetect ${pc.green('%d')} changes`, summery.changes); - for (const txt of summery.summery) { - log.info('envAutodetect', `- ${pc.yellow('%s')}`, txt); + if (!silenceMode) { + log('info', 'envAutodetect', `autodetect ${pc.green('%d')} changes`, summery.changes); + for (const txt of summery.summery) { + log('info', 'envAutodetect', `- ${pc.yellow('%s')}`, txt); + } } } if (buildOptions.extra['dry-run'] || buildOptions.extra['dryrun']) { dryRun = true; } - for (const K in ['autoBuildFlags']) { - if (buildOptions[K]) - console.log(`using ${K}:`, buildOptions[K]); + if (!silenceMode) { + for (const K in ['autoBuildFlags']) { + if (buildOptions[K]) + console.log(`using ${K}:`, buildOptions[K]); + } } try { builder = new opencv_build_1.OpenCVBuilder({ ...buildOptions, prebuild: 'latestBuild' }); @@ -231,12 +259,16 @@ or use OPENCV4NODEJS_* env variable.`); if (!builder) { builder = new opencv_build_1.OpenCVBuilder(buildOptions); } - log.info('install', `Using openCV ${pc.green('%s')}`, builder.env.opencvVersion); + if (!silenceMode) { + log('info', 'install', `Using openCV ${pc.green('%s')}`, builder.env.opencvVersion); + } /** * prepare environment variable */ const libDir = getLibDir(builder.env); - log.info('install', `Using lib dir: ${pc.green('%s')}`, libDir); + if (!silenceMode) { + log('info', 'install', `Using lib dir: ${pc.green('%s')}`, libDir); + } //if (!fs.existsSync(libDir)) await builder.install(); if (!fs.existsSync(libDir)) { @@ -248,16 +280,21 @@ or use OPENCV4NODEJS_* env variable.`); if (!libsFoundInDir.length) { throw new Error(`no OpenCV libraries found in lib dir: ${pc.green(libDir)}`); } - log.info('install', `${os_1.EOL}Found the following libs:`); - libsFoundInDir.forEach(lib => log.info('install', `${pc.yellow('%s')}: ${pc.green('%s')}`, lib.opencvModule, lib.libPath)); + log('info', 'install', `${os_1.EOL}Found the following libs:`); + libsFoundInDir.forEach(lib => log('info', 'install', `${pc.yellow('%s')}: ${pc.green('%s')}`, lib.opencvModule, lib.libPath)); const OPENCV4NODEJS_DEFINES = getOPENCV4NODEJS_DEFINES(libsFoundInDir).join(';'); const OPENCV4NODEJS_INCLUDES = getOPENCV4NODEJS_INCLUDES(builder.env).join(';'); const OPENCV4NODEJS_LIBRARIES = getOPENCV4NODEJS_LIBRARIES(builder.env, libDir, libsFoundInDir).join(';'); process.env['OPENCV4NODEJS_DEFINES'] = OPENCV4NODEJS_DEFINES; process.env['OPENCV4NODEJS_INCLUDES'] = OPENCV4NODEJS_INCLUDES; process.env['OPENCV4NODEJS_LIBRARIES'] = OPENCV4NODEJS_LIBRARIES; + if (silenceMode) { + const outputs = process.env[actionOriginal].split(/[\n;]/); + outputs.forEach(o => console.log(o)); + return; + } // see https://github.com/nodejs/node-gyp#command-options for all flags - let flags = ''; + let flags = ' -f binding_old.gyp'; // process.env.JOBS=JOBS; flags += ` --jobs ${JOBS}`; // --target not mapped @@ -307,13 +344,13 @@ or use OPENCV4NODEJS_* env variable.`); } // flags starts with ' ' nodegypCmd += ` ${action}${flags}`; - log.info('install', `Spawning in directory:${cwd} node-gyp process: ${nodegypCmd}`); + log('info', 'install', `Spawning in directory:${cwd} node-gyp process: ${nodegypCmd}`); if (buildOptions.extra.vscode) { // const nan = require('nan'); // const nativeNodeUtils = require('native-node-utils'); // const pblob = promisify(blob) - const openCvModuleInclude = await (0, tiny_glob_1.default)(path.join(builder.env.opencvSrc, 'modules', '*', 'include')); - const openCvContribModuleInclude = await (0, tiny_glob_1.default)(path.join(builder.env.opencvContribSrc, 'modules', '*', 'include')); + const openCvModuleInclude = (0, glob_1.globSync)(path.join(builder.env.opencvSrc, 'modules', '*', 'include').replace(/\\/g, '/')); + const openCvContribModuleInclude = (0, glob_1.globSync)(path.join(builder.env.opencvContribSrc, 'modules', '*', 'include').replace(/\\/g, '/')); const cvVersion = builder.env.opencvVersion.split('.'); const config = { "name": "opencv4nodejs", @@ -370,10 +407,10 @@ or use OPENCV4NODEJS_* env variable.`); const bin = buildOptions.extra.electron ? 'electron-rebuild' : 'node-gyp'; if (error) { console.log(`error: `, error); - log.error('install', `${bin} failed and return ${error.name} ${error.message} return code: ${error.code}`); + log('error', 'install', `${bin} failed and return ${error.name} ${error.message} return code: ${error.code}`); } else { - log.info('install', `${bin} complete successfully`); + log('info', 'install', `${bin} complete successfully`); } }); if (child.stdout) diff --git a/install/compileLib.ts b/install/compileLib.ts index 67d53af9b..f4ca95cdb 100644 --- a/install/compileLib.ts +++ b/install/compileLib.ts @@ -1,12 +1,13 @@ import { type OpencvModule, OpenCVBuilder, OpenCVBuildEnv, type OpenCVBuildEnvParams, args2Option, genHelp } from '@u4/opencv-build' import * as child_process from 'child_process' import * as fs from 'fs' -import * as log from 'npmlog' +import * as npmlog from 'npmlog' +import { LogLevels } from 'npmlog' import { resolvePath } from '../lib/commons.js' import * as pc from 'picocolors' import * as path from 'path' import { EOL } from 'os' -import blob from '@u4/tiny-glob'; +import { globSync } from "glob"; import { getOpenCV } from '../lib/cvloader.js' const defaultDir = '/usr/local' @@ -14,6 +15,13 @@ const defaultLibDir = `${defaultDir}/lib` const defaultIncludeDir = `${defaultDir}/include` const defaultIncludeDirOpenCV4 = `${defaultIncludeDir}/opencv4` +let silenceMode = false; + +function log(level: LogLevels | string, prefix: string, message: string, ...args: unknown[]): void { + if (!OpenCVBuildEnv.silence) + npmlog.log(level, prefix, message, ...args); +} + function toBool(value?: string | boolean | number | null) { if (!value) return false; @@ -30,7 +38,7 @@ function toBool(value?: string | boolean | number | null) { * @returns global system include paths */ function getDefaultIncludeDirs(env: OpenCVBuildEnv) { - log.info('install', 'OPENCV_INCLUDE_DIR is not set, looking for default include dir') + log('info', 'install', 'OPENCV_INCLUDE_DIR is not set, looking for default include dir') if (env.isWin) { throw new Error('OPENCV_INCLUDE_DIR has to be defined on windows when auto build is disabled') } @@ -41,7 +49,7 @@ function getDefaultIncludeDirs(env: OpenCVBuildEnv) { * @returns return a path like /usr/local/lib */ function getDefaultLibDir(env: OpenCVBuildEnv) { - log.info('install', 'OPENCV_LIB_DIR is not set, looking for default lib dir') + log('info', 'install', 'OPENCV_LIB_DIR is not set, looking for default lib dir') if (env.isWin) { throw new Error('OPENCV_LIB_DIR has to be defined on windows when auto build is disabled') } @@ -81,9 +89,9 @@ function getOPENCV4NODEJS_LIBRARIES(env: OpenCVBuildEnv, libDir: string, libsFou if (libs.length > 0) { const dir = path.dirname(libs[0]); const names = libs.map(lib => path.basename(lib)) - log.info('libs', `${EOL}Setting lib from ${pc.green(dir)} : ${names.map(pc.yellow).join(', ')}`) + log('info', 'libs', `${EOL}Setting lib from ${pc.green(dir)} : ${names.map(pc.yellow).join(', ')}`) } else { - log.info('libs', `${EOL}no Libs available`) + log('info', 'libs', `${EOL}no Libs available`) } return libs; } @@ -96,18 +104,18 @@ function getOPENCV4NODEJS_LIBRARIES(env: OpenCVBuildEnv, libDir: string, libsFou function getOPENCV4NODEJS_DEFINES(libsFoundInDir: OpencvModule[]): string[] { const defines = libsFoundInDir .map(lib => `OPENCV4NODEJS_FOUND_LIBRARY_${lib.opencvModule.toUpperCase()}`) - log.info('defines', `${EOL}Setting the following defines:`) + log('info', 'defines', `${EOL}Setting the following defines:`) const longest = Math.max(...defines.map(a => a.length)); let next = ''; for (const define of defines) { if (next.length > 80) { - log.info('defines', pc.yellow(next)); + log('info', 'defines', pc.yellow(next)); next = ''; } next += define.padEnd(longest + 1, ' '); } if (next) - log.info('defines', pc.yellow(next)); + log('info', 'defines', pc.yellow(next)); return defines; } @@ -122,11 +130,22 @@ function getOPENCV4NODEJS_INCLUDES(env: OpenCVBuildEnv): string[] { if (OPENCV_INCLUDE_DIR) { explicitIncludeDir = resolvePath(OPENCV_INCLUDE_DIR) } - const includes = env.isAutoBuildDisabled - ? (explicitIncludeDir ? [explicitIncludeDir] : getDefaultIncludeDirs(env)) - : [resolvePath(env.opencvInclude), resolvePath(env.opencv4Include)] - log.info('install', `${EOL}Setting the following includes:`) - includes.forEach(inc => log.info('includes', pc.green(inc))) + let includes: string[] = []; + if (env.isAutoBuildDisabled) { + if (explicitIncludeDir) { + if (explicitIncludeDir.endsWith('opencv4')) { + includes = [explicitIncludeDir, path.resolve(explicitIncludeDir, '..')]; + } else { + includes = [explicitIncludeDir, path.resolve(explicitIncludeDir, 'opencv4')]; + } + } else { + includes = getDefaultIncludeDirs(env); + } + } else { + includes = [resolvePath(env.opencvInclude), resolvePath(env.opencv4Include)]; + } + log('info', 'install', `${EOL}Setting the following includes:`) + includes.forEach(inc => log('info', 'includes', pc.green(inc))) return includes; } @@ -150,16 +169,16 @@ export async function compileLib(args: string[]) { let builder: OpenCVBuilder | null = null; let dryRun = false; let JOBS = 'max'; - const validAction = ['build', 'clean', 'configure', 'rebuild', 'install', 'list', 'remove', 'auto'] - let action = args[args.length - 1]; - if (args.includes('--help') || args.includes('-h') || !validAction.includes(action)) { + const validAction = ['build', 'clean', 'configure', 'rebuild', 'install', 'list', 'remove', 'auto', "OPENCV4NODEJS_DEFINES", "OPENCV4NODEJS_INCLUDES", "OPENCV4NODEJS_LIBRARIES"] + const actionOriginal = args[args.length - 1]; + if (args.includes('--help') || args.includes('-h') || !validAction.includes(actionOriginal)) { console.log(`Usage: build-opencv build|rebuild|configure|install [--version=] [--vscode] [--jobs=] [--electron] [--node-gyp-options=] [--dry-run] [--flags=] [--cuda] [--cudaArch=] [--nocontrib] [--nobuild] ${validAction.join('|')}`); console.log(genHelp()); return; } const buildOptions: OpenCVBuildEnvParams = args2Option(args) - if (action === 'list') { + if (actionOriginal === 'list') { const buildDir = OpenCVBuildEnv.getBuildDir(buildOptions); const builds = OpenCVBuildEnv.listBuild(buildDir); if (!builds.length) { @@ -181,9 +200,15 @@ export async function compileLib(args: string[]) { return; } + if (actionOriginal.startsWith('OPENCV4NODEJS_')) { + silenceMode = true; + OpenCVBuildEnv.silence = true; + } + const env = process.env; const npmEnv = OpenCVBuildEnv.readEnvsFromPackageJson() || {}; - if (action === 'auto') { + let action = actionOriginal; + if (actionOriginal === 'auto') { try { const openCV = getOpenCV({ prebuild: 'latestBuild' }); const version = openCV.version; @@ -212,9 +237,11 @@ export async function compileLib(args: string[]) { if (buildOptions.disableAutoBuild || toBool(env.OPENCV4NODEJS_DISABLE_AUTOBUILD) || npmEnv.disableAutoBuild) { const summery = OpenCVBuildEnv.autoLocatePrebuild(); - log.info('envAutodetect', `autodetect ${pc.green('%d')} changes`, summery.changes) - for (const txt of summery.summery) { - log.info('envAutodetect', `- ${pc.yellow('%s')}`, txt) + if (!silenceMode) { + log('info', 'envAutodetect', `autodetect ${pc.green('%d')} changes`, summery.changes) + for (const txt of summery.summery) { + log('info', 'envAutodetect', `- ${pc.yellow('%s')}`, txt) + } } } @@ -222,8 +249,10 @@ export async function compileLib(args: string[]) { dryRun = true; } - for (const K in ['autoBuildFlags']) { - if (buildOptions[K]) console.log(`using ${K}:`, buildOptions[K]); + if (!silenceMode) { + for (const K in ['autoBuildFlags']) { + if (buildOptions[K]) console.log(`using ${K}:`, buildOptions[K]); + } } try { @@ -231,8 +260,8 @@ export async function compileLib(args: string[]) { } catch (_e) { // ignore } - if (action === 'auto' && builder) action = 'rebuild'; + if (action === 'auto' && builder) action = 'rebuild'; if (action === 'auto' && !builder) { console.log(`Use 'npx build-opencv rebuild' script to start node-gyp, use --help to check all options. @@ -245,12 +274,16 @@ or use OPENCV4NODEJS_* env variable.`) builder = new OpenCVBuilder(buildOptions); } - log.info('install', `Using openCV ${pc.green('%s')}`, builder.env.opencvVersion) + if (!silenceMode) { + log('info', 'install', `Using openCV ${pc.green('%s')}`, builder.env.opencvVersion) + } /** * prepare environment variable */ const libDir: string = getLibDir(builder.env); - log.info('install', `Using lib dir: ${pc.green('%s')}`, libDir) + if (!silenceMode) { + log('info', 'install', `Using lib dir: ${pc.green('%s')}`, libDir) + } //if (!fs.existsSync(libDir)) await builder.install(); @@ -264,8 +297,8 @@ or use OPENCV4NODEJS_* env variable.`) if (!libsFoundInDir.length) { throw new Error(`no OpenCV libraries found in lib dir: ${pc.green(libDir)}`) } - log.info('install', `${EOL}Found the following libs:`) - libsFoundInDir.forEach(lib => log.info('install', `${pc.yellow('%s')}: ${pc.green('%s')}`, lib.opencvModule, lib.libPath)) + log('info', 'install', `${EOL}Found the following libs:`) + libsFoundInDir.forEach(lib => log('info', 'install', `${pc.yellow('%s')}: ${pc.green('%s')}`, lib.opencvModule, lib.libPath)) const OPENCV4NODEJS_DEFINES = getOPENCV4NODEJS_DEFINES(libsFoundInDir).join(';'); const OPENCV4NODEJS_INCLUDES = getOPENCV4NODEJS_INCLUDES(builder.env).join(';'); const OPENCV4NODEJS_LIBRARIES = getOPENCV4NODEJS_LIBRARIES(builder.env, libDir, libsFoundInDir).join(';'); @@ -274,8 +307,15 @@ or use OPENCV4NODEJS_* env variable.`) process.env['OPENCV4NODEJS_INCLUDES'] = OPENCV4NODEJS_INCLUDES; process.env['OPENCV4NODEJS_LIBRARIES'] = OPENCV4NODEJS_LIBRARIES; + + if (silenceMode) { + const outputs = process.env[actionOriginal].split(/[\n;]/); + outputs.forEach(o => console.log(o)); + return; + } + // see https://github.com/nodejs/node-gyp#command-options for all flags - let flags = ''; + let flags = ' -f binding_old.gyp'; // process.env.JOBS=JOBS; flags += ` --jobs ${JOBS}`; @@ -334,14 +374,15 @@ or use OPENCV4NODEJS_* env variable.`) // flags starts with ' ' nodegypCmd += ` ${action}${flags}`; - log.info('install', `Spawning in directory:${cwd} node-gyp process: ${nodegypCmd}`) + log('info', 'install', `Spawning in directory:${cwd} node-gyp process: ${nodegypCmd}`) if (buildOptions.extra.vscode) { // const nan = require('nan'); // const nativeNodeUtils = require('native-node-utils'); // const pblob = promisify(blob) - const openCvModuleInclude = await blob(path.join(builder.env.opencvSrc, 'modules', '*', 'include')); - const openCvContribModuleInclude = await blob(path.join(builder.env.opencvContribSrc, 'modules', '*', 'include')); + + const openCvModuleInclude = globSync(path.join(builder.env.opencvSrc, 'modules', '*', 'include').replace(/\\/g, '/')); + const openCvContribModuleInclude = globSync(path.join(builder.env.opencvContribSrc, 'modules', '*', 'include').replace(/\\/g, '/')); const cvVersion = builder.env.opencvVersion.split('.'); const config = { "name": "opencv4nodejs", @@ -395,9 +436,9 @@ or use OPENCV4NODEJS_* env variable.`) const bin = buildOptions.extra.electron ? 'electron-rebuild' : 'node-gyp'; if (error) { console.log(`error: `, error); - log.error('install', `${bin} failed and return ${error.name} ${error.message} return code: ${error.code}`); + log('error', 'install', `${bin} failed and return ${error.name} ${error.message} return code: ${error.code}`); } else { - log.info('install', `${bin} complete successfully`); + log('info', 'install', `${bin} complete successfully`); } }) if (child.stdout) child.stdout.pipe(process.stdout) diff --git a/package.json b/package.json index d41c36641..5818c40e3 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "scripts": { "build": "tsc --pretty --project .", "prepack": "npm run build", - "install": "node bin/install.js auto", + "install_old": "node bin/install.js auto", "install_Mac": "CXXFLAGS=\"-std=c++17 -Wno-c++11-narrowing -Wno-c++17-extensions -Wno-c++17-attribute-extensions\" node ./bin/install.js --version 4.5.3 build", "install_default": "node bin/install.js rebuild", "install_ubuntu": "echo call: sudo apt install libopencv-dev; build-opencv --incDir /usr/include/opencv4/ --libDir /lib/x86_64-linux-gnu/ --binDir=/usr/bin/ --nobuild rebuild", @@ -55,31 +55,30 @@ "build-debug": "npm run build && BINDINGS_DEBUG=true node bin/install.js rebuild" }, "dependencies": { - "@u4/opencv-build": "^0.8.3", - "@u4/tiny-glob": "^0.3.2", + "@u4/opencv-build": "^0.9.0", + "glob": "^10.3.12", "nan": "^2.19.0", "node-gyp": "^10.1.0", "npmlog": "^7.0.1", "picocolors": "^1.0.0" }, "devDependencies": { - "@types/mri": "^1.1.5", - "@types/node": "^20.12.6", + "@types/node": "^20.12.7", "@types/npmlog": "^7.0.0", "@types/progress": "^2.0.7", - "@typescript-eslint/eslint-plugin": "^7.0.2", - "@typescript-eslint/parser": "^7.0.2", - "axios": "^1.4.0", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", + "axios": "^1.6.8", "cross-env": "^7.0.3", - "eslint": "^8.56.0", + "eslint": "^8.57.0", "eslint-config-airbnb": "^19.0.4", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", - "eslint-plugin-react": "^7.33.2", + "eslint-plugin-react": "^7.34.1", "eslint-plugin-react-hooks": "^4.6.0", "progress": "^2.0.3", "rimraf": "^4.4.1", - "typescript": "^5.4.4" + "typescript": "^5.4.5" }, "files": [ "cc", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 110df1cb1..c22e4cf42 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,11 +6,11 @@ settings: dependencies: '@u4/opencv-build': - specifier: ^0.8.3 - version: 0.8.3 - '@u4/tiny-glob': - specifier: ^0.3.2 - version: 0.3.2 + specifier: ^0.9.0 + version: 0.9.0 + glob: + specifier: ^10.3.12 + version: 10.3.12 nan: specifier: ^2.19.0 version: 2.19.0 @@ -25,12 +25,9 @@ dependencies: version: 1.0.0 devDependencies: - '@types/mri': - specifier: ^1.1.5 - version: 1.1.5 '@types/node': - specifier: ^20.12.6 - version: 20.12.6 + specifier: ^20.12.7 + version: 20.12.7 '@types/npmlog': specifier: ^7.0.0 version: 7.0.0 @@ -38,35 +35,35 @@ devDependencies: specifier: ^2.0.7 version: 2.0.7 '@typescript-eslint/eslint-plugin': - specifier: ^7.0.2 - version: 7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.4.4) + specifier: ^7.7.0 + version: 7.7.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5) '@typescript-eslint/parser': - specifier: ^7.0.2 - version: 7.0.2(eslint@8.56.0)(typescript@5.4.4) + specifier: ^7.7.0 + version: 7.7.0(eslint@8.57.0)(typescript@5.4.5) axios: - specifier: ^1.4.0 - version: 1.4.0 + specifier: ^1.6.8 + version: 1.6.8 cross-env: specifier: ^7.0.3 version: 7.0.3 eslint: - specifier: ^8.56.0 - version: 8.56.0 + specifier: ^8.57.0 + version: 8.57.0 eslint-config-airbnb: specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0) + version: 19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@8.57.0) eslint-plugin-import: specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) + version: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0) eslint-plugin-jsx-a11y: specifier: ^6.8.0 - version: 6.8.0(eslint@8.56.0) + version: 6.8.0(eslint@8.57.0) eslint-plugin-react: - specifier: ^7.33.2 - version: 7.33.2(eslint@8.56.0) + specifier: ^7.34.1 + version: 7.34.1(eslint@8.57.0) eslint-plugin-react-hooks: specifier: ^4.6.0 - version: 4.6.0(eslint@8.56.0) + version: 4.6.0(eslint@8.57.0) progress: specifier: ^2.0.3 version: 2.0.3 @@ -74,8 +71,8 @@ devDependencies: specifier: ^4.4.1 version: 4.4.1 typescript: - specifier: ^5.4.4 - version: 5.4.4 + specifier: ^5.4.5 + version: 5.4.5 packages: @@ -84,20 +81,20 @@ packages: engines: {node: '>=0.10.0'} dev: true - /@babel/runtime@7.23.9: - resolution: {integrity: sha512-0CX6F+BI2s9dkUqr08KFrAIZgNFj75rdBU/DjCyYLIaV/quFjkk6T+EJ2LkZHyZTbEV4L5p97mNkUsHl2wLFAw==} + /@babel/runtime@7.24.4: + resolution: {integrity: sha512-dkxf7+hn8mFBwKjs9bvBlArzLVxVbS8usaPUDd5p2a9JCL9tB8OaOVN1isD4+Xyk4ns89/xeOmbQvgdK7IIVdA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.14.1 dev: true - /@eslint-community/eslint-utils@4.4.0(eslint@8.56.0): + /@eslint-community/eslint-utils@4.4.0(eslint@8.57.0): resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 eslint-visitor-keys: 3.4.3 dev: true @@ -113,8 +110,8 @@ packages: ajv: 6.12.6 debug: 4.3.4 espree: 9.6.1 - globals: 13.20.0 - ignore: 5.2.4 + globals: 13.24.0 + ignore: 5.3.1 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -123,8 +120,8 @@ packages: - supports-color dev: true - /@eslint/js@8.56.0: - resolution: {integrity: sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A==} + /@eslint/js@8.57.0: + resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true @@ -132,7 +129,7 @@ packages: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} dependencies: - '@humanwhocodes/object-schema': 2.0.2 + '@humanwhocodes/object-schema': 2.0.3 debug: 4.3.4 minimatch: 3.1.2 transitivePeerDependencies: @@ -144,8 +141,8 @@ packages: engines: {node: '>=12.22'} dev: true - /@humanwhocodes/object-schema@2.0.2: - resolution: {integrity: sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==} + /@humanwhocodes/object-schema@2.0.3: + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} dev: true /@isaacs/cliui@8.0.2: @@ -178,18 +175,18 @@ packages: engines: {node: '>= 8'} dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.15.0 + fastq: 1.17.1 dev: true - /@npmcli/agent@2.2.1: - resolution: {integrity: sha512-H4FrOVtNyWC8MUwL3UfjOsAihHvT1Pe8POj3JvjXhSTJipsZMtgUALCT4mGyYZNxymkUfOw3PUj6dE4QPp6osQ==} + /@npmcli/agent@2.2.2: + resolution: {integrity: sha512-OrcNPXdpSl9UX7qPVRWbmWMCSXrcDa2M9DvrbOTj7ao1S4PlqVFYv9/yLKMkrJKZ/V5A/kDBC690or307i26Og==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - agent-base: 7.1.0 - http-proxy-agent: 7.0.1 - https-proxy-agent: 7.0.3 + agent-base: 7.1.1 + http-proxy-agent: 7.0.2 + https-proxy-agent: 7.0.4 lru-cache: 10.2.0 - socks-proxy-agent: 8.0.2 + socks-proxy-agent: 8.0.3 transitivePeerDependencies: - supports-color dev: false @@ -216,12 +213,8 @@ packages: resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/mri@1.1.5: - resolution: {integrity: sha512-C6NscC1RO9iz1YmvqPlFdbo/q8krKwrvWsciw2MG+pH+WUgxWKv1VFpY/Y2AAZubzUpA4FH6d+FDtroboN9xMw==} - dev: true - - /@types/node@20.12.6: - resolution: {integrity: sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -229,22 +222,22 @@ packages: /@types/npmlog@7.0.0: resolution: {integrity: sha512-hJWbrKFvxKyWwSUXjZMYTINsSOY6IclhvGOZ97M8ac2tmR9hMwmTnYaMdpGhvju9ctWLTPhCS+eLfQNluiEjQQ==} dependencies: - '@types/node': 20.12.6 + '@types/node': 20.12.7 dev: true /@types/progress@2.0.7: resolution: {integrity: sha512-iadjw02vte8qWx7U0YM++EybBha2CQLPGu9iJ97whVgJUT5Zq9MjAPYUnbfRI2Kpehimf1QjFJYxD0t8nqzu5w==} dependencies: - '@types/node': 20.12.6 + '@types/node': 20.12.7 dev: true - /@types/semver@7.5.0: - resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==} + /@types/semver@7.5.8: + resolution: {integrity: sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==} dev: true - /@typescript-eslint/eslint-plugin@7.0.2(@typescript-eslint/parser@7.0.2)(eslint@8.56.0)(typescript@5.4.4): - resolution: {integrity: sha512-/XtVZJtbaphtdrWjr+CJclaCVGPtOdBpFEnvtNf/jRV0IiEemRrL0qABex/nEt8isYcnFacm3nPHYQwL+Wb7qg==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/eslint-plugin@7.7.0(@typescript-eslint/parser@7.7.0)(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-GJWR0YnfrKnsRoluVO3PRb9r5aMZriiMMM/RHj5nnTrBy1/wIgk76XCtCKcnXGjpZQJQRFtGV9/0JJ6n30uwpQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 eslint: ^8.56.0 @@ -254,26 +247,26 @@ packages: optional: true dependencies: '@eslint-community/regexpp': 4.10.0 - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.4.4) - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/type-utils': 7.0.2(eslint@8.56.0)(typescript@5.4.4) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.4.4) - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/type-utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 - eslint: 8.56.0 + eslint: 8.57.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 natural-compare: 1.4.0 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.4.4) - typescript: 5.4.4 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser@7.0.2(eslint@8.56.0)(typescript@5.4.4): - resolution: {integrity: sha512-GdwfDglCxSmU+QTS9vhz2Sop46ebNCXpPPvsByK7hu0rFGRHL+AusKQJ7SoN+LbLh6APFpQwHKmDSwN35Z700Q==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/parser@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-fNcDm3wSwVM8QYL4HKVBggdIPAy9Q41vcvC/GtDobw3c4ndVT3K6cqudUmjHPw8EAp4ufax0o58/xvWaP2FmTg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -281,28 +274,28 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.4.4) - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 - eslint: 8.56.0 - typescript: 5.4.4 + eslint: 8.57.0 + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager@7.0.2: - resolution: {integrity: sha512-l6sa2jF3h+qgN2qUMjVR3uCNGjWw4ahGfzIYsCtFrQJCjhbrDPdiihYT8FnnqFwsWX+20hK592yX9I2rxKTP4g==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/scope-manager@7.7.0: + resolution: {integrity: sha512-/8INDn0YLInbe9Wt7dK4cXLDYp0fNHP5xKLHvZl3mOT5X17rK/YShXaiNmorl+/U4VKCVIjJnx4Ri5b0y+HClw==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 dev: true - /@typescript-eslint/type-utils@7.0.2(eslint@8.56.0)(typescript@5.4.4): - resolution: {integrity: sha512-IKKDcFsKAYlk8Rs4wiFfEwJTQlHcdn8CLwLaxwd6zb8HNiMcQIFX9sWax2k4Cjj7l7mGS5N1zl7RCHOVwHq2VQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/type-utils@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-bOp3ejoRYrhAlnT/bozNQi3nio9tIgv3U5C0mVDdZC7cpcQEDZXvq8inrHYghLVwuNABRqrMW5tzAv88Vy77Sg==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 typescript: '*' @@ -310,85 +303,80 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.4.4) - '@typescript-eslint/utils': 7.0.2(eslint@8.56.0)(typescript@5.4.4) + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + '@typescript-eslint/utils': 7.7.0(eslint@8.57.0)(typescript@5.4.5) debug: 4.3.4 - eslint: 8.56.0 - ts-api-utils: 1.2.1(typescript@5.4.4) - typescript: 5.4.4 + eslint: 8.57.0 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types@7.0.2: - resolution: {integrity: sha512-ZzcCQHj4JaXFjdOql6adYV4B/oFOFjPOC9XYwCaZFRvqN8Llfvv4gSxrkQkd2u4Ci62i2c6W6gkDwQJDaRc4nA==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/types@7.7.0: + resolution: {integrity: sha512-G01YPZ1Bd2hn+KPpIbrAhEWOn5lQBrjxkzHkWvP6NucMXFtfXoevK82hzQdpfuQYuhkvFDeQYbzXCjR1z9Z03w==} + engines: {node: ^18.18.0 || >=20.0.0} dev: true - /@typescript-eslint/typescript-estree@7.0.2(typescript@5.4.4): - resolution: {integrity: sha512-3AMc8khTcELFWcKcPc0xiLviEvvfzATpdPj/DXuOGIdQIIFybf4DMT1vKRbuAEOFMwhWt7NFLXRkbjsvKZQyvw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/typescript-estree@7.7.0(typescript@5.4.5): + resolution: {integrity: sha512-8p71HQPE6CbxIBy2kWHqM1KGrC07pk6RJn40n0DSc6bMOBBREZxSDJ+BmRzc8B5OdaMh1ty3mkuWRg4sCFiDQQ==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' peerDependenciesMeta: typescript: optional: true dependencies: - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/visitor-keys': 7.0.2 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/visitor-keys': 7.7.0 debug: 4.3.4 globby: 11.1.0 is-glob: 4.0.3 - minimatch: 9.0.3 + minimatch: 9.0.4 semver: 7.6.0 - ts-api-utils: 1.2.1(typescript@5.4.4) - typescript: 5.4.4 + ts-api-utils: 1.3.0(typescript@5.4.5) + typescript: 5.4.5 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils@7.0.2(eslint@8.56.0)(typescript@5.4.4): - resolution: {integrity: sha512-PZPIONBIB/X684bhT1XlrkjNZJIEevwkKDsdwfiu1WeqBxYEEdIgVDgm8/bbKHVu+6YOpeRqcfImTdImx/4Bsw==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/utils@7.7.0(eslint@8.57.0)(typescript@5.4.5): + resolution: {integrity: sha512-LKGAXMPQs8U/zMRFXDZOzmMKgFv3COlxUQ+2NMPhbqgVm6R1w+nU1i4836Pmxu9jZAuIeyySNrN/6Rc657ggig==} + engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@types/json-schema': 7.0.15 - '@types/semver': 7.5.0 - '@typescript-eslint/scope-manager': 7.0.2 - '@typescript-eslint/types': 7.0.2 - '@typescript-eslint/typescript-estree': 7.0.2(typescript@5.4.4) - eslint: 8.56.0 + '@types/semver': 7.5.8 + '@typescript-eslint/scope-manager': 7.7.0 + '@typescript-eslint/types': 7.7.0 + '@typescript-eslint/typescript-estree': 7.7.0(typescript@5.4.5) + eslint: 8.57.0 semver: 7.6.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys@7.0.2: - resolution: {integrity: sha512-8Y+YiBmqPighbm5xA2k4wKTxRzx9EkBu7Rlw+WHqMvRJ3RPz/BMBO9b2ru0LUNmXg120PHUXD5+SWFy2R8DqlQ==} - engines: {node: ^16.0.0 || >=18.0.0} + /@typescript-eslint/visitor-keys@7.7.0: + resolution: {integrity: sha512-h0WHOj8MhdhY8YWkzIF30R379y0NqyOHExI9N9KCzvmu05EgG4FumeYa3ccfKUSphyWkWQE1ybVrgz/Pbam6YA==} + engines: {node: ^18.18.0 || >=20.0.0} dependencies: - '@typescript-eslint/types': 7.0.2 + '@typescript-eslint/types': 7.7.0 eslint-visitor-keys: 3.4.3 dev: true - /@u4/opencv-build@0.8.3: - resolution: {integrity: sha512-MtJB2Khu4L+HjBEzdyzEJFteb12NMWjHPTH7vhZqcAbTAwbguewzY5wyqvNdeYfF93xTAvqf5nLwnNJ9z90Fzg==} + /@u4/opencv-build@0.9.0: + resolution: {integrity: sha512-94wrwpL1iv/lnl2xpWrILcLB8oUDkQLPN7dlQcFfK065pGY9waPS2btCUQdeeuUFvmAcTHUmBMNhqwvJnXPiww==} hasBin: true dependencies: - '@u4/tiny-glob': 0.3.2 + glob: 10.3.12 npmlog: 7.0.1 picocolors: 1.0.0 rimraf: 4.4.1 dev: false - /@u4/tiny-glob@0.3.2: - resolution: {integrity: sha512-xtiuksTyP+8hkvXgkHi6RfyWgKmKg/wkMz2YHdgx4dQoldAS6nHEb2XouahbEgKYyJE2Q1wy0uVplmZ9xBefWA==} - engines: {node: '>=12.0.0', npm: '>=7.0.0'} - dev: false - /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} dev: true @@ -398,13 +386,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false - /abort-controller@3.0.0: - resolution: {integrity: sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==} - engines: {node: '>=6.5'} - dependencies: - event-target-shim: 5.0.1 - dev: false - /acorn-jsx@5.3.2(acorn@8.11.3): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: @@ -419,8 +400,8 @@ packages: hasBin: true dev: true - /agent-base@7.1.0: - resolution: {integrity: sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==} + /agent-base@7.1.1: + resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} engines: {node: '>= 14'} dependencies: debug: 4.3.4 @@ -469,12 +450,9 @@ packages: resolution: {integrity: sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==} dev: false - /are-we-there-yet@4.0.0: - resolution: {integrity: sha512-nSXlV+u3vtVjRgihdTzbfWYzxPWGo424zPgQbHD0ZqIla3jqYAewDcvee0Ua2hjS5IfTAmjGlx1Jf0PKwjZDEw==} + /are-we-there-yet@4.0.2: + resolution: {integrity: sha512-ncSWAawFhKMJDTdoAeOV+jyW1VCMj5QIAwULIBV0SSR7B/RLPPEQiknKcg/RIIZlUQrxELpsxMiTUoAQ4sIUyg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} - dependencies: - delegates: 1.0.0 - readable-stream: 4.4.0 dev: false /argparse@2.0.1: @@ -487,13 +465,6 @@ packages: dequal: 2.0.3 dev: true - /array-buffer-byte-length@1.0.0: - resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - dependencies: - call-bind: 1.0.2 - is-array-buffer: 3.0.2 - dev: true - /array-buffer-byte-length@1.0.1: resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} engines: {node: '>= 0.4'} @@ -502,25 +473,15 @@ packages: is-array-buffer: 3.0.4 dev: true - /array-includes@3.1.6: - resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} + /array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.1 - is-string: 1.0.7 - dev: true - - /array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 - get-intrinsic: 1.2.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 is-string: 1.0.7 dev: true @@ -529,76 +490,67 @@ packages: engines: {node: '>=8'} dev: true - /array.prototype.filter@1.0.3: - resolution: {integrity: sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw==} + /array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 - es-array-method-boxes-properly: 1.0.0 - is-string: 1.0.7 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.findlastindex@1.2.4: - resolution: {integrity: sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ==} + /array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 + es-object-atoms: 1.0.0 es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flat@1.3.1: - resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - dev: true - /array.prototype.flat@1.3.2: resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flatmap@1.3.1: - resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} + /array.prototype.flatmap@1.3.2: + resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} - engines: {node: '>= 0.4'} + /array.prototype.toreversed@1.1.2: + resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 - es-shim-unscopables: 1.0.0 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-shim-unscopables: 1.0.2 dev: true - /array.prototype.tosorted@1.1.1: - resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + /array.prototype.tosorted@1.1.3: + resolution: {integrity: sha512-/DdH4TiTmOKzyQbp/eadcCVexiCb36xJg7HshYOYJnNZFDj33GEv0P7GxsynpShhq4OLYJzbGcBDkLsDt7MnNg==} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.1 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 dev: true /arraybuffer.prototype.slice@1.0.3: @@ -608,35 +560,26 @@ packages: array-buffer-byte-length: 1.0.1 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 dev: true /ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} dev: true - /asynciterator.prototype@1.0.0: - resolution: {integrity: sha512-wwHYEIS0Q80f5mosx3L/dfG5t5rjEa9Ft51GTaNt862EnpyGHpgz2RkZvLPp1oF5TnAiTohkEKVEu8pQPJI7Vg==} - dependencies: - has-symbols: 1.0.3 - dev: true - /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true - /available-typed-arrays@1.0.5: - resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} - engines: {node: '>= 0.4'} - dev: true - - /available-typed-arrays@1.0.6: - resolution: {integrity: sha512-j1QzY8iPNPG4o4xmO3ptzpRxTciqD3MgEHtifP/YnJpIo58Xu+ne4BejlbkuaLfXn/nz6HFiw29bLpj2PNMdGg==} + /available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} + dependencies: + possible-typed-array-names: 1.0.0 dev: true /axe-core@4.7.0: @@ -644,10 +587,10 @@ packages: engines: {node: '>=4'} dev: true - /axios@1.4.0: - resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==} + /axios@1.6.8: + resolution: {integrity: sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==} dependencies: - follow-redirects: 1.15.2 + follow-redirects: 1.15.6 form-data: 4.0.0 proxy-from-env: 1.1.0 transitivePeerDependencies: @@ -663,10 +606,6 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /base64-js@1.5.1: - resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - dev: false - /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: @@ -686,20 +625,13 @@ packages: fill-range: 7.0.1 dev: true - /buffer@6.0.3: - resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} - dependencies: - base64-js: 1.5.1 - ieee754: 1.2.1 - dev: false - /cacache@18.0.2: resolution: {integrity: sha512-r3NU8h/P+4lVUHfeRw1dtgQYar3DZMm4/cm2bZgOvrFC/su7budSOeqh52VJIC4U4iG1WWwV6vRW0znqBvxNuw==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: '@npmcli/fs': 3.1.0 fs-minipass: 3.0.3 - glob: 10.3.10 + glob: 10.3.12 lru-cache: 10.2.0 minipass: 7.0.4 minipass-collect: 2.0.1 @@ -707,17 +639,10 @@ packages: minipass-pipeline: 1.2.4 p-map: 4.0.0 ssri: 10.0.5 - tar: 6.1.15 + tar: 6.2.1 unique-filename: 3.0.0 dev: false - /call-bind@1.0.2: - resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} - dependencies: - function-bind: 1.1.1 - get-intrinsic: 1.2.1 - dev: true - /call-bind@1.0.7: resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} engines: {node: '>= 0.4'} @@ -726,7 +651,7 @@ packages: es-errors: 1.3.0 function-bind: 1.1.2 get-intrinsic: 1.2.4 - set-function-length: 1.2.1 + set-function-length: 1.2.2 dev: true /callsites@3.1.0: @@ -805,6 +730,33 @@ packages: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} dev: true + /data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + + /data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.7 + es-errors: 1.3.0 + is-data-view: 1.0.1 + dev: true + /debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -840,20 +792,12 @@ packages: gopd: 1.0.1 dev: true - /define-properties@1.2.0: - resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} - engines: {node: '>= 0.4'} - dependencies: - has-property-descriptors: 1.0.0 - object-keys: 1.1.1 - dev: true - /define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.2 object-keys: 1.1.1 dev: true @@ -862,10 +806,6 @@ packages: engines: {node: '>=0.4.0'} dev: true - /delegates@1.0.0: - resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==} - dev: false - /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} @@ -920,57 +860,21 @@ packages: resolution: {integrity: sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==} dev: false - /es-abstract@1.21.2: - resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} - engines: {node: '>= 0.4'} - dependencies: - array-buffer-byte-length: 1.0.0 - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - es-set-tostringtag: 2.0.1 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.5 - get-intrinsic: 1.2.1 - get-symbol-description: 1.0.0 - globalthis: 1.0.3 - gopd: 1.0.1 - has: 1.0.3 - has-property-descriptors: 1.0.0 - has-proto: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - is-array-buffer: 3.0.2 - is-callable: 1.2.7 - is-negative-zero: 2.0.2 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 - is-string: 1.0.7 - is-typed-array: 1.1.10 - is-weakref: 1.0.2 - object-inspect: 1.12.3 - object-keys: 1.1.1 - object.assign: 4.1.4 - regexp.prototype.flags: 1.5.0 - safe-regex-test: 1.0.0 - string.prototype.trim: 1.2.7 - string.prototype.trimend: 1.0.6 - string.prototype.trimstart: 1.0.6 - typed-array-length: 1.0.4 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.9 - dev: true - - /es-abstract@1.22.4: - resolution: {integrity: sha512-vZYJlk2u6qHYxBOTjAeg7qUxHdNfih64Uu2J8QqWgXZ2cri0ZpJAkzDUK/q593+mvKwlxyaxr6F1Q+3LKoQRgg==} + /es-abstract@1.23.3: + resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} engines: {node: '>= 0.4'} dependencies: array-buffer-byte-length: 1.0.1 arraybuffer.prototype.slice: 1.0.3 - available-typed-arrays: 1.0.6 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 es-define-property: 1.0.0 es-errors: 1.3.0 - es-set-tostringtag: 2.0.2 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 es-to-primitive: 1.2.1 function.prototype.name: 1.1.6 get-intrinsic: 1.2.4 @@ -978,15 +882,16 @@ packages: globalthis: 1.0.3 gopd: 1.0.1 has-property-descriptors: 1.0.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 + hasown: 2.0.2 internal-slot: 1.0.7 is-array-buffer: 3.0.4 is-callable: 1.2.7 - is-negative-zero: 2.0.2 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 is-regex: 1.1.4 - is-shared-array-buffer: 1.0.2 + is-shared-array-buffer: 1.0.3 is-string: 1.0.7 is-typed-array: 1.1.13 is-weakref: 1.0.2 @@ -994,21 +899,17 @@ packages: object-keys: 1.1.1 object.assign: 4.1.5 regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 - string.prototype.trimstart: 1.0.7 - typed-array-buffer: 1.0.1 - typed-array-byte-length: 1.0.0 - typed-array-byte-offset: 1.0.0 - typed-array-length: 1.0.4 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.2 + typed-array-length: 1.0.6 unbox-primitive: 1.0.2 - which-typed-array: 1.1.14 - dev: true - - /es-array-method-boxes-properly@1.0.0: - resolution: {integrity: sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA==} + which-typed-array: 1.1.15 dev: true /es-define-property@1.0.0: @@ -1023,55 +924,46 @@ packages: engines: {node: '>= 0.4'} dev: true - /es-iterator-helpers@1.0.17: - resolution: {integrity: sha512-lh7BsUqelv4KUbR5a/ZTaGGIMLCjPGPqJ6q+Oq24YP0RdyptX1uzm4vvaqzk7Zx3bpl/76YLTTDj9L7uYQ92oQ==} + /es-iterator-helpers@1.0.18: + resolution: {integrity: sha512-scxAJaewsahbqTYrGKJihhViaM6DDZDDoucfvzNbK0pOren1g/daDQ3IAhzn+1G14rBG7w+i5N+qul60++zlKA==} engines: {node: '>= 0.4'} dependencies: - asynciterator.prototype: 1.0.0 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 - es-set-tostringtag: 2.0.2 + es-set-tostringtag: 2.0.3 function-bind: 1.1.2 get-intrinsic: 1.2.4 globalthis: 1.0.3 has-property-descriptors: 1.0.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 internal-slot: 1.0.7 iterator.prototype: 1.1.2 - safe-array-concat: 1.1.0 + safe-array-concat: 1.1.2 dev: true - /es-set-tostringtag@2.0.1: - resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + /es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - has-tostringtag: 1.0.0 + es-errors: 1.3.0 dev: true - /es-set-tostringtag@2.0.2: - resolution: {integrity: sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==} + /es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} engines: {node: '>= 0.4'} dependencies: get-intrinsic: 1.2.4 - has-tostringtag: 1.0.0 - hasown: 2.0.1 - dev: true - - /es-shim-unscopables@1.0.0: - resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} - dependencies: - has: 1.0.3 + has-tostringtag: 1.0.2 + hasown: 2.0.2 dev: true /es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} dependencies: - hasown: 2.0.1 + hasown: 2.0.2 dev: true /es-to-primitive@1.2.1: @@ -1088,7 +980,7 @@ packages: engines: {node: '>=10'} dev: true - /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0): + /eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0): resolution: {integrity: sha512-xaX3z4ZZIcFLvh2oUNvcX5oEofXda7giYmuplVxoOg5A7EXJMrUyqRgR+mhDhPK8LZ4PttFOBvCYDbX3sUoUig==} engines: {node: ^10.12.0 || >=12.0.0} peerDependencies: @@ -1096,14 +988,14 @@ packages: eslint-plugin-import: ^2.25.2 dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.56.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) - object.assign: 4.1.4 - object.entries: 1.1.6 - semver: 6.3.0 + eslint: 8.57.0 + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0) + object.assign: 4.1.5 + object.entries: 1.1.8 + semver: 6.3.1 dev: true - /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.33.2)(eslint@8.56.0): + /eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1)(eslint-plugin-jsx-a11y@6.8.0)(eslint-plugin-react-hooks@4.6.0)(eslint-plugin-react@7.34.1)(eslint@8.57.0): resolution: {integrity: sha512-T75QYQVQX57jiNgpF9r1KegMICE94VYwoFQyMGhrvc+lB8YF2E/M/PYDaQe1AJcWaEgqLE+ErXV1Og/+6Vyzew==} engines: {node: ^10.12.0 || ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: @@ -1113,14 +1005,14 @@ packages: eslint-plugin-react: ^7.28.0 eslint-plugin-react-hooks: ^4.3.0 dependencies: - eslint: 8.56.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.56.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0) - eslint-plugin-jsx-a11y: 6.8.0(eslint@8.56.0) - eslint-plugin-react: 7.33.2(eslint@8.56.0) - eslint-plugin-react-hooks: 4.6.0(eslint@8.56.0) - object.assign: 4.1.4 - object.entries: 1.1.6 + eslint: 8.57.0 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1)(eslint@8.57.0) + eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0) + eslint-plugin-jsx-a11y: 6.8.0(eslint@8.57.0) + eslint-plugin-react: 7.34.1(eslint@8.57.0) + eslint-plugin-react-hooks: 4.6.0(eslint@8.57.0) + object.assign: 4.1.5 + object.entries: 1.1.8 dev: true /eslint-import-resolver-node@0.3.9: @@ -1133,8 +1025,8 @@ packages: - supports-color dev: true - /eslint-module-utils@2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0): - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + /eslint-module-utils@2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1154,15 +1046,15 @@ packages: eslint-import-resolver-webpack: optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.4.4) + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) debug: 3.2.7 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color dev: true - /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.0.2)(eslint@8.56.0): + /eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.7.0)(eslint@8.57.0): resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} engines: {node: '>=4'} peerDependencies: @@ -1172,23 +1064,23 @@ packages: '@typescript-eslint/parser': optional: true dependencies: - '@typescript-eslint/parser': 7.0.2(eslint@8.56.0)(typescript@5.4.4) - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.4 + '@typescript-eslint/parser': 7.7.0(eslint@8.57.0)(typescript@5.4.5) + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.56.0 + eslint: 8.57.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@7.0.2)(eslint-import-resolver-node@0.3.9)(eslint@8.56.0) - hasown: 2.0.1 + eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.7.0)(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + hasown: 2.0.2 is-core-module: 2.13.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.2 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 tsconfig-paths: 3.15.0 transitivePeerDependencies: @@ -1197,63 +1089,65 @@ packages: - supports-color dev: true - /eslint-plugin-jsx-a11y@6.8.0(eslint@8.56.0): + /eslint-plugin-jsx-a11y@6.8.0(eslint@8.57.0): resolution: {integrity: sha512-Hdh937BS3KdwwbBaKd5+PLCOmYY6U4f2h9Z2ktwtNKvIdIEu137rjYbcb9ApSbVJfWxANNuiKTD/9tOKjK9qOA==} engines: {node: '>=4.0'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - '@babel/runtime': 7.23.9 + '@babel/runtime': 7.24.4 aria-query: 5.3.0 - array-includes: 3.1.7 + array-includes: 3.1.8 array.prototype.flatmap: 1.3.2 ast-types-flow: 0.0.8 axe-core: 4.7.0 axobject-query: 3.2.1 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.17 - eslint: 8.56.0 - hasown: 2.0.1 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 - object.entries: 1.1.7 - object.fromentries: 2.0.7 + object.entries: 1.1.8 + object.fromentries: 2.0.8 dev: true - /eslint-plugin-react-hooks@4.6.0(eslint@8.56.0): + /eslint-plugin-react-hooks@4.6.0(eslint@8.57.0): resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.56.0 + eslint: 8.57.0 dev: true - /eslint-plugin-react@7.33.2(eslint@8.56.0): - resolution: {integrity: sha512-73QQMKALArI8/7xGLNI/3LylrEYrlKZSb5C9+q3OtOewTnMQi5cT+aE9E41sLCmli3I9PGGmD1yiZydyo4FEPw==} + /eslint-plugin-react@7.34.1(eslint@8.57.0): + resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.6 - array.prototype.flatmap: 1.3.1 - array.prototype.tosorted: 1.1.1 + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.toreversed: 1.1.2 + array.prototype.tosorted: 1.1.3 doctrine: 2.1.0 - es-iterator-helpers: 1.0.17 - eslint: 8.56.0 + es-iterator-helpers: 1.0.18 + eslint: 8.57.0 estraverse: 5.3.0 - jsx-ast-utils: 3.3.3 + jsx-ast-utils: 3.3.5 minimatch: 3.1.2 - object.entries: 1.1.6 - object.fromentries: 2.0.6 - object.hasown: 1.1.2 - object.values: 1.1.6 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.hasown: 1.1.4 + object.values: 1.2.0 prop-types: 15.8.1 - resolve: 2.0.0-next.4 + resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.8 + string.prototype.matchall: 4.0.11 dev: true /eslint-scope@7.2.2: @@ -1269,15 +1163,15 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint@8.56.0: - resolution: {integrity: sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ==} + /eslint@8.57.0: + resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.56.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) '@eslint-community/regexpp': 4.10.0 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.56.0 + '@eslint/js': 8.57.0 '@humanwhocodes/config-array': 0.11.14 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 @@ -1297,9 +1191,9 @@ packages: file-entry-cache: 6.0.1 find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.20.0 + globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.2.4 + ignore: 5.3.1 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -1349,16 +1243,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /event-target-shim@5.0.1: - resolution: {integrity: sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==} - engines: {node: '>=6'} - dev: false - - /events@3.3.0: - resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} - engines: {node: '>=0.8.x'} - dev: false - /exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} dev: false @@ -1367,8 +1251,8 @@ packages: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob@3.2.12: - resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} + /fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} engines: {node: '>=8.6.0'} dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1386,8 +1270,8 @@ packages: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq@1.15.0: - resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==} + /fastq@1.17.1: + resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} dependencies: reusify: 1.0.4 dev: true @@ -1396,7 +1280,7 @@ packages: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flat-cache: 3.0.4 + flat-cache: 3.2.0 dev: true /fill-range@7.0.1: @@ -1414,20 +1298,21 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache@3.0.4: - resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} + /flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: - flatted: 3.2.7 + flatted: 3.3.1 + keyv: 4.5.4 rimraf: 3.0.2 dev: true - /flatted@3.2.7: - resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==} + /flatted@3.3.1: + resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} dev: true - /follow-redirects@1.15.2: - resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==} + /follow-redirects@1.15.6: + resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==} engines: {node: '>=4.0'} peerDependencies: debug: '*' @@ -1447,7 +1332,7 @@ packages: engines: {node: '>=14'} dependencies: cross-spawn: 7.0.3 - signal-exit: 4.0.2 + signal-exit: 4.1.0 dev: false /form-data@4.0.0: @@ -1476,31 +1361,17 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /function-bind@1.1.1: - resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - dev: true - /function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} dev: true - /function.prototype.name@1.1.5: - resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - functions-have-names: 1.2.3 - dev: true - /function.prototype.name@1.1.6: resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - define-properties: 1.2.0 - es-abstract: 1.22.4 + define-properties: 1.2.1 + es-abstract: 1.23.3 functions-have-names: 1.2.3 dev: true @@ -1516,38 +1387,21 @@ packages: color-support: 1.1.3 console-control-strings: 1.1.0 has-unicode: 2.0.1 - signal-exit: 4.0.2 + signal-exit: 4.1.0 string-width: 4.2.3 strip-ansi: 6.0.1 wide-align: 1.1.5 dev: false - /get-intrinsic@1.2.1: - resolution: {integrity: sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==} - dependencies: - function-bind: 1.1.1 - has: 1.0.3 - has-proto: 1.0.1 - has-symbols: 1.0.3 - dev: true - /get-intrinsic@1.2.4: resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 function-bind: 1.1.2 - has-proto: 1.0.1 + has-proto: 1.0.3 has-symbols: 1.0.3 - hasown: 2.0.1 - dev: true - - /get-symbol-description@1.0.0: - resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 + hasown: 2.0.2 dev: true /get-symbol-description@1.0.2: @@ -1573,16 +1427,16 @@ packages: is-glob: 4.0.3 dev: true - /glob@10.3.10: - resolution: {integrity: sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==} + /glob@10.3.12: + resolution: {integrity: sha512-TCNv8vJ+xz4QiqTpfOJA7HvYv+tNIRHKfUWw/q+v2jdgN4ebz+KY9tGx5J4rHP0o84mNP+ApH66HRX8us3Khqg==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true dependencies: foreground-child: 3.1.1 jackspeak: 2.3.6 - minimatch: 9.0.3 + minimatch: 9.0.4 minipass: 7.0.4 - path-scurry: 1.10.1 + path-scurry: 1.10.2 dev: false /glob@7.2.3: @@ -1603,10 +1457,10 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.9.2 + path-scurry: 1.10.2 - /globals@13.20.0: - resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} + /globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 @@ -1616,7 +1470,7 @@ packages: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.2.0 + define-properties: 1.2.1 dev: true /globby@11.1.0: @@ -1625,8 +1479,8 @@ packages: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.2.12 - ignore: 5.2.4 + fast-glob: 3.3.2 + ignore: 5.3.1 merge2: 1.4.1 slash: 3.0.0 dev: true @@ -1634,7 +1488,7 @@ packages: /gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} dependencies: - get-intrinsic: 1.2.1 + get-intrinsic: 1.2.4 dev: true /graceful-fs@4.2.11: @@ -1654,20 +1508,14 @@ packages: engines: {node: '>=8'} dev: true - /has-property-descriptors@1.0.0: - resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} - dependencies: - get-intrinsic: 1.2.1 - dev: true - /has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} dependencies: es-define-property: 1.0.0 dev: true - /has-proto@1.0.1: - resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + /has-proto@1.0.3: + resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} engines: {node: '>= 0.4'} dev: true @@ -1676,13 +1524,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /has-tostringtag@1.0.0: - resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} - engines: {node: '>= 0.4'} - dependencies: - has-symbols: 1.0.3 - dev: true - /has-tostringtag@1.0.2: resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} engines: {node: '>= 0.4'} @@ -1694,15 +1535,8 @@ packages: resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==} dev: false - /has@1.0.3: - resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} - engines: {node: '>= 0.4.0'} - dependencies: - function-bind: 1.1.1 - dev: true - - /hasown@2.0.1: - resolution: {integrity: sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==} + /hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} dependencies: function-bind: 1.1.2 @@ -1712,21 +1546,21 @@ packages: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} dev: false - /http-proxy-agent@7.0.1: - resolution: {integrity: sha512-My1KCEPs6A0hb4qCVzYp8iEvA8j8YqcvXLZZH8C9OFuTYpYjHE7N2dtG3mRl1HMD4+VGXpF3XcDVcxGBT7yDZQ==} + /http-proxy-agent@7.0.2: + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4 transitivePeerDependencies: - supports-color dev: false - /https-proxy-agent@7.0.3: - resolution: {integrity: sha512-kCnwztfX0KZJSLOBrcL0emLeFako55NWMovvyPP2AjsghNk9RB1yjSI+jVumPHYZsNXegNoqupSW9IY3afSH8w==} + /https-proxy-agent@7.0.4: + resolution: {integrity: sha512-wlwpilI7YdjSkWaQ/7omYBMTliDcmCN8OLihO6I9B86g06lMyAoqgoDpV0XqoaPOKj+0DIdAvnsWfyAAhmimcg==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4 transitivePeerDependencies: - supports-color @@ -1741,12 +1575,8 @@ packages: dev: false optional: true - /ieee754@1.2.1: - resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - dev: false - - /ignore@5.2.4: - resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==} + /ignore@5.3.1: + resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} engines: {node: '>= 4'} dev: true @@ -1778,35 +1608,22 @@ packages: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /internal-slot@1.0.5: - resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} - engines: {node: '>= 0.4'} - dependencies: - get-intrinsic: 1.2.1 - has: 1.0.3 - side-channel: 1.0.4 - dev: true - /internal-slot@1.0.7: resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} engines: {node: '>= 0.4'} dependencies: es-errors: 1.3.0 - hasown: 2.0.1 - side-channel: 1.0.4 + hasown: 2.0.2 + side-channel: 1.0.6 dev: true - /ip@2.0.0: - resolution: {integrity: sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==} - dev: false - - /is-array-buffer@3.0.2: - resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + /ip-address@9.0.5: + resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} + engines: {node: '>= 12'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-typed-array: 1.1.10 - dev: true + jsbn: 1.1.0 + sprintf-js: 1.1.3 + dev: false /is-array-buffer@3.0.4: resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} @@ -1820,7 +1637,7 @@ packages: resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-bigint@1.0.4: @@ -1833,8 +1650,8 @@ packages: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true /is-callable@1.2.7: @@ -1842,23 +1659,24 @@ packages: engines: {node: '>= 0.4'} dev: true - /is-core-module@2.12.1: - resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==} + /is-core-module@2.13.1: + resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} dependencies: - has: 1.0.3 + hasown: 2.0.2 dev: true - /is-core-module@2.13.1: - resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + /is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} dependencies: - hasown: 2.0.1 + is-typed-array: 1.1.13 dev: true /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-extglob@2.1.1: @@ -1881,7 +1699,7 @@ packages: resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-glob@4.0.3: @@ -1895,12 +1713,13 @@ packages: resolution: {integrity: sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==} dev: false - /is-map@2.0.2: - resolution: {integrity: sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==} + /is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} dev: true - /is-negative-zero@2.0.2: - resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} + /is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} engines: {node: '>= 0.4'} dev: true @@ -1908,7 +1727,7 @@ packages: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-number@7.0.0: @@ -1925,25 +1744,27 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - has-tostringtag: 1.0.0 + call-bind: 1.0.7 + has-tostringtag: 1.0.2 dev: true - /is-set@2.0.2: - resolution: {integrity: sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==} + /is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} dev: true - /is-shared-array-buffer@1.0.2: - resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + /is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 dev: true /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: - has-tostringtag: 1.0.0 + has-tostringtag: 1.0.2 dev: true /is-symbol@1.0.4: @@ -1953,36 +1774,27 @@ packages: has-symbols: 1.0.3 dev: true - /is-typed-array@1.1.10: - resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - dev: true - /is-typed-array@1.1.13: resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} engines: {node: '>= 0.4'} dependencies: - which-typed-array: 1.1.14 + which-typed-array: 1.1.15 dev: true - /is-weakmap@2.0.1: - resolution: {integrity: sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==} + /is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} dev: true /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 dev: true - /is-weakset@2.0.2: - resolution: {integrity: sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==} + /is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 get-intrinsic: 1.2.4 @@ -2006,8 +1818,8 @@ packages: define-properties: 1.2.1 get-intrinsic: 1.2.4 has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.5 - set-function-name: 2.0.1 + reflect.getprototypeof: 1.0.6 + set-function-name: 2.0.2 dev: true /jackspeak@2.3.6: @@ -2030,6 +1842,14 @@ packages: argparse: 2.0.1 dev: true + /jsbn@1.1.0: + resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} + dev: false + + /json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: true + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true @@ -2045,22 +1865,20 @@ packages: minimist: 1.2.8 dev: true - /jsx-ast-utils@3.3.3: - resolution: {integrity: sha512-fYQHZTZ8jSfmWZ0iyzfwiU4WDX4HpHbMCZ3gPlWYiCl3BoeOTsqKBqnTVfH2rYT7eP5c3sVbeSPHnnJOaTrWiw==} + /jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.6 - object.assign: 4.1.4 + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.5 + object.values: 1.2.0 dev: true - /jsx-ast-utils@3.3.5: - resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} - engines: {node: '>=4.0'} + /keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} dependencies: - array-includes: 3.1.7 - array.prototype.flat: 1.3.1 - object.assign: 4.1.4 - object.values: 1.1.6 + json-buffer: 3.0.1 dev: true /language-subtag-registry@0.3.22: @@ -2103,7 +1921,6 @@ packages: /lru-cache@10.2.0: resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} - dev: false /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} @@ -2111,15 +1928,11 @@ packages: dependencies: yallist: 4.0.0 - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} - engines: {node: 14 || >=16.14} - /make-fetch-happen@13.0.0: resolution: {integrity: sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==} engines: {node: ^16.14.0 || >=18.0.0} dependencies: - '@npmcli/agent': 2.2.1 + '@npmcli/agent': 2.2.2 cacache: 18.0.2 http-cache-semantics: 4.1.1 is-lambda: 1.0.1 @@ -2171,8 +1984,8 @@ packages: dependencies: brace-expansion: 2.0.1 - /minimatch@9.0.3: - resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + /minimatch@9.0.4: + resolution: {integrity: sha512-KqWh+VchfxcMNRAJjj2tnsSJdNbHsVgnkBhTNrW7AjVo6OvLtxw8zfT9oLw1JSohlFzJ8jCoTgaoXvJ+kHt6fw==} engines: {node: '>=16 || 14 >=14.17'} dependencies: brace-expansion: 2.0.1 @@ -2236,14 +2049,9 @@ packages: engines: {node: '>=8'} dev: false - /minipass@6.0.2: - resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} - engines: {node: '>=16 || 14 >=14.17'} - /minipass@7.0.4: resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} - dev: false /minizlib@2.1.2: resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==} @@ -2286,13 +2094,13 @@ packages: dependencies: env-paths: 2.2.1 exponential-backoff: 3.1.1 - glob: 10.3.10 + glob: 10.3.12 graceful-fs: 4.2.11 make-fetch-happen: 13.0.0 nopt: 7.2.0 proc-log: 3.0.0 semver: 7.6.0 - tar: 6.1.15 + tar: 6.2.1 which: 4.0.0 transitivePeerDependencies: - supports-color @@ -2310,7 +2118,7 @@ packages: resolution: {integrity: sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dependencies: - are-we-there-yet: 4.0.0 + are-we-there-yet: 4.0.2 console-control-strings: 1.1.0 gauge: 5.0.1 set-blocking: 2.0.0 @@ -2321,10 +2129,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /object-inspect@1.12.3: - resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} - dev: true - /object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} dev: true @@ -2334,16 +2138,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /object.assign@4.1.4: - resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - has-symbols: 1.0.3 - object-keys: 1.1.1 - dev: true - /object.assign@4.1.5: resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} @@ -2354,75 +2148,50 @@ packages: object-keys: 1.1.1 dev: true - /object.entries@1.1.6: - resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} + /object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /object.entries@1.1.7: - resolution: {integrity: sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - /object.fromentries@2.0.6: - resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} + /object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + /object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 - dev: true - - /object.groupby@1.0.2: - resolution: {integrity: sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw==} - dependencies: - array.prototype.filter: 1.0.3 call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 - es-errors: 1.3.0 + es-abstract: 1.23.3 dev: true - /object.hasown@1.1.2: - resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} - dependencies: - define-properties: 1.2.0 - es-abstract: 1.21.2 - dev: true - - /object.values@1.1.6: - resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + /object.hasown@1.1.4: + resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + /object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.22.4 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true /once@1.4.0: @@ -2489,20 +2258,12 @@ packages: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} dev: true - /path-scurry@1.10.1: - resolution: {integrity: sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: lru-cache: 10.2.0 minipass: 7.0.4 - dev: false - - /path-scurry@1.9.2: - resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} - engines: {node: '>=16 || 14 >=14.17'} - dependencies: - lru-cache: 9.1.1 - minipass: 6.0.2 /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} @@ -2518,6 +2279,11 @@ packages: engines: {node: '>=8.6'} dev: true + /possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + dev: true + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -2528,11 +2294,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: false - /process@0.11.10: - resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} - engines: {node: '>= 0.6.0'} - dev: false - /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} @@ -2558,8 +2319,8 @@ packages: resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} dev: true - /punycode@2.3.0: - resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} + /punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} dev: true @@ -2571,23 +2332,13 @@ packages: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} dev: true - /readable-stream@4.4.0: - resolution: {integrity: sha512-kDMOq0qLtxV9f/SQv522h8cxZBqNZXuXNyjyezmfAAuribMyVXziljpQ/uQhfE1XLg2/TLTW2DsnoE4VAi/krg==} - engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - dependencies: - abort-controller: 3.0.0 - buffer: 6.0.3 - events: 3.3.0 - process: 0.11.10 - dev: false - - /reflect.getprototypeof@1.0.5: - resolution: {integrity: sha512-62wgfC8dJWrmxv44CA36pLDnP6KKl3Vhxb7PL+8+qrrFMMoJij4vgiMP8zV4O8+CBMXY1mHxI5fITGHXFHVmQQ==} + /reflect.getprototypeof@1.0.6: + resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 define-properties: 1.2.1 - es-abstract: 1.22.4 + es-abstract: 1.23.3 es-errors: 1.3.0 get-intrinsic: 1.2.4 globalthis: 1.0.3 @@ -2598,15 +2349,6 @@ packages: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} dev: true - /regexp.prototype.flags@1.5.0: - resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} - engines: {node: '>= 0.4'} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - functions-have-names: 1.2.3 - dev: true - /regexp.prototype.flags@1.5.2: resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} engines: {node: '>= 0.4'} @@ -2614,7 +2356,7 @@ packages: call-bind: 1.0.7 define-properties: 1.2.1 es-errors: 1.3.0 - set-function-name: 2.0.1 + set-function-name: 2.0.2 dev: true /resolve-from@4.0.0: @@ -2631,11 +2373,11 @@ packages: supports-preserve-symlinks-flag: 1.0.0 dev: true - /resolve@2.0.0-next.4: - resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + /resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true dependencies: - is-core-module: 2.12.1 + is-core-module: 2.13.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 dev: true @@ -2670,8 +2412,8 @@ packages: queue-microtask: 1.2.3 dev: true - /safe-array-concat@1.1.0: - resolution: {integrity: sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==} + /safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} dependencies: call-bind: 1.0.7 @@ -2680,14 +2422,6 @@ packages: isarray: 2.0.5 dev: true - /safe-regex-test@1.0.0: - resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} - dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - is-regex: 1.1.4 - dev: true - /safe-regex-test@1.0.3: resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} engines: {node: '>= 0.4'} @@ -2703,11 +2437,6 @@ packages: dev: false optional: true - /semver@6.3.0: - resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} - hasBin: true - dev: true - /semver@6.3.1: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true @@ -2724,8 +2453,8 @@ packages: resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} dev: false - /set-function-length@1.2.1: - resolution: {integrity: sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==} + /set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 @@ -2736,11 +2465,12 @@ packages: has-property-descriptors: 1.0.2 dev: true - /set-function-name@2.0.1: - resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} + /set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} dependencies: define-data-property: 1.1.4 + es-errors: 1.3.0 functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 dev: true @@ -2755,16 +2485,18 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - /side-channel@1.0.4: - resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + /side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - get-intrinsic: 1.2.1 - object-inspect: 1.12.3 + call-bind: 1.0.7 + es-errors: 1.3.0 + get-intrinsic: 1.2.4 + object-inspect: 1.13.1 dev: true - /signal-exit@4.0.2: - resolution: {integrity: sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q==} + /signal-exit@4.1.0: + resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} dev: false @@ -2778,25 +2510,29 @@ packages: engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} dev: false - /socks-proxy-agent@8.0.2: - resolution: {integrity: sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==} + /socks-proxy-agent@8.0.3: + resolution: {integrity: sha512-VNegTZKhuGq5vSD6XNKlbqWhyt/40CgoEw8XxD6dhnm8Jq9IEa3nIa4HwnM8XOqU0CdB0BwWVXusqiFXfHB3+A==} engines: {node: '>= 14'} dependencies: - agent-base: 7.1.0 + agent-base: 7.1.1 debug: 4.3.4 - socks: 2.7.1 + socks: 2.8.3 transitivePeerDependencies: - supports-color dev: false - /socks@2.7.1: - resolution: {integrity: sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==} - engines: {node: '>= 10.13.0', npm: '>= 3.0.0'} + /socks@2.8.3: + resolution: {integrity: sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==} + engines: {node: '>= 10.0.0', npm: '>= 3.0.0'} dependencies: - ip: 2.0.0 + ip-address: 9.0.5 smart-buffer: 4.2.0 dev: false + /sprintf-js@1.1.3: + resolution: {integrity: sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==} + dev: false + /ssri@10.0.5: resolution: {integrity: sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -2822,67 +2558,49 @@ packages: strip-ansi: 7.1.0 dev: false - /string.prototype.matchall@4.0.8: - resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 - get-intrinsic: 1.2.1 - has-symbols: 1.0.3 - internal-slot: 1.0.5 - regexp.prototype.flags: 1.5.0 - side-channel: 1.0.4 - dev: true - - /string.prototype.trim@1.2.7: - resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + /string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + call-bind: 1.0.7 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.4 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.2 + set-function-name: 2.0.2 + side-channel: 1.0.6 dev: true - /string.prototype.trim@1.2.8: - resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} + /string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - define-properties: 1.2.0 - es-abstract: 1.22.4 - dev: true - - /string.prototype.trimend@1.0.6: - resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + define-properties: 1.2.1 + es-abstract: 1.23.3 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + /string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} dependencies: call-bind: 1.0.7 - define-properties: 1.2.0 - es-abstract: 1.22.4 - dev: true - - /string.prototype.trimstart@1.0.6: - resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} - dependencies: - call-bind: 1.0.2 - define-properties: 1.2.0 - es-abstract: 1.21.2 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true - /string.prototype.trimstart@1.0.7: - resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + /string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 - define-properties: 1.2.0 - es-abstract: 1.22.4 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 dev: true /strip-ansi@6.0.1: @@ -2920,8 +2638,8 @@ packages: engines: {node: '>= 0.4'} dev: true - /tar@6.1.15: - resolution: {integrity: sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==} + /tar@6.2.1: + resolution: {integrity: sha512-DZ4yORTwrbTj/7MZYq2w+/ZFdI6OZ/f9SFHR+71gIVUZhOQPHzVCLpvRnPgyaMpfWxxk/4ONva3GQSyNIKRv6A==} engines: {node: '>=10'} dependencies: chownr: 2.0.0 @@ -2943,13 +2661,13 @@ packages: is-number: 7.0.0 dev: true - /ts-api-utils@1.2.1(typescript@5.4.4): - resolution: {integrity: sha512-RIYA36cJn2WiH9Hy77hdF9r7oEwxAtB/TS9/S4Qd90Ap4z5FSiin5zEiTL44OII1Y3IIlEvxwxFUVgrHSZ/UpA==} + /ts-api-utils@1.3.0(typescript@5.4.5): + resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' dependencies: - typescript: 5.4.4 + typescript: 5.4.5 dev: true /tsconfig-paths@3.15.0: @@ -2973,8 +2691,8 @@ packages: engines: {node: '>=10'} dev: true - /typed-array-buffer@1.0.1: - resolution: {integrity: sha512-RSqu1UEuSlrBhHTWC8O9FnPjOduNs4M7rJ4pRKoEjtx1zUNOPN2sSXHLDX+Y2WPbHIxbvg4JFo2DNAEfPIKWoQ==} + /typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 @@ -2982,37 +2700,43 @@ packages: is-typed-array: 1.1.13 dev: true - /typed-array-byte-length@1.0.0: - resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} + /typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 + gopd: 1.0.1 + has-proto: 1.0.3 is-typed-array: 1.1.13 dev: true - /typed-array-byte-offset@1.0.0: - resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} + /typed-array-byte-offset@1.0.2: + resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.6 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 - has-proto: 1.0.1 + gopd: 1.0.1 + has-proto: 1.0.3 is-typed-array: 1.1.13 dev: true - /typed-array-length@1.0.4: - resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + /typed-array-length@1.0.6: + resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + engines: {node: '>= 0.4'} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 for-each: 0.3.3 - is-typed-array: 1.1.10 + gopd: 1.0.1 + has-proto: 1.0.3 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 dev: true - /typescript@5.4.4: - resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -3020,7 +2744,7 @@ packages: /unbox-primitive@1.0.2: resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - call-bind: 1.0.2 + call-bind: 1.0.7 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -3047,7 +2771,7 @@ packages: /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: - punycode: 2.3.0 + punycode: 2.3.1 dev: true /which-boxed-primitive@1.0.2: @@ -3064,8 +2788,8 @@ packages: resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} engines: {node: '>= 0.4'} dependencies: - function.prototype.name: 1.1.5 - has-tostringtag: 1.0.0 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 is-async-function: 2.0.0 is-date-object: 1.0.5 is-finalizationregistry: 1.0.2 @@ -3074,42 +2798,31 @@ packages: is-weakref: 1.0.2 isarray: 2.0.5 which-boxed-primitive: 1.0.2 - which-collection: 1.0.1 - which-typed-array: 1.1.9 + which-collection: 1.0.2 + which-typed-array: 1.1.15 dev: true - /which-collection@1.0.1: - resolution: {integrity: sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==} + /which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} dependencies: - is-map: 2.0.2 - is-set: 2.0.2 - is-weakmap: 2.0.1 - is-weakset: 2.0.2 + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 dev: true - /which-typed-array@1.1.14: - resolution: {integrity: sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==} + /which-typed-array@1.1.15: + resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} engines: {node: '>= 0.4'} dependencies: - available-typed-arrays: 1.0.6 + available-typed-arrays: 1.0.7 call-bind: 1.0.7 for-each: 0.3.3 gopd: 1.0.1 has-tostringtag: 1.0.2 dev: true - /which-typed-array@1.1.9: - resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} - engines: {node: '>= 0.4'} - dependencies: - available-typed-arrays: 1.0.5 - call-bind: 1.0.2 - for-each: 0.3.3 - gopd: 1.0.1 - has-tostringtag: 1.0.0 - is-typed-array: 1.1.10 - dev: true - /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} diff --git a/test/package.json b/test/package.json index 68b56c6aa..f51124e1a 100644 --- a/test/package.json +++ b/test/package.json @@ -8,32 +8,32 @@ "testIO": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register 'tests/io/**/*.ts'", "testIOIO": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register 'tests/io/io.test.ts'", "testCore": "env TS_NODE_COMPILER_OPTIONS='{\"module\": \"commonjs\" }' mocha -r ts-node/register 'tests/core/core.test.ts'", - "test-appveyor": "set APPVEYOR_BUILD=true && mocha -r ts-node/register --timeout 30000 ./tests/index.test.ts", - "test-docker": "DOCKER_BUILD=true mocha -r ts-node/register --timeout 60000 ./tests/index.test.ts", + "test-appveyor": "set APPVEYOR_BUILD=true && mocha -r ts-node/register --timeout 30000 ./tests/**/*.test.ts", + "test-docker": "DOCKER_BUILD=true mocha -r ts-node/register --timeout 60000 ./tests/**/*.test.ts", "test-externalMemTrackingOther": "mocha -r ts-node/register --timeout 30000 ./externalMemTracking/other/index.test.ts", "test-externalMemTracking-testDisableWithEnv": "mocha -r ts-node/register ./externalMemTracking/disableWithEnv.test.ts", "test-externalMemTracking-testDefaultDisabled": "mocha -r ts-node/register ./externalMemTracking/defaultDisabled.test.ts", "test-externalMemTracking": "npm run test-externalMemTracking-testDefaultDisabled && npm run test-externalMemTracking-testDisableWithEnv && npm run test-externalMemTrackingOther", - "gc": "set WITH_GC=true && mocha -r ts-node/register --expose-gc --timeout 2000 ./tests/index.test.ts", - "cover": "BINDINGS_DEBUG=true istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --timeout 30000 ./tests/index.test.ts", + "gc": "set WITH_GC=true && mocha -r ts-node/register --expose-gc --timeout 2000 ./tests/**/*.test.ts", + "cover": "BINDINGS_DEBUG=true istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --timeout 30000 ./tests/**/*.test.ts", "clean": "rimraf tests/**/*.js utils/*.js" }, "author": "justadudewhohacks", "license": "MIT", "dependencies": { "@u4/opencv4nodejs": "link:..", - "chai": "^4.3.7", + "chai": "^4.4.1", "istanbul": "^0.4.5", - "mocha": "^10.2.0" + "mocha": "^10.4.0" }, "devDependencies": { "@types/chai": "^4.3.14", "@types/chai-arrays": "^2.0.3", "@types/mocha": "^9.1.1", - "@types/node": "^20.12.6", + "@types/node": "^20.12.7", "chai-arrays": "^2.2.0", "rimraf": "^4.4.1", "ts-node": "^10.9.2", - "typescript": "^5.4.4" + "typescript": "^5.4.5" } } \ No newline at end of file diff --git a/test/pnpm-lock.yaml b/test/pnpm-lock.yaml index ba8ea30c9..25a30cd52 100644 --- a/test/pnpm-lock.yaml +++ b/test/pnpm-lock.yaml @@ -9,14 +9,14 @@ dependencies: specifier: link:.. version: link:.. chai: - specifier: ^4.3.7 - version: 4.3.7 + specifier: ^4.4.1 + version: 4.4.1 istanbul: specifier: ^0.4.5 version: 0.4.5 mocha: - specifier: ^10.2.0 - version: 10.2.0 + specifier: ^10.4.0 + version: 10.4.0 devDependencies: '@types/chai': @@ -29,8 +29,8 @@ devDependencies: specifier: ^9.1.1 version: 9.1.1 '@types/node': - specifier: ^20.12.6 - version: 20.12.6 + specifier: ^20.12.7 + version: 20.12.7 chai-arrays: specifier: ^2.2.0 version: 2.2.0 @@ -39,10 +39,10 @@ devDependencies: version: 4.4.1 ts-node: specifier: ^10.9.2 - version: 10.9.2(@types/node@20.12.6)(typescript@5.4.4) + version: 10.9.2(@types/node@20.12.7)(typescript@5.4.5) typescript: - specifier: ^5.4.4 - version: 5.4.4 + specifier: ^5.4.5 + version: 5.4.5 packages: @@ -53,8 +53,8 @@ packages: '@jridgewell/trace-mapping': 0.3.9 dev: true - /@jridgewell/resolve-uri@3.1.1: - resolution: {integrity: sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==} + /@jridgewell/resolve-uri@3.1.2: + resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} engines: {node: '>=6.0.0'} dev: true @@ -65,12 +65,12 @@ packages: /@jridgewell/trace-mapping@0.3.9: resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} dependencies: - '@jridgewell/resolve-uri': 3.1.1 + '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@tsconfig/node10@1.0.9: - resolution: {integrity: sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==} + /@tsconfig/node10@1.0.11: + resolution: {integrity: sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==} dev: true /@tsconfig/node12@1.0.11: @@ -99,8 +99,8 @@ packages: resolution: {integrity: sha512-Z61JK7DKDtdKTWwLeElSEBcWGRLY8g95ic5FoQqI9CMx0ns/Ghep3B4DfcEimiKMvtamNVULVNKEsiwV3aQmXw==} dev: true - /@types/node@20.12.6: - resolution: {integrity: sha512-3KurE8taB8GCvZBPngVbp0lk5CKi8M9f9k1rsADh0Evdz5SzJ+Q+Hx9uHoFGsLnLnd1xmkDQr2hVhlA0Mn0lKQ==} + /@types/node@20.12.7: + resolution: {integrity: sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==} dependencies: undici-types: 5.26.5 dev: true @@ -109,13 +109,13 @@ packages: resolution: {integrity: sha512-LEyx4aLEC3x6T0UguF6YILf+ntvmOaWsVfENmIW0E9H09vKlLDGelMjjSm0jkDHALj8A8quZ/HapKNigzwge+Q==} dev: false - /acorn-walk@8.2.0: - resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} + /acorn-walk@8.3.2: + resolution: {integrity: sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==} engines: {node: '>=0.4.0'} dev: true - /acorn@8.8.2: - resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + /acorn@8.11.3: + resolution: {integrity: sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==} engines: {node: '>=0.4.0'} hasBin: true dev: true @@ -177,8 +177,8 @@ packages: /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - /binary-extensions@2.2.0: - resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} + /binary-extensions@2.3.0: + resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==} engines: {node: '>=8'} dev: false @@ -215,15 +215,15 @@ packages: engines: {node: '>=0.10'} dev: true - /chai@4.3.7: - resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} + /chai@4.4.1: + resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 - check-error: 1.0.2 + check-error: 1.0.3 deep-eql: 4.1.3 - get-func-name: 2.0.0 - loupe: 2.3.6 + get-func-name: 2.0.2 + loupe: 2.3.7 pathval: 1.1.1 type-detect: 4.0.8 dev: false @@ -236,8 +236,10 @@ packages: supports-color: 7.2.0 dev: false - /check-error@1.0.2: - resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + /check-error@1.0.3: + resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + dependencies: + get-func-name: 2.0.2 dev: false /chokidar@3.5.3: @@ -252,7 +254,7 @@ packages: normalize-path: 3.0.0 readdirp: 3.6.0 optionalDependencies: - fsevents: 2.3.2 + fsevents: 2.3.3 dev: false /cliui@7.0.4: @@ -275,7 +277,7 @@ packages: dev: false /concat-map@0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: false /create-require@1.1.1: @@ -325,8 +327,8 @@ packages: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: false - /escalade@3.1.1: - resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} + /escalade@3.1.2: + resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} dev: false @@ -397,8 +399,8 @@ packages: /fs.realpath@1.0.0: resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} - /fsevents@2.3.2: - resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + /fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] requiresBuild: true @@ -410,8 +412,8 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: false - /get-func-name@2.0.0: - resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + /get-func-name@2.0.2: + resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} dev: false /glob-parent@5.1.2: @@ -431,15 +433,15 @@ packages: path-is-absolute: 1.0.1 dev: false - /glob@7.2.0: - resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} + /glob@8.1.0: + resolution: {integrity: sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==} + engines: {node: '>=12'} dependencies: fs.realpath: 1.0.0 inflight: 1.0.6 inherits: 2.0.4 - minimatch: 3.1.2 + minimatch: 5.0.1 once: 1.4.0 - path-is-absolute: 1.0.1 dev: false /glob@9.3.5: @@ -449,11 +451,11 @@ packages: fs.realpath: 1.0.0 minimatch: 8.0.4 minipass: 4.2.8 - path-scurry: 1.9.2 + path-scurry: 1.10.2 dev: true - /handlebars@4.7.7: - resolution: {integrity: sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==} + /handlebars@4.7.8: + resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} hasBin: true dependencies: @@ -495,7 +497,7 @@ packages: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: - binary-extensions: 2.2.0 + binary-extensions: 2.3.0 dev: false /is-extglob@2.1.1: @@ -547,7 +549,7 @@ packages: escodegen: 1.8.1 esprima: 2.7.3 glob: 5.0.15 - handlebars: 4.7.7 + handlebars: 4.7.8 js-yaml: 3.14.1 mkdirp: 0.5.6 nopt: 3.0.6 @@ -596,14 +598,14 @@ packages: is-unicode-supported: 0.1.0 dev: false - /loupe@2.3.6: - resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + /loupe@2.3.7: + resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} dependencies: - get-func-name: 2.0.0 + get-func-name: 2.0.2 dev: false - /lru-cache@9.1.1: - resolution: {integrity: sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A==} + /lru-cache@10.2.0: + resolution: {integrity: sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==} engines: {node: 14 || >=16.14} dev: true @@ -640,8 +642,8 @@ packages: engines: {node: '>=8'} dev: true - /minipass@6.0.2: - resolution: {integrity: sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w==} + /minipass@7.0.4: + resolution: {integrity: sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==} engines: {node: '>=16 || 14 >=14.17'} dev: true @@ -652,8 +654,8 @@ packages: minimist: 1.2.8 dev: false - /mocha@10.2.0: - resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + /mocha@10.4.0: + resolution: {integrity: sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA==} engines: {node: '>= 14.0.0'} hasBin: true dependencies: @@ -664,13 +666,12 @@ packages: diff: 5.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 - glob: 7.2.0 + glob: 8.1.0 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 minimatch: 5.0.1 ms: 2.1.3 - nanoid: 3.3.3 serialize-javascript: 6.0.0 strip-json-comments: 3.1.1 supports-color: 8.1.1 @@ -688,12 +689,6 @@ packages: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: false - /nanoid@3.3.3: - resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true - dev: false - /neo-async@2.6.2: resolution: {integrity: sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==} dev: false @@ -725,7 +720,7 @@ packages: levn: 0.3.0 prelude-ls: 1.1.2 type-check: 0.3.2 - word-wrap: 1.2.3 + word-wrap: 1.2.5 dev: false /p-limit@3.1.0: @@ -752,12 +747,12 @@ packages: engines: {node: '>=0.10.0'} dev: false - /path-scurry@1.9.2: - resolution: {integrity: sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg==} + /path-scurry@1.10.2: + resolution: {integrity: sha512-7xTavNy5RQXnsjANvVvMkEjvloOinkAjv/Z6Ildz9v2RinZ4SBKTWFOVRbaF8p0vpHnyjV/UwNDdKuUv6M5qcA==} engines: {node: '>=16 || 14 >=14.17'} dependencies: - lru-cache: 9.1.1 - minipass: 6.0.2 + lru-cache: 10.2.0 + minipass: 7.0.4 dev: true /pathval@1.1.1: @@ -881,7 +876,7 @@ packages: is-number: 7.0.0 dev: false - /ts-node@10.9.2(@types/node@20.12.6)(typescript@5.4.4): + /ts-node@10.9.2(@types/node@20.12.7)(typescript@5.4.5): resolution: {integrity: sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==} hasBin: true peerDependencies: @@ -896,18 +891,18 @@ packages: optional: true dependencies: '@cspotcode/source-map-support': 0.8.1 - '@tsconfig/node10': 1.0.9 + '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 20.12.6 - acorn: 8.8.2 - acorn-walk: 8.2.0 + '@types/node': 20.12.7 + acorn: 8.11.3 + acorn-walk: 8.3.2 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.4.4 + typescript: 5.4.5 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true @@ -924,8 +919,8 @@ packages: engines: {node: '>=4'} dev: false - /typescript@5.4.4: - resolution: {integrity: sha512-dGE2Vv8cpVvw28v8HCPqyb08EzbBURxDpuhJvTrusShUfGnhHBafDsLdS1EhhxyL6BJQE+2cT3dDPAv+MQ6oLw==} + /typescript@5.4.5: + resolution: {integrity: sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==} engines: {node: '>=14.17'} hasBin: true dev: true @@ -953,8 +948,8 @@ packages: isexe: 2.0.0 dev: false - /word-wrap@1.2.3: - resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} + /word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} engines: {node: '>=0.10.0'} dev: false @@ -1004,7 +999,7 @@ packages: engines: {node: '>=10'} dependencies: cliui: 7.0.4 - escalade: 3.1.1 + escalade: 3.1.2 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3