From f8361cdeb247e10f9422b01cee7ba88e549dcafd Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 18:57:24 +0100 Subject: [PATCH 01/15] upgrading packages --- dist/package.json | 22 +++++++++++----------- package.json | 22 +++++++++++----------- 2 files changed, 22 insertions(+), 22 deletions(-) diff --git a/dist/package.json b/dist/package.json index 959da0d..eb50535 100644 --- a/dist/package.json +++ b/dist/package.json @@ -30,18 +30,18 @@ }, "homepage": "https://github.com/webarkit/jsfeatNext#readme", "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/plugin-transform-runtime": "^7.21.0", - "@babel/preset-env": "^7.20.2", - "babel-loader": "^9.1.2", - "rimraf": "^4.1.3", - "typescript": "^4.9.5", - "webpack": "^5.75.0", - "webpack-cli": "^5.0.1" + "@babel/core": "^7.26.0", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "babel-loader": "^9.2.1", + "rimraf": "^6.0.1", + "typescript": "^5.6.3", + "webpack": "5.94.0", + "webpack-cli": "^5.1.4" }, "dependencies": { - "@babel/runtime": "^7.20.1", - "prettier": "^2.8.4", - "ts-loader": "^9.4.2" + "@babel/runtime": "^7.26.0", + "prettier": "^3.3.3", + "ts-loader": "^9.5.1" } } diff --git a/package.json b/package.json index e53bc9e..0a59bce 100644 --- a/package.json +++ b/package.json @@ -30,18 +30,18 @@ }, "homepage": "https://github.com/webarkit/jsfeatNext#readme", "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/plugin-transform-runtime": "^7.21.0", - "@babel/preset-env": "^7.20.2", - "babel-loader": "^9.1.2", - "rimraf": "^4.1.3", - "typescript": "^4.9.5", - "webpack": "^5.75.0", - "webpack-cli": "^5.0.1" + "@babel/core": "^7.26.0", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "babel-loader": "^9.2.1", + "rimraf": "^6.0.1", + "typescript": "^5.6.3", + "webpack": "5.94.0", + "webpack-cli": "^5.1.4" }, "dependencies": { - "@babel/runtime": "^7.20.1", - "prettier": "^2.8.4", - "ts-loader": "^9.4.2" + "@babel/runtime": "^7.26.0", + "prettier": "^3.3.3", + "ts-loader": "^9.5.1" } } From 3b9d74f46c6a1286327379feac67e66053ad4546 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 19:06:40 +0100 Subject: [PATCH 02/15] improved github action (cache) --- .github/workflows/CI.yml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index dfeb0e7..3375f75 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -8,20 +8,27 @@ jobs: strategy: matrix: node: - - 16.x + - 20.x - runs-on: ubuntu-latest + runs-on: ubuntu-20.4 name: Node.js ${{ matrix.node }} steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ matrix.node }} - - uses: actions/cache@v3 + + - name: Get npm cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + + - uses: actions/cache@v4 + id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' with: - path: ~/.npm + path: ${{ steps.npm-cache-dir.outputs.dir }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- From 1e15e4048ccaf55b5276be2059e016627cc4d3e3 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 19:10:08 +0100 Subject: [PATCH 03/15] fix for wrong ubuntu version in CI --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 3375f75..60a61ad 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -10,7 +10,7 @@ jobs: node: - 20.x - runs-on: ubuntu-20.4 + runs-on: ubuntu-20.04 name: Node.js ${{ matrix.node }} steps: - uses: actions/checkout@v4 From 8e32e08c47cdf769832505244b76e654112e0d5b Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 19:16:43 +0100 Subject: [PATCH 04/15] reformatting code because warnings from CI --- src/jsfeatNext.ts | 34 ++++++++++++++++++++++++++++++++++ src/matrix_t/matrix_t.ts | 5 +++++ 2 files changed, 39 insertions(+) diff --git a/src/jsfeatNext.ts b/src/jsfeatNext.ts index d70ff1e..0f603f7 100644 --- a/src/jsfeatNext.ts +++ b/src/jsfeatNext.ts @@ -110,6 +110,7 @@ class motion_model extends jsfeatNext { public T1: matrix_t; public AtA: matrix_t; public AtB: matrix_t; + constructor() { super(); this.T0 = new matrix_t(3, 3, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); @@ -117,6 +118,7 @@ class motion_model extends jsfeatNext { this.AtA = new matrix_t(6, 6, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); this.AtB = new matrix_t(6, 1, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); } + sqr(x: number): number { return x * x; } @@ -207,6 +209,7 @@ class affine2d extends motion_model { constructor() { super(); } + run(from: point_t[], to: point_t[], model: matrix_t, count: number): number { var i = 0, j = 0; @@ -273,11 +276,13 @@ class affine2d extends motion_model { class homography2d extends motion_model { public mLtL: matrix_t; public Evec: matrix_t; + constructor() { super(); this.mLtL = new matrix_t(9, 9, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); this.Evec = new matrix_t(9, 9, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); } + run(from: point_t[], to: point_t[], model: matrix_t, count: number): number { var i = 0, j = 0; @@ -438,6 +443,7 @@ class homography2d extends motion_model { return 1; } + error(from: point_t[], to: point_t[], model: matrix_t, err: Int32Array | Float32Array, count: number): void { var i = 0; var pt0, @@ -457,6 +463,7 @@ class homography2d extends motion_model { err[i] = dx * dx + dy * dy; } } + check_subset(from: point_t[], to: point_t[], count: number): boolean { // seems to reject good subsets actually //if( have_collinear_points(from, count) || have_collinear_points(to, count) ) { @@ -557,6 +564,7 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { public levels: number; public data: any; private pyrdown: any; + constructor(levels: number) { super(); this.levels = levels | 0; @@ -564,12 +572,14 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { var _imgproc = new jsfeatNext.imgproc(); this.pyrdown = _imgproc.pyrdown; } + allocate(start_w: number, start_h: number, data_type: number): void { var i = this.levels; while (--i >= 0) { this.data[i] = new matrix_t(start_w >> i, start_h >> i, data_type); } } + build(input: matrix_t, skip_first_level: boolean): void { if (typeof skip_first_level === "undefined") { skip_first_level = true; @@ -606,6 +616,7 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { public threshold_tab: Uint8Array; public pixel_off: Int32Array; public score_diff: Int32Array; + constructor() { super(); this.offsets16 = new Int32Array([ @@ -617,6 +628,7 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { this.pixel_off = new Int32Array(25); this.score_diff = new Int32Array(25); } + set_threshold(threshold: number): number { this._threshold = Math.min(Math.max(threshold, 0), 255); for (var i = -255; i <= 255; ++i) { @@ -624,6 +636,7 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { } return this._threshold; } + detect(src: matrix_t, corners: point_t[], border: number): number { if (typeof border === "undefined") { border = 3; @@ -826,6 +839,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { constructor() { super(); } + grayscale(src: Uint8Array | Uint8ClampedArray, w: number, h: number, dst: matrix_t, code?: number): void { // this is default image data representation in browser if (typeof code === "undefined") { @@ -870,6 +884,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } } + // derived from CCV library resample(src: matrix_t, dst: matrix_t, nw: number, nh: number): void { var h = src.rows, @@ -884,6 +899,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } } + box_blur_gray(src: matrix_t, dst: matrix_t, radius: number, options: number): void { if (typeof options === "undefined") { options = 0; @@ -1063,6 +1079,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(tmp_buff); } + gaussian_blur(src: matrix_t, dst: matrix_t, kernel_size: number, sigma: number): void { var jsfeatmath = new jsfeatNext.math(); if (typeof sigma === "undefined") { @@ -1111,6 +1128,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(buf_node); this.cache.put_buffer(filt_node); } + hough_transform(img: matrix_t, rho_res: number, theta_res: number, threshold: number): Array { var image = img.data; @@ -1188,6 +1206,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } return lines; } + pyrdown(src: matrix_t, dst: matrix_t, sx?: number, sy?: number): void { // this is needed for bbf if (typeof sx === "undefined") { @@ -1230,6 +1249,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { dptr += w2; } } + // dst: [gx,gy,...] scharr_derivatives(src: matrix_t, dst: matrix_t): void { var w = src.cols, @@ -1317,6 +1337,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(buf0_node); this.cache.put_buffer(buf1_node); } + // compute gradient using Sobel kernel [1 2 1] * [-1 0 1]^T // dst: [gx,gy,...] sobel_derivatives(src: matrix_t, dst: matrix_t): void { @@ -1405,6 +1426,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(buf0_node); this.cache.put_buffer(buf1_node); } + // please note: // dst_(type) size should be cols = src.cols+1, rows = src.rows+1 compute_integral_image(src: matrix_t, dst_sum: number[], dst_sqsum: number[], dst_tilted: any[]): void { @@ -1520,6 +1542,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } } + equalize_histogram(src: matrix_t, dst: matrix_t): void { var w = src.cols, h = src.rows, @@ -1552,6 +1575,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } this.cache.put_buffer(hist0_node); } + canny(src: matrix_t, dst: matrix_t, low_thresh: number, high_thresh: number): void { var w = src.cols, h = src.rows, @@ -1732,6 +1756,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(map_node); this.cache.put_buffer(stack_node); } + // transform is 3x3 matrix_t warp_perspective(src: matrix_t, dst: matrix_t, transform: matrix_t, fill_value: number): void { if (typeof fill_value === "undefined") { @@ -1789,6 +1814,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } } + // transform is 3x3 or 2x3 matrix_t only first 6 values referenced warp_affine(src: matrix_t, dst: matrix_t, transform: matrix_t, fill_value: number): void { if (typeof fill_value === "undefined") { @@ -1839,6 +1865,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } } + // Basic RGB Skin detection filter // from http://popscan.blogspot.fr/2012/08/skin-detection-in-digital-images.html skindetector(src: { width: number; height: number; data: any[] }, dst: number[]): void { @@ -1860,6 +1887,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { jsfeatNext.math = class math extends jsfeatNext { private qsort_stack: Int32Array; + constructor() { super(); this.qsort_stack = new Int32Array(48 * 2); @@ -2345,6 +2373,7 @@ jsfeatNext.matmath = matmath; jsfeatNext.linalg = class linalg extends jsfeatNext { public matmath: matmath; + constructor() { super(); this.matmath = new matmath(); @@ -3092,6 +3121,7 @@ jsfeatNext.orb = class orb extends jsfeatNext { public H: matrix_t; public patch_img: matrix_t; public imgproc: imgproc; + constructor() { super(); this.bit_pattern_31_ = new Int32Array(bit_pattern_31); @@ -3199,11 +3229,13 @@ jsfeatNext.yape = yape; jsfeatNext.yape06 = class yape06 extends jsfeatNext { public laplacian_threshold: number; public min_eigen_value_threshold: number; + constructor() { super(); this.laplacian_threshold = 30; this.min_eigen_value_threshold = 25; } + detect(src: matrix_t, points: keypoint_t[], border: number): number { if (typeof border === "undefined") { border = 5; @@ -3575,11 +3607,13 @@ jsfeatNext.homography2d = homography2d; jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { public scharr_deriv: any; + constructor() { super(); var _imgproc = new jsfeatNext.imgproc(); this.scharr_deriv = _imgproc.scharr_derivatives; } + track( prev_pyr: pyramid_t, curr_pyr: pyramid_t, diff --git a/src/matrix_t/matrix_t.ts b/src/matrix_t/matrix_t.ts index 7e970a7..32f2f7a 100644 --- a/src/matrix_t/matrix_t.ts +++ b/src/matrix_t/matrix_t.ts @@ -13,6 +13,7 @@ export interface IMatrix_T { copy_to: (other: any) => void; resize: (c: number, r: number, ch: any) => void; } + export class matrix_t implements IMatrix_T { private dt: IData_Type; public type: number; @@ -21,6 +22,7 @@ export class matrix_t implements IMatrix_T { public rows: number; public data: any; public buffer: data_t; + constructor(c: number, r: number, _data_type: number, _data_buffer?: data_t) { this.dt = new data_type(); this.type = this.dt._get_data_type(_data_type) | 0; @@ -42,6 +44,7 @@ export class matrix_t implements IMatrix_T { : this.buffer.f64; } } + allocate(): void { // clear references delete this.data; @@ -57,6 +60,7 @@ export class matrix_t implements IMatrix_T { ? this.buffer.f32 : this.buffer.f64; } + copy_to(other: IMatrix_T): void { var od = other.data, td = this.data; @@ -72,6 +76,7 @@ export class matrix_t implements IMatrix_T { od[i] = td[i]; } } + resize(c: number, r: number, ch: number): void { if (typeof ch === "undefined") { ch = this.channel; From 6e5adba02265b3817313804d13857a1de46cc36c Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 19:25:12 +0100 Subject: [PATCH 05/15] solve pkgs vulnerabilities --- package-lock.json | 3034 ++++++++++++++++++++++++++------------------- 1 file changed, 1749 insertions(+), 1285 deletions(-) diff --git a/package-lock.json b/package-lock.json index d63727f..dd1a327 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,19 +9,19 @@ "version": "0.7.3", "license": "LGPL-3.0-or-later", "dependencies": { - "@babel/runtime": "^7.20.1", - "prettier": "^2.8.4", - "ts-loader": "^9.4.2" + "@babel/runtime": "^7.26.0", + "prettier": "^3.3.3", + "ts-loader": "^9.5.1" }, "devDependencies": { - "@babel/core": "^7.21.0", - "@babel/plugin-transform-runtime": "^7.21.0", - "@babel/preset-env": "^7.20.2", - "babel-loader": "^9.1.2", - "rimraf": "^4.1.3", - "typescript": "^4.9.5", - "webpack": "^5.75.0", - "webpack-cli": "^5.0.1" + "@babel/core": "^7.26.0", + "@babel/plugin-transform-runtime": "^7.25.9", + "@babel/preset-env": "^7.26.0", + "babel-loader": "^9.2.1", + "rimraf": "^6.0.1", + "typescript": "^5.6.3", + "webpack": "5.94.0", + "webpack-cli": "^5.1.4" } }, "node_modules/@ampproject/remapping": { @@ -38,47 +38,52 @@ } }, "node_modules/@babel/code-frame": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", - "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.2.tgz", + "integrity": "sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/highlight": "^7.18.6" + "@babel/helper-validator-identifier": "^7.25.9", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", - "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.26.2.tgz", + "integrity": "sha512-Z0WgzSEa+aUcdiJuCIqgujCshpMWgUpgOxXotrYPSA53hA3qopNaqcJpyr0hVb1FeWdnqFA35/fUtXgBK8srQg==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/core": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", - "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.0.tgz", + "integrity": "sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==", "dev": true, + "license": "MIT", "dependencies": { "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.0", - "@babel/helper-compilation-targets": "^7.20.7", - "@babel/helper-module-transforms": "^7.21.0", - "@babel/helpers": "^7.21.0", - "@babel/parser": "^7.21.0", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0", - "convert-source-map": "^1.7.0", + "@babel/code-frame": "^7.26.0", + "@babel/generator": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-module-transforms": "^7.26.0", + "@babel/helpers": "^7.26.0", + "@babel/parser": "^7.26.0", + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.26.0", + "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", - "json5": "^2.2.2", - "semver": "^6.3.0" + "json5": "^2.2.3", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -89,76 +94,79 @@ } }, "node_modules/@babel/generator": { - "version": "7.21.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", - "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.2.tgz", + "integrity": "sha512-zevQbhbau95nkoxSq3f/DC/SC+EEOUZd3DYqfSkMhY2/wfSeaHV1Ew4vk8e+x8lja31IbyuUa2uQ3JONqKbysw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.21.0", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/parser": "^7.26.2", + "@babel/types": "^7.26.0", + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25", + "jsesc": "^3.0.2" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", "dev": true, + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" } }, "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", - "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz", + "integrity": "sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz", - "integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.25.9.tgz", + "integrity": "sha512-C47lC7LIDCnz0h4vai/tpNOI95tCd5ZT3iBt/DBH5lXKHZsyNQv18yf1wIIg2ntiQNgmAvA+DgZ82iW8Qdym8g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.18.6", - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", - "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.25.9.tgz", + "integrity": "sha512-j9Db8Suy6yV/VHa4qzrj9yZfZxhLWQdVnRlXxmKLYlhWUVB1sB2G5sxuWYXk/whHD9iW76PmNzxZ4UCnTQTVEQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.5", - "@babel/helper-validator-option": "^7.18.6", - "browserslist": "^4.21.3", + "@babel/compat-data": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", - "semver": "^6.3.0" + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { @@ -166,6 +174,7 @@ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, + "license": "ISC", "dependencies": { "yallist": "^3.0.2" } @@ -174,21 +183,23 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true + "dev": true, + "license": "ISC" }, "node_modules/@babel/helper-create-class-features-plugin": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.20.2.tgz", - "integrity": "sha512-k22GoYRAHPYr9I+Gvy2ZQlAe5mGy8BqWst2wRt8cwIufWTxrsVshhIBvYNqC80N0GSFWTsqRVexOtfzlgOEDvA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.25.9.tgz", + "integrity": "sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -198,13 +209,15 @@ } }, "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz", - "integrity": "sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.25.9.tgz", + "integrity": "sha512-ORPNZ3h6ZRkOyAa/SaHU+XsLZr0UQzRwuDQ0cczIA17nAzZ+85G5cVkOJIj7QavLZGSe8QXUmNFxSZzjcZF9bw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "regexpu-core": "^5.1.0" + "@babel/helper-annotate-as-pure": "^7.25.9", + "regexpu-core": "^6.1.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -214,142 +227,101 @@ } }, "node_modules/@babel/helper-define-polyfill-provider": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz", - "integrity": "sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.2.tgz", + "integrity": "sha512-LV76g+C502biUK6AyZ3LK10vDpDyCzZnhZFXkH1L75zHPj68+qc8Zfpx2th+gzwA2MzyK+1g/3EPl62yFnVttQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.17.7", - "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-compilation-targets": "^7.22.6", + "@babel/helper-plugin-utils": "^7.22.5", "debug": "^4.1.1", "lodash.debounce": "^4.0.8", - "resolve": "^1.14.2", - "semver": "^6.1.2" + "resolve": "^1.14.2" }, "peerDependencies": { - "@babel/core": "^7.4.0-0" - } - }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", - "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", - "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", - "dev": true, - "dependencies": { - "@babel/template": "^7.20.7", - "@babel/types": "^7.21.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", - "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, - "dependencies": { - "@babel/types": "^7.18.6" - }, - "engines": { - "node": ">=6.9.0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz", - "integrity": "sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz", + "integrity": "sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.9" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", - "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz", + "integrity": "sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", - "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz", + "integrity": "sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-simple-access": "^7.20.2", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/helper-validator-identifier": "^7.19.1", - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.2", - "@babel/types": "^7.21.2" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", - "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz", + "integrity": "sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", - "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.25.9.tgz", + "integrity": "sha512-kSMlyUVdWe25rEsRGviIgOWnoT/nfABVWlqt9N19/dIPWViAOW2s9wznP5tURbs/IDuNk4gPy3YdYRgH3uxhBw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz", - "integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz", + "integrity": "sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-wrap-function": "^7.18.9", - "@babel/types": "^7.18.9" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-wrap-function": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -359,132 +331,119 @@ } }, "node_modules/@babel/helper-replace-supers": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz", - "integrity": "sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.25.9.tgz", + "integrity": "sha512-IiDqTOTBQy0sWyeXyGSC5TBJpGFXBkRynjBeXsvbhQFKj2viwJC76Epz35YLU1fpe/Am6Vppb7W7zM4fPQzLsQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-member-expression-to-functions": "^7.18.9", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/traverse": "^7.19.1", - "@babel/types": "^7.19.0" + "@babel/helper-member-expression-to-functions": "^7.25.9", + "@babel/helper-optimise-call-expression": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, "node_modules/@babel/helper-simple-access": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", - "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.25.9.tgz", + "integrity": "sha512-c6WHXuiaRsJTyHYLJV75t9IqsmTbItYfdj99PnzYGQZkYKvan5/2jKJ7gu31J3/BJ/A18grImSPModuyG/Eo0Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.20.2" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.20.0.tgz", - "integrity": "sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==", - "dev": true, - "dependencies": { - "@babel/types": "^7.20.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", - "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz", + "integrity": "sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/types": "^7.18.6" + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz", + "integrity": "sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz", + "integrity": "sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-option": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz", + "integrity": "sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==", "dev": true, + "license": "MIT", "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-wrap-function": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.19.0.tgz", - "integrity": "sha512-txX8aN8CZyYGTwcLhlk87KRqncAzhh5TpQamZUa0/u3an36NtDpUP6bQgBCBcLeBs09R/OwQu3OjK0k/HwfNDg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz", + "integrity": "sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-function-name": "^7.19.0", - "@babel/template": "^7.18.10", - "@babel/traverse": "^7.19.0", - "@babel/types": "^7.19.0" + "@babel/template": "^7.25.9", + "@babel/traverse": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helpers": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", - "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.0.tgz", + "integrity": "sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/template": "^7.20.7", - "@babel/traverse": "^7.21.0", - "@babel/types": "^7.21.0" + "@babel/template": "^7.25.9", + "@babel/types": "^7.26.0" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", - "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "node_modules/@babel/parser": { + "version": "7.26.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.2.tgz", + "integrity": "sha512-DWMCZH9WA4Maitz2q21SRKHo9QXZxkDsbNZoVD62gusNtNBBqDg9i7uOhASfTfIGNzW+O+r7+jAlM8dwphcJKQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.18.6", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" + "@babel/types": "^7.26.0" }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", - "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -492,13 +451,15 @@ "node": ">=6.0.0" } }, - "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", - "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", + "node_modules/@babel/plugin-bugfix-firefox-class-in-computed-class-key": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz", + "integrity": "sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -507,83 +468,79 @@ "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz", - "integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==", + "node_modules/@babel/plugin-bugfix-safari-class-field-initializer-scope": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz", + "integrity": "sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-proposal-optional-chaining": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.13.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.1.tgz", - "integrity": "sha512-Gh5rchzSwE4kC+o/6T8waD0WHEQIsDmjltY8WnWRXHUdH8axZhuH86Ov9M72YhJfDrZseQwuuWaaIT/TmePp3g==", + "node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz", + "integrity": "sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-remap-async-to-generator": "^7.18.9", - "@babel/plugin-syntax-async-generators": "^7.8.4" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-class-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", - "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.13.0" } }, - "node_modules/@babel/plugin-proposal-class-static-block": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", - "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", + "node_modules/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz", + "integrity": "sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-class-static-block": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.12.0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", - "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", + "node_modules/@babel/plugin-proposal-private-property-in-object": { + "version": "7.21.0-placeholder-for-preset-env.2", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz", + "integrity": "sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w==", "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-dynamic-import": "^7.8.3" - }, + "license": "MIT", "engines": { "node": ">=6.9.0" }, @@ -591,14 +548,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-export-namespace-from": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz", - "integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz", + "integrity": "sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -607,14 +564,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", - "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz", + "integrity": "sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-json-strings": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -623,30 +580,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-logical-assignment-operators": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz", - "integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==", + "node_modules/@babel/plugin-syntax-unicode-sets-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz", + "integrity": "sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-proposal-nullish-coalescing-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", - "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz", + "integrity": "sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -655,14 +613,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-numeric-separator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", - "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", + "node_modules/@babel/plugin-transform-async-generator-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.25.9.tgz", + "integrity": "sha512-RXV6QAzTBbhDMO9fWwOmwwTuYaiPbggWQ9INdZqAYeSHyG7FzQ+nOZaUUjNwKv9pV3aE4WFqFm1Hnbci5tBCAw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-numeric-separator": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -671,17 +631,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.2.tgz", - "integrity": "sha512-Ks6uej9WFK+fvIMesSqbAto5dD8Dz4VuuFvGJFKgIGSkJuRGcrwGECPA1fDgQK3/DbExBJpEkTeYeB8geIFCSQ==", + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz", + "integrity": "sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-transform-parameters": "^7.20.1" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-remap-async-to-generator": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -690,14 +649,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", - "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.25.9.tgz", + "integrity": "sha512-toHc9fzab0ZfenFpsyYinOX0J/5dgJVA2fm64xPewu7CoYHWEivIWKxkK2rMi4r3yQqLnVmheMXRdG+k239CgA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -706,15 +665,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-optional-chaining": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz", - "integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz", + "integrity": "sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9", - "@babel/plugin-syntax-optional-chaining": "^7.8.3" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -723,14 +681,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-methods": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", - "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", + "node_modules/@babel/plugin-transform-class-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz", + "integrity": "sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -739,71 +698,53 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-proposal-private-property-in-object": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", - "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", + "node_modules/@babel/plugin-transform-class-static-block": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz", + "integrity": "sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-create-class-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.12.0" } }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", - "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz", + "integrity": "sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9", + "@babel/traverse": "^7.25.9", + "globals": "^11.1.0" }, "engines": { - "node": ">=4" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-static-block": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", - "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz", + "integrity": "sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/template": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -812,37 +753,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz", + "integrity": "sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-export-namespace-from": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", - "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.3" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-import-assertions": { - "version": "7.20.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.20.0.tgz", - "integrity": "sha512-IUh1vakzNoWalR8ch/areW7qFopR2AEw03JlG7BbrDqmQ4X3q9uuipQwSGrUn7oGiemKjtSLDhNtQHzMHr1JdQ==", + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz", + "integrity": "sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -851,97 +786,64 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-logical-assignment-operators": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", - "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz", + "integrity": "sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-plugin-utils": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", - "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-numeric-separator": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", - "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "node_modules/@babel/plugin-transform-duplicate-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "node_modules/@babel/plugin-transform-dynamic-import": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz", + "integrity": "sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.25.9" }, - "peerDependencies": { - "@babel/core": "^7.0.0-0" - } - }, - "node_modules/@babel/plugin-syntax-optional-chaining": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", - "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-private-property-in-object": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", - "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.25.9.tgz", + "integrity": "sha512-KRhdhlVk2nObA5AYa7QMgTMTVJdfHprfpAk4DjZVtllqRg9qarilstTKEhpVjyt+Npi8ThRyiV8176Am3CodPA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -950,13 +852,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "node_modules/@babel/plugin-transform-export-namespace-from": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz", + "integrity": "sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.14.5" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -965,13 +868,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", - "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.25.9.tgz", + "integrity": "sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -980,15 +885,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz", - "integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==", + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz", + "integrity": "sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-remap-async-to-generator": "^7.18.6" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -997,13 +903,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", - "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "node_modules/@babel/plugin-transform-json-strings": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz", + "integrity": "sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1012,13 +919,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.20.2.tgz", - "integrity": "sha512-y5V15+04ry69OV2wULmwhEA6jwSWXO1TwAtIwiPXcvHcoOQUqpyMVd2bDsQJMW8AurjulIyUV8kDqtjSwHy1uQ==", + "node_modules/@babel/plugin-transform-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz", + "integrity": "sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1027,21 +935,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.20.2.tgz", - "integrity": "sha512-9rbPp0lCVVoagvtEyQKSo5L8oo0nQS/iif+lwlAz29MccX2642vWDlSZK+2T2buxbopotId2ld7zZAzRfz9j1g==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.18.6", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.19.0", - "@babel/helper-optimise-call-expression": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-replace-supers": "^7.19.1", - "@babel/helper-split-export-declaration": "^7.18.6", - "globals": "^11.1.0" + "node_modules/@babel/plugin-transform-logical-assignment-operators": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz", + "integrity": "sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1050,13 +951,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz", - "integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==", + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz", + "integrity": "sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1065,13 +967,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.20.2.tgz", - "integrity": "sha512-mENM+ZHrvEgxLTBXUiQ621rRXZes3KWUv6NdQlrnr1TkWVw+hUjQBZuP2X32qKlrlG2BzgR95gkuCRSkJl8vIw==", + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz", + "integrity": "sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1080,14 +984,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", - "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.25.9.tgz", + "integrity": "sha512-dwh2Ol1jWwL2MgkCzUSOvfmKElqQcuswAZypBSUsScMXvgdT8Ekq5YA6TtqpTVWH+4903NmboMuH1o9i8Rxlyg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-simple-access": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1096,13 +1002,17 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz", - "integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==", + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz", + "integrity": "sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9", + "@babel/traverse": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1111,14 +1021,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", - "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz", + "integrity": "sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-module-transforms": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1127,30 +1038,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.18.8", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", - "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz", + "integrity": "sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz", - "integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==", + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz", + "integrity": "sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-compilation-targets": "^7.18.9", - "@babel/helper-function-name": "^7.18.9", - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1159,13 +1071,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz", - "integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==", + "node_modules/@babel/plugin-transform-nullish-coalescing-operator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.25.9.tgz", + "integrity": "sha512-ENfftpLZw5EItALAD4WsY/KUWvhUlZndm5GC7G3evUsVeSJB6p0pBeLQUnRnBCBx7zV0RKQjR9kCuwrsIrjWog==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1174,13 +1087,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", - "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "node_modules/@babel/plugin-transform-numeric-separator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz", + "integrity": "sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1189,14 +1103,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.19.6.tgz", - "integrity": "sha512-uG3od2mXvAtIFQIh0xrpLH6r5fpSQN04gIVovl+ODLdUMANokxQLZnPBHcjmv3GxRjnqwLuHvppjjcelqUFZvg==", + "node_modules/@babel/plugin-transform-object-rest-spread": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz", + "integrity": "sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1205,15 +1121,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.19.6.tgz", - "integrity": "sha512-8PIa1ym4XRTKuSsOUXqDG0YaOlEuTVvHMe5JCfgBMOtHvJKw/4NGovEGN33viISshG/rZNVrACiBmPQLvWN8xQ==", + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz", + "integrity": "sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-simple-access": "^7.19.4" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-replace-supers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1222,16 +1138,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.19.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.6.tgz", - "integrity": "sha512-fqGLBepcc3kErfR9R3DnVpURmckXP7gj7bAlrTQyBxrigFqszZCkFkcoxzCp2v32XmwXLvbw+8Yq9/b+QqksjQ==", + "node_modules/@babel/plugin-transform-optional-catch-binding": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz", + "integrity": "sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-module-transforms": "^7.19.6", - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-validator-identifier": "^7.19.1" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1240,14 +1154,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", - "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", + "node_modules/@babel/plugin-transform-optional-chaining": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz", + "integrity": "sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-transforms": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1256,29 +1171,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz", - "integrity": "sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==", + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz", + "integrity": "sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.19.0", - "@babel/helper-plugin-utils": "^7.19.0" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", - "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "node_modules/@babel/plugin-transform-private-methods": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz", + "integrity": "sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1287,14 +1204,16 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", - "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", + "node_modules/@babel/plugin-transform-private-property-in-object": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz", + "integrity": "sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "@babel/helper-replace-supers": "^7.18.6" + "@babel/helper-annotate-as-pure": "^7.25.9", + "@babel/helper-create-class-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1303,13 +1222,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.20.3.tgz", - "integrity": "sha512-oZg/Fpx0YDrj13KsLyO8I/CX3Zdw7z0O9qOd95SqcoIzuqy/WTGWvePeHAnZCN54SfdyjHcb1S30gc8zlzlHcA==", + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz", + "integrity": "sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.20.2" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1318,13 +1238,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", - "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz", + "integrity": "sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9", + "regenerator-transform": "^0.15.2" }, "engines": { "node": ">=6.9.0" @@ -1333,29 +1255,31 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", - "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", + "node_modules/@babel/plugin-transform-regexp-modifiers": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz", + "integrity": "sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6", - "regenerator-transform": "^0.15.0" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.0.0" } }, "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", - "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz", + "integrity": "sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1365,17 +1289,18 @@ } }, "node_modules/@babel/plugin-transform-runtime": { - "version": "7.21.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.21.0.tgz", - "integrity": "sha512-ReY6pxwSzEU0b3r2/T/VhqMKg/AkceBT19X0UptA3/tYi5Pe2eXgEUH+NNMC5nok6c6XQz5tyVTUpuezRfSMSg==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.25.9.tgz", + "integrity": "sha512-nZp7GlEl+yULJrClz0SwHPqir3lc0zsPrDHQUcxGspSL7AKrexNSEfTbfqnDNJUO13bgKyfuOLMF8Xqtu8j3YQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-module-imports": "^7.18.6", - "@babel/helper-plugin-utils": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "semver": "^6.3.0" + "@babel/helper-module-imports": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "semver": "^6.3.1" }, "engines": { "node": ">=6.9.0" @@ -1385,12 +1310,13 @@ } }, "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", - "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz", + "integrity": "sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1400,13 +1326,14 @@ } }, "node_modules/@babel/plugin-transform-spread": { - "version": "7.19.0", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz", - "integrity": "sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz", + "integrity": "sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.19.0", - "@babel/helper-skip-transparent-expression-wrappers": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-skip-transparent-expression-wrappers": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1416,12 +1343,13 @@ } }, "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", - "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz", + "integrity": "sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1431,12 +1359,13 @@ } }, "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz", - "integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.25.9.tgz", + "integrity": "sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1446,12 +1375,13 @@ } }, "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.18.9", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz", - "integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.25.9.tgz", + "integrity": "sha512-v61XqUMiueJROUv66BVIOi0Fv/CUuZuZMl5NkRoCVxLAnMexZ0A3kMe7vvZ0nulxMuMp0Mk6S5hNh48yki08ZA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1461,12 +1391,13 @@ } }, "node_modules/@babel/plugin-transform-unicode-escapes": { - "version": "7.18.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz", - "integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz", + "integrity": "sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.18.9" + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1475,14 +1406,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.18.6", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", - "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "node_modules/@babel/plugin-transform-unicode-property-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz", + "integrity": "sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.18.6", - "@babel/helper-plugin-utils": "^7.18.6" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1491,87 +1423,15 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-env": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.20.2.tgz", - "integrity": "sha512-1G0efQEWR1EHkKvKHqbG+IN/QdgwfByUpM5V5QroDzGV2t3S/WXNQd693cHiHTlCFMpr9B6FkPFXDA2lQcKoDg==", - "dev": true, - "dependencies": { - "@babel/compat-data": "^7.20.1", - "@babel/helper-compilation-targets": "^7.20.0", - "@babel/helper-plugin-utils": "^7.20.2", - "@babel/helper-validator-option": "^7.18.6", - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.18.6", - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-async-generator-functions": "^7.20.1", - "@babel/plugin-proposal-class-properties": "^7.18.6", - "@babel/plugin-proposal-class-static-block": "^7.18.6", - "@babel/plugin-proposal-dynamic-import": "^7.18.6", - "@babel/plugin-proposal-export-namespace-from": "^7.18.9", - "@babel/plugin-proposal-json-strings": "^7.18.6", - "@babel/plugin-proposal-logical-assignment-operators": "^7.18.9", - "@babel/plugin-proposal-nullish-coalescing-operator": "^7.18.6", - "@babel/plugin-proposal-numeric-separator": "^7.18.6", - "@babel/plugin-proposal-object-rest-spread": "^7.20.2", - "@babel/plugin-proposal-optional-catch-binding": "^7.18.6", - "@babel/plugin-proposal-optional-chaining": "^7.18.9", - "@babel/plugin-proposal-private-methods": "^7.18.6", - "@babel/plugin-proposal-private-property-in-object": "^7.18.6", - "@babel/plugin-proposal-unicode-property-regex": "^7.18.6", - "@babel/plugin-syntax-async-generators": "^7.8.4", - "@babel/plugin-syntax-class-properties": "^7.12.13", - "@babel/plugin-syntax-class-static-block": "^7.14.5", - "@babel/plugin-syntax-dynamic-import": "^7.8.3", - "@babel/plugin-syntax-export-namespace-from": "^7.8.3", - "@babel/plugin-syntax-import-assertions": "^7.20.0", - "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", - "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", - "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-private-property-in-object": "^7.14.5", - "@babel/plugin-syntax-top-level-await": "^7.14.5", - "@babel/plugin-transform-arrow-functions": "^7.18.6", - "@babel/plugin-transform-async-to-generator": "^7.18.6", - "@babel/plugin-transform-block-scoped-functions": "^7.18.6", - "@babel/plugin-transform-block-scoping": "^7.20.2", - "@babel/plugin-transform-classes": "^7.20.2", - "@babel/plugin-transform-computed-properties": "^7.18.9", - "@babel/plugin-transform-destructuring": "^7.20.2", - "@babel/plugin-transform-dotall-regex": "^7.18.6", - "@babel/plugin-transform-duplicate-keys": "^7.18.9", - "@babel/plugin-transform-exponentiation-operator": "^7.18.6", - "@babel/plugin-transform-for-of": "^7.18.8", - "@babel/plugin-transform-function-name": "^7.18.9", - "@babel/plugin-transform-literals": "^7.18.9", - "@babel/plugin-transform-member-expression-literals": "^7.18.6", - "@babel/plugin-transform-modules-amd": "^7.19.6", - "@babel/plugin-transform-modules-commonjs": "^7.19.6", - "@babel/plugin-transform-modules-systemjs": "^7.19.6", - "@babel/plugin-transform-modules-umd": "^7.18.6", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.19.1", - "@babel/plugin-transform-new-target": "^7.18.6", - "@babel/plugin-transform-object-super": "^7.18.6", - "@babel/plugin-transform-parameters": "^7.20.1", - "@babel/plugin-transform-property-literals": "^7.18.6", - "@babel/plugin-transform-regenerator": "^7.18.6", - "@babel/plugin-transform-reserved-words": "^7.18.6", - "@babel/plugin-transform-shorthand-properties": "^7.18.6", - "@babel/plugin-transform-spread": "^7.19.0", - "@babel/plugin-transform-sticky-regex": "^7.18.6", - "@babel/plugin-transform-template-literals": "^7.18.9", - "@babel/plugin-transform-typeof-symbol": "^7.18.9", - "@babel/plugin-transform-unicode-escapes": "^7.18.10", - "@babel/plugin-transform-unicode-regex": "^7.18.6", - "@babel/preset-modules": "^0.1.5", - "@babel/types": "^7.20.2", - "babel-plugin-polyfill-corejs2": "^0.3.3", - "babel-plugin-polyfill-corejs3": "^0.6.0", - "babel-plugin-polyfill-regenerator": "^0.4.1", - "core-js-compat": "^3.25.1", - "semver": "^6.3.0" + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz", + "integrity": "sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1580,62 +1440,162 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/preset-modules": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", - "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "node_modules/@babel/plugin-transform-unicode-sets-regex": { + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz", + "integrity": "sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", - "@babel/plugin-transform-dotall-regex": "^7.4.4", - "@babel/types": "^7.4.4", - "esutils": "^2.0.2" + "@babel/helper-create-regexp-features-plugin": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.26.0.tgz", + "integrity": "sha512-H84Fxq0CQJNdPFT2DrfnylZ3cf5K43rGfWK4LJGPpjKHiZlk0/RzwEus3PDDZZg+/Er7lCA03MVacueUuXdzfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/compat-data": "^7.26.0", + "@babel/helper-compilation-targets": "^7.25.9", + "@babel/helper-plugin-utils": "^7.25.9", + "@babel/helper-validator-option": "^7.25.9", + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "^7.25.9", + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "^7.25.9", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.25.9", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.25.9", + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "^7.25.9", + "@babel/plugin-proposal-private-property-in-object": "7.21.0-placeholder-for-preset-env.2", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/plugin-syntax-import-attributes": "^7.26.0", + "@babel/plugin-syntax-unicode-sets-regex": "^7.18.6", + "@babel/plugin-transform-arrow-functions": "^7.25.9", + "@babel/plugin-transform-async-generator-functions": "^7.25.9", + "@babel/plugin-transform-async-to-generator": "^7.25.9", + "@babel/plugin-transform-block-scoped-functions": "^7.25.9", + "@babel/plugin-transform-block-scoping": "^7.25.9", + "@babel/plugin-transform-class-properties": "^7.25.9", + "@babel/plugin-transform-class-static-block": "^7.26.0", + "@babel/plugin-transform-classes": "^7.25.9", + "@babel/plugin-transform-computed-properties": "^7.25.9", + "@babel/plugin-transform-destructuring": "^7.25.9", + "@babel/plugin-transform-dotall-regex": "^7.25.9", + "@babel/plugin-transform-duplicate-keys": "^7.25.9", + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-dynamic-import": "^7.25.9", + "@babel/plugin-transform-exponentiation-operator": "^7.25.9", + "@babel/plugin-transform-export-namespace-from": "^7.25.9", + "@babel/plugin-transform-for-of": "^7.25.9", + "@babel/plugin-transform-function-name": "^7.25.9", + "@babel/plugin-transform-json-strings": "^7.25.9", + "@babel/plugin-transform-literals": "^7.25.9", + "@babel/plugin-transform-logical-assignment-operators": "^7.25.9", + "@babel/plugin-transform-member-expression-literals": "^7.25.9", + "@babel/plugin-transform-modules-amd": "^7.25.9", + "@babel/plugin-transform-modules-commonjs": "^7.25.9", + "@babel/plugin-transform-modules-systemjs": "^7.25.9", + "@babel/plugin-transform-modules-umd": "^7.25.9", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.25.9", + "@babel/plugin-transform-new-target": "^7.25.9", + "@babel/plugin-transform-nullish-coalescing-operator": "^7.25.9", + "@babel/plugin-transform-numeric-separator": "^7.25.9", + "@babel/plugin-transform-object-rest-spread": "^7.25.9", + "@babel/plugin-transform-object-super": "^7.25.9", + "@babel/plugin-transform-optional-catch-binding": "^7.25.9", + "@babel/plugin-transform-optional-chaining": "^7.25.9", + "@babel/plugin-transform-parameters": "^7.25.9", + "@babel/plugin-transform-private-methods": "^7.25.9", + "@babel/plugin-transform-private-property-in-object": "^7.25.9", + "@babel/plugin-transform-property-literals": "^7.25.9", + "@babel/plugin-transform-regenerator": "^7.25.9", + "@babel/plugin-transform-regexp-modifiers": "^7.26.0", + "@babel/plugin-transform-reserved-words": "^7.25.9", + "@babel/plugin-transform-shorthand-properties": "^7.25.9", + "@babel/plugin-transform-spread": "^7.25.9", + "@babel/plugin-transform-sticky-regex": "^7.25.9", + "@babel/plugin-transform-template-literals": "^7.25.9", + "@babel/plugin-transform-typeof-symbol": "^7.25.9", + "@babel/plugin-transform-unicode-escapes": "^7.25.9", + "@babel/plugin-transform-unicode-property-regex": "^7.25.9", + "@babel/plugin-transform-unicode-regex": "^7.25.9", + "@babel/plugin-transform-unicode-sets-regex": "^7.25.9", + "@babel/preset-modules": "0.1.6-no-external-plugins", + "babel-plugin-polyfill-corejs2": "^0.4.10", + "babel-plugin-polyfill-corejs3": "^0.10.6", + "babel-plugin-polyfill-regenerator": "^0.6.1", + "core-js-compat": "^3.38.1", + "semver": "^6.3.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/preset-modules": { + "version": "0.1.6-no-external-plugins", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz", + "integrity": "sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0 || ^8.0.0-0 <8.0.0" + } + }, "node_modules/@babel/runtime": { - "version": "7.20.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.1.tgz", - "integrity": "sha512-mrzLkl6U9YLF8qpqI7TB82PESyEGjm/0Ly91jG575eVxMMlb8fYfOXFZIJ8XfLrJZQbm7dlKry2bJmXBUEkdFg==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.0.tgz", + "integrity": "sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==", + "license": "MIT", "dependencies": { - "regenerator-runtime": "^0.13.10" + "regenerator-runtime": "^0.14.0" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/template": { - "version": "7.20.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", - "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.25.9.tgz", + "integrity": "sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/parser": "^7.20.7", - "@babel/types": "^7.20.7" + "@babel/code-frame": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/types": "^7.25.9" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/traverse": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", - "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.18.6", - "@babel/generator": "^7.21.1", - "@babel/helper-environment-visitor": "^7.18.9", - "@babel/helper-function-name": "^7.21.0", - "@babel/helper-hoist-variables": "^7.18.6", - "@babel/helper-split-export-declaration": "^7.18.6", - "@babel/parser": "^7.21.2", - "@babel/types": "^7.21.2", - "debug": "^4.1.0", + "version": "7.25.9", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.25.9.tgz", + "integrity": "sha512-ZCuvfwOwlz/bawvAuvcj8rrithP2/N55Tzz342AkTvq4qaWbGfmCk/tKhNaV2cthijKrPAA8SRJV5WWe7IBMJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.25.9", + "@babel/generator": "^7.25.9", + "@babel/parser": "^7.25.9", + "@babel/template": "^7.25.9", + "@babel/types": "^7.25.9", + "debug": "^4.3.1", "globals": "^11.1.0" }, "engines": { @@ -1643,14 +1603,14 @@ } }, "node_modules/@babel/types": { - "version": "7.21.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", - "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "version": "7.26.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.0.tgz", + "integrity": "sha512-Z/yiTPj+lDVnF7lWeKCIJzaIkI0vYO87dMpZ4bg4TDrFe4XXLFWL1TbXU27gBP3QccxV9mZICCrnjnYlJjXHOA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" + "@babel/helper-string-parser": "^7.25.9", + "@babel/helper-validator-identifier": "^7.25.9" }, "engines": { "node": ">=6.9.0" @@ -1665,6 +1625,24 @@ "node": ">=10.0.0" } }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", @@ -1687,30 +1665,33 @@ } }, "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "license": "MIT", "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/source-map": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", - "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "license": "MIT", "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" } }, "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", - "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", + "@jridgewell/set-array": "^1.2.1", "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" + "@jridgewell/trace-mapping": "^0.3.24" }, "engines": { "node": ">=6.0.0" @@ -1722,36 +1703,20 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.17", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", - "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", - "dependencies": { - "@jridgewell/resolve-uri": "3.1.0", - "@jridgewell/sourcemap-codec": "1.4.14" - } - }, - "node_modules/@types/eslint": { - "version": "8.4.10", - "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", - "integrity": "sha512-Sl/HOqN8NKPmhWo2VBEPm0nvHnu2LL3v9vKo8MEq0EtbJ4eVzGPl41VNPvn5E1i5poMk4/XD8UriLHpJvEP/Nw==", + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "license": "MIT", "dependencies": { - "@types/estree": "*", - "@types/json-schema": "*" - } - }, - "node_modules/@types/eslint-scope": { - "version": "3.7.4", - "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", - "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", - "dependencies": { - "@types/eslint": "*", - "@types/estree": "*" + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/@types/estree": { - "version": "0.0.51", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", - "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==" + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "license": "MIT" }, "node_modules/@types/json-schema": { "version": "7.0.11", @@ -1759,146 +1724,166 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==" }, "node_modules/@types/node": { - "version": "18.11.9", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.9.tgz", - "integrity": "sha512-CRpX21/kGdzjOpFsZSkcrXMGIBWMGNIHXXBVFSH+ggkftxg+XYP20TESbh+zFvFj3EQOl5byk0HTRn1IL6hbqg==" + "version": "22.9.0", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.9.0.tgz", + "integrity": "sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==", + "license": "MIT", + "dependencies": { + "undici-types": "~6.19.8" + } }, "node_modules/@webassemblyjs/ast": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", - "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.14.1.tgz", + "integrity": "sha512-nuBEDgQfm1ccRp/8bCQrx1frohyufl4JlbMMZ4P1wpeOfDhF6FQkxZJ1b/e+PLwr6X1Nhw6OLme5usuBWYBvuQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/helper-numbers": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + "@webassemblyjs/helper-numbers": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2" } }, "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", - "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.13.2.tgz", + "integrity": "sha512-6oXyTOzbKxGH4steLbLNOu71Oj+C8Lg34n6CqRvqfS2O71BxY6ByfMDRhBytzknj9yGUPVJ1qIKhRlAwO1AovA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", - "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.13.2.tgz", + "integrity": "sha512-U56GMYxy4ZQCbDZd6JuvvNV/WFildOjsaWD3Tzzvmw/mas3cXzRJPMjP83JqEsgSbyrmaGjBfDtV7KDXV9UzFQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", - "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==" + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.14.1.tgz", + "integrity": "sha512-jyH7wtcHiKssDtFPRB+iQdxlDf96m0E39yb0k5uJVhFGleZFoNw1c4aeIcVUPPbXUVJ94wwnMOAqUHyzoEPVMA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-numbers": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", - "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.13.2.tgz", + "integrity": "sha512-FE8aCmS5Q6eQYcV3gI35O4J789wlQA+7JrqTTpJqn5emA4U2hvwJmvFRC0HODS+3Ye6WioDklgd6scJ3+PLnEA==", + "license": "MIT", "dependencies": { - "@webassemblyjs/floating-point-hex-parser": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/floating-point-hex-parser": "1.13.2", + "@webassemblyjs/helper-api-error": "1.13.2", "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", - "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.13.2.tgz", + "integrity": "sha512-3QbLKy93F0EAIXLh0ogEVR6rOubA9AoZ+WRYhNbFyuB70j3dRdwH9g+qXhLAO0kiYGlg3TxDV+I4rQTr/YNXkA==", + "license": "MIT" }, "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", - "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.14.1.tgz", + "integrity": "sha512-ds5mXEqTJ6oxRoqjhWDU83OgzAYjwsCV8Lo/N+oRsNDmx/ZDpqalmrtgOMkHwxsG0iI//3BwWAErYRHtgn0dZw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/wasm-gen": "1.14.1" } }, "node_modules/@webassemblyjs/ieee754": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", - "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.13.2.tgz", + "integrity": "sha512-4LtOzh58S/5lX4ITKxnAK2USuNEvpdVV9AlgGQb8rJDHaLeHciwG4zlGr0j/SNWlr7x3vO1lDEsuePvtcDNCkw==", + "license": "MIT", "dependencies": { "@xtuc/ieee754": "^1.2.0" } }, "node_modules/@webassemblyjs/leb128": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", - "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.13.2.tgz", + "integrity": "sha512-Lde1oNoIdzVzdkNEAWZ1dZ5orIbff80YPdHx20mrHwHrVNNTjNr8E3xz9BdpcGqRQbAEa+fkrCb+fRFTl/6sQw==", + "license": "Apache-2.0", "dependencies": { "@xtuc/long": "4.2.2" } }, "node_modules/@webassemblyjs/utf8": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", - "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==" + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.13.2.tgz", + "integrity": "sha512-3NQWGjKTASY1xV5m7Hr0iPeXD9+RDobLll3T9d2AO+g3my8xy5peVyjSag4I50mR1bBSN/Ct12lo+R9tJk0NZQ==", + "license": "MIT" }, "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", - "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.14.1.tgz", + "integrity": "sha512-RNJUIQH/J8iA/1NzlE4N7KtyZNHi3w7at7hDjvRNm5rcUXa00z1vRz3glZoULfJ5mpvYhLybmVcwcjGrC1pRrQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/helper-wasm-section": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-opt": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", - "@webassemblyjs/wast-printer": "1.11.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/helper-wasm-section": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-opt": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1", + "@webassemblyjs/wast-printer": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", - "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.14.1.tgz", + "integrity": "sha512-AmomSIjP8ZbfGQhumkNvgC33AY7qtMCXnN6bL2u2Js4gVCg8fp735aEiMSBbDR7UQIj90n4wKAFUSEd0QN2Ukg==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", - "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.14.1.tgz", + "integrity": "sha512-PTcKLUNvBqnY2U6E5bdOQcSM+oVP/PmrDY9NzowJjislEjwP/C4an2303MCVS2Mg9d3AJpIGdUFIQQWbPds0Sw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-buffer": "1.11.1", - "@webassemblyjs/wasm-gen": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-buffer": "1.14.1", + "@webassemblyjs/wasm-gen": "1.14.1", + "@webassemblyjs/wasm-parser": "1.14.1" } }, "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", - "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.14.1.tgz", + "integrity": "sha512-JLBl+KZ0R5qB7mCnud/yyX08jWFw5MsoalJ1pQ4EdFlgj9VdXKGuENGsiCIjegI1W7p91rUlcB/LB5yRJKNTcQ==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/helper-api-error": "1.11.1", - "@webassemblyjs/helper-wasm-bytecode": "1.11.1", - "@webassemblyjs/ieee754": "1.11.1", - "@webassemblyjs/leb128": "1.11.1", - "@webassemblyjs/utf8": "1.11.1" + "@webassemblyjs/ast": "1.14.1", + "@webassemblyjs/helper-api-error": "1.13.2", + "@webassemblyjs/helper-wasm-bytecode": "1.13.2", + "@webassemblyjs/ieee754": "1.13.2", + "@webassemblyjs/leb128": "1.13.2", + "@webassemblyjs/utf8": "1.13.2" } }, "node_modules/@webassemblyjs/wast-printer": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", - "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.14.1.tgz", + "integrity": "sha512-kPSSXE6De1XOR820C90RIo2ogvZG+c3KiHzqUoO/F34Y2shGzesfqv7o57xrxovZJH/MetF5UjroJ/R/3isoiw==", + "license": "MIT", "dependencies": { - "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/ast": "1.14.1", "@xtuc/long": "4.2.2" } }, "node_modules/@webpack-cli/configtest": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.0.1.tgz", - "integrity": "sha512-njsdJXJSiS2iNbQVS0eT8A/KPnmyH4pv1APj2K0d1wrZcBLw+yppxOy4CGqa0OxDJkzfL/XELDhD8rocnIwB5A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@webpack-cli/configtest/-/configtest-2.1.1.tgz", + "integrity": "sha512-wy0mglZpDSiSS0XHrVR+BAdId2+yxPSoJW8fsna3ZpYSlufjvxnP4YbKTCBZnNIcGN4r6ZPXV55X4mYExOfLmw==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1908,10 +1893,11 @@ } }, "node_modules/@webpack-cli/info": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.1.tgz", - "integrity": "sha512-fE1UEWTwsAxRhrJNikE7v4EotYflkEhBL7EbajfkPlf6E37/2QshOy/D48Mw8G5XMFlQtS6YV42vtbG9zBpIQA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@webpack-cli/info/-/info-2.0.2.tgz", + "integrity": "sha512-zLHQdI/Qs1UyT5UBdWNqsARasIA+AaF8t+4u2aS2nEpBQh2mWIVb8qAklq0eUENnC5mOItrIB4LiS9xMtph18A==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1921,10 +1907,11 @@ } }, "node_modules/@webpack-cli/serve": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.1.tgz", - "integrity": "sha512-0G7tNyS+yW8TdgHwZKlDWYXFA6OJQnoLCQvYKkQP0Q2X205PSQ6RNUj0M+1OB/9gRQaUZ/ccYfaxd0nhaWKfjw==", + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@webpack-cli/serve/-/serve-2.0.5.tgz", + "integrity": "sha512-lqaoKnRYBdo1UgDX8uF24AfGMifWK19TxPmM5FHc2vAGxrJ/qtyUyFBWoY1tISZdelsQ5fBcOusifo5o5wSJxQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=14.15.0" }, @@ -1941,17 +1928,20 @@ "node_modules/@xtuc/ieee754": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==" + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "license": "BSD-3-Clause" }, "node_modules/@xtuc/long": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==" + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "license": "Apache-2.0" }, "node_modules/acorn": { - "version": "8.8.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", - "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1959,10 +1949,11 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-assertions": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", - "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "node_modules/acorn-import-attributes": { + "version": "1.9.5", + "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", + "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", + "license": "MIT", "peerDependencies": { "acorn": "^8" } @@ -1971,6 +1962,7 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -2025,29 +2017,45 @@ "version": "3.5.2", "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "license": "MIT", "peerDependencies": { "ajv": "^6.9.1" } }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/ansi-regex": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.1.0.tgz", + "integrity": "sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==", "dev": true, - "dependencies": { - "color-convert": "^1.9.0" + "license": "MIT", + "engines": { + "node": ">=12" }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/babel-loader": { - "version": "9.1.2", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.1.2.tgz", - "integrity": "sha512-mN14niXW43tddohGl8HPu5yfQq70iUThvFL/4QzESA7GcZoC0eVOhvWdQ8+3UlSjaDE9MVtsW9mxDY07W7VpVA==", + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-9.2.1.tgz", + "integrity": "sha512-fqe8naHt46e0yIdkjUZYqddSXfej3AHajX+CSO5X7oy0EmPc6o5Xh+RClNoHjnieWz9AW4kZxW9yyFMhVB1QLA==", "dev": true, + "license": "MIT", "dependencies": { - "find-cache-dir": "^3.3.2", + "find-cache-dir": "^4.0.0", "schema-utils": "^4.0.0" }, "engines": { @@ -2059,59 +2067,80 @@ } }, "node_modules/babel-plugin-polyfill-corejs2": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz", - "integrity": "sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==", + "version": "0.4.11", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.11.tgz", + "integrity": "sha512-sMEJ27L0gRHShOh5G54uAAPaiCOygY/5ratXuiyb2G46FmlSpc9eFCzYVyDiPxfNbwzA7mYahmjQc5q+CZQ09Q==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.17.7", - "@babel/helper-define-polyfill-provider": "^0.3.3", - "semver": "^6.1.1" + "@babel/compat-data": "^7.22.6", + "@babel/helper-define-polyfill-provider": "^0.6.2", + "semver": "^6.3.1" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-corejs3": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz", - "integrity": "sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==", + "version": "0.10.6", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.10.6.tgz", + "integrity": "sha512-b37+KR2i/khY5sKmWNVQAnitvquQbNdWy6lJdsr0kmquCKEEUgMKK4SboVM3HtfnZilfjr4MMQ7vY58FVWDtIA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3", - "core-js-compat": "^3.25.1" + "@babel/helper-define-polyfill-provider": "^0.6.2", + "core-js-compat": "^3.38.0" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" } }, "node_modules/babel-plugin-polyfill-regenerator": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz", - "integrity": "sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.2.tgz", + "integrity": "sha512-2R25rQZWP63nGwaAswvDazbPXfrM3HwVoBXK6HcqeKrSrL/JqcC/rDcf95l4r7LXLyxDXc8uQDa064GubtCABg==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/helper-define-polyfill-provider": "^0.3.3" + "@babel/helper-define-polyfill-provider": "^0.6.2" }, "peerDependencies": { - "@babel/core": "^7.0.0-0" + "@babel/core": "^7.4.0 || ^8.0.0-0 <8.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true, + "license": "MIT" + }, + "node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.24.2", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.2.tgz", + "integrity": "sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==", "funding": [ { "type": "opencollective", @@ -2120,13 +2149,18 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001669", + "electron-to-chromium": "^1.5.41", + "node-releases": "^2.0.18", + "update-browserslist-db": "^1.1.1" }, "bin": { "browserslist": "cli.js" @@ -2138,12 +2172,13 @@ "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "license": "MIT" }, "node_modules/caniuse-lite": { - "version": "1.0.30001418", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", + "version": "1.0.30001679", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz", + "integrity": "sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA==", "funding": [ { "type": "opencollective", @@ -2152,22 +2187,13 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } - ] - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } + ], + "license": "CC-BY-4.0" }, "node_modules/chrome-trace-event": { "version": "1.0.3", @@ -2192,19 +2218,22 @@ } }, "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" } }, "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "license": "MIT" }, "node_modules/colorette": { "version": "2.0.19", @@ -2215,27 +2244,31 @@ "node_modules/commander": { "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "license": "MIT" }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", - "dev": true + "node_modules/common-path-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/common-path-prefix/-/common-path-prefix-3.0.0.tgz", + "integrity": "sha512-QE33hToZseCH3jS0qN96O/bSh3kaw/h+Tq7ngyY9eWDUnTlTNUyqfqvCXioLe5Na5jFsL78ra/wuBU4iuEgd4w==", + "dev": true, + "license": "ISC" }, "node_modules/convert-source-map": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", - "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", + "dev": true, + "license": "MIT" }, "node_modules/core-js-compat": { - "version": "3.26.0", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.26.0.tgz", - "integrity": "sha512-piOX9Go+Z4f9ZiBFLnZ5VrOpBl0h7IGCkiFUN11QTe6LjAvOT3ifL/5TdoizMh99hcGy5SoLyWbapIY/PIb/3A==", + "version": "3.39.0", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.39.0.tgz", + "integrity": "sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==", "dev": true, + "license": "MIT", "dependencies": { - "browserslist": "^4.21.4" + "browserslist": "^4.24.2" }, "funding": { "type": "opencollective", @@ -2273,15 +2306,31 @@ } } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true, + "license": "MIT" + }, "node_modules/electron-to-chromium": { - "version": "1.4.276", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==" + "version": "1.5.55", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz", + "integrity": "sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg==", + "license": "ISC" + }, + "node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" }, "node_modules/enhanced-resolve": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", - "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "version": "5.17.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.17.1.tgz", + "integrity": "sha512-LMHl3dXhTcfv8gM4kEzIUeTQ+7fpdA0l2tUf34BddXPkz2A5xJ5L/Pchd5BL6rdccM9QGvu0sWZzK1Z1t4wwyg==", + "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", "tapable": "^2.2.0" @@ -2303,27 +2352,20 @@ } }, "node_modules/es-module-lexer": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", - "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==" + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.5.4.tgz", + "integrity": "sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==", + "license": "MIT" }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", "engines": { "node": ">=6" } }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -2368,6 +2410,7 @@ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=0.10.0" } @@ -2388,7 +2431,8 @@ "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "license": "MIT" }, "node_modules/fastest-levenshtein": { "version": "1.0.16", @@ -2400,9 +2444,10 @@ } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" }, @@ -2411,20 +2456,111 @@ } }, "node_modules/find-cache-dir": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", - "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-4.0.0.tgz", + "integrity": "sha512-9ZonPT4ZAK4a+1pUPVPZJapbi7O5qbbJPdYw/NOQWZZbVLdDTYM3A4R9z/DpAM08IDaFGsvPgiGZ82WEwUDWjg==", "dev": true, + "license": "MIT", "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" + "common-path-prefix": "^3.0.0", + "pkg-dir": "^7.0.0" }, "engines": { - "node": ">=8" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/find-up": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-6.3.0.tgz", + "integrity": "sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^7.1.0", + "path-exists": "^5.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/locate-path": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-7.2.0.tgz", + "integrity": "sha512-gvVijfZvn7R+2qyPX8mAuKcFGDf6Nc61GdvGafQsHL0sBIxfKzA+usWn4GFC/bk+QdwPUD4kWFJLhElipq+0VA==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^6.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-limit": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-4.0.0.tgz", + "integrity": "sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^1.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/p-locate": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-6.0.0.tgz", + "integrity": "sha512-wPrq66Llhl7/4AGC6I+cqxT07LhXvWL08LNXz1fENOw0Ap4sRZZ/gZpTTJ5jpurzzzfS2W/Ge9BY3LgLjCShcw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^4.0.0" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/find-cache-dir/node_modules/path-exists": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-5.0.0.tgz", + "integrity": "sha512-RjhtfwJOxzcFmNOi6ltcbcu4Iu+FL3zEj83dk4kAS+fVpTxXLO1b38RvJgT/0QwvV/L3aY9TAnyv0EOqW4GoMQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + } + }, + "node_modules/find-cache-dir/node_modules/pkg-dir": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-7.0.0.tgz", + "integrity": "sha512-Ie9z/WINcxxLp27BKOCHGde4ITq9UklYKDzVo1nhk5sqGEXU3FpkwP5GM2voTGJkGd9B3Otl+Q4uwSOeSUtOBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "find-up": "^6.3.0" + }, + "engines": { + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/find-up": { @@ -2440,6 +2576,23 @@ "node": ">=8" } }, + "node_modules/foreground-child": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.0.tgz", + "integrity": "sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==", + "dev": true, + "license": "ISC", + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/function-bind": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", @@ -2455,24 +2608,51 @@ "node": ">=6.9.0" } }, + "node_modules/glob": { + "version": "11.0.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.0.tgz", + "integrity": "sha512-9UiX/Bl6J2yaBbxKoEBRm4Cipxgok8kQYcOPEhScPwebu2I0HoQOuYdIO6S3hLuWoZgpDpwQZMzTFxgpkyT76g==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^4.0.1", + "minimatch": "^10.0.0", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^2.0.0" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/glob-to-regexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", - "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==" + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "license": "BSD-2-Clause" }, "node_modules/globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==" + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "license": "ISC" }, "node_modules/has": { "version": "1.0.3", @@ -2487,12 +2667,12 @@ } }, "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/import-local": { @@ -2535,10 +2715,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "license": "MIT", "engines": { "node": ">=0.12.0" } @@ -2570,10 +2761,27 @@ "node": ">=0.10.0" } }, + "node_modules/jackspeak": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.0.2.tgz", + "integrity": "sha512-bZsjR/iRjl1Nk1UkjGpAzLNfQtzuijhn2g+pbZb98HQ1Gk8vM9hfbxeMBP+M2/UUdwj0RqGG3mlvk2MsAqwvEw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-worker": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "license": "MIT", "dependencies": { "@types/node": "*", "merge-stream": "^2.0.0", @@ -2583,44 +2791,24 @@ "node": ">= 10.13.0" } }, - "node_modules/jest-worker/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz", + "integrity": "sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==", "dev": true, + "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-parse-even-better-errors": { @@ -2631,7 +2819,8 @@ "node_modules/json-schema-traverse": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==" + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT" }, "node_modules/json5": { "version": "2.2.3", @@ -2678,45 +2867,22 @@ "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", - "dev": true - }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } + "license": "MIT" }, "node_modules/merge-stream": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "license": "MIT" }, "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "license": "MIT", "dependencies": { - "braces": "^3.0.2", + "braces": "^3.0.3", "picomatch": "^2.3.1" }, "engines": { @@ -2742,6 +2908,32 @@ "node": ">= 0.6" } }, + "node_modules/minimatch": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.1.tgz", + "integrity": "sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -2754,9 +2946,10 @@ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.18.tgz", + "integrity": "sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==", + "license": "MIT" }, "node_modules/p-limit": { "version": "2.3.0", @@ -2794,6 +2987,13 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", @@ -2818,10 +3018,38 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz", + "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^11.0.0", + "minipass": "^7.1.2" + }, + "engines": { + "node": "20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.0.2.tgz", + "integrity": "sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==", + "dev": true, + "license": "ISC", + "engines": { + "node": "20 || >=22" + } + }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" }, "node_modules/picomatch": { "version": "2.3.1", @@ -2847,14 +3075,15 @@ } }, "node_modules/prettier": { - "version": "2.8.4", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.4.tgz", - "integrity": "sha512-vIS4Rlc2FNh0BySk3Wkd6xmwxB0FpOndW5fisM5H8hsZSxU2VWVB5CWIkIjWvrHjIhxk2g3bfMKM87zNTrZddw==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.3.3.tgz", + "integrity": "sha512-i2tDNA0O5IrMO757lfrdQZCc2jPNDVntV0m/+4whiDfWaTKfMNgR7Qz0NAeGz/nRqF4m5/6CLzbP4/liHt12Ew==", + "license": "MIT", "bin": { - "prettier": "bin-prettier.js" + "prettier": "bin/prettier.cjs" }, "engines": { - "node": ">=10.13.0" + "node": ">=14" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" @@ -2872,6 +3101,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "license": "MIT", "dependencies": { "safe-buffer": "^5.1.0" } @@ -2892,13 +3122,15 @@ "version": "1.4.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true + "dev": true, + "license": "MIT" }, "node_modules/regenerate-unicode-properties": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.1.0.tgz", - "integrity": "sha512-d1VudCLoIGitcU/hEg2QqvyGZQmdC0Lf8BqdOMXGFSvJP4bNV1+XqbPQeHHLD51Jh4QJJ225dlIFvY4Ly6MXmQ==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz", + "integrity": "sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2" }, @@ -2907,63 +3139,59 @@ } }, "node_modules/regenerator-runtime": { - "version": "0.13.10", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", - "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", + "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", + "license": "MIT" }, "node_modules/regenerator-transform": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", - "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "version": "0.15.2", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.2.tgz", + "integrity": "sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg==", "dev": true, + "license": "MIT", "dependencies": { "@babel/runtime": "^7.8.4" } }, "node_modules/regexpu-core": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.2.1.tgz", - "integrity": "sha512-HrnlNtpvqP1Xkb28tMhBUO2EbyUHdQlsnlAhzWcwHy8WJR53UWr7/MAvqrsQKMbV4qdpv03oTMG8iIhfsPFktQ==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-6.1.1.tgz", + "integrity": "sha512-k67Nb9jvwJcJmVpw0jPttR1/zVfnKf8Km0IPatrU/zJ5XeG3+Slx0xLXs9HByJSzXzrlz5EDvN6yLNMDc2qdnw==", "dev": true, + "license": "MIT", "dependencies": { "regenerate": "^1.4.2", - "regenerate-unicode-properties": "^10.1.0", - "regjsgen": "^0.7.1", - "regjsparser": "^0.9.1", + "regenerate-unicode-properties": "^10.2.0", + "regjsgen": "^0.8.0", + "regjsparser": "^0.11.0", "unicode-match-property-ecmascript": "^2.0.0", - "unicode-match-property-value-ecmascript": "^2.0.0" + "unicode-match-property-value-ecmascript": "^2.1.0" }, "engines": { "node": ">=4" } }, "node_modules/regjsgen": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.7.1.tgz", - "integrity": "sha512-RAt+8H2ZEzHeYWxZ3H2z6tF18zyyOnlcdaafLrm21Bguj7uZy6ULibiAFdXEtKQY4Sy7wDTwDiOazasMLc4KPA==", - "dev": true + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.8.0.tgz", + "integrity": "sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q==", + "dev": true, + "license": "MIT" }, "node_modules/regjsparser": { - "version": "0.9.1", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.9.1.tgz", - "integrity": "sha512-dQUtn90WanSNl+7mQKcXAgZxvUe7Z0SqXlgzv0za4LwiUhyzBC58yQO3liFoUgu8GiJVInAhJjkj1N0EtQ5nkQ==", + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.11.2.tgz", + "integrity": "sha512-3OGZZ4HoLJkkAZx/48mTXJNlmqTGOzc0o9OWQPuWpkOlXXPbyN6OafCcoXUnBqE2D3f/T5L+pWc1kdEmnfnRsA==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "jsesc": "~0.5.0" + "jsesc": "~3.0.2" }, "bin": { "regjsparser": "bin/parser" } }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, "node_modules/require-from-string": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", @@ -3012,15 +3240,20 @@ } }, "node_modules/rimraf": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-4.1.3.tgz", - "integrity": "sha512-iyzalDLo3l5FZxxaIGUY7xI4Bf90Xt7pCipc1Mr7RsdU7H3538z+M0tlsUDrz0aHeGS9uNqiKHUJyTewwRP91Q==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-6.0.1.tgz", + "integrity": "sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A==", "dev": true, + "license": "ISC", + "dependencies": { + "glob": "^11.0.0", + "package-json-from-dist": "^1.0.0" + }, "bin": { - "rimraf": "dist/cjs/src/bin.js" + "rimraf": "dist/esm/bin.mjs" }, "engines": { - "node": ">=14" + "node": "20 || >=22" }, "funding": { "url": "https://github.com/sponsors/isaacs" @@ -3043,7 +3276,8 @@ "type": "consulting", "url": "https://feross.org/support" } - ] + ], + "license": "MIT" }, "node_modules/schema-utils": { "version": "4.0.0", @@ -3099,18 +3333,20 @@ "dev": true }, "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, + "license": "ISC", "bin": { "semver": "bin/semver.js" } }, "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "license": "BSD-3-Clause", "dependencies": { "randombytes": "^2.1.0" } @@ -3148,33 +3384,164 @@ "node": ">=8" } }, + "node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "version": "0.7.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", + "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", + "license": "BSD-3-Clause", "engines": { - "node": ">=0.10.0" + "node": ">= 8" } }, "node_modules/source-map-support": { "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "license": "MIT", "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" } }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/source-map-support/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dev": true, + "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" }, "engines": { - "node": ">=4" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" } }, "node_modules/supports-preserve-symlinks-flag": { @@ -3198,12 +3565,13 @@ } }, "node_modules/terser": { - "version": "5.15.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", - "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "version": "5.36.0", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.36.0.tgz", + "integrity": "sha512-IYV9eNMuFAV4THUspIRXkLakHnV6XO7FEdtKjf/mDyrnqUg9LnlOn6/RwRvM9SZjR4GUq8Nk8zj67FzVARr74w==", + "license": "BSD-2-Clause", "dependencies": { - "@jridgewell/source-map": "^0.3.2", - "acorn": "^8.5.0", + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", "commander": "^2.20.0", "source-map-support": "~0.5.20" }, @@ -3215,15 +3583,16 @@ } }, "node_modules/terser-webpack-plugin": { - "version": "5.3.6", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", - "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "version": "5.3.10", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz", + "integrity": "sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w==", + "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.14", + "@jridgewell/trace-mapping": "^0.3.20", "jest-worker": "^27.4.5", "schema-utils": "^3.1.1", - "serialize-javascript": "^6.0.0", - "terser": "^5.14.1" + "serialize-javascript": "^6.0.1", + "terser": "^5.26.0" }, "engines": { "node": ">= 10.13.0" @@ -3248,9 +3617,10 @@ } }, "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -3264,19 +3634,11 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "license": "MIT", "dependencies": { "is-number": "^7.0.0" }, @@ -3285,14 +3647,16 @@ } }, "node_modules/ts-loader": { - "version": "9.4.2", - "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.4.2.tgz", - "integrity": "sha512-OmlC4WVmFv5I0PpaxYb+qGeGOdm5giHU7HwDDUjw59emP2UYMHy9fFSDcYgSNoH8sXcj4hGCSEhlDZ9ULeDraA==", + "version": "9.5.1", + "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.5.1.tgz", + "integrity": "sha512-rNH3sK9kGZcH9dYzC7CewQm4NtxJTjSEVRJ2DyBZR7f8/wcta+iV44UPCXc5+nzDzivKtlzV6c9P4e+oFhDLYg==", + "license": "MIT", "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", "micromatch": "^4.0.0", - "semver": "^7.3.4" + "semver": "^7.3.4", + "source-map": "^0.7.4" }, "engines": { "node": ">=12.0.0" @@ -3331,37 +3695,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, - "node_modules/ts-loader/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/ts-loader/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/ts-loader/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, "node_modules/ts-loader/node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -3381,22 +3719,30 @@ } }, "node_modules/typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "version": "5.6.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.3.tgz", + "integrity": "sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==", + "license": "Apache-2.0", "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { - "node": ">=4.2.0" + "node": ">=14.17" } }, + "node_modules/undici-types": { + "version": "6.19.8", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", + "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", + "license": "MIT" + }, "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", - "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz", + "integrity": "sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3406,6 +3752,7 @@ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, + "license": "MIT", "dependencies": { "unicode-canonical-property-names-ecmascript": "^2.0.0", "unicode-property-aliases-ecmascript": "^2.0.0" @@ -3415,10 +3762,11 @@ } }, "node_modules/unicode-match-property-value-ecmascript": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", - "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz", + "integrity": "sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -3428,14 +3776,15 @@ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz", "integrity": "sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.1.tgz", + "integrity": "sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==", "funding": [ { "type": "opencollective", @@ -3444,14 +3793,19 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -3466,9 +3820,10 @@ } }, "node_modules/watchpack": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", - "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.2.tgz", + "integrity": "sha512-TnbFSbcOCcDgjZ4piURLCbJ3nJhznVh9kw6F6iokjiFPl8ONxe9A6nMDVXDiNbrSfLILs6vB07F7wLBrwPYzJw==", + "license": "MIT", "dependencies": { "glob-to-regexp": "^0.4.1", "graceful-fs": "^4.1.2" @@ -3478,33 +3833,33 @@ } }, "node_modules/webpack": { - "version": "5.75.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.75.0.tgz", - "integrity": "sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==", - "dependencies": { - "@types/eslint-scope": "^3.7.3", - "@types/estree": "^0.0.51", - "@webassemblyjs/ast": "1.11.1", - "@webassemblyjs/wasm-edit": "1.11.1", - "@webassemblyjs/wasm-parser": "1.11.1", + "version": "5.94.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", + "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "license": "MIT", + "dependencies": { + "@types/estree": "^1.0.5", + "@webassemblyjs/ast": "^1.12.1", + "@webassemblyjs/wasm-edit": "^1.12.1", + "@webassemblyjs/wasm-parser": "^1.12.1", "acorn": "^8.7.1", - "acorn-import-assertions": "^1.7.6", - "browserslist": "^4.14.5", + "acorn-import-attributes": "^1.9.5", + "browserslist": "^4.21.10", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^5.10.0", - "es-module-lexer": "^0.9.0", + "enhanced-resolve": "^5.17.1", + "es-module-lexer": "^1.2.1", "eslint-scope": "5.1.1", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", - "graceful-fs": "^4.2.9", + "graceful-fs": "^4.2.11", "json-parse-even-better-errors": "^2.3.1", "loader-runner": "^4.2.0", "mime-types": "^2.1.27", "neo-async": "^2.6.2", - "schema-utils": "^3.1.0", + "schema-utils": "^3.2.0", "tapable": "^2.1.1", - "terser-webpack-plugin": "^5.1.3", - "watchpack": "^2.4.0", + "terser-webpack-plugin": "^5.3.10", + "watchpack": "^2.4.1", "webpack-sources": "^3.2.3" }, "bin": { @@ -3524,17 +3879,18 @@ } }, "node_modules/webpack-cli": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.0.1.tgz", - "integrity": "sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/webpack-cli/-/webpack-cli-5.1.4.tgz", + "integrity": "sha512-pIDJHIEI9LR0yxHXQ+Qh95k2EvXpWzZ5l+d+jIo+RdSm9MiHfzazIxwwni/p7+x4eJZuvG1AJwgC4TNQ7NRgsg==", "dev": true, + "license": "MIT", "dependencies": { "@discoveryjs/json-ext": "^0.5.0", - "@webpack-cli/configtest": "^2.0.1", - "@webpack-cli/info": "^2.0.1", - "@webpack-cli/serve": "^2.0.1", + "@webpack-cli/configtest": "^2.1.1", + "@webpack-cli/info": "^2.0.2", + "@webpack-cli/serve": "^2.0.5", "colorette": "^2.0.14", - "commander": "^9.4.1", + "commander": "^10.0.1", "cross-spawn": "^7.0.3", "envinfo": "^7.7.3", "fastest-levenshtein": "^1.0.12", @@ -3569,12 +3925,13 @@ } }, "node_modules/webpack-cli/node_modules/commander": { - "version": "9.4.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", - "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", "dev": true, + "license": "MIT", "engines": { - "node": "^12.20.0 || >=14" + "node": ">=14" } }, "node_modules/webpack-merge": { @@ -3599,9 +3956,10 @@ } }, "node_modules/webpack/node_modules/schema-utils": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", - "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.3.0.tgz", + "integrity": "sha512-pN/yOAvcC+5rQ5nERGuwrjLlYvLTbCibnZ1I7B1LaiAz9BRBlE9GMgE/eqV30P7aJQUf7Ddimy/RsbYO/GrVGg==", + "license": "MIT", "dependencies": { "@types/json-schema": "^7.0.8", "ajv": "^6.12.5", @@ -3636,10 +3994,116 @@ "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", "dev": true }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, + "node_modules/wrap-ansi-cjs/node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yocto-queue": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-1.1.1.tgz", + "integrity": "sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } From 59f7d47101de161ebc295f14e7ce6dd641418c11 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 19:26:57 +0100 Subject: [PATCH 06/15] solved CI issue --- src/jsfeatNext.ts | 48 ++++++++++++++++++++-------------------- src/matrix_t/matrix_t.ts | 16 +++++++------- 2 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/jsfeatNext.ts b/src/jsfeatNext.ts index 0f603f7..ac27639 100644 --- a/src/jsfeatNext.ts +++ b/src/jsfeatNext.ts @@ -2162,13 +2162,13 @@ jsfeatNext.math = class math extends jsfeatNext { ? cmp(tb, tc) ? b : cmp(ta, tc) - ? c - : a + ? c + : a : cmp(tc, tb) - ? b - : cmp(ta, tc) - ? a - : c; + ? b + : cmp(ta, tc) + ? a + : c; (a = pivot - d), (b = pivot), (c = pivot + d); (ta = array[a]), (tb = array[b]), (tc = array[c]); @@ -2176,13 +2176,13 @@ jsfeatNext.math = class math extends jsfeatNext { ? cmp(tb, tc) ? b : cmp(ta, tc) - ? c - : a + ? c + : a : cmp(tc, tb) - ? b - : cmp(ta, tc) - ? a - : c; + ? b + : cmp(ta, tc) + ? a + : c; (a = right - (d << 1)), (b = right - d), (c = right); (ta = array[a]), (tb = array[b]), (tc = array[c]); @@ -2190,13 +2190,13 @@ jsfeatNext.math = class math extends jsfeatNext { ? cmp(tb, tc) ? b : cmp(ta, tc) - ? c - : a + ? c + : a : cmp(tc, tb) - ? b - : cmp(ta, tc) - ? a - : c; + ? b + : cmp(ta, tc) + ? a + : c; } (a = left), (b = pivot), (c = right); @@ -2205,13 +2205,13 @@ jsfeatNext.math = class math extends jsfeatNext { ? cmp(tb, tc) ? b : cmp(ta, tc) - ? c - : a + ? c + : a : cmp(tc, tb) - ? b - : cmp(ta, tc) - ? a - : c; + ? b + : cmp(ta, tc) + ? a + : c; if (pivot != left0) { t = array[pivot]; array[pivot] = array[left0]; diff --git a/src/matrix_t/matrix_t.ts b/src/matrix_t/matrix_t.ts index 32f2f7a..01dd880 100644 --- a/src/matrix_t/matrix_t.ts +++ b/src/matrix_t/matrix_t.ts @@ -38,10 +38,10 @@ export class matrix_t implements IMatrix_T { this.type & JSFEAT_CONSTANTS.U8_t ? this.buffer.u8 : this.type & JSFEAT_CONSTANTS.S32_t - ? this.buffer.i32 - : this.type & JSFEAT_CONSTANTS.F32_t - ? this.buffer.f32 - : this.buffer.f64; + ? this.buffer.i32 + : this.type & JSFEAT_CONSTANTS.F32_t + ? this.buffer.f32 + : this.buffer.f64; } } @@ -55,10 +55,10 @@ export class matrix_t implements IMatrix_T { this.type & JSFEAT_CONSTANTS.U8_t ? this.buffer.u8 : this.type & JSFEAT_CONSTANTS.S32_t - ? this.buffer.i32 - : this.type & JSFEAT_CONSTANTS.F32_t - ? this.buffer.f32 - : this.buffer.f64; + ? this.buffer.i32 + : this.type & JSFEAT_CONSTANTS.F32_t + ? this.buffer.f32 + : this.buffer.f64; } copy_to(other: IMatrix_T): void { From f0cde62a8e2866d509b83dc6fa11865739c512d3 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 21:05:04 +0100 Subject: [PATCH 07/15] avoid using var in favor of const or let --- dist/jsfeatNext.js | 2 +- dist/src/cache/cache.js | 6 +- dist/src/cache/cache.js.map | 2 +- dist/src/data_type/data_type.js.map | 2 +- dist/src/fast_corners/fast_private.js | 4 +- dist/src/fast_corners/fast_private.js.map | 2 +- dist/src/imgproc/convol.js | 8 +- dist/src/imgproc/convol.js.map | 1 - dist/src/imgproc/resample.js | 52 +- dist/src/imgproc/resample.js.map | 2 +- dist/src/jsfeatNext.js | 820 ++++++++--------- dist/src/jsfeatNext.js.map | 2 +- dist/src/keypoint_t/keypoint_t.js.map | 2 +- dist/src/linalg/linalg_base.js.map | 2 +- dist/src/matmath/matmath.js | 116 +-- dist/src/matmath/matmath.js.map | 2 +- dist/src/matrix_t/matrix_t.js | 6 +- dist/src/matrix_t/matrix_t.js.map | 2 +- dist/src/motion_estimator/ransac_params_t.js | 4 +- .../motion_estimator/ransac_params_t.js.map | 2 +- dist/src/node_utils/data_t.js.map | 2 +- dist/src/orb/rectify_patch.js | 4 +- dist/src/orb/rectify_patch.js.map | 2 +- dist/src/transform/transform.js | 132 +-- dist/src/transform/transform.js.map | 2 +- dist/src/yape/yape.js | 30 +- dist/src/yape/yape.js.map | 2 +- dist/src/yape/yape_utils.js | 16 +- dist/src/yape/yape_utils.js.map | 2 +- dist/src/yape06/yape06_utils.js | 10 +- dist/src/yape06/yape06_utils.js.map | 2 +- src/cache/cache.ts | 6 +- src/data_type/data_type.ts | 2 +- src/fast_corners/fast_private.ts | 4 +- src/imgproc/convol.ts | 8 +- src/imgproc/resample.ts | 52 +- src/jsfeatNext.ts | 828 +++++++++--------- src/matmath/matmath.ts | 116 +-- src/matrix_t/matrix_t.ts | 6 +- src/motion_estimator/ransac_params_t.ts | 4 +- src/orb/rectify_patch.ts | 4 +- src/transform/transform.ts | 133 +-- src/yape/yape.ts | 30 +- src/yape/yape_utils.ts | 16 +- src/yape06/yape06_utils.ts | 10 +- types/src/data_type/data_type.d.ts | 2 +- 46 files changed, 1234 insertions(+), 1230 deletions(-) delete mode 100644 dist/src/imgproc/convol.js.map diff --git a/dist/jsfeatNext.js b/dist/jsfeatNext.js index d497aab..5a54882 100644 --- a/dist/jsfeatNext.js +++ b/dist/jsfeatNext.js @@ -1 +1 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.jsfeatNext=e():t.jsfeatNext=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function r(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function a(t,e){return a=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},a(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&a(t,e)}function f(t){return f="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},f(t)}function o(t,e){if(e&&("object"===f(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return r(t)}function s(t){return s=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},s(t)}function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function h(t,e){for(var r=0;rF});var d=function(){function t(){n(this,t),c(this,"_data_type_size",void 0),this._data_type_size=new Int32Array([-1,1,4,-1,4,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,8])}return u(t,[{key:"_get_data_type",value:function(t){return 65280&t}},{key:"_get_channel",value:function(t){return 255&t}},{key:"_get_data_type_size",value:function(t){return this._data_type_size[(65280&t)>>8]}}]),t}(),_=u((function t(e,r){n(this,t),c(this,"size",void 0),c(this,"buffer",void 0),c(this,"u8",void 0),c(this,"i32",void 0),c(this,"f32",void 0),c(this,"f64",void 0),this.size=-8&(e+7|0),void 0===r?this.buffer=new ArrayBuffer(this.size):(this.buffer=r,this.size=r.length),this.u8=new Uint8Array(this.buffer),this.i32=new Int32Array(this.buffer),this.f32=new Float32Array(this.buffer),this.f64=new Float64Array(this.buffer)})),v=function(){function t(e){n(this,t),c(this,"next",void 0),c(this,"data",void 0),c(this,"size",void 0),c(this,"buffer",void 0),c(this,"u8",void 0),c(this,"i32",void 0),c(this,"f32",void 0),c(this,"f64",void 0),this.next=null,this.data=new _(e),this.size=this.data.size,this.buffer=this.data.buffer,this.u8=this.data.u8,this.i32=this.data.i32,this.f32=this.data.f32,this.f64=this.data.f64}return u(t,[{key:"resize",value:function(t){delete this.data,this.data=new _(t),this.size=this.data.size,this.buffer=this.data.buffer,this.u8=this.data.u8,this.i32=this.data.i32,this.f32=this.data.f32,this.f64=this.data.f64}}]),t}(),l=function(){function t(){n(this,t),c(this,"_pool_head",void 0),c(this,"_pool_tail",void 0),c(this,"_pool_size",void 0),this._pool_head,this._pool_tail,this._pool_size=0}return u(t,[{key:"allocate",value:function(t,e){this._pool_head=this._pool_tail=new v(e);for(var r=0;re.size&&e.resize(t),e}},{key:"put_buffer",value:function(t){this._pool_tail=this._pool_tail.next=t,this._pool_size++}}]),t}();function b(t,e,r,a){a=t[e],t[e]=t[r],t[r]=a}function p(t,e){return(t=Math.abs(t))>(e=Math.abs(e))?(e/=t,t*Math.sqrt(1+e*e)):e>0?(t/=e,e*Math.sqrt(1+t*t)):0}function y(t,e,r,a,i){for(var f=0,o=t[e],s=i,n=0,h=0,u=0;f<25;++f)a[f]=o-t[e+r[f]];for(f=0;f<16;f+=2)n=Math.min(a[f+1],a[f+2]),(n=Math.min(n,a[f+3]))<=s||(n=Math.min(n,a[f+4]),n=Math.min(n,a[f+5]),n=Math.min(n,a[f+6]),n=Math.min(n,a[f+7]),n=Math.min(n,a[f+8]),s=Math.max(s,Math.min(n,a[f])),s=Math.max(s,Math.min(n,a[f+9])));for(h=-s,f=0;f<16;f+=2)u=Math.max(a[f+1],a[f+2]),u=Math.max(u,a[f+3]),u=Math.max(u,a[f+4]),(u=Math.max(u,a[f+5]))>=h||(u=Math.max(u,a[f+6]),u=Math.max(u,a[f+7]),u=Math.max(u,a[f+8]),h=Math.min(h,Math.max(u,a[f])),h=Math.min(h,Math.max(u,a[f+9])));return-h-1}var m=function(){function t(){n(this,t)}return u(t,[{key:"identity",value:function(t,e){void 0===e&&(e=1);for(var r=t.data,a=t.rows,i=t.cols,f=i+1|0,o=a*i,s=o;--o>=0;)r[o]=0;for(o=s,s=0;sthis.buffer.size?(this.cols=t,this.rows=e,this.channel=r,this.allocate()):(this.cols=t,this.rows=e,this.channel=r)}}]),t}(),A=function(){function t(){n(this,t)}return u(t,[{key:"perspective_4point_transform",value:function(t,e,r,a,i,f,o,s,n,h,u,c,d,_,v,l,b){var p=e,y=h,m=o,M=p*y*m,w=v,k=p*w,x=y*k,g=u,A=p*g,z=f,O=r,q=_,C=O*q,T=C*z,B=q*z*g,R=q*m,S=q*g,j=y*m,I=w*y,L=w*z,P=g*z,U=1/(R-S-j+I-L+P),E=p*q,F=O*z,V=m*p,G=w*V,N=O*y,D=C*g,J=O*g*z,Y=m*w*y,H=w*O,Q=-(x-M+A*z-z*k-C*y+T-B+R*y)*U,X=(M-x-E*m+E*g+T-y*F+L*y-B)*U,K=p,W=(-g*k+G+N*m-C*m+D-J+L*g-Y)*U,Z=(V*g-G-H*y+D-J+H*z+Y-R*g)*U,$=O,tt=(-A+V+N-F+S-R-I+L)*U,et=(-k+A+C-N+L-P-R+j)*U,rt=-((x=(y=c)*(k=(p=a)*(w=b)))-(M=p*y*(m=n))+(A=p*(g=d))*(z=s)-z*k-(C=(O=i)*(q=l))*y+(T=C*z)-(B=q*z*g)+(R=q*m)*y)*(U=1/(R-(S=q*g)-(j=y*m)+(I=w*y)-(L=w*z)+(P=g*z))),at=(M-x-(E=p*q)*m+E*g+T-y*(F=O*z)+L*y-B)*U,it=p,ft=(-g*k+(G=w*(V=m*p))+(N=O*y)*m-C*m+(D=C*g)-(J=O*g*z)+L*g-(Y=m*w*y))*U,ot=(V*g-G-(H=w*O)*y+D-J+H*z+Y-R*g)*U,st=O,nt=(-A+V+N-F+S-R-I+L)*U,ht=(-k+A+C-N+L-P-R+j)*U,ut=K*tt;T=$*tt-W;var ct=-W*et+Z*tt,dt=Q-ut;F=Q*et-(A=X*tt);var _t=(M=Q*$)-(x=K*W),vt=(m=Q*Z)-(k=W*X);J=(y=Z-et*$)*(q=1/(m-M*et-k+x*et+A*$-ut*Z));var lt=(P=K*et-X)*q,bt=(V=-X*$+K*Z)*q,pt=t.data;pt[0]=rt*J+at*(T*q)-it*(ct*q),pt[1]=rt*lt+at*(dt*q)-it*(F*q),pt[2]=-rt*bt-at*(_t*q)+it*(vt*q),pt[3]=ft*J+ot*(T*q)-st*(ct*q),pt[4]=ft*lt+ot*(dt*q)-st*(F*q),pt[5]=-ft*bt-ot*(_t*q)+st*(vt*q),pt[6]=nt*J+ht*(T*q)-ct*q,pt[7]=nt*lt+ht*(dt*q)-F*q,pt[8]=-nt*bt-ht*(_t*q)+vt*q}},{key:"invert_affine_transform",value:function(t,e){var r=t.data,a=e.data,i=r[0],f=r[1],o=r[2],s=r[3],n=r[4],h=r[5],u=1/(i*n-f*s);a[0]=u*n,a[1]=u*-f,a[2]=u*(f*h-o*n),a[3]=u*-s,a[4]=u*i,a[5]=u*(o*s-i*h)}},{key:"invert_perspective_transform",value:function(t,e){var r=t.data,a=e.data,i=r[0],f=r[1],o=r[2],s=r[3],n=r[4],h=r[5],u=r[6],c=r[7],d=r[8],_=1/(i*(n*d-h*c)-f*(s*d-h*u)+o*(s*c-n*u));a[0]=_*(n*d-h*c),a[1]=_*(o*c-f*d),a[2]=_*(f*h-o*n),a[3]=_*(h*u-s*d),a[4]=_*(i*d-o*u),a[5]=_*(o*s-i*h),a[6]=_*(s*c-n*u),a[7]=_*(f*u-i*c),a[8]=_*(i*n-f*s)}}]),t}(),z=u((function t(e,r,a,i,f){n(this,t),c(this,"x",void 0),c(this,"y",void 0),c(this,"score",void 0),c(this,"level",void 0),c(this,"angle",void 0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===f&&(f=-1),this.x=e,this.y=r,this.score=a,this.level=i,this.angle=f})),O=[8,-3,9,5,4,2,7,-12,-11,9,-8,2,7,-12,12,-13,2,-13,2,12,1,-7,1,6,-2,-10,-2,-4,-13,-13,-11,-8,-13,-3,-12,-9,10,4,11,9,-13,-8,-8,-9,-11,7,-9,12,7,7,12,6,-4,-5,-3,0,-13,2,-12,-3,-9,0,-7,5,12,-6,12,-1,-3,6,-2,12,-6,-13,-4,-8,11,-13,12,-8,4,7,5,1,5,-3,10,-3,3,-7,6,12,-8,-7,-6,-2,-2,11,-1,-10,-13,12,-8,10,-7,3,-5,-3,-4,2,-3,7,-10,-12,-6,11,5,-12,6,-7,5,-6,7,-1,1,0,4,-5,9,11,11,-13,4,7,4,12,2,-1,4,4,-4,-12,-2,7,-8,-5,-7,-10,4,11,9,12,0,-8,1,-13,-13,-2,-8,2,-3,-2,-2,3,-6,9,-4,-9,8,12,10,7,0,9,1,3,7,-5,11,-10,-13,-6,-11,0,10,7,12,1,-6,-3,-6,12,10,-9,12,-4,-13,8,-8,-12,-13,0,-8,-4,3,3,7,8,5,7,10,-7,-1,7,1,-12,3,-10,5,6,2,-4,3,-10,-13,0,-13,5,-13,-7,-12,12,-13,3,-11,8,-7,12,-4,7,6,-10,12,8,-9,-1,-7,-6,-2,-5,0,12,-12,5,-7,5,3,-10,8,-13,-7,-7,-4,5,-3,-2,-1,-7,2,9,5,-11,-11,-13,-5,-13,-1,6,0,-1,5,-3,5,2,-4,-13,-4,12,-9,-6,-9,6,-12,-10,-8,-4,10,2,12,-3,7,12,12,12,-7,-13,-6,5,-4,9,-3,4,7,-1,12,2,-7,6,-5,1,-13,11,-12,5,-3,7,-2,-6,7,-8,12,-7,-13,-7,-11,-12,1,-3,12,12,2,-6,3,0,-4,3,-2,-13,-1,-13,1,9,7,1,8,-6,1,-1,3,12,9,1,12,6,-1,-9,-1,3,-13,-13,-10,5,7,7,10,12,12,-5,12,9,6,3,7,11,5,-13,6,10,2,-12,2,3,3,8,4,-6,2,6,12,-13,9,-12,10,3,-8,4,-7,9,-11,12,-4,-6,1,12,2,-8,6,-9,7,-4,2,3,3,-2,6,3,11,0,3,-3,8,-8,7,8,9,3,-11,-5,-6,-4,-10,11,-5,10,-5,-8,-3,12,-10,5,-9,0,8,-1,12,-6,4,-6,6,-11,-10,12,-8,7,4,-2,6,7,-2,0,-2,12,-5,-8,-5,2,7,-6,10,12,-9,-13,-8,-8,-5,-13,-5,-2,8,-8,9,-13,-9,-11,-9,0,1,-8,1,-2,7,-4,9,1,-2,1,-1,-4,11,-6,12,-11,-12,-9,-6,4,3,7,7,12,5,5,10,8,0,-4,2,8,-9,12,-5,-13,0,7,2,12,-1,2,1,7,5,11,7,-9,3,5,6,-8,-13,-4,-8,9,-5,9,-3,-3,-4,-7,-3,-12,6,5,8,0,-7,6,-6,12,-13,6,-5,-2,1,-10,3,10,4,1,8,-4,-2,-2,2,-13,2,-12,12,12,-2,-13,0,-6,4,1,9,3,-6,-10,-3,-5,-3,-13,-1,1,7,5,12,-11,4,-2,5,-7,-13,9,-9,-5,7,1,8,6,7,-8,7,6,-7,-4,-7,1,-8,11,-7,-8,-13,6,-12,-8,2,4,3,9,10,-5,12,3,-6,-5,-6,7,8,-3,9,-8,2,-12,2,8,-11,-2,-10,3,-12,-13,-7,-9,-11,0,-10,-5,5,-3,11,8,-2,-13,-1,12,-1,-8,0,9,-13,-11,-12,-5,-10,-2,-10,11,-3,9,-2,-13,2,-3,3,2,-9,-13,-4,0,-4,6,-3,-10,-4,12,-2,-7,-6,-11,-4,9,6,-3,6,11,-13,11,-5,5,11,11,12,6,7,-5,12,-2,-1,12,0,7,-4,-8,-3,-2,-7,1,-6,7,-13,-12,-8,-13,-7,-2,-6,-8,-8,5,-6,-9,-5,-1,-4,5,-13,7,-8,10,1,5,5,-13,1,0,10,-13,9,12,10,-1,5,-8,10,-9,-1,11,1,-13,-9,-3,-6,2,-1,-10,1,12,-13,1,-8,-10,8,-11,10,-6,2,-13,3,-6,7,-13,12,-9,-10,-10,-5,-7,-10,-8,-8,-13,4,-6,8,5,3,12,8,-13,-4,2,-3,-3,5,-13,10,-12,4,-13,5,-1,-9,9,-4,3,0,3,3,-9,-12,1,-6,1,3,2,4,-8,-10,-10,-10,9,8,-13,12,12,-8,-12,-6,-5,2,2,3,7,10,6,11,-8,6,8,8,-12,-7,10,-6,5,-3,-9,-3,9,-1,-13,-1,5,-3,-7,-3,4,-8,-2,-8,3,4,2,12,12,2,-5,3,11,6,-9,11,-13,3,-1,7,12,11,-1,12,4,-3,0,-3,6,4,-11,4,12,2,-4,2,1,-10,-6,-8,1,-13,7,-11,1,-13,12,-11,-13,6,0,11,-13,0,-1,1,4,-13,3,-9,-2,-9,8,-6,-3,-13,-6,-8,-2,5,-9,8,10,2,7,3,-9,-1,-6,-1,-1,9,5,11,-2,11,-3,12,-8,3,0,3,5,-1,4,0,10,3,-6,4,5,-13,0,-10,5,5,8,12,11,8,9,9,-6,7,-4,8,-12,-10,4,-10,9,7,3,12,4,9,-7,10,-2,7,0,12,-2,-1,-6,0,-11];function q(t,e,r,a,i,f,o,s){var n=Math.cos(r),h=Math.sin(r);o.data[0]=n,o.data[1]=-h,o.data[2]=(-n+h)*f*.5+a,o.data[3]=h,o.data[4]=n,o.data[5]=(-h-n)*f*.5+i,s.warp_affine(t,e,o,128)}function C(t,e,r,a,i){var f,o;if(r>0)for(e-=a*i,o=-i;o<=i;++o){for(f=-i;f<=i;++f)if(t[e+f]>r)return!1;e+=a}else for(e-=a*i,o=-i;o<=i;++o){for(f=-i;f<=i;++f)if(t[e+f]=a)if((d=t[e+f[u]])<=i){if(d>=a)return void(r[e]=0);if((_=t[e+f[++u]])>i)if((v=t[e+f[++u]])>i)l=3;else{if(!(vi)l=7;else{if(!(vi)if((v=t[e+f[++u]])>i)l=3;else{if(!(vi)l=7;else{if(!(vi)return void(r[e]=0);if((_=t[e+f[++u]])>i)return void(r[e]=0);if((v=t[e+f[++u]])>i)return void(r[e]=0);l=1}else{if((d=t[e+f[u]])i){if(_=v,(v=t[e+f[++u]])i)return void(r[e]=0);if(v>i)return void(r[e]=0);if(_=v,(v=t[e+f[++u]])>i)return void(r[e]=0);n-=c+_,l=8;break}if(_<=i)return void(r[e]=0);if(v<=i)return void(r[e]=0);if(_=v,(v=t[e+f[++u]])>i){n-=c+_,l=3;break}if(vi)return void(r[e]=0);n-=c+_,l=1;break}if(c>i){if(_=a)return void(r[e]=0);if(v>=a)return void(r[e]=0);if(_=v,(v=t[e+f[++u]])i){n-=c+_,l=7;break}return void(r[e]=0);case 2:if(c>i)return void(r[e]=0);if(_=v,v=t[e+f[++u]],ci)return void(r[e]=0);n-=c+_,l=4;break}if(v>i){n-=c+_,l=7;break}if(vi){if(vi){n-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci)return void(r[e]=0);n-=c+_,l=1;break}if(v>=a)return void(r[e]=0);if(_=v,(v=t[e+f[++u]])i){n-=c+_,l=7;break}return void(r[e]=0);case 5:if(ci){if(_=v,(v=t[e+f[++u]])i){n-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci){n-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci){n-=c+_,l=7;break}return void(r[e]=0);case 8:if(c>i){if(vi)return void(r[e]=0);n-=c+_,l=1;break}return void(r[e]=0);case 9:if(ci)return void(r[e]=0);if(_=v,(v=t[e+f[++u]])>i)return void(r[e]=0);n-=c+_,l=8;break}if(c>i){if(_=v,(v=t[e+f[++u]])=0;a--,f++)i=Math.sqrt(r*r-a*a)+.5|0,e[f]=a+t*i;for(;-a=0;i--,f++)a=-Math.sqrt(r*r-i*i)-.5|0,e[f]=a+t*i;for(;i>a;i--,f++)a=-Math.sqrt(r*r-i*i)-.5|0,e[f]=a+t*i;for(a++;a<=0;a++,f++)i=-Math.sqrt(r*r-a*a)-.5|0,e[f]=a+t*i;for(;a<-i;a++,f++)i=-Math.sqrt(r*r-a*a)-.5|0,e[f]=a+t*i;for(i++;i<0;i++,f++)a=Math.sqrt(r*r-i*i)+.5|0,e[f]=a+t*i;return e[f]=e[0],e[f+1]=e[1],f}(e,this.dirs,a),this.scores=new Int32Array(e*r),this.radius=0|a})),R=function(){function t(){n(this,t),c(this,"level_tables",void 0),c(this,"tau",void 0),this.level_tables=[],this.tau=7}return u(t,[{key:"init",value:function(t,e,r,a){var i;for(void 0===a&&(a=1),r=Math.min(r,7),r=Math.max(r,3),i=0;i>i,e>>i,r)}},{key:"detect",value:function(t,e,r){void 0===r&&(r=4);var a,i,f,o,s,n=this.level_tables[0],h=0|n.radius,u=h-1|0,c=n.dirs,d=0|n.dirs_count,_=d>>1,v=t.data,l=0|t.cols,b=0|t.rows,p=l>>1,y=n.scores,m=0,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=0|this.tau,q=0,B=0|Math.max(h+1,r),R=0|Math.max(h+1,r),S=0|Math.min(l-h-2,l-r),j=0|Math.min(b-h-2,b-r);for(w=R*l+B|0,M=R;M=3&&C(y,k,z,p,h)&&((a=e[q]).x=m,a.y=M,a.score=A,++q,m+=u,k+=u));return q}}]),t}();function S(t,e,r,a,i,f,o){var s=-2*t[e]+t[e+a]+t[e-a],n=-2*t[e]+t[e+i]+t[e-i],h=t[e+f]+t[e-f]-t[e+o]-t[e-o],u=0|Math.sqrt((s-n)*(s-n)+4*h*h);return Math.min(Math.abs(r-u),Math.abs(-(r+u)))}var j=function(){function t(e,r,a,i){n(this,t),c(this,"size",void 0),c(this,"thresh",void 0),c(this,"eps",void 0),c(this,"prob",void 0),void 0===e&&(e=0),void 0===r&&(r=.5),void 0===a&&(a=.5),void 0===i&&(i=.99),this.size=e,this.thresh=r,this.eps=a,this.prob=i}return u(t,[{key:"update_iters",value:function(t,e){var r=Math.log(1-this.prob),a=Math.log(1-Math.pow(1-t,this.size));return 0|(a>=0||-r>=e*-a?e:Math.round(r/a))}}]),t}();function I(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var r,a=s(t);if(e){var i=s(this).constructor;r=Reflect.construct(a,arguments,i)}else r=a.apply(this,arguments);return o(this,r)}}var L=function(){function t(){n(this,t),c(this,"dt",void 0),c(this,"cache",void 0),this.dt=new d,this.cache=new l,this.cache.allocate(30,2560)}return u(t,[{key:"get_data_type",value:function(t){return this.dt._get_data_type(t)}},{key:"get_channel",value:function(t){return this.dt._get_channel(t)}},{key:"get_data_type_size",value:function(t){return this.dt._get_data_type_size(t)}}]),t}();c(L,"cache",void 0),c(L,"fast_corners",void 0),c(L,"imgproc",void 0),c(L,"linalg",void 0),c(L,"math",void 0),c(L,"matmath",void 0),c(L,"matrix_t",void 0),c(L,"pyramid_t",void 0),c(L,"transform",void 0),c(L,"keypoint_t",void 0),c(L,"yape",void 0),c(L,"yape06",void 0),c(L,"ransac_params_t",void 0),c(L,"affine2d",void 0),c(L,"homography2d",void 0),c(L,"motion_estimator",void 0),c(L,"optical_flow_lk",void 0),c(L,"orb",void 0),c(L,"VERSION","0.7.3"),c(L,"EPSILON",M),c(L,"FLT_MIN",1e-37),c(L,"U8_t",w),c(L,"S32_t",k),c(L,"F32_t",x),c(L,"S64_t",2048),c(L,"F64_t",4096),c(L,"C1_t",1),c(L,"C2_t",2),c(L,"C3_t",3),c(L,"C4_t",4),c(L,"COLOR_RGBA2GRAY",0),c(L,"COLOR_RGB2GRAY",1),c(L,"COLOR_BGRA2GRAY",2),c(L,"COLOR_BGR2GRAY",3),c(L,"BOX_BLUR_NOSCALE",1),c(L,"SVD_U_T",1),c(L,"SVD_V_T",2),c(L,"U8C1_t",L.U8_t|L.C1_t),c(L,"U8C3_t",L.U8_t|L.C3_t),c(L,"U8C4_t",L.U8_t|L.C4_t),c(L,"F32C1_t",L.F32_t|L.C1_t),c(L,"F32C2_t",L.F32_t|L.C2_t),c(L,"S32C1_t",L.S32_t|L.C1_t),c(L,"S32C2_t",L.S32_t|L.C2_t);var P=function(t){i(a,t);var e=I(a);function a(){var t;return n(this,a),c(r(t=e.call(this)),"T0",void 0),c(r(t),"T1",void 0),c(r(t),"AtA",void 0),c(r(t),"AtB",void 0),t.T0=new g(3,3,1025),t.T1=new g(3,3,1025),t.AtA=new g(6,6,1025),t.AtB=new g(6,1,1025),t}return u(a,[{key:"sqr",value:function(t){return t*t}},{key:"iso_normalize_points",value:function(t,e,r,a,i){for(var f,o,s=0,n=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0;s=0;)h[i]=0;for(i=0;i=0;)this.data[a]=new g(t>>a,e>>a,r)}},{key:"build",value:function(t,e){void 0===e&&(e=!0);var r=2,a=t,i=this.data[0];if(!e)for(var f=t.cols*t.rows;--f>=0;)i.data[f]=t.data[f];for(i=this.data[1],this.pyrdown(a,i);rthis._threshold?2:0;return this._threshold}},{key:"detect",value:function(t,e,r){void 0===r&&(r=3);var a,i=t.data,f=t.cols,o=t.rows,s=0,n=0,h=0,u=0,c=0,d=this.cache.get_buffer(3*f),_=this.cache.get_buffer(3*(f+1)<<2),v=d.u8,l=_.i32,b=this.pixel_off,p=this.score_diff,m=Math.max(3,r),M=Math.min(o-2,o-r),w=Math.max(3,r),k=Math.min(f-3,f-r),x=0,g=0,A=y,z=this.threshold_tab,O=this._threshold,q=0,C=0,T=0,B=0,R=0,S=0,j=0,I=0,L=0,P=0,U=0,E=0;this._cmp_offsets(b,f,16);var F=b[0],V=b[1],G=b[2],N=b[3],D=b[4],J=b[5],Y=b[6],H=b[7],Q=b[8],X=b[9],K=b[10],W=b[11],Z=b[12],$=b[13],tt=b[14],et=b[15];for(s=0;s<3*f;++s)v[s]=0;for(s=m;s8){l[R+ ++B]=n,v[S+n]=A(i,j,b,p,O);break}}else x=0;if(2&T)for(u=q+O,x=0,h=0;h<25;++h)if(i[j+b[h]]>u){if(++x>8){l[R+ ++B]=n,v[S+n]=A(i,j,b,p,O);break}}else x=0}if(l[R+f]=B,s!=m)for(I=(c=(s-4+3)%3)*f|0,R=c*(f+1)|0,L=(c=(s-5+3)%3)*f|0,B=l[R+f],h=0;hv[I+P]&&E>v[I+U]&&E>v[L+U]&&E>v[L+n]&&E>v[L+P]&&E>v[S+U]&&E>v[S+n]&&E>v[S+P]&&((a=e[g]).x=n,a.y=s-1,a.score=E,g++)}return this.cache.put_buffer(d),this.cache.put_buffer(_),g}},{key:"_cmp_offsets",value:function(t,e,r){for(var a=0,i=this.offsets16;a>14,p[u+1]=t[h+v]*c+t[h+v+1]*d+t[h+v+2]*_+8192>>14,p[u+2]=t[h+l]*c+t[h+l+1]*d+t[h+l+2]*_+8192>>14,p[u+3]=t[h+b]*c+t[h+b+1]*d+t[h+b+2]*_+8192>>14;for(;f>14}}},{key:"resample",value:function(t,e,r,a){var i=t.rows,f=t.cols;i>a&&f>r&&(e.resize(r,a,t.channel),t.type&w&&e.type&w&&i*f/(a*r)<256?function(t,e,r,a,i){for(var f=0,o=t.channel,s=t.cols,n=t.rows,h=t.data,u=e.data,c=s/a,d=n/i,_=c*d*65536|0,v=0,l=0,b=0,p=0,y=0,m=0,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=0,q=0,C=0,T=r.get_buffer(a*o<<2),B=r.get_buffer(a*o<<2),R=r.get_buffer(2*s*3<<2),S=T.i32,j=B.i32,I=R.i32;vk&&(I[w++]=v*o|0,I[w++]=(y-1)*o|0,I[w++]=256*(y-k)|0,f++),b=y;b.001&&(f++,I[w++]=v*o|0,I[w++]=m*o|0,I[w++]=256*(x-m)|0)}for(v=0;vk&&(f++,I[w++]=(y-1)*o|0,I[w++]=v*o|0,I[w++]=(y-k)*_),b=y;b.001&&(f++,I[w++]=m*o|0,I[w++]=v*o|0,I[w++]=(x-m)*_)}for(v=0;v>1,o=t.cols,s=t.rows,n=t.type,h=n&w;e.resize(o,s,t.channel);var u,c,d=t.data,_=e.data,v=r+Math.max(s,o)|0,l=this.cache.get_buffer(v<<2),b=this.cache.get_buffer(r<<2);h?(u=l.i32,c=b.i32):n&k?(u=l.i32,c=b.f32):(u=l.f32,c=b.f32),i.get_gaussian_kernel(r,a,c,n),h?function(t,e,r,a,i,f,o,s){for(var n=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0,b=0,p=f[0],y=0,m=a<<1,M=3*a,w=a<<2;n>8,255),r[d+h+1]=Math.min(v>>8,255),r[d+h+2]=Math.min(l>>8,255),r[d+h+3]=Math.min(b>>8,255)}for(;h>8,255)}c+=a,d+=a}for(n=0;n>8,255),r[d+a]=Math.min(v>>8,255),r[d+m]=Math.min(l>>8,255),r[d+M]=Math.min(b>>8,255)}for(;h>8,255)}}}(u,d,_,o,s,c,r,f):function(t,e,r,a,i,f,o,s){for(var n=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0,b=0,p=f[0],y=0,m=a<<1,M=3*a,w=a<<2;na&&d[w]>d[w-1]&&d[w]>=d[w+1]&&d[w]>d[w-u-2]&&d[w]>=d[w+u+2]&&M.push(w)}M.sort((function(t,e){return d[t]>d[e]||d[t]==d[e]&&t>1,o=t.rows>>1,s=f-(r<<1),n=o-(a<<1),h=0,u=0,c=r+a*i,d=0,_=0,v=0;e.resize(f,o,t.channel);var l=t.data,b=e.data;for(u=0;u>2,b[v+1]=l[d+2]+l[d+3]+l[d+i+2]+l[d+i+3]+2>>2;for(;h>2;c+=i<<1,_+=f}}},{key:"scharr_derivatives",value:function(t,e){var r,a,i,f,o,s,n,h,u=t.cols,c=t.rows,d=u<<1,_=0,v=0,l=0,b=0,p=0,y=0,m=0;e.resize(u,c,2);var M=t.data,x=e.data,g=this.cache.get_buffer(u+2<<2),A=this.cache.get_buffer(u+2<<2);for(t.type&w||t.type&k?(n=g.i32,h=A.i32):(n=g.f32,h=A.f32);v0?v-1:1)*u|0,y=(v0?v-1:1)*u|0,y=(v0;--_)for(c=(u=_+f*s)-s,d=f;d>0;--d,u-=s,c-=s)a[u]+=a[c]+a[c+1]}}},{key:"equalize_histogram",value:function(t,e){var r=t.cols,a=t.rows,i=t.data;e.resize(r,a,t.channel);var f,o,s=e.data,n=r*a,h=0,u=0,c=this.cache.get_buffer(1024);for(f=c.i32;h<256;++h)f[h]=0;for(h=0;ha&&(s=r,r=a,a=s),s=3*(i+2)|0;--s>=0;)x[s]=0;for(s=(f+2)*(i+2)|0;--s>=0;)A[s]=0;for(;n>31)-(v>>31)+((l^l>>31)-(l>>31));for(s=1;s<=f;++s,h+=u){if(s==f)for(n=B+i;--n>=B;)x[n]=0;else for(n=0;n>31)-(v>>31)+((l^l>>31)-(l>>31));for(c=h-u|0,A[S-1]=0,d=0,n=0;nr)if(b=(v=O[c])^(l=O[c+1]),l=(l^l>>31)-(l>>31)|0,y=(p=13573*(v=(v^v>>31)-(v>>31)|0))+(v+v<<15),(l<<=15)x[T+n-1]&&_>=x[T+n+1]){_>a&&!d&&2!=A[S+n-R]?(A[S+n]=2,d=1,z[j++]=S+n):A[S+n]=1;continue}}else if(l>y){if(_>x[C+n]&&_>=x[B+n]){_>a&&!d&&2!=A[S+n-R]?(A[S+n]=2,d=1,z[j++]=S+n):A[S+n]=1;continue}}else if(_>x[C+n-(b=b<0?-1:1)]&&_>x[B+n+b]){_>a&&!d&&2!=A[S+n-R]?(A[S+n]=2,d=1,z[j++]=S+n):A[S+n]=1;continue}A[S+n]=0,d=0}A[S+i]=0,S+=R,n=C,C=T,T=B,B=n}for(n=S-R-1,s=0;s0;)S=z[--j],1==A[S-=R+1]&&(A[S]=2,z[j++]=S),1==A[S+=1]&&(A[S]=2,z[j++]=S),1==A[S+=1]&&(A[S]=2,z[j++]=S),1==A[S+=R]&&(A[S]=2,z[j++]=S),1==A[S-=2]&&(A[S]=2,z[j++]=S),1==A[S+=R]&&(A[S]=2,z[j++]=S),1==A[S+=1]&&(A[S]=2,z[j++]=S),1==A[S+=1]&&(A[S]=2,z[j++]=S);for(S=R+1,C=0,s=0;s0&&b>0&&_=0&&v>=0&&_95&&a>40&&i>20&&r>a&&r>i&&r-Math.min(a,i)>15&&Math.abs(r-a)>15?e[o]=255:e[o]=0}}]),r}(L),L.math=function(t){i(a,t);var e=I(a);function a(){var t;return n(this,a),c(r(t=e.call(this)),"qsort_stack",void 0),t.qsort_stack=new Int32Array(96),t}return u(a,[{key:"get_gaussian_kernel",value:function(t,e,r,a){var i=0,f=0,o=0,s=0,n=0,h=0,u=this.cache.get_buffer(t<<2),c=u.f32;if(1==(1&t)&&t<=7&&e<=0)switch(t>>1){case 0:c[0]=1,h=1;break;case 1:c[0]=.25,c[1]=.5,c[2]=.25,h=1;break;case 2:c[0]=.0625,c[1]=.25,c[2]=.375,c[3]=.25,c[4]=.0625,h=1;break;case 3:c[0]=.03125,c[1]=.109375,c[2]=.21875,c[3]=.28125,c[4]=.21875,c[5]=.109375,c[6]=.03125,h=1}else for(n=-.5/((s=e>0?e:.3*(.5*(t-1)-1)+.8)*s);i=0;)for(h=z[n<<1],u=z[1+(n<<1)],n--;;){if((d=u-h+1)<=7){for(v=h+1;v<=u;v++)for(l=v;l>h&&a(t[l],t[l-1]);l--)i=t[l],t[l]=t[l-1],t[l-1]=i;break}for(A=0,p=h,m=u,w=h+(d>>1),d>40&&(x=h+(b=d>>3),g=h+(b<<1),f=t[k=h],o=t[x],s=t[g],h=a(f,o)?a(o,s)?x:a(f,s)?g:k:a(s,o)?x:a(f,s)?k:g,x=w,g=w+b,f=t[k=w-b],o=t[x],s=t[g],w=a(f,o)?a(o,s)?x:a(f,s)?g:k:a(s,o)?x:a(f,s)?k:g,x=u-b,g=u,f=t[k=u-(b<<1)],o=t[x],s=t[g],u=a(f,o)?a(o,s)?x:a(f,s)?g:k:a(s,o)?x:a(f,s)?k:g),x=w,g=u,f=t[k=h],o=t[x],s=t[g],(w=a(f,o)?a(o,s)?x:a(f,s)?g:k:a(s,o)?x:a(f,s)?k:g)!=p&&(i=t[w],t[w]=t[p],t[p]=i,w=p),h=y=p+1,u=M=m,f=t[w];;){for(;h<=u&&!a(f,t[h]);)a(t[h],f)||(h>y&&(i=t[y],t[y]=t[h],t[h]=i),A=1,y++),h++;for(;h<=u&&!a(t[u],f);)a(f,t[u])||(uu)break;i=t[h],t[h]=t[u],t[u]=i,A=1,h++,u--}if(0==A){for(u=m,v=(h=p)+1;v<=u;v++)for(l=v;l>h&&a(t[l],t[l-1]);l--)i=t[l],t[l]=t[l-1],t[l-1]=i;break}for(_=h-(d=Math.min(y-p,h-y))|0,c=0;c1)_>1?d>_?(z[++n<<1]=p,z[1+(n<<1)]=p+d-1,h=m-_+1,u=m):(z[++n<<1]=m-_+1,z[1+(n<<1)]=m,h=p,u=p+d-1):(h=p,u=p+d-1);else{if(!(_>1))break;h=m-_+1,u=m}}}},{key:"median",value:function(t,e,r){for(var a,i=0,f=0,o=0,s=e+r>>1;;){if(r<=e)return t[s];if(r==e+1)return t[e]>t[r]&&(a=t[e],t[e]=t[r],t[r]=a),t[s];for(t[i=e+r>>1]>t[r]&&(a=t[i],t[i]=t[r],t[r]=a),t[e]>t[r]&&(a=t[e],t[e]=t[r],t[r]=a),t[i]>t[e]&&(a=t[i],t[i]=t[e],t[e]=a),f=e+1,a=t[i],t[i]=t[f],t[f]=a,o=r;;){do{++f}while(t[e]>t[f]);do{--o}while(t[o]>t[e]);if(o=s&&(r=o-1)}return 0}}]),a}(L),L.matmath=m,L.linalg=function(t){i(a,t);var e=I(a);function a(){var t;return n(this,a),c(r(t=e.call(this)),"matmath",void 0),t.matmath=new m,t}return u(a,[{key:"JacobiImpl",value:function(t,e,r,a,i,f){var o=0,s=0,n=0,h=0,u=0,c=0,d=0,_=0,v=0,l=f*f*30,y=0,m=0,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=this.cache.get_buffer(f<<2),q=this.cache.get_buffer(f<<2),C=O.i32,T=q.i32;if(a)for(;o0){for(h=0,y=Math.abs(t[n]),o=1;o1)for(;v0){for(h=0,y=Math.abs(t[c]),o=1;o>16)?j:-j,t[n*e+u]=S;for(c=0;c<2;c++)for(h=0;hMath.abs(c[n*u+o])&&(n=s);if(Math.abs(c[n*u+o])=0;o--){for(f=d[o],n=o+1;n=0;h--){for(r=_[h],s=(u=h+1)*c;u=0;)r.data[o]=l.data[o];else r&&this.matmath.transpose(r,l);if(a&&2&i)for(o=u*u;--o>=0;)a.data[o]=p.data[o];else a&&this.matmath.transpose(a,p)}else{if(r&&1&i)for(o=u*u;--o>=0;)r.data[o]=p.data[o];else r&&this.matmath.transpose(r,p);if(a&&2&i)for(o=h*h;--o>=0;)a.data[o]=l.data[o];else a&&this.matmath.transpose(a,l)}this.cache.put_buffer(d),this.cache.put_buffer(_),this.cache.put_buffer(v)}},{key:"svd_solve",value:function(t,e,r){var a,i=0,f=0,o=0,s=0,n=0,h=t.rows,u=t.cols,c=0,d=0,_=1|t.type,v=this.cache.get_buffer(h*h<<3),l=this.cache.get_buffer(u<<3),b=this.cache.get_buffer(u*u<<3),p=new g(h,h,_,v.data),y=new g(1,u,_,l.data),m=new g(u,u,_,b.data),w=r.data,k=p.data,x=y.data,A=m.data;for(this.svd_decompose(t,y,p,m,0),a=M*x[0]*u;ia){for(o=0,c=0,s=0;or&&(c+=x[s+f]*w[o]/k[f]);m[n]=c}this.cache.put_buffer(_),this.cache.put_buffer(v),this.cache.put_buffer(l)}},{key:"eigenVV",value:function(t,e,r){for(var a=t.cols,i=a*a,f=1|t.type,o=this.cache.get_buffer(a*a<<3),s=this.cache.get_buffer(a<<3),n=new g(a,a,f,o.data),h=new g(1,a,f,s.data);--i>=0;)n.data[i]=t.data[i];if(this.JacobiImpl(n.data,a,h.data,e?e.data:null,a,a),r)for(;--a>=0;)r.data[a]=h.data[a];this.cache.put_buffer(o),this.cache.put_buffer(s)}}]),a}(L),L.orb=function(t){i(a,t);var e=I(a);function a(){var t;return n(this,a),c(r(t=e.call(this)),"bit_pattern_31_",void 0),c(r(t),"H",void 0),c(r(t),"patch_img",void 0),c(r(t),"imgproc",void 0),t.bit_pattern_31_=new Int32Array(O),t.H=new g(3,3,1025),t.patch_img=new g(32,32,257),t.imgproc=new L.imgproc,t}return u(a,[{key:"describe",value:function(t,e,r,a){var i=0,f=0,o=0,s=0,n=0,h=0,u=0,c=0,d=this.patch_img.data,_=528,v=0;a.type&w?a.resize(32,r,1):(a.type=w,a.cols=32,a.rows=r,a.channel=1,a.allocate());var l=a.data,b=0;for(i=0;i=0;)_[i]=0;for(function(t,e,r,a,i,f,o,s,n,h){var u=0,c=0,d=s*r+o|0,_=d;for(u=s;um&&v>_[b-1]&&v>_[b+1]&&v>_[b-o]&&v>_[b+o]&&v>_[b-o-1]&&v>_[b+o-1]&&v>_[b-o+1]&&v>_[b+o+1])&&(p=S(n,b,v,5,h,u,c))>M&&((a=e[y]).x=i,a.y=f,a.score=p,++y,++i,++b);return this.cache.put_buffer(d),y}}]),a}(L),L.motion_estimator=function(t){i(r,t);var e=I(r);function r(){return n(this,r),e.call(this)}return u(r,[{key:"get_subset",value:function(t,e,r,a,i,f,o){for(var s=1e3,n=[],h=0,u=0,c=0,d=0,_=!1;c=0;)o.data[i]=1;return this.cache.put_buffer(p),this.cache.put_buffer(y),this.cache.put_buffer(m),!0}for(;uMath.max(k,n-1)&&(M.copy_to(f),k=x,o&&w.copy_to(o),h=t.update_iters((i-x)/i,h),c=!0)}return this.cache.put_buffer(p),this.cache.put_buffer(y),this.cache.put_buffer(m),c}},{key:"lmeds",value:function(t,e,r,a,i,f,o,s){if(void 0===s&&(s=1e3),i=0;)o.data[i]=1;return this.cache.put_buffer(y),this.cache.put_buffer(m),this.cache.put_buffer(M),!0}for(;u=n),this.cache.put_buffer(y),this.cache.put_buffer(m),this.cache.put_buffer(M),c}}]),r}(L),L.ransac_params_t=j,L.affine2d=U,L.homography2d=E,L.optical_flow_lk=function(t){i(a,t);var e=I(a);function a(){var t;n(this,a),c(r(t=e.call(this)),"scharr_deriv",void 0);var i=new L.imgproc;return t.scharr_deriv=i.scharr_derivatives,t}return u(a,[{key:"track",value:function(t,e,r,a,i,f,o,s,n,h){void 0===o&&(o=30),void 0===s&&(s=new Uint8Array(i)),void 0===n&&(n=.01),void 0===h&&(h=1e-4);var u=.5*(f-1),c=f*f|0,d=c<<1,_=t.data,v=e.data,l=_[0].data,b=v[0].data,p=_[0].cols,y=_[0].rows,m=0,M=0,w=this.cache.get_buffer(c<<2),k=this.cache.get_buffer(d<<2),x=this.cache.get_buffer(y*(p<<1)<<2),A=new g(p,y,514,x.data),z=w.i32,O=k.i32,q=x.i32,C=0,T=0,B=0,R=0,S=0,j=0,I=0,L=0,P=0,U=0,E=0,F=0,V=0,G=0,N=0,D=0,J=0,Y=0,H=0,Q=0,X=0,K=0,W=0,Z=0,$=0,tt=0,et=0,rt=0,at=0,it=0,ft=0,ot=0,st=16384,nt=1/(1<<20),ht=0,ut=0,ct=0,dt=0,_t=0,vt=0,lt=0,bt=0,pt=0,yt=0,mt=0;for(n*=n;Q=0;--Z)for(I=1/(1<>Z,C=(m=p>>Z)<<1,l=_[Z].data,b=v[Z].data,et=m-f|0,rt=M-f|0,this.scharr_deriv(_[Z],A),$=0;$=et||J<=0||J>=rt)){for(dt=st-(ht=(1-(at=L-D))*(1-(it=P-J))*st+.5|0)-(ut=at*(1-it)*st+.5|0)-(ct=(1-at)*it*st+.5|0),bt=0,pt=0,yt=0,W=0;W>9,vt=8192+(vt=q[B]*ht+q[B+2]*ut+q[B+C]*ct+q[B+C+2]*dt)>>14,lt=8192+(lt=q[B+1]*ht+q[B+3]*ut+q[B+C+1]*ct+q[B+C+3]*dt)>>14,z[R]=_t,O[S++]=vt,O[S++]=lt,bt+=vt*vt,pt+=vt*lt,yt+=lt*lt;if(mt=(bt*=nt)*(yt*=nt)-(pt*=nt)*pt,(yt+bt-Math.sqrt((bt-yt)*(bt-yt)+4*pt*pt))/d=et||H<=0||H>=rt)){0==Z&&(s[$]=0);break}for(dt=st-(ht=(1-(at=U-Y))*(1-(it=E-H))*st+.5|0)-(ut=at*(1-it)*st+.5|0)-(ct=(1-at)*it*st+.5|0),ft=0,ot=0,W=0;W>9,ft+=(_t-=z[R])*O[S++],ot+=_t*O[S++];if(U+=G=(pt*(ot*=nt)-yt*(ft*=nt))*mt,E+=N=(pt*ft-bt*ot)*mt,a[Q]=U+u,a[X]=E+u,G*G+N*N<=n)break;if(tt>0&&Math.abs(G+F)<.01&&Math.abs(N+V)<.01){a[Q]-=.5*G,a[X]-=.5*N;break}F=G,V=N}}else 0==Z&&(s[$]=0);this.cache.put_buffer(w),this.cache.put_buffer(k),this.cache.put_buffer(x)}}]),a}(L);const F={jsfeatNext:L};return e.default})())); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e():"function"==typeof define&&define.amd?define([],e):"object"==typeof exports?exports.jsfeatNext=e():t.jsfeatNext=e()}(this,(()=>(()=>{"use strict";var t={d:(e,r)=>{for(var a in r)t.o(r,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:r[a]})},o:(t,e)=>Object.prototype.hasOwnProperty.call(t,e)},e={};function r(t){return r="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},r(t)}function a(t){return a=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},a(t)}function i(t,e){return i=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},i(t,e)}function o(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&i(t,e)}function f(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function n(t){var e=function(t){if("object"!=r(t)||!t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var a=e.call(t,"string");if("object"!=r(a))return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==r(e)?e:e+""}function s(t,e){for(var r=0;rV});var c=function(){return h((function t(){f(this,t),u(this,"_data_type_size",void 0),this._data_type_size=new Int32Array([-1,1,4,-1,4,-1,-1,-1,8,-1,-1,-1,-1,-1,-1,-1,8])}),[{key:"_get_data_type",value:function(t){return 65280&t}},{key:"_get_channel",value:function(t){return 255&t}},{key:"_get_data_type_size",value:function(t){return this._data_type_size[(65280&t)>>8]}}])}(),d=h((function t(e,r){f(this,t),u(this,"size",void 0),u(this,"buffer",void 0),u(this,"u8",void 0),u(this,"i32",void 0),u(this,"f32",void 0),u(this,"f64",void 0),this.size=e+7&-8,void 0===r?this.buffer=new ArrayBuffer(this.size):(this.buffer=r,this.size=r.length),this.u8=new Uint8Array(this.buffer),this.i32=new Int32Array(this.buffer),this.f32=new Float32Array(this.buffer),this.f64=new Float64Array(this.buffer)})),_=function(){return h((function t(e){f(this,t),u(this,"next",void 0),u(this,"data",void 0),u(this,"size",void 0),u(this,"buffer",void 0),u(this,"u8",void 0),u(this,"i32",void 0),u(this,"f32",void 0),u(this,"f64",void 0),this.next=null,this.data=new d(e),this.size=this.data.size,this.buffer=this.data.buffer,this.u8=this.data.u8,this.i32=this.data.i32,this.f32=this.data.f32,this.f64=this.data.f64}),[{key:"resize",value:function(t){delete this.data,this.data=new d(t),this.size=this.data.size,this.buffer=this.data.buffer,this.u8=this.data.u8,this.i32=this.data.i32,this.f32=this.data.f32,this.f64=this.data.f64}}])}(),v=function(){return h((function t(){f(this,t),u(this,"_pool_head",void 0),u(this,"_pool_tail",void 0),u(this,"_pool_size",void 0),this._pool_head,this._pool_tail,this._pool_size=0}),[{key:"allocate",value:function(t,e){this._pool_head=this._pool_tail=new _(e);for(var r=0;re.size&&e.resize(t),e}},{key:"put_buffer",value:function(t){this._pool_tail=this._pool_tail.next=t,this._pool_size++}}])}();function l(t,e,r,a){a=t[e],t[e]=t[r],t[r]=a}function b(t,e){return(t=Math.abs(t))>(e=Math.abs(e))?(e/=t,t*Math.sqrt(1+e*e)):e>0?(t/=e,e*Math.sqrt(1+t*t)):0}function p(t,e,r,a,i){for(var o=0,f=t[e],n=i,s=0,h=0,u=0;o<25;++o)a[o]=f-t[e+r[o]];for(o=0;o<16;o+=2)s=Math.min(a[o+1],a[o+2]),(s=Math.min(s,a[o+3]))<=n||(s=Math.min(s,a[o+4]),s=Math.min(s,a[o+5]),s=Math.min(s,a[o+6]),s=Math.min(s,a[o+7]),s=Math.min(s,a[o+8]),n=Math.max(n,Math.min(s,a[o])),n=Math.max(n,Math.min(s,a[o+9])));for(h=-n,o=0;o<16;o+=2)u=Math.max(a[o+1],a[o+2]),u=Math.max(u,a[o+3]),u=Math.max(u,a[o+4]),(u=Math.max(u,a[o+5]))>=h||(u=Math.max(u,a[o+6]),u=Math.max(u,a[o+7]),u=Math.max(u,a[o+8]),h=Math.min(h,Math.max(u,a[o])),h=Math.min(h,Math.max(u,a[o+9])));return-h-1}var y=function(){return h((function t(){f(this,t)}),[{key:"identity",value:function(t,e){void 0===e&&(e=1);for(var r=t.data,a=t.rows,i=t.cols,o=i+1|0,f=a*i,n=f;--f>=0;)r[f]=0;for(f=n,n=0;nthis.buffer.size?(this.cols=t,this.rows=e,this.channel=r,this.allocate()):(this.cols=t,this.rows=e,this.channel=r)}}])}(),g=function(){return h((function t(){f(this,t)}),[{key:"perspective_4point_transform",value:function(t,e,r,a,i,o,f,n,s,h,u,c,d,_,v,l,b){var p=e,y=h,m=f,M=p*y*m,w=v,k=p*w,x=y*k,g=u,A=p*g,z=o,O=r,q=_,C=O*q,T=C*z,S=q*z*g,j=q*m,B=q*g,R=y*m,I=w*y,L=w*z,P=g*z,E=1/(j-B-R+I-L+P),U=p*q,F=O*z,V=m*p,G=w*V,N=O*y,D=C*g,J=O*g*z,Y=m*w*y,H=w*O,Q=-(x-M+A*z-z*k-C*y+T-S+j*y)*E,X=(M-x-U*m+U*g+T-y*F+L*y-S)*E,K=p,W=(-g*k+G+N*m-C*m+D-J+L*g-Y)*E,Z=(V*g-G-H*y+D-J+H*z+Y-j*g)*E,$=O,tt=(-A+V+N-F+B-j-I+L)*E,et=(-k+A+C-N+L-P-j+R)*E,rt=-((x=(y=c)*(k=(p=a)*(w=b)))-(M=p*y*(m=s))+(A=p*(g=d))*(z=n)-z*k-(C=(O=i)*(q=l))*y+(T=C*z)-(S=q*z*g)+(j=q*m)*y)*(E=1/(j-(B=q*g)-(R=y*m)+(I=w*y)-(L=w*z)+(P=g*z))),at=(M-x-(U=p*q)*m+U*g+T-y*(F=O*z)+L*y-S)*E,it=p,ot=(-g*k+(G=w*(V=m*p))+(N=O*y)*m-C*m+(D=C*g)-(J=O*g*z)+L*g-(Y=m*w*y))*E,ft=(V*g-G-(H=w*O)*y+D-J+H*z+Y-j*g)*E,nt=O,st=(-A+V+N-F+B-j-I+L)*E,ht=(-k+A+C-N+L-P-j+R)*E,ut=K*tt;T=$*tt-W;var ct=-W*et+Z*tt,dt=Q-ut;F=Q*et-(A=X*tt);var _t=(M=Q*$)-(x=K*W),vt=(m=Q*Z)-(k=W*X);J=(y=Z-et*$)*(q=1/(m-M*et-k+x*et+A*$-ut*Z));var lt=(P=K*et-X)*q,bt=(V=-X*$+K*Z)*q,pt=t.data;pt[0]=rt*J+at*(T*q)-it*(ct*q),pt[1]=rt*lt+at*(dt*q)-it*(F*q),pt[2]=-rt*bt-at*(_t*q)+it*(vt*q),pt[3]=ot*J+ft*(T*q)-nt*(ct*q),pt[4]=ot*lt+ft*(dt*q)-nt*(F*q),pt[5]=-ot*bt-ft*(_t*q)+nt*(vt*q),pt[6]=st*J+ht*(T*q)-ct*q,pt[7]=st*lt+ht*(dt*q)-F*q,pt[8]=-st*bt-ht*(_t*q)+vt*q}},{key:"invert_affine_transform",value:function(t,e){var r=t.data,a=e.data,i=r[0],o=r[1],f=r[2],n=r[3],s=r[4],h=r[5],u=1/(i*s-o*n);a[0]=u*s,a[1]=u*-o,a[2]=u*(o*h-f*s),a[3]=u*-n,a[4]=u*i,a[5]=u*(f*n-i*h)}},{key:"invert_perspective_transform",value:function(t,e){var r=t.data,a=e.data,i=r[0],o=r[1],f=r[2],n=r[3],s=r[4],h=r[5],u=r[6],c=r[7],d=r[8],_=1/(i*(s*d-h*c)-o*(n*d-h*u)+f*(n*c-s*u));a[0]=_*(s*d-h*c),a[1]=_*(f*c-o*d),a[2]=_*(o*h-f*s),a[3]=_*(h*u-n*d),a[4]=_*(i*d-f*u),a[5]=_*(f*n-i*h),a[6]=_*(n*c-s*u),a[7]=_*(o*u-i*c),a[8]=_*(i*s-o*n)}}])}(),A=h((function t(e,r,a,i,o){f(this,t),u(this,"x",void 0),u(this,"y",void 0),u(this,"score",void 0),u(this,"level",void 0),u(this,"angle",void 0),void 0===e&&(e=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===i&&(i=0),void 0===o&&(o=-1),this.x=e,this.y=r,this.score=a,this.level=i,this.angle=o})),z=[8,-3,9,5,4,2,7,-12,-11,9,-8,2,7,-12,12,-13,2,-13,2,12,1,-7,1,6,-2,-10,-2,-4,-13,-13,-11,-8,-13,-3,-12,-9,10,4,11,9,-13,-8,-8,-9,-11,7,-9,12,7,7,12,6,-4,-5,-3,0,-13,2,-12,-3,-9,0,-7,5,12,-6,12,-1,-3,6,-2,12,-6,-13,-4,-8,11,-13,12,-8,4,7,5,1,5,-3,10,-3,3,-7,6,12,-8,-7,-6,-2,-2,11,-1,-10,-13,12,-8,10,-7,3,-5,-3,-4,2,-3,7,-10,-12,-6,11,5,-12,6,-7,5,-6,7,-1,1,0,4,-5,9,11,11,-13,4,7,4,12,2,-1,4,4,-4,-12,-2,7,-8,-5,-7,-10,4,11,9,12,0,-8,1,-13,-13,-2,-8,2,-3,-2,-2,3,-6,9,-4,-9,8,12,10,7,0,9,1,3,7,-5,11,-10,-13,-6,-11,0,10,7,12,1,-6,-3,-6,12,10,-9,12,-4,-13,8,-8,-12,-13,0,-8,-4,3,3,7,8,5,7,10,-7,-1,7,1,-12,3,-10,5,6,2,-4,3,-10,-13,0,-13,5,-13,-7,-12,12,-13,3,-11,8,-7,12,-4,7,6,-10,12,8,-9,-1,-7,-6,-2,-5,0,12,-12,5,-7,5,3,-10,8,-13,-7,-7,-4,5,-3,-2,-1,-7,2,9,5,-11,-11,-13,-5,-13,-1,6,0,-1,5,-3,5,2,-4,-13,-4,12,-9,-6,-9,6,-12,-10,-8,-4,10,2,12,-3,7,12,12,12,-7,-13,-6,5,-4,9,-3,4,7,-1,12,2,-7,6,-5,1,-13,11,-12,5,-3,7,-2,-6,7,-8,12,-7,-13,-7,-11,-12,1,-3,12,12,2,-6,3,0,-4,3,-2,-13,-1,-13,1,9,7,1,8,-6,1,-1,3,12,9,1,12,6,-1,-9,-1,3,-13,-13,-10,5,7,7,10,12,12,-5,12,9,6,3,7,11,5,-13,6,10,2,-12,2,3,3,8,4,-6,2,6,12,-13,9,-12,10,3,-8,4,-7,9,-11,12,-4,-6,1,12,2,-8,6,-9,7,-4,2,3,3,-2,6,3,11,0,3,-3,8,-8,7,8,9,3,-11,-5,-6,-4,-10,11,-5,10,-5,-8,-3,12,-10,5,-9,0,8,-1,12,-6,4,-6,6,-11,-10,12,-8,7,4,-2,6,7,-2,0,-2,12,-5,-8,-5,2,7,-6,10,12,-9,-13,-8,-8,-5,-13,-5,-2,8,-8,9,-13,-9,-11,-9,0,1,-8,1,-2,7,-4,9,1,-2,1,-1,-4,11,-6,12,-11,-12,-9,-6,4,3,7,7,12,5,5,10,8,0,-4,2,8,-9,12,-5,-13,0,7,2,12,-1,2,1,7,5,11,7,-9,3,5,6,-8,-13,-4,-8,9,-5,9,-3,-3,-4,-7,-3,-12,6,5,8,0,-7,6,-6,12,-13,6,-5,-2,1,-10,3,10,4,1,8,-4,-2,-2,2,-13,2,-12,12,12,-2,-13,0,-6,4,1,9,3,-6,-10,-3,-5,-3,-13,-1,1,7,5,12,-11,4,-2,5,-7,-13,9,-9,-5,7,1,8,6,7,-8,7,6,-7,-4,-7,1,-8,11,-7,-8,-13,6,-12,-8,2,4,3,9,10,-5,12,3,-6,-5,-6,7,8,-3,9,-8,2,-12,2,8,-11,-2,-10,3,-12,-13,-7,-9,-11,0,-10,-5,5,-3,11,8,-2,-13,-1,12,-1,-8,0,9,-13,-11,-12,-5,-10,-2,-10,11,-3,9,-2,-13,2,-3,3,2,-9,-13,-4,0,-4,6,-3,-10,-4,12,-2,-7,-6,-11,-4,9,6,-3,6,11,-13,11,-5,5,11,11,12,6,7,-5,12,-2,-1,12,0,7,-4,-8,-3,-2,-7,1,-6,7,-13,-12,-8,-13,-7,-2,-6,-8,-8,5,-6,-9,-5,-1,-4,5,-13,7,-8,10,1,5,5,-13,1,0,10,-13,9,12,10,-1,5,-8,10,-9,-1,11,1,-13,-9,-3,-6,2,-1,-10,1,12,-13,1,-8,-10,8,-11,10,-6,2,-13,3,-6,7,-13,12,-9,-10,-10,-5,-7,-10,-8,-8,-13,4,-6,8,5,3,12,8,-13,-4,2,-3,-3,5,-13,10,-12,4,-13,5,-1,-9,9,-4,3,0,3,3,-9,-12,1,-6,1,3,2,4,-8,-10,-10,-10,9,8,-13,12,12,-8,-12,-6,-5,2,2,3,7,10,6,11,-8,6,8,8,-12,-7,10,-6,5,-3,-9,-3,9,-1,-13,-1,5,-3,-7,-3,4,-8,-2,-8,3,4,2,12,12,2,-5,3,11,6,-9,11,-13,3,-1,7,12,11,-1,12,4,-3,0,-3,6,4,-11,4,12,2,-4,2,1,-10,-6,-8,1,-13,7,-11,1,-13,12,-11,-13,6,0,11,-13,0,-1,1,4,-13,3,-9,-2,-9,8,-6,-3,-13,-6,-8,-2,5,-9,8,10,2,7,3,-9,-1,-6,-1,-1,9,5,11,-2,11,-3,12,-8,3,0,3,5,-1,4,0,10,3,-6,4,5,-13,0,-10,5,5,8,12,11,8,9,9,-6,7,-4,8,-12,-10,4,-10,9,7,3,12,4,9,-7,10,-2,7,0,12,-2,-1,-6,0,-11];function O(t,e,r,a,i,o,f,n){var s=Math.cos(r),h=Math.sin(r);f.data[0]=s,f.data[1]=-h,f.data[2]=(-s+h)*o*.5+a,f.data[3]=h,f.data[4]=s,f.data[5]=(-h-s)*o*.5+i,n.warp_affine(t,e,f,128)}function q(t,e,r,a,i){var o,f;if(r>0)for(e-=a*i,f=-i;f<=i;++f){for(o=-i;o<=i;++o)if(t[e+o]>r)return!1;e+=a}else for(e-=a*i,f=-i;f<=i;++f){for(o=-i;o<=i;++o)if(t[e+o]=a)if((d=t[e+o[u]])<=i){if(d>=a)return void(r[e]=0);if((_=t[e+o[++u]])>i)if((v=t[e+o[++u]])>i)l=3;else{if(!(vi)l=7;else{if(!(vi)if((v=t[e+o[++u]])>i)l=3;else{if(!(vi)l=7;else{if(!(vi)return void(r[e]=0);if((_=t[e+o[++u]])>i)return void(r[e]=0);if((v=t[e+o[++u]])>i)return void(r[e]=0);l=1}else{if((d=t[e+o[u]])i){if(_=v,(v=t[e+o[++u]])i)return void(r[e]=0);if(v>i)return void(r[e]=0);if(_=v,(v=t[e+o[++u]])>i)return void(r[e]=0);s-=c+_,l=8;break}if(_<=i)return void(r[e]=0);if(v<=i)return void(r[e]=0);if(_=v,(v=t[e+o[++u]])>i){s-=c+_,l=3;break}if(vi)return void(r[e]=0);s-=c+_,l=1;break}if(c>i){if(_=a)return void(r[e]=0);if(v>=a)return void(r[e]=0);if(_=v,(v=t[e+o[++u]])i){s-=c+_,l=7;break}return void(r[e]=0);case 2:if(c>i)return void(r[e]=0);if(_=v,v=t[e+o[++u]],ci)return void(r[e]=0);s-=c+_,l=4;break}if(v>i){s-=c+_,l=7;break}if(vi){if(vi){s-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci)return void(r[e]=0);s-=c+_,l=1;break}if(v>=a)return void(r[e]=0);if(_=v,(v=t[e+o[++u]])i){s-=c+_,l=7;break}return void(r[e]=0);case 5:if(ci){if(_=v,(v=t[e+o[++u]])i){s-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci){s-=c+_,l=3;break}if(vi)return void(r[e]=0);if(ci){s-=c+_,l=7;break}return void(r[e]=0);case 8:if(c>i){if(vi)return void(r[e]=0);s-=c+_,l=1;break}return void(r[e]=0);case 9:if(ci)return void(r[e]=0);if(_=v,(v=t[e+o[++u]])>i)return void(r[e]=0);s-=c+_,l=8;break}if(c>i){if(_=v,(v=t[e+o[++u]])=0;a--,o++)i=Math.sqrt(r*r-a*a)+.5|0,e[o]=a+t*i;for(;-a=0;i--,o++)a=-Math.sqrt(r*r-i*i)-.5|0,e[o]=a+t*i;for(;i>a;i--,o++)a=-Math.sqrt(r*r-i*i)-.5|0,e[o]=a+t*i;for(a++;a<=0;a++,o++)i=-Math.sqrt(r*r-a*a)-.5|0,e[o]=a+t*i;for(;a<-i;a++,o++)i=-Math.sqrt(r*r-a*a)-.5|0,e[o]=a+t*i;for(i++;i<0;i++,o++)a=Math.sqrt(r*r-i*i)+.5|0,e[o]=a+t*i;return e[o]=e[0],e[o+1]=e[1],o}(e,this.dirs,a),this.scores=new Int32Array(e*r),this.radius=0|a})),S=function(){return h((function t(){f(this,t),u(this,"level_tables",void 0),u(this,"tau",void 0),this.level_tables=[],this.tau=7}),[{key:"init",value:function(t,e,r,a){var i;for(void 0===a&&(a=1),r=Math.min(r,7),r=Math.max(r,3),i=0;i>i,e>>i,r)}},{key:"detect",value:function(t,e,r){void 0===r&&(r=4);var a,i,o,f,n,s=this.level_tables[0],h=0|s.radius,u=h-1|0,c=s.dirs,d=0|s.dirs_count,_=d>>1,v=t.data,l=0|t.cols,b=0|t.rows,p=l>>1,y=s.scores,m=0,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=0|this.tau,T=0,S=0|Math.max(h+1,r),j=0|Math.max(h+1,r),B=0|Math.min(l-h-2,l-r),R=0|Math.min(b-h-2,b-r);for(w=j*l+S|0,M=j;M=3&&q(y,k,z,p,h)&&((a=e[T]).x=m,a.y=M,a.score=A,++T,m+=u,k+=u));return T}}])}();function j(t,e,r,a,i,o,f){var n=-2*t[e]+t[e+a]+t[e-a],s=-2*t[e]+t[e+i]+t[e-i],h=t[e+o]+t[e-o]-t[e+f]-t[e-f],u=0|Math.sqrt((n-s)*(n-s)+4*h*h);return Math.min(Math.abs(r-u),Math.abs(-(r+u)))}var B,R=function(){return h((function t(e,r,a,i){f(this,t),u(this,"size",void 0),u(this,"thresh",void 0),u(this,"eps",void 0),u(this,"prob",void 0),void 0===e&&(e=0),void 0===r&&(r=.5),void 0===a&&(a=.5),void 0===i&&(i=.99),this.size=e,this.thresh=r,this.eps=a,this.prob=i}),[{key:"update_iters",value:function(t,e){var r=Math.log(1-this.prob),a=Math.log(1-Math.pow(1-t,this.size));return 0|(a>=0||-r>=e*-a?e:Math.round(r/a))}}])}();function I(t,e,i){return e=a(e),function(t,e){if(e&&("object"==r(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,L()?Reflect.construct(e,i||[],a(t).constructor):e.apply(t,i))}function L(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(L=function(){return!!t})()}var P=function(){return h((function t(){f(this,t),u(this,"dt",void 0),u(this,"cache",void 0),this.dt=new c,this.cache=new v,this.cache.allocate(30,2560)}),[{key:"get_data_type",value:function(t){return this.dt._get_data_type(t)}},{key:"get_channel",value:function(t){return this.dt._get_channel(t)}},{key:"get_data_type_size",value:function(t){return this.dt._get_data_type_size(t)}}])}();B=P,u(P,"cache",void 0),u(P,"fast_corners",void 0),u(P,"imgproc",void 0),u(P,"linalg",void 0),u(P,"math",void 0),u(P,"matmath",void 0),u(P,"matrix_t",void 0),u(P,"pyramid_t",void 0),u(P,"transform",void 0),u(P,"keypoint_t",void 0),u(P,"yape",void 0),u(P,"yape06",void 0),u(P,"ransac_params_t",void 0),u(P,"affine2d",void 0),u(P,"homography2d",void 0),u(P,"motion_estimator",void 0),u(P,"optical_flow_lk",void 0),u(P,"orb",void 0),u(P,"VERSION","0.7.3"),u(P,"EPSILON",m),u(P,"FLT_MIN",1e-37),u(P,"U8_t",M),u(P,"S32_t",w),u(P,"F32_t",k),u(P,"S64_t",2048),u(P,"F64_t",4096),u(P,"C1_t",1),u(P,"C2_t",2),u(P,"C3_t",3),u(P,"C4_t",4),u(P,"COLOR_RGBA2GRAY",0),u(P,"COLOR_RGB2GRAY",1),u(P,"COLOR_BGRA2GRAY",2),u(P,"COLOR_BGR2GRAY",3),u(P,"BOX_BLUR_NOSCALE",1),u(P,"SVD_U_T",1),u(P,"SVD_V_T",2),u(P,"U8C1_t",B.U8_t|B.C1_t),u(P,"U8C3_t",B.U8_t|B.C3_t),u(P,"U8C4_t",B.U8_t|B.C4_t),u(P,"F32C1_t",B.F32_t|B.C1_t),u(P,"F32C2_t",B.F32_t|B.C2_t),u(P,"S32C1_t",B.S32_t|B.C1_t),u(P,"S32C2_t",B.S32_t|B.C2_t);var E=function(t){function e(){var t;return f(this,e),u(t=I(this,e),"T0",void 0),u(t,"T1",void 0),u(t,"AtA",void 0),u(t,"AtB",void 0),t.T0=new x(3,3,1025),t.T1=new x(3,3,1025),t.AtA=new x(6,6,1025),t.AtB=new x(6,1,1025),t}return o(e,t),h(e,[{key:"sqr",value:function(t){return t*t}},{key:"iso_normalize_points",value:function(t,e,r,a,i){for(var o,f,n=0,s=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0;n=0;)h[i]=0;for(i=0;i=0;)this.data[a]=new x(t>>a,e>>a,r)}},{key:"build",value:function(t,e){void 0===e&&(e=!0);var r=2,a=t,i=this.data[0];if(!e)for(var o=t.cols*t.rows;--o>=0;)i.data[o]=t.data[o];for(i=this.data[1],this.pyrdown(a,i);rthis._threshold?2:0;return this._threshold}},{key:"detect",value:function(t,e,r){void 0===r&&(r=3);var a,i=t.data,o=t.cols,f=t.rows,n=0,s=0,h=0,u=0,c=0,d=this.cache.get_buffer(3*o),_=this.cache.get_buffer(3*(o+1)<<2),v=d.u8,l=_.i32,b=this.pixel_off,y=this.score_diff,m=Math.max(3,r),M=Math.min(f-2,f-r),w=Math.max(3,r),k=Math.min(o-3,o-r),x=0,g=0,A=p,z=this.threshold_tab,O=this._threshold,q=0,C=0,T=0,S=0,j=0,B=0,R=0,I=0,L=0,P=0,E=0,U=0;this._cmp_offsets(b,o,16);var F=b[0],V=b[1],G=b[2],N=b[3],D=b[4],J=b[5],Y=b[6],H=b[7],Q=b[8],X=b[9],K=b[10],W=b[11],Z=b[12],$=b[13],tt=b[14],et=b[15];for(n=0;n<3*o;++n)v[n]=0;for(n=m;n8){l[j+ ++S]=s,v[B+s]=A(i,R,b,y,O);break}}else x=0;if(2&T)for(u=q+O,x=0,h=0;h<25;++h)if(i[R+b[h]]>u){if(++x>8){l[j+ ++S]=s,v[B+s]=A(i,R,b,y,O);break}}else x=0}if(l[j+o]=S,n!=m)for(I=(c=(n-4+3)%3)*o|0,j=c*(o+1)|0,L=(c=(n-5+3)%3)*o|0,S=l[j+o],h=0;hv[I+P]&&U>v[I+E]&&U>v[L+E]&&U>v[L+s]&&U>v[L+P]&&U>v[B+E]&&U>v[B+s]&&U>v[B+P]&&((a=e[g]).x=s,a.y=n-1,a.score=U,g++)}return this.cache.put_buffer(d),this.cache.put_buffer(_),g}},{key:"_cmp_offsets",value:function(t,e,r){for(var a=0,i=this.offsets16;a>14,p[u+1]=t[h+v]*c+t[h+v+1]*d+t[h+v+2]*_+8192>>14,p[u+2]=t[h+l]*c+t[h+l+1]*d+t[h+l+2]*_+8192>>14,p[u+3]=t[h+b]*c+t[h+b+1]*d+t[h+b+2]*_+8192>>14;for(;o>14}}},{key:"resample",value:function(t,e,r,a){var i=t.rows,o=t.cols;i>a&&o>r&&(e.resize(r,a,t.channel),t.type&M&&e.type&M&&i*o/(a*r)<256?function(t,e,r,a,i){for(var o=0,f=t.channel,n=t.cols,s=t.rows,h=t.data,u=e.data,c=n/a,d=s/i,_=c*d*65536|0,v=0,l=0,b=0,p=0,y=0,m=0,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=0,q=0,C=0,T=r.get_buffer(a*f<<2),S=r.get_buffer(a*f<<2),j=r.get_buffer(2*n*3<<2),B=T.i32,R=S.i32,I=j.i32;vk&&(I[w++]=v*f|0,I[w++]=(y-1)*f|0,I[w++]=256*(y-k)|0,o++),b=y;b.001&&(o++,I[w++]=v*f|0,I[w++]=m*f|0,I[w++]=256*(x-m)|0)}for(v=0;vk&&(o++,I[w++]=(y-1)*f|0,I[w++]=v*f|0,I[w++]=(y-k)*_),b=y;b.001&&(o++,I[w++]=m*f|0,I[w++]=v*f|0,I[w++]=(x-m)*_)}for(v=0;v>1,f=t.cols,n=t.rows,s=t.type,h=s&M;e.resize(f,n,t.channel);var u,c,d=t.data,_=e.data,v=r+Math.max(n,f)|0,l=this.cache.get_buffer(v<<2),b=this.cache.get_buffer(r<<2);h?(u=l.i32,c=b.i32):s&w?(u=l.i32,c=b.f32):(u=l.f32,c=b.f32),i.get_gaussian_kernel(r,a,c,s),h?function(t,e,r,a,i,o,f,n){for(var s=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0,b=0,p=o[0],y=0,m=a<<1,M=3*a,w=a<<2;s>8,255),r[d+h+1]=Math.min(v>>8,255),r[d+h+2]=Math.min(l>>8,255),r[d+h+3]=Math.min(b>>8,255)}for(;h>8,255)}c+=a,d+=a}for(s=0;s>8,255),r[d+a]=Math.min(v>>8,255),r[d+m]=Math.min(l>>8,255),r[d+M]=Math.min(b>>8,255)}for(;h>8,255)}}}(u,d,_,f,n,c,r,o):function(t,e,r,a,i,o,f,n){for(var s=0,h=0,u=0,c=0,d=0,_=0,v=0,l=0,b=0,p=o[0],y=0,m=a<<1,M=3*a,w=a<<2;sa&&v[w]>v[w-1]&&v[w]>=v[w+1]&&v[w]>v[w-d-2]&&v[w]>=v[w+d+2]&&M.push(w)}M.sort((function(t,e){return v[t]>v[e]||v[t]==v[e]&&t>1,f=t.rows>>1,n=o-(r<<1),s=f-(a<<1),h=0,u=0,c=r+a*i,d=0,_=0,v=0;e.resize(o,f,t.channel);var l=t.data,b=e.data;for(u=0;u>2,b[v+1]=l[d+2]+l[d+3]+l[d+i+2]+l[d+i+3]+2>>2;for(;h>2;c+=i<<1,_+=o}}},{key:"scharr_derivatives",value:function(t,e){var r,a,i,o,f,n,s,h,u=t.cols,c=t.rows,d=u<<1,_=0,v=0,l=0,b=0,p=0,y=0,m=0;e.resize(u,c,2);var k=t.data,x=e.data,g=this.cache.get_buffer(u+2<<2),A=this.cache.get_buffer(u+2<<2);for(t.type&M||t.type&w?(s=g.i32,h=A.i32):(s=g.f32,h=A.f32);v0?v-1:1)*u|0,y=(v0?v-1:1)*u|0,y=(v0;--_)for(c=(u=_+o*n)-n,d=o;d>0;--d,u-=n,c-=n)a[u]+=a[c]+a[c+1]}}},{key:"equalize_histogram",value:function(t,e){var r=t.cols,a=t.rows,i=t.data;e.resize(r,a,t.channel);var o,f,n=e.data,s=r*a,h=0,u=0,c=this.cache.get_buffer(1024);for(o=c.i32;h<256;++h)o[h]=0;for(h=0;ha&&(n=r,r=a,a=n),n=3*(i+2)|0;--n>=0;)g[n]=0;for(n=(o+2)*(i+2)|0;--n>=0;)A[n]=0;for(;s>31)-(v>>31)+((l^l>>31)-(l>>31));for(n=1;n<=o;++n,h+=u){if(n==o)for(s=S+i;--s>=S;)g[s]=0;else for(s=0;s>31)-(v>>31)+((l^l>>31)-(l>>31));for(c=h-u|0,A[B-1]=0,d=0,s=0;sr)if(b=(v=O[c])^(l=O[c+1]),l=(l^l>>31)-(l>>31)|0,y=(p=13573*(v=(v^v>>31)-(v>>31)|0))+(v+v<<15),(l<<=15)g[T+s-1]&&_>=g[T+s+1]){_>a&&!d&&2!=A[B+s-j]?(A[B+s]=2,d=1,z[R++]=B+s):A[B+s]=1;continue}}else if(l>y){if(_>g[C+s]&&_>=g[S+s]){_>a&&!d&&2!=A[B+s-j]?(A[B+s]=2,d=1,z[R++]=B+s):A[B+s]=1;continue}}else if(_>g[C+s-(b=b<0?-1:1)]&&_>g[S+s+b]){_>a&&!d&&2!=A[B+s-j]?(A[B+s]=2,d=1,z[R++]=B+s):A[B+s]=1;continue}A[B+s]=0,d=0}A[B+i]=0,B+=j,s=C,C=T,T=S,S=s}for(s=B-j-1,n=0;n0;)B=z[--R],1==A[B-=j+1]&&(A[B]=2,z[R++]=B),1==A[B+=1]&&(A[B]=2,z[R++]=B),1==A[B+=1]&&(A[B]=2,z[R++]=B),1==A[B+=j]&&(A[B]=2,z[R++]=B),1==A[B-=2]&&(A[B]=2,z[R++]=B),1==A[B+=j]&&(A[B]=2,z[R++]=B),1==A[B+=1]&&(A[B]=2,z[R++]=B),1==A[B+=1]&&(A[B]=2,z[R++]=B);for(B=j+1,C=0,n=0;n0&&b>0&&_=0&&v>=0&&_95&&a>40&&i>20&&r>a&&r>i&&r-Math.min(a,i)>15&&Math.abs(r-a)>15?e[f]=255:e[f]=0}}])}(P),P.math=function(t){function e(){var t;return f(this,e),u(t=I(this,e),"qsort_stack",void 0),t.qsort_stack=new Int32Array(96),t}return o(e,t),h(e,[{key:"get_gaussian_kernel",value:function(t,e,r,a){var i=0,o=0,f=0,n=0,s=0,h=0,u=this.cache.get_buffer(t<<2),c=u.f32;if(!(1&~t)&&t<=7&&e<=0)switch(t>>1){case 0:c[0]=1,h=1;break;case 1:c[0]=.25,c[1]=.5,c[2]=.25,h=1;break;case 2:c[0]=.0625,c[1]=.25,c[2]=.375,c[3]=.25,c[4]=.0625,h=1;break;case 3:c[0]=.03125,c[1]=.109375,c[2]=.21875,c[3]=.28125,c[4]=.21875,c[5]=.109375,c[6]=.03125,h=1}else for(s=-.5/((n=e>0?e:.3*(.5*(t-1)-1)+.8)*n);i=0;)for(h=z[s<<1],u=z[1+(s<<1)],s--;;){if((d=u-h+1)<=7){for(v=h+1;v<=u;v++)for(l=v;l>h&&a(t[l],t[l-1]);l--)i=t[l],t[l]=t[l-1],t[l-1]=i;break}for(A=0,p=h,m=u,w=h+(d>>1),d>40&&(x=h+(b=d>>3),g=h+(b<<1),o=t[k=h],f=t[x],n=t[g],h=a(o,f)?a(f,n)?x:a(o,n)?g:k:a(n,f)?x:a(o,n)?k:g,x=w,g=w+b,o=t[k=w-b],f=t[x],n=t[g],w=a(o,f)?a(f,n)?x:a(o,n)?g:k:a(n,f)?x:a(o,n)?k:g,x=u-b,g=u,o=t[k=u-(b<<1)],f=t[x],n=t[g],u=a(o,f)?a(f,n)?x:a(o,n)?g:k:a(n,f)?x:a(o,n)?k:g),x=w,g=u,o=t[k=h],f=t[x],n=t[g],(w=a(o,f)?a(f,n)?x:a(o,n)?g:k:a(n,f)?x:a(o,n)?k:g)!=p&&(i=t[w],t[w]=t[p],t[p]=i,w=p),h=y=p+1,u=M=m,o=t[w];;){for(;h<=u&&!a(o,t[h]);)a(t[h],o)||(h>y&&(i=t[y],t[y]=t[h],t[h]=i),A=1,y++),h++;for(;h<=u&&!a(t[u],o);)a(o,t[u])||(uu)break;i=t[h],t[h]=t[u],t[u]=i,A=1,h++,u--}if(0==A){for(u=m,v=(h=p)+1;v<=u;v++)for(l=v;l>h&&a(t[l],t[l-1]);l--)i=t[l],t[l]=t[l-1],t[l-1]=i;break}for(_=h-(d=Math.min(y-p,h-y))|0,c=0;c1)_>1?d>_?(z[++s<<1]=p,z[1+(s<<1)]=p+d-1,h=m-_+1,u=m):(z[++s<<1]=m-_+1,z[1+(s<<1)]=m,h=p,u=p+d-1):(h=p,u=p+d-1);else{if(!(_>1))break;h=m-_+1,u=m}}}},{key:"median",value:function(t,e,r){for(var a,i=0,o=0,f=0,n=e+r>>1;;){if(r<=e)return t[n];if(r==e+1)return t[e]>t[r]&&(a=t[e],t[e]=t[r],t[r]=a),t[n];for(t[i=e+r>>1]>t[r]&&(a=t[i],t[i]=t[r],t[r]=a),t[e]>t[r]&&(a=t[e],t[e]=t[r],t[r]=a),t[i]>t[e]&&(a=t[i],t[i]=t[e],t[e]=a),o=e+1,a=t[i],t[i]=t[o],t[o]=a,f=r;;){do{++o}while(t[e]>t[o]);do{--f}while(t[f]>t[e]);if(f=n&&(r=f-1)}return 0}}])}(P),P.matmath=y,P.linalg=function(t){function e(){var t;return f(this,e),u(t=I(this,e),"matmath",void 0),t.matmath=new y,t}return o(e,t),h(e,[{key:"JacobiImpl",value:function(t,e,r,a,i,o){var f=m,n=0,s=0,h=0,u=0,c=0,d=0,_=0,v=0,p=0,y=o*o*30,M=0,w=0,k=0,x=0,g=0,A=0,z=0,O=0,q=0,C=this.cache.get_buffer(o<<2),T=this.cache.get_buffer(o<<2),S=C.i32,j=T.i32;if(a)for(;n0){for(u=0,M=Math.abs(t[h]),n=1;n1)for(;p0){for(u=0,M=Math.abs(t[d]),n=1;n>16?R:-R,t[s*e+u]=B;for(c=0;c<2;c++)for(h=0;hMath.abs(c[s*u+f])&&(s=n);if(Math.abs(c[s*u+f])=0;f--){for(o=d[f],s=f+1;s=0;h--){for(r=_[h],n=(u=h+1)*c;u=0;)r.data[f]=l.data[f];else r&&this.matmath.transpose(r,l);if(a&&2&i)for(f=u*u;--f>=0;)a.data[f]=p.data[f];else a&&this.matmath.transpose(a,p)}else{if(r&&1&i)for(f=u*u;--f>=0;)r.data[f]=p.data[f];else r&&this.matmath.transpose(r,p);if(a&&2&i)for(f=h*h;--f>=0;)a.data[f]=l.data[f];else a&&this.matmath.transpose(a,l)}this.cache.put_buffer(d),this.cache.put_buffer(_),this.cache.put_buffer(v)}},{key:"svd_solve",value:function(t,e,r){var a,i=0,o=0,f=0,n=0,s=0,h=t.rows,u=t.cols,c=0,d=0,_=1|t.type,v=this.cache.get_buffer(h*h<<3),l=this.cache.get_buffer(u<<3),b=this.cache.get_buffer(u*u<<3),p=new x(h,h,_,v.data),y=new x(1,u,_,l.data),M=new x(u,u,_,b.data),w=r.data,k=p.data,g=y.data,A=M.data;for(this.svd_decompose(t,y,p,M,0),a=m*g[0]*u;ia){for(f=0,c=0,n=0;fr&&(c+=g[n+o]*w[f]/k[o]);M[s]=c}this.cache.put_buffer(_),this.cache.put_buffer(v),this.cache.put_buffer(l)}},{key:"eigenVV",value:function(t,e,r){for(var a=t.cols,i=a*a,o=1|t.type,f=this.cache.get_buffer(a*a<<3),n=this.cache.get_buffer(a<<3),s=new x(a,a,o,f.data),h=new x(1,a,o,n.data);--i>=0;)s.data[i]=t.data[i];if(this.JacobiImpl(s.data,a,h.data,e?e.data:null,a,a),r)for(;--a>=0;)r.data[a]=h.data[a];this.cache.put_buffer(f),this.cache.put_buffer(n)}}])}(P),P.orb=function(t){function e(){var t;return f(this,e),u(t=I(this,e),"bit_pattern_31_",void 0),u(t,"H",void 0),u(t,"patch_img",void 0),u(t,"imgproc",void 0),t.bit_pattern_31_=new Int32Array(z),t.H=new x(3,3,1025),t.patch_img=new x(32,32,257),t.imgproc=new P.imgproc,t}return o(e,t),h(e,[{key:"describe",value:function(t,e,r,a){var i=0,o=0,f=0,n=0,s=0,h=0,u=0,c=0,d=this.patch_img.data,_=528,v=0;a.type&M?a.resize(32,r,1):(a.type=M,a.cols=32,a.rows=r,a.channel=1,a.allocate());var l=a.data,b=0;for(i=0;i=0;)_[i]=0;for(function(t,e,r,a,i,o,f,n,s,h){var u=0,c=0,d=n*r+f|0,_=d;for(u=n;um&&v>_[b-1]&&v>_[b+1]&&v>_[b-f]&&v>_[b+f]&&v>_[b-f-1]&&v>_[b+f-1]&&v>_[b-f+1]&&v>_[b+f+1])&&(p=j(s,b,v,5,h,u,c))>M&&((a=e[y]).x=i,a.y=o,a.score=p,++y,++i,++b);return this.cache.put_buffer(d),y}}])}(P),P.motion_estimator=function(t){function e(){return f(this,e),I(this,e)}return o(e,t),h(e,[{key:"get_subset",value:function(t,e,r,a,i,o,f){for(var n=1e3,s=[],h=0,u=0,c=0,d=0,_=!1;c=0;)f.data[i]=1;return this.cache.put_buffer(p),this.cache.put_buffer(y),this.cache.put_buffer(m),!0}for(;uMath.max(k,s-1)&&(M.copy_to(o),k=g,f&&w.copy_to(f),h=t.update_iters((i-g)/i,h),c=!0)}return this.cache.put_buffer(p),this.cache.put_buffer(y),this.cache.put_buffer(m),c}},{key:"lmeds",value:function(t,e,r,a,i,o,f,n){if(void 0===n&&(n=1e3),i=0;)f.data[i]=1;return this.cache.put_buffer(y),this.cache.put_buffer(m),this.cache.put_buffer(M),!0}for(;u=s),this.cache.put_buffer(y),this.cache.put_buffer(m),this.cache.put_buffer(M),c}}])}(P),P.ransac_params_t=R,P.affine2d=U,P.homography2d=F,P.optical_flow_lk=function(t){function e(){var t;f(this,e),u(t=I(this,e),"scharr_deriv",void 0);var r=new P.imgproc;return t.scharr_deriv=r.scharr_derivatives,t}return o(e,t),h(e,[{key:"track",value:function(t,e,r,a,i,o,f,n,s,h){void 0===f&&(f=30),void 0===n&&(n=new Uint8Array(i)),void 0===s&&(s=.01),void 0===h&&(h=1e-4);var u=.5*(o-1),c=o*o|0,d=c<<1,_=t.data,v=e.data,l=_[0].data,b=v[0].data,p=_[0].cols,y=_[0].rows,m=0,M=0,w=this.cache.get_buffer(c<<2),k=this.cache.get_buffer(d<<2),g=this.cache.get_buffer(y*(p<<1)<<2),A=new x(p,y,514,g.data),z=w.i32,O=k.i32,q=g.i32,C=0,T=0,S=0,j=0,B=0,R=0,I=0,L=0,P=0,E=0,U=0,F=0,V=0,G=0,N=0,D=0,J=0,Y=0,H=0,Q=0,X=0,K=0,W=0,Z=0,$=0,tt=0,et=0,rt=0,at=0,it=0,ot=0,ft=0,nt=16384,st=1/(1<<20),ht=0,ut=0,ct=0,dt=0,_t=0,vt=0,lt=0,bt=0,pt=0,yt=0,mt=0;for(s*=s;Q=0;--Z)for(I=1/(1<>Z,C=(m=p>>Z)<<1,l=_[Z].data,b=v[Z].data,et=m-o|0,rt=M-o|0,this.scharr_deriv(_[Z],A),$=0;$=et||J<=0||J>=rt)){for(dt=nt-(ht=(1-(at=L-D))*(1-(it=P-J))*nt+.5|0)-(ut=at*(1-it)*nt+.5|0)-(ct=(1-at)*it*nt+.5|0),bt=0,pt=0,yt=0,W=0;W>9,vt=8192+(vt=q[S]*ht+q[S+2]*ut+q[S+C]*ct+q[S+C+2]*dt)>>14,lt=8192+(lt=q[S+1]*ht+q[S+3]*ut+q[S+C+1]*ct+q[S+C+3]*dt)>>14,z[j]=_t,O[B++]=vt,O[B++]=lt,bt+=vt*vt,pt+=vt*lt,yt+=lt*lt;if(mt=(bt*=st)*(yt*=st)-(pt*=st)*pt,(yt+bt-Math.sqrt((bt-yt)*(bt-yt)+4*pt*pt))/d=et||H<=0||H>=rt)){0==Z&&(n[$]=0);break}for(dt=nt-(ht=(1-(at=E-Y))*(1-(it=U-H))*nt+.5|0)-(ut=at*(1-it)*nt+.5|0)-(ct=(1-at)*it*nt+.5|0),ot=0,ft=0,W=0;W>9,ot+=(_t-=z[j])*O[B++],ft+=_t*O[B++];if(E+=G=(pt*(ft*=st)-yt*(ot*=st))*mt,U+=N=(pt*ot-bt*ft)*mt,a[Q]=E+u,a[X]=U+u,G*G+N*N<=s)break;if(tt>0&&Math.abs(G+F)<.01&&Math.abs(N+V)<.01){a[Q]-=.5*G,a[X]-=.5*N;break}F=G,V=N}}else 0==Z&&(n[$]=0);this.cache.put_buffer(w),this.cache.put_buffer(k),this.cache.put_buffer(g)}}])}(P);const V={jsfeatNext:P};return e.default})())); \ No newline at end of file diff --git a/dist/src/cache/cache.js b/dist/src/cache/cache.js index 6b64c30..7510c22 100644 --- a/dist/src/cache/cache.js +++ b/dist/src/cache/cache.js @@ -10,14 +10,14 @@ export class cache { } allocate(capacity, data_size) { this._pool_head = this._pool_tail = new _pool_node_t(data_size); - for (var i = 0; i < capacity; ++i) { - var node = new _pool_node_t(data_size); + for (let i = 0; i < capacity; ++i) { + const node = new _pool_node_t(data_size); this._pool_tail = this._pool_tail.next = node; this._pool_size++; } } get_buffer(size_in_bytes) { - var node = this._pool_head; + const node = this._pool_head; this._pool_head = this._pool_head.next; this._pool_size--; if (size_in_bytes > node.size) { diff --git a/dist/src/cache/cache.js.map b/dist/src/cache/cache.js.map index aa25259..e600e48 100644 --- a/dist/src/cache/cache.js.map +++ b/dist/src/cache/cache.js.map @@ -1 +1 @@ -{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAQxD,MAAM,OAAO,KAAK;IACN,UAAU,CAAe;IACzB,UAAU,CAAe;IACzB,UAAU,CAAS;IAC3B;QACI,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,QAAQ,CAAC,QAAa,EAAE,SAAiB;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE;YAC/B,IAAI,IAAI,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;YACvC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;SACrB;IACL,CAAC;IACD,UAAU,CAAC,aAAqB;QAE5B,IAAI,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE;YAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SAC9B;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,UAAU,CAAC,IAAS;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/cache/cache.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAQxD,MAAM,OAAO,KAAK;IACN,UAAU,CAAe;IACzB,UAAU,CAAe;IACzB,UAAU,CAAS;IAC3B;QACI,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC;QAChB,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;IACxB,CAAC;IACD,QAAQ,CAAC,QAAa,EAAE,SAAiB;QACrC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,IAAI,YAAY,CAAC,SAAS,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YAE9C,IAAI,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;IACD,UAAU,CAAC,aAAqB;QAE5B,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAC/B,CAAC;QAED,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,UAAU,CAAC,IAAS;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;QAC9C,IAAI,CAAC,UAAU,EAAE,CAAC;IACtB,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/data_type/data_type.js.map b/dist/src/data_type/data_type.js.map index 10d37c2..1d44dc5 100644 --- a/dist/src/data_type/data_type.js.map +++ b/dist/src/data_type/data_type.js.map @@ -1 +1 @@ -{"version":3,"file":"data_type.js","sourceRoot":"","sources":["../../../src/data_type/data_type.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,SAAS;IACV,eAAe,CAAa;IACpC;QACI,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,mBAAmB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"data_type.js","sourceRoot":"","sources":["../../../src/data_type/data_type.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,SAAS;IACD,eAAe,CAAa;IAC7C;QACI,IAAI,CAAC,eAAe,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3G,CAAC;IAED,cAAc,CAAC,IAAY;QACvB,OAAO,IAAI,GAAG,MAAM,CAAC;IACzB,CAAC;IAED,YAAY,CAAC,IAAY;QACrB,OAAO,IAAI,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,mBAAmB,CAAC,IAAY;QAC5B,OAAO,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/fast_corners/fast_private.js b/dist/src/fast_corners/fast_private.js index 28410ad..6e64121 100644 --- a/dist/src/fast_corners/fast_private.js +++ b/dist/src/fast_corners/fast_private.js @@ -1,6 +1,6 @@ export function _cmp_score_16(src, off, pixel, d, threshold) { - var N = 25, k = 0, v = src[off]; - var a0 = threshold, a = 0, b0 = 0, b = 0; + let N = 25, k = 0, v = src[off]; + let a0 = threshold, a = 0, b0 = 0, b = 0; for (; k < N; ++k) { d[k] = v - src[off + pixel[k]]; } diff --git a/dist/src/fast_corners/fast_private.js.map b/dist/src/fast_corners/fast_private.js.map index f1820a5..ca02069 100644 --- a/dist/src/fast_corners/fast_private.js.map +++ b/dist/src/fast_corners/fast_private.js.map @@ -1 +1 @@ -{"version":3,"file":"fast_private.js","sourceRoot":"","sources":["../../../src/fast_corners/fast_private.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"fast_private.js","sourceRoot":"","sources":["../../../src/fast_corners/fast_private.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/imgproc/convol.js b/dist/src/imgproc/convol.js index 5cccbd1..971dfce 100644 --- a/dist/src/imgproc/convol.js +++ b/dist/src/imgproc/convol.js @@ -1,6 +1,6 @@ export function _convol_u8(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel) { - var i = 0, j = 0, k = 0, sp = 0, dp = 0, sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, f0 = filter[0], fk = 0; - var w2 = w << 1, w3 = w * 3, w4 = w << 2; + let i = 0, j = 0, k = 0, sp = 0, dp = 0, sum = 0, sum1 = 0, sum2 = 0, sum3 = 0, f0 = filter[0], fk = 0; + const w2 = w << 1, w3 = w * 3, w4 = w << 2; for (; i < h; ++i) { sum = src_d[sp]; for (j = 0; j < half_kernel; ++j) { @@ -83,8 +83,8 @@ export function _convol_u8(buf, src_d, dst_d, w, h, filter, kernel_size, half_ke } } export function _convol(buf, src_d, dst_d, w, h, filter, kernel_size, half_kernel) { - var i = 0, j = 0, k = 0, sp = 0, dp = 0, sum = 0.0, sum1 = 0.0, sum2 = 0.0, sum3 = 0.0, f0 = filter[0], fk = 0.0; - var w2 = w << 1, w3 = w * 3, w4 = w << 2; + let i = 0, j = 0, k = 0, sp = 0, dp = 0, sum = 0.0, sum1 = 0.0, sum2 = 0.0, sum3 = 0.0, f0 = filter[0], fk = 0.0; + const w2 = w << 1, w3 = w * 3, w4 = w << 2; for (; i < h; ++i) { sum = src_d[sp]; for (j = 0; j < half_kernel; ++j) { diff --git a/dist/src/imgproc/convol.js.map b/dist/src/imgproc/convol.js.map deleted file mode 100644 index 2cabaca..0000000 --- a/dist/src/imgproc/convol.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"convol.js","sourceRoot":"","sources":["../../../src/imgproc/convol.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/imgproc/resample.js b/dist/src/imgproc/resample.js index 6a95718..0310552 100644 --- a/dist/src/imgproc/resample.js +++ b/dist/src/imgproc/resample.js @@ -1,17 +1,17 @@ export function _resample_u8(src, dst, cache, nw, nh) { - var xofs_count = 0; - var ch = src.channel, w = src.cols, h = src.rows; - var src_d = src.data, dst_d = dst.data; - var scale_x = w / nw, scale_y = h / nh; - var inv_scale_256 = (scale_x * scale_y * 0x10000) | 0; - var dx = 0, dy = 0, sx = 0, sy = 0, sx1 = 0, sx2 = 0, i = 0, k = 0, fsx1 = 0.0, fsx2 = 0.0; - var a = 0, b = 0, dxn = 0, alpha = 0, beta = 0, beta1 = 0; - var buf_node = cache.get_buffer((nw * ch) << 2); - var sum_node = cache.get_buffer((nw * ch) << 2); - var xofs_node = cache.get_buffer((w * 2 * 3) << 2); - var buf = buf_node.i32; - var sum = sum_node.i32; - var xofs = xofs_node.i32; + let xofs_count = 0; + const ch = src.channel, w = src.cols, h = src.rows; + const src_d = src.data, dst_d = dst.data; + const scale_x = w / nw, scale_y = h / nh; + const inv_scale_256 = (scale_x * scale_y * 0x10000) | 0; + let dx = 0, dy = 0, sx = 0, sy = 0, sx1 = 0, sx2 = 0, i = 0, k = 0, fsx1 = 0.0, fsx2 = 0.0; + let a = 0, b = 0, dxn = 0, alpha = 0, beta = 0, beta1 = 0; + const buf_node = cache.get_buffer((nw * ch) << 2); + const sum_node = cache.get_buffer((nw * ch) << 2); + const xofs_node = cache.get_buffer((w * 2 * 3) << 2); + const buf = buf_node.i32; + const sum = sum_node.i32; + const xofs = xofs_node.i32; for (; dx < nw; dx++) { (fsx1 = dx * scale_x), (fsx2 = fsx1 + scale_x); (sx1 = (fsx1 + 1.0 - 1e-6) | 0), (sx2 = fsx2 | 0); @@ -81,19 +81,19 @@ export function _resample_u8(src, dst, cache, nw, nh) { cache.put_buffer(xofs_node); } export function _resample(src, dst, cache, nw, nh) { - var xofs_count = 0; - var ch = src.channel, w = src.cols, h = src.rows; - var src_d = src.data, dst_d = dst.data; - var scale_x = w / nw, scale_y = h / nh; - var scale = 1.0 / (scale_x * scale_y); - var dx = 0, dy = 0, sx = 0, sy = 0, sx1 = 0, sx2 = 0, i = 0, k = 0, fsx1 = 0.0, fsx2 = 0.0; - var a = 0, b = 0, dxn = 0, alpha = 0.0, beta = 0.0, beta1 = 0.0; - var buf_node = cache.get_buffer((nw * ch) << 2); - var sum_node = cache.get_buffer((nw * ch) << 2); - var xofs_node = cache.get_buffer((w * 2 * 3) << 2); - var buf = buf_node.f32; - var sum = sum_node.f32; - var xofs = xofs_node.f32; + let xofs_count = 0; + const ch = src.channel, w = src.cols, h = src.rows; + const src_d = src.data, dst_d = dst.data; + const scale_x = w / nw, scale_y = h / nh; + const scale = 1.0 / (scale_x * scale_y); + let dx = 0, dy = 0, sx = 0, sy = 0, sx1 = 0, sx2 = 0, i = 0, k = 0, fsx1 = 0.0, fsx2 = 0.0; + let a = 0, b = 0, dxn = 0, alpha = 0.0, beta = 0.0, beta1 = 0.0; + const buf_node = cache.get_buffer((nw * ch) << 2); + const sum_node = cache.get_buffer((nw * ch) << 2); + const xofs_node = cache.get_buffer((w * 2 * 3) << 2); + const buf = buf_node.f32; + const sum = sum_node.f32; + const xofs = xofs_node.f32; for (; dx < nw; dx++) { (fsx1 = dx * scale_x), (fsx2 = fsx1 + scale_x); (sx1 = (fsx1 + 1.0 - 1e-6) | 0), (sx2 = fsx2 | 0); diff --git a/dist/src/imgproc/resample.js.map b/dist/src/imgproc/resample.js.map index 1c8cb54..6d8af85 100644 --- a/dist/src/imgproc/resample.js.map +++ b/dist/src/imgproc/resample.js.map @@ -1 +1 @@ -{"version":3,"file":"resample.js","sourceRoot":"","sources":["../../../src/imgproc/resample.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"resample.js","sourceRoot":"","sources":["../../../src/imgproc/resample.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/jsfeatNext.js b/dist/src/jsfeatNext.js index 79599c8..c510eb4 100644 --- a/dist/src/jsfeatNext.js +++ b/dist/src/jsfeatNext.js @@ -93,10 +93,10 @@ class motion_model extends jsfeatNext { return x * x; } iso_normalize_points(from, to, T0, T1, count) { - var i = 0; - var cx0 = 0.0, cy0 = 0.0, d0 = 0.0, s0 = 0.0; - var cx1 = 0.0, cy1 = 0.0, d1 = 0.0, s1 = 0.0; - var dx = 0.0, dy = 0.0; + let i = 0; + let cx0 = 0.0, cy0 = 0.0, d0 = 0.0, s0 = 0.0; + let cx1 = 0.0, cy1 = 0.0, d1 = 0.0, s1 = 0.0; + let dx = 0.0, dy = 0.0; for (; i < count; ++i) { cx0 += from[i].x; cy0 += from[i].y; @@ -131,8 +131,8 @@ class motion_model extends jsfeatNext { T1[8] = 1.0; } have_collinear_points(points, count) { - var j = 0, k = 0, i = (count - 1) | 0; - var dx1 = 0.0, dy1 = 0.0, dx2 = 0.0, dy2 = 0.0; + let j = 0, k = 0, i = (count - 1) | 0; + let dx1 = 0.0, dy1 = 0.0, dx2 = 0.0, dy2 = 0.0; for (; j < i; ++j) { dx1 = points[j].x - points[i].x; dy1 = points[j].y - points[i].y; @@ -152,18 +152,18 @@ class affine2d extends motion_model { super(); } run(from, to, model, count) { - var i = 0, j = 0; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; - var md = model.data, t0d = this.T0.data, t1d = this.T1.data; - var pt0, pt1, px = 0.0, py = 0.0; - var _matmath = new matmath(); - var _linalg = new jsfeatNext.linalg(); + let i = 0, j = 0; + const dt = model.type | JSFEAT_CONSTANTS.C1_t; + const md = model.data, t0d = this.T0.data, t1d = this.T1.data; + let pt0, pt1, px = 0.0, py = 0.0; + const _matmath = new matmath(); + const _linalg = new jsfeatNext.linalg(); this.iso_normalize_points(from, to, t0d, t1d, count); - var a_buff = this.cache.get_buffer((2 * count * 6) << 3); - var b_buff = this.cache.get_buffer((2 * count) << 3); - var a_mt = new matrix_t(6, 2 * count, dt, a_buff.data); - var b_mt = new matrix_t(1, 2 * count, dt, b_buff.data); - var ad = a_mt.data, bd = b_mt.data; + const a_buff = this.cache.get_buffer((2 * count * 6) << 3); + const b_buff = this.cache.get_buffer((2 * count) << 3); + const a_mt = new matrix_t(6, 2 * count, dt, a_buff.data); + const b_mt = new matrix_t(1, 2 * count, dt, b_buff.data); + const ad = a_mt.data, bd = b_mt.data; for (; i < count; ++i) { pt0 = from[i]; pt1 = to[i]; @@ -199,13 +199,13 @@ class homography2d extends motion_model { this.Evec = new matrix_t(9, 9, JSFEAT_CONSTANTS.F32_t | JSFEAT_CONSTANTS.C1_t); } run(from, to, model, count) { - var i = 0, j = 0; - var md = model.data, t0d = this.T0.data, t1d = this.T1.data; - var LtL = this.mLtL.data, evd = this.Evec.data; - var x = 0.0, y = 0.0, X = 0.0, Y = 0.0; - var _linalg = new jsfeatNext.linalg(); - var _matmath = new matmath(); - var smx = 0.0, smy = 0.0, cmx = 0.0, cmy = 0.0, sMx = 0.0, sMy = 0.0, cMx = 0.0, cMy = 0.0; + let i = 0, j = 0; + const md = model.data, t0d = this.T0.data, t1d = this.T1.data; + const LtL = this.mLtL.data, evd = this.Evec.data; + let x = 0.0, y = 0.0, X = 0.0, Y = 0.0; + const _linalg = new jsfeatNext.linalg(); + const _matmath = new matmath(); + let smx = 0.0, smy = 0.0, cmx = 0.0, cmy = 0.0, sMx = 0.0, sMy = 0.0, cMx = 0.0, cMy = 0.0; for (; i < count; ++i) { cmx += to[i].x; cmy += to[i].y; @@ -318,9 +318,9 @@ class homography2d extends motion_model { return 1; } error(from, to, model, err, count) { - var i = 0; - var pt0, pt1, ww = 0.0, dx = 0.0, dy = 0.0; - var m = model.data; + let i = 0; + let pt0, pt1, ww = 0.0, dx = 0.0, dy = 0.0; + const m = model.data; for (; i < count; ++i) { pt0 = from[i]; pt1 = to[i]; @@ -331,19 +331,19 @@ class homography2d extends motion_model { } } check_subset(from, to, count) { - var _matmath = new matmath(); + const _matmath = new matmath(); if (count == 4) { - var negative = 0; - var fp0 = from[0], fp1 = from[1], fp2 = from[2], fp3 = from[3]; - var tp0 = to[0], tp1 = to[1], tp2 = to[2], tp3 = to[3]; - var A11 = fp0.x, A12 = fp0.y, A13 = 1.0; - var A21 = fp1.x, A22 = fp1.y, A23 = 1.0; - var A31 = fp2.x, A32 = fp2.y, A33 = 1.0; - var B11 = tp0.x, B12 = tp0.y, B13 = 1.0; - var B21 = tp1.x, B22 = tp1.y, B23 = 1.0; - var B31 = tp2.x, B32 = tp2.y, B33 = 1.0; - var detA = _matmath.determinant_3x3(A11, A12, A13, A21, A22, A23, A31, A32, A33); - var detB = _matmath.determinant_3x3(B11, B12, B13, B21, B22, B23, B31, B32, B33); + let negative = 0; + const fp0 = from[0], fp1 = from[1], fp2 = from[2], fp3 = from[3]; + const tp0 = to[0], tp1 = to[1], tp2 = to[2], tp3 = to[3]; + let A11 = fp0.x, A12 = fp0.y, A13 = 1.0; + let A21 = fp1.x, A22 = fp1.y, A23 = 1.0; + let A31 = fp2.x, A32 = fp2.y, A33 = 1.0; + let B11 = tp0.x, B12 = tp0.y, B13 = 1.0; + let B21 = tp1.x, B22 = tp1.y, B23 = 1.0; + let B31 = tp2.x, B32 = tp2.y, B33 = 1.0; + let detA = _matmath.determinant_3x3(A11, A12, A13, A21, A22, A23, A31, A32, A33); + let detB = _matmath.determinant_3x3(B11, B12, B13, B21, B22, B23, B31, B32, B33); if (detA * detB < 0) negative++; (A11 = fp1.x), (A12 = fp1.y); @@ -392,11 +392,11 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { super(); this.levels = levels | 0; this.data = new Array(levels); - var _imgproc = new jsfeatNext.imgproc(); + const _imgproc = new jsfeatNext.imgproc(); this.pyrdown = _imgproc.pyrdown; } allocate(start_w, start_h, data_type) { - var i = this.levels; + let i = this.levels; while (--i >= 0) { this.data[i] = new matrix_t(start_w >> i, start_h >> i, data_type); } @@ -405,9 +405,9 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { if (typeof skip_first_level === "undefined") { skip_first_level = true; } - var i = 2, a = input, b = this.data[0]; + let i = 2, a = input, b = this.data[0]; if (!skip_first_level) { - var j = input.cols * input.rows; + let j = input.cols * input.rows; while (--j >= 0) { b.data[j] = input.data[j]; } @@ -443,7 +443,7 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { } set_threshold(threshold) { this._threshold = Math.min(Math.max(threshold, 0), 255); - for (var i = -255; i <= 255; ++i) { + for (let i = -255; i <= 255; ++i) { this.threshold_tab[i + 255] = i < -this._threshold ? 1 : i > this._threshold ? 2 : 0; } return this._threshold; @@ -452,42 +452,42 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { if (typeof border === "undefined") { border = 3; } - var K = 8, N = 25; - var img = src.data, w = src.cols, h = src.rows; - var i = 0, j = 0, k = 0, vt = 0, x = 0, m3 = 0; - var buf_node = this.cache.get_buffer(3 * w); - var cpbuf_node = this.cache.get_buffer(((w + 1) * 3) << 2); - var buf = buf_node.u8; - var cpbuf = cpbuf_node.i32; - var pixel = this.pixel_off; - var sd = this.score_diff; - var sy = Math.max(3, border); - var ey = Math.min(h - 2, h - border); - var sx = Math.max(3, border); - var ex = Math.min(w - 3, w - border); - var _count = 0, corners_cnt = 0, pt; - var score_func = _cmp_score_16; - var thresh_tab = this.threshold_tab; - var threshold = this._threshold; - var v = 0, tab = 0, d = 0, ncorners = 0, cornerpos = 0, curr = 0, ptr = 0, prev = 0, pprev = 0; - var jp1 = 0, jm1 = 0, score = 0; + const K = 8, N = 25; + const img = src.data, w = src.cols, h = src.rows; + let i = 0, j = 0, k = 0, vt = 0, x = 0, m3 = 0; + const buf_node = this.cache.get_buffer(3 * w); + const cpbuf_node = this.cache.get_buffer(((w + 1) * 3) << 2); + const buf = buf_node.u8; + const cpbuf = cpbuf_node.i32; + const pixel = this.pixel_off; + const sd = this.score_diff; + const sy = Math.max(3, border); + const ey = Math.min(h - 2, h - border); + const sx = Math.max(3, border); + const ex = Math.min(w - 3, w - border); + let _count = 0, corners_cnt = 0, pt; + const score_func = _cmp_score_16; + const thresh_tab = this.threshold_tab; + const threshold = this._threshold; + let v = 0, tab = 0, d = 0, ncorners = 0, cornerpos = 0, curr = 0, ptr = 0, prev = 0, pprev = 0; + let jp1 = 0, jm1 = 0, score = 0; this._cmp_offsets(pixel, w, 16); - var pixel0 = pixel[0]; - var pixel1 = pixel[1]; - var pixel2 = pixel[2]; - var pixel3 = pixel[3]; - var pixel4 = pixel[4]; - var pixel5 = pixel[5]; - var pixel6 = pixel[6]; - var pixel7 = pixel[7]; - var pixel8 = pixel[8]; - var pixel9 = pixel[9]; - var pixel10 = pixel[10]; - var pixel11 = pixel[11]; - var pixel12 = pixel[12]; - var pixel13 = pixel[13]; - var pixel14 = pixel[14]; - var pixel15 = pixel[15]; + const pixel0 = pixel[0]; + const pixel1 = pixel[1]; + const pixel2 = pixel[2]; + const pixel3 = pixel[3]; + const pixel4 = pixel[4]; + const pixel5 = pixel[5]; + const pixel6 = pixel[6]; + const pixel7 = pixel[7]; + const pixel8 = pixel[8]; + const pixel9 = pixel[9]; + const pixel10 = pixel[10]; + const pixel11 = pixel[11]; + const pixel12 = pixel[12]; + const pixel13 = pixel[13]; + const pixel14 = pixel[14]; + const pixel15 = pixel[15]; for (i = 0; i < w * 3; ++i) { buf[i] = 0; } @@ -592,8 +592,8 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { return corners_cnt; } _cmp_offsets(pixel, step, pattern_size) { - var k = 0; - var offsets = this.offsets16; + let k = 0; + const offsets = this.offsets16; for (; k < pattern_size; ++k) { pixel[k] = offsets[k << 1] + offsets[(k << 1) + 1] * step; } @@ -610,8 +610,8 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof code === "undefined") { code = JSFEAT_CONSTANTS.COLOR_RGBA2GRAY; } - var x = 0, y = 0, i = 0, j = 0, ir = 0, jr = 0; - var coeff_r = 4899, coeff_g = 9617, coeff_b = 1868, cn = 4; + let x = 0, y = 0, i = 0, j = 0, ir = 0, jr = 0; + let coeff_r = 4899, coeff_g = 9617, coeff_b = 1868, cn = 4; if (code == JSFEAT_CONSTANTS.COLOR_BGRA2GRAY || code == JSFEAT_CONSTANTS.COLOR_BGR2GRAY) { coeff_r = 1868; coeff_b = 4899; @@ -619,9 +619,9 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (code == JSFEAT_CONSTANTS.COLOR_RGB2GRAY || code == JSFEAT_CONSTANTS.COLOR_BGR2GRAY) { cn = 3; } - var cn2 = cn << 1, cn3 = (cn * 3) | 0; + const cn2 = cn << 1, cn3 = (cn * 3) | 0; dst.resize(w, h, 1); - var dst_u8 = dst.data; + const dst_u8 = dst.data; for (y = 0; y < h; ++y, j += w, i += w * cn) { for (x = 0, ir = i, jr = j; x <= w - 4; x += 4, ir += cn << 2, jr += 4) { dst_u8[jr] = (src[ir] * coeff_r + src[ir + 1] * coeff_g + src[ir + 2] * coeff_b + 8192) >> 14; @@ -638,7 +638,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } resample(src, dst, nw, nh) { - var h = src.rows, w = src.cols; + const h = src.rows, w = src.cols; if (h > nh && w > nw) { dst.resize(nw, nh, src.channel); if (src.type & JSFEAT_CONSTANTS.U8_t && dst.type & JSFEAT_CONSTANTS.U8_t && (h * w) / (nh * nw) < 0x100) { @@ -653,16 +653,16 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof options === "undefined") { options = 0; } - var w = src.cols, h = src.rows, h2 = h << 1, w2 = w << 1; - var i = 0, x = 0, y = 0, end = 0; - var windowSize = ((radius << 1) + 1) | 0; - var radiusPlusOne = (radius + 1) | 0, radiusPlus2 = (radiusPlusOne + 1) | 0; - var scale = options & JSFEAT_CONSTANTS.BOX_BLUR_NOSCALE ? 1 : 1.0 / (windowSize * windowSize); - var tmp_buff = this.cache.get_buffer((w * h) << 2); - var sum = 0, dstIndex = 0, srcIndex = 0, nextPixelIndex = 0, previousPixelIndex = 0; - var data_i32 = tmp_buff.i32; - var data_u8 = src.data; - var hold = 0; + const w = src.cols, h = src.rows, h2 = h << 1, w2 = w << 1; + let i = 0, x = 0, y = 0, end = 0; + const windowSize = ((radius << 1) + 1) | 0; + const radiusPlusOne = (radius + 1) | 0, radiusPlus2 = (radiusPlusOne + 1) | 0; + const scale = options & JSFEAT_CONSTANTS.BOX_BLUR_NOSCALE ? 1 : 1.0 / (windowSize * windowSize); + const tmp_buff = this.cache.get_buffer((w * h) << 2); + let sum = 0, dstIndex = 0, srcIndex = 0, nextPixelIndex = 0, previousPixelIndex = 0; + const data_i32 = tmp_buff.i32; + let data_u8 = src.data; + let hold = 0; dst.resize(w, h, src.channel); for (y = 0; y < h; ++y) { dstIndex = y; @@ -781,7 +781,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(tmp_buff); } gaussian_blur(src, dst, kernel_size, sigma) { - var jsfeatmath = new jsfeatNext.math(); + const jsfeatmath = new jsfeatNext.math(); if (typeof sigma === "undefined") { sigma = 0.0; } @@ -789,14 +789,14 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { kernel_size = 0; } kernel_size = kernel_size == 0 ? (Math.max(1, 4.0 * sigma + 1.0 - 1e-8) * 2 + 1) | 0 : kernel_size; - var half_kernel = kernel_size >> 1; - var w = src.cols, h = src.rows; - var data_type = src.type, is_u8 = data_type & JSFEAT_CONSTANTS.U8_t; + const half_kernel = kernel_size >> 1; + const w = src.cols, h = src.rows; + const data_type = src.type, is_u8 = data_type & JSFEAT_CONSTANTS.U8_t; dst.resize(w, h, src.channel); - var src_d = src.data, dst_d = dst.data; - var buf, filter, buf_sz = (kernel_size + Math.max(h, w)) | 0; - var buf_node = this.cache.get_buffer(buf_sz << 2); - var filt_node = this.cache.get_buffer(kernel_size << 2); + const src_d = src.data, dst_d = dst.data; + let buf, filter, buf_sz = (kernel_size + Math.max(h, w)) | 0; + const buf_node = this.cache.get_buffer(buf_sz << 2); + const filt_node = this.cache.get_buffer(kernel_size << 2); if (is_u8) { buf = buf_node.i32; filter = filt_node.i32; @@ -820,40 +820,42 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(filt_node); } hough_transform(img, rho_res, theta_res, threshold) { - var image = img.data; - var width = img.cols; - var height = img.rows; - var step = width; - var min_theta = 0.0; - var max_theta = Math.PI; - var numangle = Math.round((max_theta - min_theta) / theta_res); - var numrho = Math.round(((width + height) * 2 + 1) / rho_res); - var irho = 1.0 / rho_res; - var accum = new Int32Array((numangle + 2) * (numrho + 2)); - var tabSin = new Float32Array(numangle); - var tabCos = new Float32Array(numangle); - var n = 0; - var ang = min_theta; + let r; + let i; + const image = img.data; + const width = img.cols; + const height = img.rows; + const step = width; + const min_theta = 0.0; + const max_theta = Math.PI; + const numangle = Math.round((max_theta - min_theta) / theta_res); + const numrho = Math.round(((width + height) * 2 + 1) / rho_res); + const irho = 1.0 / rho_res; + const accum = new Int32Array((numangle + 2) * (numrho + 2)); + const tabSin = new Float32Array(numangle); + const tabCos = new Float32Array(numangle); + let n = 0; + let ang = min_theta; for (; n < numangle; n++) { tabSin[n] = Math.sin(ang) * irho; tabCos[n] = Math.cos(ang) * irho; ang += theta_res; } - for (var i = 0; i < height; i++) { - for (var j = 0; j < width; j++) { + for (i = 0; i < height; i++) { + for (let j = 0; j < width; j++) { if (image[i * step + j] != 0) { - for (var n = 0; n < numangle; n++) { - var r = Math.round(j * tabCos[n] + i * tabSin[n]); + for (n = 0; n < numangle; n++) { + r = Math.round(j * tabCos[n] + i * tabSin[n]); r += (numrho - 1) / 2; accum[(n + 1) * (numrho + 2) + r + 1] += 1; } } } } - var _sort_buf = new Array(); - for (var r = 0; r < numrho; r++) { - for (var n = 0; n < numangle; n++) { - var base = (n + 1) * (numrho + 2) + r + 1; + const _sort_buf = []; + for (r = 0; r < numrho; r++) { + for (n = 0; n < numangle; n++) { + const base = (n + 1) * (numrho + 2) + r + 1; if (accum[base] > threshold && accum[base] > accum[base - 1] && accum[base] >= accum[base + 1] && @@ -866,15 +868,15 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { _sort_buf.sort(function (l1, l2) { return (accum[l1] > accum[l2] || (accum[l1] == accum[l2] && l1 < l2)); }); - var linesMax = Math.min(numangle * numrho, _sort_buf.length); - var scale = 1.0 / (numrho + 2); - var lines = new Array(); - for (var i = 0; i < linesMax; i++) { - var idx = _sort_buf[i]; - var n = Math.floor(idx * scale) - 1; - var r = idx - (n + 1) * (numrho + 2) - 1; - var lrho = (r - (numrho - 1) * 0.5) * rho_res; - var langle = n * theta_res; + const linesMax = Math.min(numangle * numrho, _sort_buf.length); + const scale = 1.0 / (numrho + 2); + const lines = new Array(); + for (i = 0; i < linesMax; i++) { + const idx = _sort_buf[i]; + n = Math.floor(idx * scale) - 1; + r = idx - (n + 1) * (numrho + 2) - 1; + const lrho = (r - (numrho - 1) * 0.5) * rho_res; + const langle = n * theta_res; lines.push([lrho, langle]); } return lines; @@ -886,12 +888,12 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof sy === "undefined") { sy = 0; } - var w = src.cols, h = src.rows; - var w2 = w >> 1, h2 = h >> 1; - var _w2 = w2 - (sx << 1), _h2 = h2 - (sy << 1); - var x = 0, y = 0, sptr = sx + sy * w, sline = 0, dptr = 0, dline = 0; + const w = src.cols, h = src.rows; + const w2 = w >> 1, h2 = h >> 1; + const _w2 = w2 - (sx << 1), _h2 = h2 - (sy << 1); + let x = 0, y = 0, sptr = sx + sy * w, sline = 0, dptr = 0, dline = 0; dst.resize(w2, h2, src.channel); - var src_d = src.data, dst_d = dst.data; + const src_d = src.data, dst_d = dst.data; for (y = 0; y < _h2; ++y) { sline = sptr; dline = dptr; @@ -908,14 +910,14 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } scharr_derivatives(src, dst) { - var w = src.cols, h = src.rows; - var dstep = w << 1, x = 0, y = 0, x1 = 0, a, b, c, d, e, f; - var srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; - var trow0, trow1; + const w = src.cols, h = src.rows; + let dstep = w << 1, x = 0, y = 0, x1 = 0, a, b, c, d, e, f; + let srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; + let trow0, trow1; dst.resize(w, h, 2); - var img = src.data, gxgy = dst.data; - var buf0_node = this.cache.get_buffer((w + 2) << 2); - var buf1_node = this.cache.get_buffer((w + 2) << 2); + const img = src.data, gxgy = dst.data; + const buf0_node = this.cache.get_buffer((w + 2) << 2); + const buf1_node = this.cache.get_buffer((w + 2) << 2); if (src.type & JSFEAT_CONSTANTS.U8_t || src.type & JSFEAT_CONSTANTS.S32_t) { trow0 = buf0_node.i32; trow1 = buf1_node.i32; @@ -971,14 +973,14 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(buf1_node); } sobel_derivatives(src, dst) { - var w = src.cols, h = src.rows; - var dstep = w << 1, x = 0, y = 0, x1 = 0, a, b, c, d, e, f; - var srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; - var trow0, trow1; + const w = src.cols, h = src.rows; + let dstep = w << 1, x = 0, y = 0, x1 = 0, a, b, c, d, e, f; + let srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; + let trow0, trow1; dst.resize(w, h, 2); - var img = src.data, gxgy = dst.data; - var buf0_node = this.cache.get_buffer((w + 2) << 2); - var buf1_node = this.cache.get_buffer((w + 2) << 2); + const img = src.data, gxgy = dst.data; + const buf0_node = this.cache.get_buffer((w + 2) << 2); + const buf1_node = this.cache.get_buffer((w + 2) << 2); if (src.type & JSFEAT_CONSTANTS.U8_t || src.type & JSFEAT_CONSTANTS.S32_t) { trow0 = buf0_node.i32; trow1 = buf1_node.i32; @@ -1034,9 +1036,9 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(buf1_node); } compute_integral_image(src, dst_sum, dst_sqsum, dst_tilted) { - var w0 = src.cols | 0, h0 = src.rows | 0, src_d = src.data; - var w1 = (w0 + 1) | 0; - var s = 0, s2 = 0, p = 0, pup = 0, i = 0, j = 0, v = 0, k = 0; + const w0 = src.cols | 0, h0 = src.rows | 0, src_d = src.data; + const w1 = (w0 + 1) | 0; + let s = 0, s2 = 0, p = 0, pup = 0, i = 0, j = 0, v = 0, k = 0; if (dst_sum && dst_sqsum) { for (; i < w1; ++i) { (dst_sum[i] = 0), (dst_sqsum[i] = 0); @@ -1130,11 +1132,11 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } equalize_histogram(src, dst) { - var w = src.cols, h = src.rows, src_d = src.data; + const w = src.cols, h = src.rows, src_d = src.data; dst.resize(w, h, src.channel); - var dst_d = dst.data, size = w * h; - var i = 0, prev = 0, hist0, norm; - var hist0_node = this.cache.get_buffer(256 << 2); + const dst_d = dst.data, size = w * h; + let i = 0, prev = 0, hist0, norm; + const hist0_node = this.cache.get_buffer(256 << 2); hist0 = hist0_node.i32; for (; i < 256; ++i) hist0[i] = 0; @@ -1152,21 +1154,21 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(hist0_node); } canny(src, dst, low_thresh, high_thresh) { - var w = src.cols, h = src.rows, src_d = src.data; + const w = src.cols, h = src.rows, src_d = src.data; dst.resize(w, h, src.channel); - var dst_d = dst.data; - var i = 0, j = 0, grad = 0, w2 = w << 1, _grad = 0, suppress = 0, f = 0, x = 0, y = 0, s = 0; - var tg22x = 0, tg67x = 0; - var dxdy_node = this.cache.get_buffer((h * w2) << 2); - var buf_node = this.cache.get_buffer((3 * (w + 2)) << 2); - var map_node = this.cache.get_buffer(((h + 2) * (w + 2)) << 2); - var stack_node = this.cache.get_buffer((h * w) << 2); - var buf = buf_node.i32; - var map = map_node.i32; - var stack = stack_node.i32; - var dxdy = dxdy_node.i32; - var dxdy_m = new matrix_t(w, h, JSFEAT_CONSTANTS.S32C2_t, dxdy_node.data); - var row0 = 1, row1 = (w + 2 + 1) | 0, row2 = (2 * (w + 2) + 1) | 0, map_w = (w + 2) | 0, map_i = (map_w + 1) | 0, stack_i = 0; + const dst_d = dst.data; + let i = 0, j = 0, grad = 0, w2 = w << 1, _grad = 0, suppress = 0, f = 0, x = 0, y = 0, s = 0; + let tg22x = 0, tg67x = 0; + const dxdy_node = this.cache.get_buffer((h * w2) << 2); + const buf_node = this.cache.get_buffer((3 * (w + 2)) << 2); + const map_node = this.cache.get_buffer(((h + 2) * (w + 2)) << 2); + const stack_node = this.cache.get_buffer((h * w) << 2); + const buf = buf_node.i32; + const map = map_node.i32; + const stack = stack_node.i32; + const dxdy = dxdy_node.i32; + const dxdy_m = new matrix_t(w, h, JSFEAT_CONSTANTS.S32C2_t, dxdy_node.data); + let row0 = 1, row1 = (w + 2 + 1) | 0, row2 = (2 * (w + 2) + 1) | 0, map_w = (w + 2) | 0, map_i = (map_w + 1) | 0, stack_i = 0; this.sobel_derivatives(src, dxdy_m); if (low_thresh > high_thresh) { i = low_thresh; @@ -1310,11 +1312,11 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof fill_value === "undefined") { fill_value = 0; } - var src_width = src.cols | 0, src_height = src.rows | 0, dst_width = dst.cols | 0, dst_height = dst.rows | 0; - var src_d = src.data, dst_d = dst.data; - var x = 0, y = 0, off = 0, ixs = 0, iys = 0, xs = 0.0, ys = 0.0, xs0 = 0.0, ys0 = 0.0, ws = 0.0, sc = 0.0, a = 0.0, b = 0.0, p0 = 0.0, p1 = 0.0; - var td = transform.data; - var m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], m11 = td[4], m12 = td[5], m20 = td[6], m21 = td[7], m22 = td[8]; + const src_width = src.cols | 0, src_height = src.rows | 0, dst_width = dst.cols | 0, dst_height = dst.rows | 0; + const src_d = src.data, dst_d = dst.data; + let x = 0, y = 0, off = 0, ixs = 0, iys = 0, xs = 0.0, ys = 0.0, xs0 = 0.0, ys0 = 0.0, ws = 0.0, sc = 0.0, a = 0.0, b = 0.0, p0 = 0.0, p1 = 0.0; + const td = transform.data; + const m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], m11 = td[4], m12 = td[5], m20 = td[6], m21 = td[7], m22 = td[8]; for (var dptr = 0; y < dst_height; ++y) { (xs0 = m01 * y + m02), (ys0 = m11 * y + m12), (ws = m21 * y + m22); for (x = 0; x < dst_width; ++x, ++dptr, xs0 += m00, ys0 += m10, ws += m20) { @@ -1338,11 +1340,11 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof fill_value === "undefined") { fill_value = 0; } - var src_width = src.cols, src_height = src.rows, dst_width = dst.cols, dst_height = dst.rows; - var src_d = src.data, dst_d = dst.data; - var x = 0, y = 0, off = 0, ixs = 0, iys = 0, xs = 0.0, ys = 0.0, a = 0.0, b = 0.0, p0 = 0.0, p1 = 0.0; - var td = transform.data; - var m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], m11 = td[4], m12 = td[5]; + const src_width = src.cols, src_height = src.rows, dst_width = dst.cols, dst_height = dst.rows; + const src_d = src.data, dst_d = dst.data; + let x = 0, y = 0, off = 0, ixs = 0, iys = 0, xs = 0.0, ys = 0.0, a = 0.0, b = 0.0, p0 = 0.0, p1 = 0.0; + const td = transform.data; + const m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], m11 = td[4], m12 = td[5]; for (var dptr = 0; y < dst_height; ++y) { xs = m01 * y + m02; ys = m11 * y + m12; @@ -1363,8 +1365,8 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } } skindetector(src, dst) { - var r, g, b, j; - var i = src.width * src.height; + let r, g, b, j; + let i = src.width * src.height; while (i--) { j = i * 4; r = src.data[j]; @@ -1386,10 +1388,10 @@ jsfeatNext.math = class math extends jsfeatNext { this.qsort_stack = new Int32Array(48 * 2); } get_gaussian_kernel(size, sigma, kernel, data_type) { - var i = 0, x = 0.0, t = 0.0, sigma_x = 0.0, scale_2x = 0.0; - var sum = 0.0; - var kern_node = this.cache.get_buffer(size << 2); - var _kernel = kern_node.f32; + let i = 0, x = 0.0, t = 0.0, sigma_x = 0.0, scale_2x = 0.0; + let sum = 0.0; + const kern_node = this.cache.get_buffer(size << 2); + const _kernel = kern_node.f32; if ((size & 1) == 1 && size <= 7 && sigma <= 0) { switch (size >> 1) { case 0: @@ -1446,45 +1448,45 @@ jsfeatNext.math = class math extends jsfeatNext { } perspective_4point_transform(model, src_x0, src_y0, dst_x0, dst_y0, src_x1, src_y1, dst_x1, dst_y1, src_x2, src_y2, dst_x2, dst_y2, src_x3, src_y3, dst_x3, dst_y3) { console.warn("โš ๏ธโš ๏ธโš ๏ธ This method is deprecated ad will be removed in the next releases, use transform.perspective_4point_transform() instead. โš ๏ธโš ๏ธโš ๏ธ"); - var t1 = src_x0; - var t2 = src_x2; - var t4 = src_y1; - var t5 = t1 * t2 * t4; - var t6 = src_y3; - var t7 = t1 * t6; - var t8 = t2 * t7; - var t9 = src_y2; - var t10 = t1 * t9; - var t11 = src_x1; - var t14 = src_y0; - var t15 = src_x3; - var t16 = t14 * t15; - var t18 = t16 * t11; - var t20 = t15 * t11 * t9; - var t21 = t15 * t4; - var t24 = t15 * t9; - var t25 = t2 * t4; - var t26 = t6 * t2; - var t27 = t6 * t11; - var t28 = t9 * t11; - var t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); - var t32 = t1 * t15; - var t35 = t14 * t11; - var t41 = t4 * t1; - var t42 = t6 * t41; - var t43 = t14 * t2; - var t46 = t16 * t9; - var t48 = t14 * t9 * t11; - var t51 = t4 * t6 * t2; - var t55 = t6 * t14; - var Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hr2 = t1; - var Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hr5 = t14; - var Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let t1 = src_x0; + let t2 = src_x2; + let t4 = src_y1; + let t5 = t1 * t2 * t4; + let t6 = src_y3; + let t7 = t1 * t6; + let t8 = t2 * t7; + let t9 = src_y2; + let t10 = t1 * t9; + let t11 = src_x1; + let t14 = src_y0; + let t15 = src_x3; + let t16 = t14 * t15; + let t18 = t16 * t11; + let t20 = t15 * t11 * t9; + let t21 = t15 * t4; + let t24 = t15 * t9; + let t25 = t2 * t4; + let t26 = t6 * t2; + let t27 = t6 * t11; + let t28 = t9 * t11; + let t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); + let t32 = t1 * t15; + let t35 = t14 * t11; + let t41 = t4 * t1; + let t42 = t6 * t41; + let t43 = t14 * t2; + let t46 = t16 * t9; + let t48 = t14 * t9 * t11; + let t51 = t4 * t6 * t2; + let t55 = t6 * t14; + let Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + let Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + let Hr2 = t1; + let Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + let Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + let Hr5 = t14; + let Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + let Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t1 = dst_x0; t2 = dst_x2; t4 = dst_y1; @@ -1516,34 +1518,34 @@ jsfeatNext.math = class math extends jsfeatNext { t48 = t14 * t9 * t11; t51 = t4 * t6 * t2; t55 = t6 * t14; - var Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hl2 = t1; - var Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hl5 = t14; - var Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + let Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + let Hl2 = t1; + let Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + let Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + let Hl5 = t14; + let Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + let Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t2 = Hr4 - Hr7 * Hr5; t4 = Hr0 * Hr4; t5 = Hr0 * Hr5; t7 = Hr3 * Hr1; t8 = Hr2 * Hr3; t10 = Hr1 * Hr6; - var t12 = Hr2 * Hr6; + let t12 = Hr2 * Hr6; t15 = 1.0 / (t4 - t5 * Hr7 - t7 + t8 * Hr7 + t10 * Hr5 - t12 * Hr4); t18 = -Hr3 + Hr5 * Hr6; - var t23 = -Hr3 * Hr7 + Hr4 * Hr6; + let t23 = -Hr3 * Hr7 + Hr4 * Hr6; t28 = -Hr1 + Hr2 * Hr7; - var t31 = Hr0 - t12; + let t31 = Hr0 - t12; t35 = Hr0 * Hr7 - t10; t41 = -Hr1 * Hr5 + Hr2 * Hr4; - var t44 = t5 - t8; - var t47 = t4 - t7; + let t44 = t5 - t8; + let t47 = t4 - t7; t48 = t2 * t15; - var t49 = t28 * t15; - var t50 = t41 * t15; - var mat = model.data; + let t49 = t28 * t15; + let t50 = t41 * t15; + const mat = model.data; mat[0] = Hl0 * t48 + Hl1 * (t18 * t15) - Hl2 * (t23 * t15); mat[1] = Hl0 * t49 + Hl1 * (t31 * t15) - Hl2 * (t35 * t15); mat[2] = -Hl0 * t50 - Hl1 * (t44 * t15) + Hl2 * (t47 * t15); @@ -1555,11 +1557,11 @@ jsfeatNext.math = class math extends jsfeatNext { mat[8] = -Hl6 * t50 - Hl7 * (t44 * t15) + t47 * t15; } qsort(array, low, high, cmp) { - var isort_thresh = 7; - var t, ta, tb, tc; - var sp = 0, left = 0, right = 0, i = 0, n = 0, m = 0, ptr = 0, ptr2 = 0, d = 0; - var left0 = 0, left1 = 0, right0 = 0, right1 = 0, pivot = 0, a = 0, b = 0, c = 0, swap_cnt = 0; - var stack = this.qsort_stack; + const isort_thresh = 7; + let t, ta, tb, tc; + let sp = 0, left = 0, right = 0, i = 0, n = 0, m = 0, ptr = 0, ptr2 = 0, d = 0; + let left0 = 0, left1 = 0, right0 = 0, right1 = 0, pivot = 0, a = 0, b = 0, c = 0, swap_cnt = 0; + const stack = this.qsort_stack; if (high - low + 1 <= 1) return; stack[0] = low; @@ -1738,8 +1740,8 @@ jsfeatNext.math = class math extends jsfeatNext { } } median(array, low, high) { - var w; - var middle = 0, ll = 0, hh = 0, median = (low + high) >> 1; + let w; + let middle = 0, ll = 0, hh = 0, median = (low + high) >> 1; for (;;) { if (high <= low) return array[median]; @@ -1804,14 +1806,14 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.matmath = new matmath(); } JacobiImpl(A, astep, W, V, vstep, n) { - var eps = JSFEAT_CONSTANTS.EPSILON; - var i = 0, j = 0, k = 0, m = 0, l = 0, idx = 0, _in = 0, _in2 = 0; - var iters = 0, max_iter = n * n * 30; - var mv = 0.0, val = 0.0, p = 0.0, y = 0.0, t = 0.0, s = 0.0, c = 0.0, a0 = 0.0, b0 = 0.0; - var indR_buff = this.cache.get_buffer(n << 2); - var indC_buff = this.cache.get_buffer(n << 2); - var indR = indR_buff.i32; - var indC = indC_buff.i32; + const eps = JSFEAT_CONSTANTS.EPSILON; + let i = 0, j = 0, k = 0, m = 0, l = 0, idx = 0, _in = 0, _in2 = 0; + let iters = 0, max_iter = n * n * 30; + let mv = 0.0, val = 0.0, p = 0.0, y = 0.0, t = 0.0, s = 0.0, c = 0.0, a0 = 0.0, b0 = 0.0; + const indR_buff = this.cache.get_buffer(n << 2); + const indC_buff = this.cache.get_buffer(n << 2); + const indR = indR_buff.i32; + const indC = indC_buff.i32; if (V) { for (; i < n; i++) { k = i * vstep; @@ -1941,16 +1943,16 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.cache.put_buffer(indC_buff); } JacobiSVDImpl(At, astep, _W, Vt, vstep, m, n, n1) { - var eps = JSFEAT_CONSTANTS.EPSILON * 2.0; - var minval = JSFEAT_CONSTANTS.FLT_MIN; - var i = 0, j = 0, k = 0, iter = 0, max_iter = Math.max(m, 30); - var Ai = 0, Aj = 0, Vi = 0, Vj = 0, changed = 0; - var c = 0.0, s = 0.0, t = 0.0; - var t0 = 0.0, t1 = 0.0, sd = 0.0, beta = 0.0, gamma = 0.0, delta = 0.0, a = 0.0, p = 0.0, b = 0.0; - var seed = 0x1234; - var val = 0.0, val0 = 0.0, asum = 0.0; - var W_buff = this.cache.get_buffer(n << 3); - var W = W_buff.f64; + const eps = JSFEAT_CONSTANTS.EPSILON * 2.0; + const minval = JSFEAT_CONSTANTS.FLT_MIN; + let i = 0, j = 0, k = 0, iter = 0, max_iter = Math.max(m, 30); + let Ai = 0, Aj = 0, Vi = 0, Vj = 0, changed = 0; + let c = 0.0, s = 0.0, t = 0.0; + let t0 = 0.0, t1 = 0.0, sd = 0.0, beta = 0.0, gamma = 0.0, delta = 0.0, a = 0.0, p = 0.0, b = 0.0; + let seed = 0x1234; + let val = 0.0, val0 = 0.0, asum = 0.0; + const W_buff = this.cache.get_buffer(n << 3); + const W = W_buff.f64; for (; i < n; i++) { for (k = 0, sd = 0; k < m; k++) { t = At[i * astep + k]; @@ -2110,9 +2112,9 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.cache.put_buffer(W_buff); } lu_solve(A, B) { - var i = 0, j = 0, k = 0, p = 1, astep = A.cols; - var ad = A.data, bd = B.data; - var t, alpha, d, s; + let i = 0, j = 0, k = 0, p = 1, astep = A.cols; + const ad = A.data, bd = B.data; + let t, alpha, d, s; for (i = 0; i < astep; i++) { k = i; for (j = i + 1; j < astep; j++) { @@ -2150,10 +2152,10 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { return 1; } cholesky_solve(A, B) { - var col = 0, row = 0, col2 = 0, cs = 0, rs = 0, i = 0, j = 0; - var size = A.cols; - var ad = A.data, bd = B.data; - var val, inv_diag; + let col = 0, row = 0, col2 = 0, cs = 0, rs = 0, i = 0, j = 0; + const size = A.cols; + const ad = A.data, bd = B.data; + let val, inv_diag; for (col = 0; col < size; col++) { inv_diag = 1.0; cs = col * size; @@ -2208,20 +2210,20 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { if (typeof options === "undefined") { options = 0; } - var at = 0, i = 0, j = 0, _m = A.rows, _n = A.cols, m = _m, n = _n; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; + let at = 0, i = 0, j = 0, _m = A.rows, _n = A.cols, m = _m, n = _n; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; if (m < n) { at = 1; i = m; m = n; n = i; } - var a_buff = this.cache.get_buffer((m * m) << 3); - var w_buff = this.cache.get_buffer(n << 3); - var v_buff = this.cache.get_buffer((n * n) << 3); - var a_mt = new matrix_t(m, m, dt, a_buff.data); - var w_mt = new matrix_t(1, n, dt, w_buff.data); - var v_mt = new matrix_t(n, n, dt, v_buff.data); + const a_buff = this.cache.get_buffer((m * m) << 3); + const w_buff = this.cache.get_buffer(n << 3); + const v_buff = this.cache.get_buffer((n * n) << 3); + const a_mt = new matrix_t(m, m, dt, a_buff.data); + const w_mt = new matrix_t(1, n, dt, w_buff.data); + const v_mt = new matrix_t(n, n, dt, v_buff.data); if (at == 0) { this.matmath.transpose(a_mt, A); } @@ -2287,18 +2289,18 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.cache.put_buffer(v_buff); } svd_solve(A, X, B) { - var i = 0, j = 0, k = 0; - var pu = 0, pv = 0; - var nrows = A.rows, ncols = A.cols; - var sum = 0.0, xsum = 0.0, tol = 0.0; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; - var u_buff = this.cache.get_buffer((nrows * nrows) << 3); - var w_buff = this.cache.get_buffer(ncols << 3); - var v_buff = this.cache.get_buffer((ncols * ncols) << 3); - var u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); - var w_mt = new matrix_t(1, ncols, dt, w_buff.data); - var v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); - var bd = B.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; + let i = 0, j = 0, k = 0; + let pu = 0, pv = 0; + const nrows = A.rows, ncols = A.cols; + let sum = 0.0, xsum = 0.0, tol = 0.0; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; + const u_buff = this.cache.get_buffer((nrows * nrows) << 3); + const w_buff = this.cache.get_buffer(ncols << 3); + const v_buff = this.cache.get_buffer((ncols * ncols) << 3); + const u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); + const w_mt = new matrix_t(1, ncols, dt, w_buff.data); + const v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); + const bd = B.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; this.svd_decompose(A, w_mt, u_mt, v_mt, 0); tol = JSFEAT_CONSTANTS.EPSILON * wd[0] * ncols; for (; i < ncols; i++, pv += ncols) { @@ -2318,18 +2320,18 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.cache.put_buffer(v_buff); } svd_invert(Ai, A) { - var i = 0, j = 0, k = 0; - var pu = 0, pv = 0, pa = 0; - var nrows = A.rows, ncols = A.cols; - var sum = 0.0, tol = 0.0; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; - var u_buff = this.cache.get_buffer((nrows * nrows) << 3); - var w_buff = this.cache.get_buffer(ncols << 3); - var v_buff = this.cache.get_buffer((ncols * ncols) << 3); - var u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); - var w_mt = new matrix_t(1, ncols, dt, w_buff.data); - var v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); - var id = Ai.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; + let i = 0, j = 0, k = 0; + let pu = 0, pv = 0, pa = 0; + const nrows = A.rows, ncols = A.cols; + let sum = 0.0, tol = 0.0; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; + const u_buff = this.cache.get_buffer((nrows * nrows) << 3); + const w_buff = this.cache.get_buffer(ncols << 3); + const v_buff = this.cache.get_buffer((ncols * ncols) << 3); + const u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); + const w_mt = new matrix_t(1, ncols, dt, w_buff.data); + const v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); + const id = Ai.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; this.svd_decompose(A, w_mt, u_mt, v_mt, 0); tol = JSFEAT_CONSTANTS.EPSILON * wd[0] * ncols; for (; i < ncols; i++, pv += ncols) { @@ -2346,12 +2348,12 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { this.cache.put_buffer(v_buff); } eigenVV(A, vects, vals) { - var n = A.cols, i = n * n; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; - var a_buff = this.cache.get_buffer((n * n) << 3); - var w_buff = this.cache.get_buffer(n << 3); - var a_mt = new matrix_t(n, n, dt, a_buff.data); - var w_mt = new matrix_t(1, n, dt, w_buff.data); + let n = A.cols, i = n * n; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; + const a_buff = this.cache.get_buffer((n * n) << 3); + const w_buff = this.cache.get_buffer(n << 3); + const a_mt = new matrix_t(n, n, dt, a_buff.data); + const w_mt = new matrix_t(1, n, dt, w_buff.data); while (--i >= 0) { a_mt.data[i] = A.data[i]; } @@ -2378,12 +2380,12 @@ jsfeatNext.orb = class orb extends jsfeatNext { this.imgproc = new jsfeatNext.imgproc(); } describe(src, corners, count, descriptors) { - var DESCR_SIZE = 32; - var i = 0, b = 0, px = 0.0, py = 0.0, angle = 0.0; - var t0 = 0, t1 = 0, val = 0; - var patch_d = this.patch_img.data; - var patch_off = 16 * 32 + 16; - var patt = 0; + const DESCR_SIZE = 32; + let i = 0, b = 0, px = 0.0, py = 0.0, angle = 0.0; + let t0 = 0, t1 = 0, val = 0; + const patch_d = this.patch_img.data; + const patch_off = 16 * 32 + 16; + let patt = 0; if (!(descriptors.type & JSFEAT_CONSTANTS.U8_t)) { descriptors.type = JSFEAT_CONSTANTS.U8_t; descriptors.cols = DESCR_SIZE; @@ -2394,8 +2396,8 @@ jsfeatNext.orb = class orb extends jsfeatNext { else { descriptors.resize(DESCR_SIZE, count, 1); } - var descr_d = descriptors.data; - var descr_off = 0; + const descr_d = descriptors.data; + let descr_off = 0; for (i = 0; i < count; ++i) { px = corners[i].x; py = corners[i].y; @@ -2462,20 +2464,20 @@ jsfeatNext.yape06 = class yape06 extends jsfeatNext { if (typeof border === "undefined") { border = 5; } - var x = 0, y = 0; - var w = src.cols, h = src.rows, srd_d = src.data; - var Dxx = 5, Dyy = (5 * w) | 0; - var Dxy = (3 + 3 * w) | 0, Dyx = (3 - 3 * w) | 0; - var lap_buf = this.cache.get_buffer((w * h) << 2); - var laplacian = lap_buf.i32; - var lv = 0, row = 0, rowx = 0, min_eigen_value = 0, pt; - var number_of_points = 0; - var lap_thresh = this.laplacian_threshold; - var eigen_thresh = this.min_eigen_value_threshold; - var sx = Math.max(5, border) | 0; - var sy = Math.max(3, border) | 0; - var ex = Math.min(w - 5, w - border) | 0; - var ey = Math.min(h - 3, h - border) | 0; + let x = 0, y = 0; + const w = src.cols, h = src.rows, srd_d = src.data; + const Dxx = 5, Dyy = (5 * w) | 0; + const Dxy = (3 + 3 * w) | 0, Dyx = (3 - 3 * w) | 0; + const lap_buf = this.cache.get_buffer((w * h) << 2); + const laplacian = lap_buf.i32; + let lv = 0, row = 0, rowx = 0, min_eigen_value = 0, pt; + let number_of_points = 0; + const lap_thresh = this.laplacian_threshold; + const eigen_thresh = this.min_eigen_value_threshold; + const sx = Math.max(5, border) | 0; + const sy = Math.max(3, border) | 0; + const ex = Math.min(w - 5, w - border) | 0; + const ey = Math.min(h - 3, h - border) | 0; x = w * h; while (--x >= 0) { laplacian[x] = 0; @@ -2522,9 +2524,9 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { super(); } get_subset(kernel, from, to, need_cnt, max_cnt, from_sub, to_sub) { - var max_try = 1000; - var indices = []; - var i = 0, j = 0, ssiter = 0, idx_i = 0, ok = false; + const max_try = 1000; + const indices = []; + let i = 0, j = 0, ssiter = 0, idx_i = 0, ok = false; for (; ssiter < max_try; ++ssiter) { i = 0; for (; i < need_cnt && ssiter < max_try;) { @@ -2553,8 +2555,8 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { return i == need_cnt && ssiter < max_try; } find_inliers(kernel, model, from, to, count, thresh, err, mask) { - var numinliers = 0, i = 0, f = 0; - var t = thresh * thresh; + let numinliers = 0, i = 0, f = 0; + const t = thresh * thresh; kernel.error(from, to, model, err, count); for (; i < count; ++i) { f = (err[i] <= t); @@ -2569,22 +2571,22 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { } if (count < params.size) return false; - var model_points = params.size; - var niters = max_iters, iter = 0; - var result = false; - var subset0 = []; - var subset1 = []; - var found = false; - var mc = model.cols, mr = model.rows; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; - var m_buff = this.cache.get_buffer((mc * mr) << 3); - var ms_buff = this.cache.get_buffer(count); - var err_buff = this.cache.get_buffer(count << 2); - var M = new matrix_t(mc, mr, dt, m_buff.data); - var curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8C1_t, ms_buff.data); - var inliers_max = -1, numinliers = 0; - var nmodels = 0; - var err = err_buff.f32; + const model_points = params.size; + let niters = max_iters, iter = 0; + let result = false; + const subset0 = []; + const subset1 = []; + let found = false; + const mc = model.cols, mr = model.rows; + const dt = model.type | JSFEAT_CONSTANTS.C1_t; + const m_buff = this.cache.get_buffer((mc * mr) << 3); + const ms_buff = this.cache.get_buffer(count); + const err_buff = this.cache.get_buffer(count << 2); + const M = new matrix_t(mc, mr, dt, m_buff.data); + const curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8C1_t, ms_buff.data); + let inliers_max = -1, numinliers = 0; + let nmodels = 0; + const err = err_buff.f32; if (count == model_points) { if (kernel.run(from, to, M, count) <= 0) { this.cache.put_buffer(m_buff); @@ -2638,24 +2640,24 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { } if (count < params.size) return false; - var model_points = params.size; - var niters = max_iters, iter = 0; - var result = false; - var _math = new jsfeatNext.math(); - var subset0 = []; - var subset1 = []; - var found = false; - var mc = model.cols, mr = model.rows; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; - var m_buff = this.cache.get_buffer((mc * mr) << 3); - var ms_buff = this.cache.get_buffer(count); - var err_buff = this.cache.get_buffer(count << 2); - var M = new matrix_t(mc, mr, dt, m_buff.data); - var curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8_t | JSFEAT_CONSTANTS.C1_t, ms_buff.data); - var numinliers = 0; - var nmodels = 0; - var err = err_buff.f32; - var min_median = 1000000000.0, sigma = 0.0, median = 0.0; + const model_points = params.size; + let niters = max_iters, iter = 0; + let result = false; + const _math = new jsfeatNext.math(); + const subset0 = []; + const subset1 = []; + let found = false; + const mc = model.cols, mr = model.rows; + const dt = model.type | JSFEAT_CONSTANTS.C1_t; + const m_buff = this.cache.get_buffer((mc * mr) << 3); + const ms_buff = this.cache.get_buffer(count); + const err_buff = this.cache.get_buffer(count << 2); + const M = new matrix_t(mc, mr, dt, m_buff.data); + const curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8_t | JSFEAT_CONSTANTS.C1_t, ms_buff.data); + let numinliers = 0; + let nmodels = 0; + const err = err_buff.f32; + let min_median = 1000000000.0, sigma = 0.0, median = 0.0; params.eps = 0.45; niters = params.update_iters(params.eps, niters); if (count == model_points) { @@ -2719,7 +2721,7 @@ jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { scharr_deriv; constructor() { super(); - var _imgproc = new jsfeatNext.imgproc(); + const _imgproc = new jsfeatNext.imgproc(); this.scharr_deriv = _imgproc.scharr_derivatives; } track(prev_pyr, curr_pyr, prev_xy, curr_xy, count, win_size, max_iter, status, eps, min_eigen_threshold) { @@ -2735,41 +2737,41 @@ jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { if (typeof min_eigen_threshold === "undefined") { min_eigen_threshold = 0.0001; } - var half_win = (win_size - 1) * 0.5; - var win_area = (win_size * win_size) | 0; - var win_area2 = win_area << 1; - var prev_imgs = prev_pyr.data, next_imgs = curr_pyr.data; - var img_prev = prev_imgs[0].data, img_next = next_imgs[0].data; - var w0 = prev_imgs[0].cols, h0 = prev_imgs[0].rows, lw = 0, lh = 0; - var iwin_node = this.cache.get_buffer(win_area << 2); - var deriv_iwin_node = this.cache.get_buffer(win_area2 << 2); - var deriv_lev_node = this.cache.get_buffer((h0 * (w0 << 1)) << 2); - var deriv_m = new matrix_t(w0, h0, JSFEAT_CONSTANTS.S32C2_t, deriv_lev_node.data); - var iwin_buf = iwin_node.i32; - var deriv_iwin = deriv_iwin_node.i32; - var deriv_lev = deriv_lev_node.i32; - var dstep = 0, src = 0, dsrc = 0, iptr = 0, diptr = 0, jptr = 0; - var lev_sc = 0.0, prev_x = 0.0, prev_y = 0.0, next_x = 0.0, next_y = 0.0; - var prev_delta_x = 0.0, prev_delta_y = 0.0, delta_x = 0.0, delta_y = 0.0; - var iprev_x = 0, iprev_y = 0, inext_x = 0, inext_y = 0; - var i = 0, j = 0, x = 0, y = 0, level = 0, ptid = 0, iter = 0; - var brd_tl = 0, brd_r = 0, brd_b = 0; - var a = 0.0, b = 0.0, b1 = 0.0, b2 = 0.0; - var W_BITS14 = 14; - var W_BITS4 = 14; - var W_BITS1m5 = W_BITS4 - 5; - var W_BITS1m51 = 1 << (W_BITS1m5 - 1); - var W_BITS14_ = 1 << W_BITS14; - var W_BITS41 = 1 << (W_BITS4 - 1); - var FLT_SCALE = 1.0 / (1 << 20); - var iw00 = 0, iw01 = 0, iw10 = 0, iw11 = 0, ival = 0, ixval = 0, iyval = 0; - var A11 = 0.0, A12 = 0.0, A22 = 0.0, D = 0.0, min_eig = 0.0; - var FLT_EPSILON = 0.00000011920929; + const half_win = (win_size - 1) * 0.5; + const win_area = (win_size * win_size) | 0; + const win_area2 = win_area << 1; + const prev_imgs = prev_pyr.data, next_imgs = curr_pyr.data; + let img_prev = prev_imgs[0].data, img_next = next_imgs[0].data; + let w0 = prev_imgs[0].cols, h0 = prev_imgs[0].rows, lw = 0, lh = 0; + const iwin_node = this.cache.get_buffer(win_area << 2); + const deriv_iwin_node = this.cache.get_buffer(win_area2 << 2); + const deriv_lev_node = this.cache.get_buffer((h0 * (w0 << 1)) << 2); + const deriv_m = new matrix_t(w0, h0, JSFEAT_CONSTANTS.S32C2_t, deriv_lev_node.data); + const iwin_buf = iwin_node.i32; + const deriv_iwin = deriv_iwin_node.i32; + const deriv_lev = deriv_lev_node.i32; + let dstep = 0, src = 0, dsrc = 0, iptr = 0, diptr = 0, jptr = 0; + let lev_sc = 0.0, prev_x = 0.0, prev_y = 0.0, next_x = 0.0, next_y = 0.0; + let prev_delta_x = 0.0, prev_delta_y = 0.0, delta_x = 0.0, delta_y = 0.0; + let iprev_x = 0, iprev_y = 0, inext_x = 0, inext_y = 0; + let i = 0, j = 0, x = 0, y = 0, level = 0, ptid = 0, iter = 0; + let brd_tl = 0, brd_r = 0, brd_b = 0; + let a = 0.0, b = 0.0, b1 = 0.0, b2 = 0.0; + const W_BITS14 = 14; + const W_BITS4 = 14; + const W_BITS1m5 = W_BITS4 - 5; + const W_BITS1m51 = 1 << (W_BITS1m5 - 1); + const W_BITS14_ = 1 << W_BITS14; + const W_BITS41 = 1 << (W_BITS4 - 1); + const FLT_SCALE = 1.0 / (1 << 20); + let iw00 = 0, iw01 = 0, iw10 = 0, iw11 = 0, ival = 0, ixval = 0, iyval = 0; + let A11 = 0.0, A12 = 0.0, A22 = 0.0, D = 0.0, min_eig = 0.0; + const FLT_EPSILON = 0.00000011920929; eps *= eps; for (; i < count; ++i) { status[i] = 1; } - var max_level = (prev_pyr.levels - 1) | 0; + const max_level = (prev_pyr.levels - 1) | 0; level = max_level; for (; level >= 0; --level) { lev_sc = 1.0 / (1 << level); diff --git a/dist/src/jsfeatNext.js.map b/dist/src/jsfeatNext.js.map index 688d6ca..78cbac9 100644 --- a/dist/src/jsfeatNext.js.map +++ b/dist/src/jsfeatNext.js.map @@ -1 +1 @@ -{"version":3,"file":"jsfeatNext.js","sourceRoot":"","sources":["../../src/jsfeatNext.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"jsfeatNext.js","sourceRoot":"","sources":["../../src/jsfeatNext.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/keypoint_t/keypoint_t.js.map b/dist/src/keypoint_t/keypoint_t.js.map index 64dd8f9..cd78ffe 100644 --- a/dist/src/keypoint_t/keypoint_t.js.map +++ b/dist/src/keypoint_t/keypoint_t.js.map @@ -1 +1 @@ -{"version":3,"file":"keypoint_t.js","sourceRoot":"","sources":["../../../src/keypoint_t/keypoint_t.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACZ,CAAC,CAAS;IACV,CAAC,CAAS;IACV,KAAK,CAAS;IACd,KAAK,CAAS;IACd,KAAK,CAAS;IACrB,YAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa;QACzE,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;YAC1B,CAAC,GAAG,CAAC,CAAC;SACT;QACD,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE;YAC1B,CAAC,GAAG,CAAC,CAAC;SACT;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9B,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9B,KAAK,GAAG,CAAC,CAAC;SACb;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE;YAC9B,KAAK,GAAG,CAAC,GAAG,CAAC;SAChB;QAED,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"keypoint_t.js","sourceRoot":"","sources":["../../../src/keypoint_t/keypoint_t.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,UAAU;IACZ,CAAC,CAAS;IACV,CAAC,CAAS;IACV,KAAK,CAAS;IACd,KAAK,CAAS;IACd,KAAK,CAAS;IACrB,YAAY,CAAS,EAAE,CAAS,EAAE,KAAa,EAAE,KAAa,EAAE,KAAa;QACzE,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,CAAC;QACV,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,WAAW,EAAE,CAAC;YAC3B,CAAC,GAAG,CAAC,CAAC;QACV,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,GAAG,CAAC,CAAC;QACd,CAAC;QACD,IAAI,OAAO,KAAK,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,GAAG,CAAC,GAAG,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACvB,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/linalg/linalg_base.js.map b/dist/src/linalg/linalg_base.js.map index 6f15218..9fc352d 100644 --- a/dist/src/linalg/linalg_base.js.map +++ b/dist/src/linalg/linalg_base.js.map @@ -1 +1 @@ -{"version":3,"file":"linalg_base.js","sourceRoot":"","sources":["../../../src/linalg/linalg_base.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,CAA2C,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;IAC/F,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,CAAS;IACtC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,EAAE;QACP,CAAC,IAAI,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE;QACP,CAAC,IAAI,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file +{"version":3,"file":"linalg_base.js","sourceRoot":"","sources":["../../../src/linalg/linalg_base.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,IAAI,CAAC,CAA2C,EAAE,EAAU,EAAE,EAAU,EAAE,CAAS;IAC/F,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACV,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IACd,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,CAAS,EAAE,CAAS;IACtC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACR,CAAC,IAAI,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACR,CAAC,IAAI,CAAC,CAAC;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;IACtC,CAAC;IACD,OAAO,GAAG,CAAC;AACf,CAAC"} \ No newline at end of file diff --git a/dist/src/matmath/matmath.js b/dist/src/matmath/matmath.js index cea5035..9880e69 100644 --- a/dist/src/matmath/matmath.js +++ b/dist/src/matmath/matmath.js @@ -4,10 +4,10 @@ export default class matmath { if (typeof value === "undefined") { value = 1; } - var src = M.data; - var rows = M.rows, cols = M.cols, cols_1 = (cols + 1) | 0; - var len = rows * cols; - var k = len; + const src = M.data; + const rows = M.rows, cols = M.cols, cols_1 = (cols + 1) | 0; + let len = rows * cols; + let k = len; while (--len >= 0) src[len] = 0.0; len = k; @@ -18,9 +18,9 @@ export default class matmath { } } transpose(At, A) { - var i = 0, j = 0, nrows = A.rows, ncols = A.cols; - var Ai = 0, Ati = 0, pAt = 0; - var ad = A.data, atd = At.data; + let i = 0, j = 0, nrows = A.rows, ncols = A.cols; + let Ai = 0, Ati = 0, pAt = 0; + const ad = A.data, atd = At.data; for (; i < nrows; Ati += 1, Ai += ncols, i++) { pAt = Ati; for (j = 0; j < ncols; pAt += nrows, j++) @@ -28,11 +28,11 @@ export default class matmath { } } multiply(C, A, B) { - var i = 0, j = 0, k = 0; - var Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; - var ncols = A.cols, nrows = A.rows, mcols = B.cols; - var ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let i = 0, j = 0, k = 0; + let Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; + const ncols = A.cols, nrows = A.rows, mcols = B.cols; + const ad = A.data, bd = B.data, cd = C.data; + let sum = 0.0; for (; i < nrows; Ap += ncols, i++) { for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) { pB = p_B; @@ -46,11 +46,11 @@ export default class matmath { } } multiply_ABt(C, A, B) { - var i = 0, j = 0, k = 0; - var Ap = 0, pA = 0, pB = 0, Cp = 0; - var ncols = A.cols, nrows = A.rows, mrows = B.rows; - var ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let i = 0, j = 0, k = 0; + let Ap = 0, pA = 0, pB = 0, Cp = 0; + const ncols = A.cols, nrows = A.rows, mrows = B.rows; + const ad = A.data, bd = B.data, cd = C.data; + let sum = 0.0; for (; i < nrows; Ap += ncols, i++) { for (pB = 0, j = 0; j < mrows; Cp++, j++) { pA = Ap; @@ -63,11 +63,11 @@ export default class matmath { } } multiply_AtB(C, A, B) { - var i = 0, j = 0, k = 0; - var Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; - var ncols = A.cols, nrows = A.rows, mcols = B.cols; - var ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let i = 0, j = 0, k = 0; + let Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; + const ncols = A.cols, nrows = A.rows, mcols = B.cols; + const ad = A.data, bd = B.data, cd = C.data; + let sum = 0.0; for (; i < ncols; Ap++, i++) { for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) { pB = p_B; @@ -81,11 +81,11 @@ export default class matmath { } } multiply_AAt(C, A) { - var i = 0, j = 0, k = 0; - var pCdiag = 0, p_A = 0, pA = 0, pB = 0, pC = 0, pCt = 0; - var ncols = A.cols, nrows = A.rows; - var ad = A.data, cd = C.data; - var sum = 0.0; + let i = 0, j = 0, k = 0; + let pCdiag = 0, p_A = 0, pA = 0, pB = 0, pC = 0, pCt = 0; + const ncols = A.cols, nrows = A.rows; + const ad = A.data, cd = C.data; + let sum = 0.0; for (; i < nrows; pCdiag += nrows + 1, p_A = pA, i++) { pC = pCdiag; pCt = pCdiag; @@ -102,11 +102,11 @@ export default class matmath { } } multiply_AtA(C, A) { - var i = 0, j = 0, k = 0; - var p_A = 0, pA = 0, pB = 0, p_C = 0, pC = 0, p_CC = 0; - var ncols = A.cols, nrows = A.rows; - var ad = A.data, cd = C.data; - var sum = 0.0; + let i = 0, j = 0, k = 0; + let p_A = 0, pA = 0, pB = 0, p_C = 0, pC = 0, p_CC = 0; + const ncols = A.cols, nrows = A.rows; + const ad = A.data, cd = C.data; + let sum = 0.0; for (; i < ncols; p_C += ncols, i++) { p_A = i; p_CC = p_C + i; @@ -127,29 +127,29 @@ export default class matmath { if (typeof value === "undefined") { value = 1; } - var dt = M.data; + const dt = M.data; dt[0] = dt[4] = dt[8] = value; dt[1] = dt[2] = dt[3] = 0; dt[5] = dt[6] = dt[7] = 0; } invert_3x3(from, to) { - var A = from.data, invA = to.data; - var t1 = A[4]; - var t2 = A[8]; - var t4 = A[5]; - var t5 = A[7]; - var t8 = A[0]; - var t9 = t8 * t1; - var t11 = t8 * t4; - var t13 = A[3]; - var t14 = A[1]; - var t15 = t13 * t14; - var t17 = A[2]; - var t18 = t13 * t17; - var t20 = A[6]; - var t21 = t20 * t14; - var t23 = t20 * t17; - var t26 = 1.0 / (t9 * t2 - t11 * t5 - t15 * t2 + t18 * t5 + t21 * t4 - t23 * t1); + const A = from.data, invA = to.data; + const t1 = A[4]; + const t2 = A[8]; + const t4 = A[5]; + const t5 = A[7]; + const t8 = A[0]; + const t9 = t8 * t1; + const t11 = t8 * t4; + const t13 = A[3]; + const t14 = A[1]; + const t15 = t13 * t14; + const t17 = A[2]; + const t18 = t13 * t17; + const t20 = A[6]; + const t21 = t20 * t14; + const t23 = t20 * t17; + const t26 = 1.0 / (t9 * t2 - t11 * t5 - t15 * t2 + t18 * t5 + t21 * t4 - t23 * t1); invA[0] = (t1 * t2 - t4 * t5) * t26; invA[1] = -(t14 * t2 - t17 * t5) * t26; invA[2] = -(-t14 * t4 + t17 * t1) * t26; @@ -161,13 +161,13 @@ export default class matmath { invA[8] = (t9 - t15) * t26; } multiply_3x3(C, A, B) { - var Cd = C.data, Ad = A.data, Bd = B.data; - var m1_0 = Ad[0], m1_1 = Ad[1], m1_2 = Ad[2]; - var m1_3 = Ad[3], m1_4 = Ad[4], m1_5 = Ad[5]; - var m1_6 = Ad[6], m1_7 = Ad[7], m1_8 = Ad[8]; - var m2_0 = Bd[0], m2_1 = Bd[1], m2_2 = Bd[2]; - var m2_3 = Bd[3], m2_4 = Bd[4], m2_5 = Bd[5]; - var m2_6 = Bd[6], m2_7 = Bd[7], m2_8 = Bd[8]; + const Cd = C.data, Ad = A.data, Bd = B.data; + const m1_0 = Ad[0], m1_1 = Ad[1], m1_2 = Ad[2]; + const m1_3 = Ad[3], m1_4 = Ad[4], m1_5 = Ad[5]; + const m1_6 = Ad[6], m1_7 = Ad[7], m1_8 = Ad[8]; + const m2_0 = Bd[0], m2_1 = Bd[1], m2_2 = Bd[2]; + const m2_3 = Bd[3], m2_4 = Bd[4], m2_5 = Bd[5]; + const m2_6 = Bd[6], m2_7 = Bd[7], m2_8 = Bd[8]; Cd[0] = m1_0 * m2_0 + m1_1 * m2_3 + m1_2 * m2_6; Cd[1] = m1_0 * m2_1 + m1_1 * m2_4 + m1_2 * m2_7; Cd[2] = m1_0 * m2_2 + m1_1 * m2_5 + m1_2 * m2_8; @@ -179,7 +179,7 @@ export default class matmath { Cd[8] = m1_6 * m2_2 + m1_7 * m2_5 + m1_8 * m2_8; } mat3x3_determinant(M) { - var md = M.data; + const md = M.data; return (md[0] * md[4] * md[8] - md[0] * md[5] * md[7] - md[3] * md[1] * md[8] + diff --git a/dist/src/matmath/matmath.js.map b/dist/src/matmath/matmath.js.map index 2371faa..f760120 100644 --- a/dist/src/matmath/matmath.js.map +++ b/dist/src/matmath/matmath.js.map @@ -1 +1 @@ -{"version":3,"file":"matmath.js","sourceRoot":"","sources":["../../../src/matmath/matmath.ts"],"names":[],"mappings":"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CZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QACjB,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,EACZ,IAAI,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAEjB,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;QAChD,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACpD,CAAC;IAED,kBAAkB,CAAC,CAAW;QAC1B,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC;QAChB,OAAO,CACH,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YACrB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CACxB,CAAC;IACN,CAAC;IAED,eAAe,CACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW;QAEX,OAAO,CACH,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAC5G,CAAC;IACN,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"matmath.js","sourceRoot":"","sources":["../../../src/matmath/matmath.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/matrix_t/matrix_t.js b/dist/src/matrix_t/matrix_t.js index b6bf31f..aabc5cd 100644 --- a/dist/src/matrix_t/matrix_t.js +++ b/dist/src/matrix_t/matrix_t.js @@ -44,8 +44,8 @@ export class matrix_t { : this.buffer.f64; } copy_to(other) { - var od = other.data, td = this.data; - var i = 0, n = (this.cols * this.rows * this.channel) | 0; + const od = other.data, td = this.data; + let i = 0, n = (this.cols * this.rows * this.channel) | 0; for (; i < n - 4; i += 4) { od[i] = td[i]; od[i + 1] = td[i + 1]; @@ -60,7 +60,7 @@ export class matrix_t { if (typeof ch === "undefined") { ch = this.channel; } - var new_size = c * this.dt._get_data_type_size(this.type) * ch * r; + const new_size = c * this.dt._get_data_type_size(this.type) * ch * r; if (new_size > this.buffer.size) { this.cols = c; this.rows = r; diff --git a/dist/src/matrix_t/matrix_t.js.map b/dist/src/matrix_t/matrix_t.js.map index d849b37..67d15a0 100644 --- a/dist/src/matrix_t/matrix_t.js.map +++ b/dist/src/matrix_t/matrix_t.js.map @@ -1 +1 @@ -{"version":3,"file":"matrix_t.js","sourceRoot":"","sources":["../../../src/matrix_t/matrix_t.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"matrix_t.js","sourceRoot":"","sources":["../../../src/matrix_t/matrix_t.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAc1D,MAAM,OAAO,QAAQ;IACT,EAAE,CAAa;IAChB,IAAI,CAAS;IACb,OAAO,CAAS;IAChB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,IAAI,CAAM;IACV,MAAM,CAAS;IAEtB,YAAY,CAAS,EAAE,CAAS,EAAE,UAAkB,EAAE,YAAqB;QACvE,IAAI,CAAC,EAAE,GAAG,IAAI,SAAS,EAAE,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACnD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,IAAI,OAAO,YAAY,KAAK,WAAW,EAAE,CAAC;YACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;YAE3B,IAAI,CAAC,IAAI;gBACL,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI;oBAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;oBAChB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;wBACjB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK;4BAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;4BACjB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAClC,CAAC;IACL,CAAC;IAED,QAAQ;QAEJ,OAAO,IAAI,CAAC,IAAI,CAAC;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC;QAEnB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACxG,IAAI,CAAC,IAAI;YACL,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,IAAI;gBAC7B,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;gBAChB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK;oBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;oBACjB,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC,KAAK;wBAClC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG;wBACjB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,KAAgB;QACpB,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,EACjB,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC;QACnB,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YACd,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtB,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;YAChB,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACL,CAAC;IAED,MAAM,CAAC,CAAS,EAAE,CAAS,EAAE,EAAU;QACnC,IAAI,OAAO,EAAE,KAAK,WAAW,EAAE,CAAC;YAC5B,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACtB,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACrE,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;YACd,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACtB,CAAC;IACL,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/motion_estimator/ransac_params_t.js b/dist/src/motion_estimator/ransac_params_t.js index 0e75363..67312d6 100644 --- a/dist/src/motion_estimator/ransac_params_t.js +++ b/dist/src/motion_estimator/ransac_params_t.js @@ -22,8 +22,8 @@ export class ransac_params_t { this.prob = prob; } update_iters(_eps, max_iters) { - var num = Math.log(1 - this.prob); - var denom = Math.log(1 - Math.pow(1 - _eps, this.size)); + const num = Math.log(1 - this.prob); + const denom = Math.log(1 - Math.pow(1 - _eps, this.size)); return (denom >= 0 || -num >= max_iters * -denom ? max_iters : Math.round(num / denom)) | 0; } } diff --git a/dist/src/motion_estimator/ransac_params_t.js.map b/dist/src/motion_estimator/ransac_params_t.js.map index a324cc3..cdadfc2 100644 --- a/dist/src/motion_estimator/ransac_params_t.js.map +++ b/dist/src/motion_estimator/ransac_params_t.js.map @@ -1 +1 @@ -{"version":3,"file":"ransac_params_t.js","sourceRoot":"","sources":["../../../src/motion_estimator/ransac_params_t.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IACjB,IAAI,CAAS;IACb,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,IAAI,CAAS;IACpB,YAAY,IAAY,EAAE,MAAc,EAAE,GAAW,EAAE,IAAY;QAC/D,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAC7B,IAAI,GAAG,CAAC,CAAC;SACZ;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,MAAM,GAAG,GAAG,CAAC;SAChB;QACD,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;YAC5B,GAAG,GAAG,GAAG,CAAC;SACb;QACD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE;YAC7B,IAAI,GAAG,IAAI,CAAC;SACf;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,YAAY,CAAC,IAAY,EAAE,SAAiB;QACxC,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"ransac_params_t.js","sourceRoot":"","sources":["../../../src/motion_estimator/ransac_params_t.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,eAAe;IACjB,IAAI,CAAS;IACb,MAAM,CAAS;IACf,GAAG,CAAS;IACZ,IAAI,CAAS;IACpB,YAAY,IAAY,EAAE,MAAc,EAAE,GAAW,EAAE,IAAY;QAC/D,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAI,GAAG,CAAC,CAAC;QACb,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,MAAM,GAAG,GAAG,CAAC;QACjB,CAAC;QACD,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE,CAAC;YAC7B,GAAG,GAAG,GAAG,CAAC;QACd,CAAC;QACD,IAAI,OAAO,IAAI,KAAK,WAAW,EAAE,CAAC;YAC9B,IAAI,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,YAAY,CAAC,IAAY,EAAE,SAAiB;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,SAAS,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC;IAChG,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/node_utils/data_t.js.map b/dist/src/node_utils/data_t.js.map index 9a0b15b..0f35df0 100644 --- a/dist/src/node_utils/data_t.js.map +++ b/dist/src/node_utils/data_t.js.map @@ -1 +1 @@ -{"version":3,"file":"data_t.js","sourceRoot":"","sources":["../../../src/node_utils/data_t.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,MAAM;IACR,IAAI,CAAS;IACb,MAAM,CAAc;IACpB,EAAE,CAAa;IACf,GAAG,CAAa;IAChB,GAAG,CAAe;IAClB,GAAG,CAAe;IACzB,YAAY,aAAqB,EAAE,MAAY;QAE3C,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAC5C;aAAM;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;SAC7B;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"data_t.js","sourceRoot":"","sources":["../../../src/node_utils/data_t.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,MAAM;IACR,IAAI,CAAS;IACb,MAAM,CAAc;IACpB,EAAE,CAAa;IACf,GAAG,CAAa;IAChB,GAAG,CAAe;IAClB,GAAG,CAAe;IACzB,YAAY,aAAqB,EAAE,MAAY;QAE3C,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAChC,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACJ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;YACrB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;QACD,IAAI,CAAC,EAAE,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,GAAG,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/orb/rectify_patch.js b/dist/src/orb/rectify_patch.js index 1152de6..41f1281 100644 --- a/dist/src/orb/rectify_patch.js +++ b/dist/src/orb/rectify_patch.js @@ -1,6 +1,6 @@ export function rectify_patch(src, dst, angle, px, py, psize, H, imgproc) { - var cosine = Math.cos(angle); - var sine = Math.sin(angle); + const cosine = Math.cos(angle); + const sine = Math.sin(angle); (H.data[0] = cosine), (H.data[1] = -sine), (H.data[2] = (-cosine + sine) * psize * 0.5 + px), diff --git a/dist/src/orb/rectify_patch.js.map b/dist/src/orb/rectify_patch.js.map index b1d87c8..b4a386c 100644 --- a/dist/src/orb/rectify_patch.js.map +++ b/dist/src/orb/rectify_patch.js.map @@ -1 +1 @@ -{"version":3,"file":"rectify_patch.js","sourceRoot":"","sources":["../../../src/orb/rectify_patch.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CACzB,GAAa,EACb,GAAa,EACb,KAAa,EACb,EAAU,EACV,EAAU,EACV,KAAa,EACb,CAAW,EACX,OAAgB;IAEhB,IAAI,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE3B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IAEtD,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC"} \ No newline at end of file +{"version":3,"file":"rectify_patch.js","sourceRoot":"","sources":["../../../src/orb/rectify_patch.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,aAAa,CACzB,GAAa,EACb,GAAa,EACb,KAAa,EACb,EAAU,EACV,EAAU,EACV,KAAa,EACb,CAAW,EACX,OAAgB;IAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAE7B,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QAChB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QACnB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC;QACjD,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QAClB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;QACpB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,GAAG,KAAK,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;IAEtD,OAAO,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;AAC1C,CAAC"} \ No newline at end of file diff --git a/dist/src/transform/transform.js b/dist/src/transform/transform.js index fa80d18..2c7d2a8 100644 --- a/dist/src/transform/transform.js +++ b/dist/src/transform/transform.js @@ -1,45 +1,45 @@ export class transform { constructor() { } perspective_4point_transform(model, src_x0, src_y0, dst_x0, dst_y0, src_x1, src_y1, dst_x1, dst_y1, src_x2, src_y2, dst_x2, dst_y2, src_x3, src_y3, dst_x3, dst_y3) { - var t1 = src_x0; - var t2 = src_x2; - var t4 = src_y1; - var t5 = t1 * t2 * t4; - var t6 = src_y3; - var t7 = t1 * t6; - var t8 = t2 * t7; - var t9 = src_y2; - var t10 = t1 * t9; - var t11 = src_x1; - var t14 = src_y0; - var t15 = src_x3; - var t16 = t14 * t15; - var t18 = t16 * t11; - var t20 = t15 * t11 * t9; - var t21 = t15 * t4; - var t24 = t15 * t9; - var t25 = t2 * t4; - var t26 = t6 * t2; - var t27 = t6 * t11; - var t28 = t9 * t11; - var t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); - var t32 = t1 * t15; - var t35 = t14 * t11; - var t41 = t4 * t1; - var t42 = t6 * t41; - var t43 = t14 * t2; - var t46 = t16 * t9; - var t48 = t14 * t9 * t11; - var t51 = t4 * t6 * t2; - var t55 = t6 * t14; - var Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hr2 = t1; - var Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hr5 = t14; - var Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let t1 = src_x0; + let t2 = src_x2; + let t4 = src_y1; + let t5 = t1 * t2 * t4; + let t6 = src_y3; + let t7 = t1 * t6; + let t8 = t2 * t7; + let t9 = src_y2; + let t10 = t1 * t9; + let t11 = src_x1; + let t14 = src_y0; + let t15 = src_x3; + let t16 = t14 * t15; + let t18 = t16 * t11; + let t20 = t15 * t11 * t9; + let t21 = t15 * t4; + let t24 = t15 * t9; + let t25 = t2 * t4; + let t26 = t6 * t2; + let t27 = t6 * t11; + let t28 = t9 * t11; + let t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); + let t32 = t1 * t15; + let t35 = t14 * t11; + let t41 = t4 * t1; + let t42 = t6 * t41; + let t43 = t14 * t2; + let t46 = t16 * t9; + let t48 = t14 * t9 * t11; + let t51 = t4 * t6 * t2; + let t55 = t6 * t14; + const Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + const Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + const Hr2 = t1; + const Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + const Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + const Hr5 = t14; + const Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + const Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t1 = dst_x0; t2 = dst_x2; t4 = dst_y1; @@ -71,34 +71,34 @@ export class transform { t48 = t14 * t9 * t11; t51 = t4 * t6 * t2; t55 = t6 * t14; - var Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hl2 = t1; - var Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hl5 = t14; - var Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + const Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + const Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + const Hl2 = t1; + const Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + const Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + const Hl5 = t14; + const Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + const Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t2 = Hr4 - Hr7 * Hr5; t4 = Hr0 * Hr4; t5 = Hr0 * Hr5; t7 = Hr3 * Hr1; t8 = Hr2 * Hr3; t10 = Hr1 * Hr6; - var t12 = Hr2 * Hr6; + const t12 = Hr2 * Hr6; t15 = 1.0 / (t4 - t5 * Hr7 - t7 + t8 * Hr7 + t10 * Hr5 - t12 * Hr4); t18 = -Hr3 + Hr5 * Hr6; - var t23 = -Hr3 * Hr7 + Hr4 * Hr6; + const t23 = -Hr3 * Hr7 + Hr4 * Hr6; t28 = -Hr1 + Hr2 * Hr7; - var t31 = Hr0 - t12; + const t31 = Hr0 - t12; t35 = Hr0 * Hr7 - t10; t41 = -Hr1 * Hr5 + Hr2 * Hr4; - var t44 = t5 - t8; - var t47 = t4 - t7; + const t44 = t5 - t8; + const t47 = t4 - t7; t48 = t2 * t15; - var t49 = t28 * t15; - var t50 = t41 * t15; - var mat = model.data; + const t49 = t28 * t15; + const t50 = t41 * t15; + const mat = model.data; mat[0] = Hl0 * t48 + Hl1 * (t18 * t15) - Hl2 * (t23 * t15); mat[1] = Hl0 * t49 + Hl1 * (t31 * t15) - Hl2 * (t35 * t15); mat[2] = -Hl0 * t50 - Hl1 * (t44 * t15) + Hl2 * (t47 * t15); @@ -110,11 +110,11 @@ export class transform { mat[8] = -Hl6 * t50 - Hl7 * (t44 * t15) + t47 * t15; } invert_affine_transform(src, dst) { - var src_d = src.data; - var dst_d = dst.data; - var m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; - var m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; - var det = 1.0 / (m11 * m22 - m12 * m21); + const src_d = src.data; + const dst_d = dst.data; + const m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; + const m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; + const det = 1.0 / (m11 * m22 - m12 * m21); dst_d[0] = det * m22; dst_d[1] = det * -m12; dst_d[2] = det * (m12 * m23 - m13 * m22); @@ -123,12 +123,12 @@ export class transform { dst_d[5] = det * (m13 * m21 - m11 * m23); } invert_perspective_transform(src, dst) { - var src_d = src.data; - var dst_d = dst.data; - var m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; - var m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; - var m31 = src_d[6], m32 = src_d[7], m33 = src_d[8]; - var det = 1.0 / (m11 * (m22 * m33 - m23 * m32) - m12 * (m21 * m33 - m23 * m31) + m13 * (m21 * m32 - m22 * m31)); + const src_d = src.data; + const dst_d = dst.data; + const m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; + const m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; + const m31 = src_d[6], m32 = src_d[7], m33 = src_d[8]; + const det = 1.0 / (m11 * (m22 * m33 - m23 * m32) - m12 * (m21 * m33 - m23 * m31) + m13 * (m21 * m32 - m22 * m31)); dst_d[0] = det * (m22 * m33 - m23 * m32); dst_d[1] = det * (m13 * m32 - m12 * m33); dst_d[2] = det * (m12 * m23 - m13 * m22); diff --git a/dist/src/transform/transform.js.map b/dist/src/transform/transform.js.map index 3db3002..b498003 100644 --- a/dist/src/transform/transform.js.map +++ b/dist/src/transform/transform.js.map @@ -1 +1 @@ -{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/transform/transform.ts"],"names":[],"mappings":"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,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"transform.js","sourceRoot":"","sources":["../../../src/transform/transform.ts"],"names":[],"mappings":"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AG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;QACzC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC,CAAC;IAC7C,CAAC;CACJ"} \ No newline at end of file diff --git a/dist/src/yape/yape.js b/dist/src/yape/yape.js index f7ddd1a..384cba0 100644 --- a/dist/src/yape/yape.js +++ b/dist/src/yape/yape.js @@ -10,7 +10,7 @@ export class yape { if (typeof pyramid_levels === "undefined") { pyramid_levels = 1; } - var i; + let i; radius = Math.min(radius, 7); radius = Math.max(radius, 3); for (i = 0; i < pyramid_levels; ++i) { @@ -21,20 +21,20 @@ export class yape { if (typeof border === "undefined") { border = 4; } - var t = this.level_tables[0]; - var R = t.radius | 0, Rm1 = (R - 1) | 0; - var dirs = t.dirs; - var dirs_count = t.dirs_count | 0; - var opposite = dirs_count >> 1; - var img = src.data, w = src.cols | 0, h = src.rows | 0, hw = w >> 1; - var scores = t.scores; - var x = 0, y = 0, row = 0, rowx = 0, ip = 0, im = 0, abs_score = 0, score = 0; - var tau = this.tau | 0; - var number_of_points = 0, pt; - var sx = Math.max(R + 1, border) | 0; - var sy = Math.max(R + 1, border) | 0; - var ex = Math.min(w - R - 2, w - border) | 0; - var ey = Math.min(h - R - 2, h - border) | 0; + const t = this.level_tables[0]; + const R = t.radius | 0, Rm1 = (R - 1) | 0; + const dirs = t.dirs; + const dirs_count = t.dirs_count | 0; + const opposite = dirs_count >> 1; + const img = src.data, w = src.cols | 0, h = src.rows | 0, hw = w >> 1; + const scores = t.scores; + let x = 0, y = 0, row = 0, rowx = 0, ip = 0, im = 0, abs_score = 0, score = 0; + const tau = this.tau | 0; + let number_of_points = 0, pt; + const sx = Math.max(R + 1, border) | 0; + const sy = Math.max(R + 1, border) | 0; + const ex = Math.min(w - R - 2, w - border) | 0; + const ey = Math.min(h - R - 2, h - border) | 0; row = (sy * w + sx) | 0; for (y = sy; y < ey; ++y, row += w) { for (x = sx, rowx = row; x < ex; ++x, ++rowx) { diff --git a/dist/src/yape/yape.js.map b/dist/src/yape/yape.js.map index 4f5ed2f..8ec9596 100644 --- a/dist/src/yape/yape.js.map +++ b/dist/src/yape/yape.js.map @@ -1 +1 @@ -{"version":3,"file":"yape.js","sourceRoot":"","sources":["../../../src/yape/yape.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"yape.js","sourceRoot":"","sources":["../../../src/yape/yape.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/yape/yape_utils.js b/dist/src/yape/yape_utils.js index b2a8050..22464eb 100644 --- a/dist/src/yape/yape_utils.js +++ b/dist/src/yape/yape_utils.js @@ -1,6 +1,6 @@ export function precompute_directions(step, dirs, R) { - var i = 0; - var x, y; + let i = 0; + let x, y; x = R; for (y = 0; y < x; y++, i++) { x = (Math.sqrt(R * R - y * y) + 0.5) | 0; @@ -39,7 +39,7 @@ export function precompute_directions(step, dirs, R) { return i; } export function third_check(Sb, off, step) { - var n = 0; + let n = 0; if (Sb[off + 1] != 0) n++; if (Sb[off - 1] != 0) @@ -59,7 +59,7 @@ export function third_check(Sb, off, step) { return n; } export function is_local_maxima(p, off, v, step, neighborhood) { - var x, y; + let x, y; if (v > 0) { off -= step * neighborhood; for (y = -neighborhood; y <= neighborhood; ++y) { @@ -83,10 +83,10 @@ export function is_local_maxima(p, off, v, step, neighborhood) { return true; } export function perform_one_point(I, x, Scores, Im, Ip, dirs, opposite, dirs_nb) { - var score = 0; - var a = 0, b = (opposite - 1) | 0; - var A = 0, B0 = 0, B1 = 0, B2 = 0; - var state = 0; + let score = 0; + let a = 0, b = (opposite - 1) | 0; + let A = 0, B0 = 0, B1 = 0, B2 = 0; + let state = 0; A = I[x + dirs[a]]; if (A <= Ip) { if (A >= Im) { diff --git a/dist/src/yape/yape_utils.js.map b/dist/src/yape/yape_utils.js.map index 6040629..6b7f450 100644 --- a/dist/src/yape/yape_utils.js.map +++ b/dist/src/yape/yape_utils.js.map @@ -1 +1 @@ -{"version":3,"file":"yape_utils.js","sourceRoot":"","sources":["../../../src/yape/yape_utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,qBAAqB,CAAC,IAAY,EAAE,IAAgB,EAAE,CAAS;IAC3E,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,CAAC,GAAG,CAAC,CAAC;IACN,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACzB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACjC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACpB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACxB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACrB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IACD,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;QACvB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;KAC1B;IAED,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IACtB,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAyB,EAAE,GAAW,EAAE,IAAY;IAC5E,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAC1B,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAC7B,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IACjC,IAAI,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAEjC,OAAO,CAAC,CAAC;AACb,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,CAAa,EAAE,GAAW,EAAE,CAAS,EAAE,IAAY,EAAE,YAAoB;IACrG,IAAI,CAAC,EAAE,CAAC,CAAC;IAET,IAAI,CAAC,GAAG,CAAC,EAAE;QACP,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,EAAE;gBAC5C,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;aACpC;YACD,GAAG,IAAI,IAAI,CAAC;SACf;KACJ;SAAM;QACH,GAAG,IAAI,IAAI,GAAG,YAAY,CAAC;QAC3B,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,EAAE;YAC5C,KAAK,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,IAAI,YAAY,EAAE,EAAE,CAAC,EAAE;gBAC5C,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC;aACpC;YACD,GAAG,IAAI,IAAI,CAAC;SACf;KACJ;IACD,OAAO,IAAI,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC7B,CAA0B,EAC1B,CAAS,EACT,MAAkB,EAClB,EAAU,EACV,EAAU,EACV,IAAwB,EACxB,QAAgB,EAChB,OAAe;IAEf,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,CAAC,GAAG,CAAC,EACL,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC,EACN,EAAE,GAAG,CAAC,CAAC;IACX,IAAI,KAAK,GAAG,CAAC,CAAC;IAGd,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IACnB,IAAI,CAAC,IAAI,EAAE,EAAE;QACT,IAAI,CAAC,IAAI,EAAE,EAAE;YAET,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,IAAI,EAAE,EAAE;gBACV,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;qBAAM;oBACH,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,CAAC,EAAE,CAAC;wBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,EAAE,GAAG,EAAE;4BAAE,KAAK,GAAG,CAAC,CAAC;6BAClB,IAAI,EAAE,GAAG,EAAE;4BAAE,KAAK,GAAG,CAAC,CAAC;6BACvB;4BACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACd,OAAO;yBACV;qBACJ;yBAA0B;wBACvB,CAAC,EAAE,CAAC;wBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;wBACpB,IAAI,EAAE,GAAG,EAAE;4BAAE,KAAK,GAAG,CAAC,CAAC;6BAClB,IAAI,EAAE,GAAG,EAAE;4BAAE,KAAK,GAAG,CAAC,CAAC;6BACvB;4BACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACd,OAAO;yBACV;qBACJ;iBAEJ;aACJ;iBAAM;gBAEH,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;yBAClB,IAAI,EAAE,GAAG,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;yBACvB;wBACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;iBACJ;qBAAM,IAAI,EAAE,GAAG,EAAE,EAAE;oBAChB,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;yBAClB,IAAI,EAAE,GAAG,EAAE;wBAAE,KAAK,GAAG,CAAC,CAAC;yBACvB;wBACD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;iBACJ;qBAAM;oBACH,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;aACJ;SACJ;aAAM;YAEH,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,GAAG,EAAE,EAAE;gBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO;aACV;YACD,CAAC,EAAE,CAAC;YACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,GAAG,EAAE,EAAE;gBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO;aACV;YACD,CAAC,EAAE,CAAC;YACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACpB,IAAI,EAAE,GAAG,EAAE,EAAE;gBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;gBACd,OAAO;aACV;YACD,KAAK,GAAG,CAAC,CAAC;SACb;KACJ;SACI;QACD,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,GAAG,EAAE,EAAE;YACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;SACV;QACD,CAAC,EAAE,CAAC;QACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,GAAG,EAAE,EAAE;YACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;SACV;QACD,CAAC,EAAE,CAAC;QACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,EAAE,GAAG,EAAE,EAAE;YACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACd,OAAO;SACV;QACD,KAAK,GAAG,CAAC,CAAC;KACb;IAED,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,QAAQ,EAAE,CAAC,EAAE,EAAE;QAC5B,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnB,QAAQ,KAAK,EAAE;YACX,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBAED,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBAED,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBAED,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBAED,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBAED,IAAI,EAAE,IAAI,EAAE,EAAE;oBACV,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;gBACD,EAAE,GAAG,EAAE,CAAC;gBACR,CAAC,EAAE,CAAC;gBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEpB,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD,IAAI,EAAE,GAAG,EAAE,EAAE;oBACT,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG,CAAC,CAAC;oBACV,MAAM;iBACT;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL,KAAK,CAAC;gBACF,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD,IAAI,CAAC,GAAG,EAAE,EAAE;oBACR,EAAE,GAAG,EAAE,CAAC;oBACR,CAAC,EAAE,CAAC;oBACJ,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpB,IAAI,EAAE,GAAG,EAAE,EAAE;wBACT,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBACd,OAAO;qBACV;oBACD;wBACI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;wBAChB,KAAK,GAAG,CAAC,CAAC;wBACV,MAAM;qBACT;iBACJ;gBACD;oBACI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;oBACd,OAAO;iBACV;YAEL;gBAEI,MAAM;SACb;KACJ;IAED,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,OAAO,WAAW;IACb,IAAI,CAAa;IACjB,UAAU,CAAS;IACnB,MAAM,CAAa;IACnB,MAAM,CAAS;IACtB,YAAY,CAAS,EAAE,CAAS,EAAE,CAAS;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,UAAU,GAAG,qBAAqB,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;CACJ"} \ No newline at end of file +{"version":3,"file":"yape_utils.js","sourceRoot":"","sources":["../../../src/yape/yape_utils.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/dist/src/yape06/yape06_utils.js b/dist/src/yape06/yape06_utils.js index dec3cdf..7464483 100644 --- a/dist/src/yape06/yape06_utils.js +++ b/dist/src/yape06/yape06_utils.js @@ -1,5 +1,5 @@ export function compute_laplacian(src, dst, w, h, Dxx, Dyy, sx, sy, ex, ey) { - var y = 0, x = 0, yrow = (sy * w + sx) | 0, row = yrow; + let y = 0, x = 0, yrow = (sy * w + sx) | 0, row = yrow; for (y = sy; y < ey; ++y, yrow += w, row = yrow) { for (x = sx; x < ex; ++x, ++row) { dst[row] = -4 * src[row] + src[row + Dxx] + src[row - Dxx] + src[row + Dyy] + src[row - Dyy]; @@ -7,10 +7,10 @@ export function compute_laplacian(src, dst, w, h, Dxx, Dyy, sx, sy, ex, ey) { } } export function hessian_min_eigen_value(src, off, tr, Dxx, Dyy, Dxy, Dyx) { - var Ixx = -2 * src[off] + src[off + Dxx] + src[off - Dxx]; - var Iyy = -2 * src[off] + src[off + Dyy] + src[off - Dyy]; - var Ixy = src[off + Dxy] + src[off - Dxy] - src[off + Dyx] - src[off - Dyx]; - var sqrt_delta = Math.sqrt((Ixx - Iyy) * (Ixx - Iyy) + 4 * Ixy * Ixy) | 0; + const Ixx = -2 * src[off] + src[off + Dxx] + src[off - Dxx]; + const Iyy = -2 * src[off] + src[off + Dyy] + src[off - Dyy]; + const Ixy = src[off + Dxy] + src[off - Dxy] - src[off + Dyx] - src[off - Dyx]; + const sqrt_delta = Math.sqrt((Ixx - Iyy) * (Ixx - Iyy) + 4 * Ixy * Ixy) | 0; return Math.min(Math.abs(tr - sqrt_delta), Math.abs(-(tr + sqrt_delta))); } //# sourceMappingURL=yape06_utils.js.map \ No newline at end of file diff --git a/dist/src/yape06/yape06_utils.js.map b/dist/src/yape06/yape06_utils.js.map index 3bc0607..5e40985 100644 --- a/dist/src/yape06/yape06_utils.js.map +++ b/dist/src/yape06/yape06_utils.js.map @@ -1 +1 @@ -{"version":3,"file":"yape06_utils.js","sourceRoot":"","sources":["../../../src/yape06/yape06_utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAC7B,GAA8B,EAC9B,GAA8B,EAC9B,CAAS,EACT,CAAM,EACN,GAAW,EACX,GAAW,EACX,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EACxB,GAAG,GAAG,IAAI,CAAC;IAEf,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE;QAC7C,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE;YAC7B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;SAChG;KACJ;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,GAAa,EACb,GAAW,EACX,EAAU,EACV,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW;IAEX,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC1D,IAAI,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC5E,IAAI,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAE1E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC"} \ No newline at end of file +{"version":3,"file":"yape06_utils.js","sourceRoot":"","sources":["../../../src/yape06/yape06_utils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,iBAAiB,CAC7B,GAA8B,EAC9B,GAA8B,EAC9B,CAAS,EACT,CAAM,EACN,GAAW,EACX,GAAW,EACX,EAAU,EACV,EAAU,EACV,EAAU,EACV,EAAU;IAEV,IAAI,CAAC,GAAG,CAAC,EACL,CAAC,GAAG,CAAC,EACL,IAAI,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EACxB,GAAG,GAAG,IAAI,CAAC;IAEf,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,EAAE,CAAC;QAC9C,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC;YAC9B,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;QACjG,CAAC;IACL,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CACnC,GAAa,EACb,GAAW,EACX,EAAU,EACV,GAAW,EACX,GAAW,EACX,GAAW,EACX,GAAW;IAEX,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC;IAC9E,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAE5E,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;AAC7E,CAAC"} \ No newline at end of file diff --git a/src/cache/cache.ts b/src/cache/cache.ts index dacb4ff..7b895ff 100644 --- a/src/cache/cache.ts +++ b/src/cache/cache.ts @@ -17,8 +17,8 @@ export class cache implements ICache { } allocate(capacity: any, data_size: number): void { this._pool_head = this._pool_tail = new _pool_node_t(data_size); - for (var i = 0; i < capacity; ++i) { - var node = new _pool_node_t(data_size); + for (let i = 0; i < capacity; ++i) { + const node = new _pool_node_t(data_size); this._pool_tail = this._pool_tail.next = node; this._pool_size++; @@ -26,7 +26,7 @@ export class cache implements ICache { } get_buffer(size_in_bytes: number): _pool_node_t { // assume we have enough free nodes - var node = this._pool_head; + const node = this._pool_head; this._pool_head = this._pool_head.next; this._pool_size--; diff --git a/src/data_type/data_type.ts b/src/data_type/data_type.ts index f0a941d..ec5335f 100644 --- a/src/data_type/data_type.ts +++ b/src/data_type/data_type.ts @@ -5,7 +5,7 @@ export interface IData_Type { } export class data_type implements IData_Type { - private _data_type_size: Int32Array; + private readonly _data_type_size: Int32Array; constructor() { this._data_type_size = new Int32Array([-1, 1, 4, -1, 4, -1, -1, -1, 8, -1, -1, -1, -1, -1, -1, -1, 8]); } diff --git a/src/fast_corners/fast_private.ts b/src/fast_corners/fast_private.ts index e638a48..e1837c4 100644 --- a/src/fast_corners/fast_private.ts +++ b/src/fast_corners/fast_private.ts @@ -6,10 +6,10 @@ export function _cmp_score_16( d: Uint8Array | Int32Array, threshold: number ): number { - var N = 25, + let N = 25, k = 0, v = src[off]; - var a0 = threshold, + let a0 = threshold, a = 0, b0 = 0, b = 0; diff --git a/src/imgproc/convol.ts b/src/imgproc/convol.ts index ed267cf..8cb0e69 100644 --- a/src/imgproc/convol.ts +++ b/src/imgproc/convol.ts @@ -8,7 +8,7 @@ export function _convol_u8( kernel_size: number, half_kernel: number ) { - var i = 0, + let i = 0, j = 0, k = 0, sp = 0, @@ -19,7 +19,7 @@ export function _convol_u8( sum3 = 0, f0 = filter[0], fk = 0; - var w2 = w << 1, + const w2 = w << 1, w3 = w * 3, w4 = w << 2; // hor pass @@ -117,7 +117,7 @@ export function _convol( kernel_size: number, half_kernel: number ) { - var i = 0, + let i = 0, j = 0, k = 0, sp = 0, @@ -128,7 +128,7 @@ export function _convol( sum3 = 0.0, f0 = filter[0], fk = 0.0; - var w2 = w << 1, + const w2 = w << 1, w3 = w * 3, w4 = w << 2; // hor pass diff --git a/src/imgproc/resample.ts b/src/imgproc/resample.ts index 5771321..8ca182f 100644 --- a/src/imgproc/resample.ts +++ b/src/imgproc/resample.ts @@ -2,16 +2,16 @@ import { matrix_t } from "../matrix_t/matrix_t"; import { cache } from "../cache/cache"; export function _resample_u8(src: matrix_t, dst: matrix_t, cache: cache, nw: number, nh: number) { - var xofs_count = 0; - var ch = src.channel, + let xofs_count = 0; + const ch = src.channel, w = src.cols, h = src.rows; - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; - var scale_x = w / nw, + const scale_x = w / nw, scale_y = h / nh; - var inv_scale_256 = (scale_x * scale_y * 0x10000) | 0; - var dx = 0, + const inv_scale_256 = (scale_x * scale_y * 0x10000) | 0; + let dx = 0, dy = 0, sx = 0, sy = 0, @@ -21,20 +21,20 @@ export function _resample_u8(src: matrix_t, dst: matrix_t, cache: cache, nw: num k = 0, fsx1 = 0.0, fsx2 = 0.0; - var a = 0, + let a = 0, b = 0, dxn = 0, alpha = 0, beta = 0, beta1 = 0; - var buf_node = cache.get_buffer((nw * ch) << 2); - var sum_node = cache.get_buffer((nw * ch) << 2); - var xofs_node = cache.get_buffer((w * 2 * 3) << 2); + const buf_node = cache.get_buffer((nw * ch) << 2); + const sum_node = cache.get_buffer((nw * ch) << 2); + const xofs_node = cache.get_buffer((w * 2 * 3) << 2); - var buf = buf_node.i32; - var sum = sum_node.i32; - var xofs = xofs_node.i32; + const buf = buf_node.i32; + const sum = sum_node.i32; + const xofs = xofs_node.i32; for (; dx < nw; dx++) { (fsx1 = dx * scale_x), (fsx2 = fsx1 + scale_x); @@ -107,16 +107,16 @@ export function _resample_u8(src: matrix_t, dst: matrix_t, cache: cache, nw: num } export function _resample(src: matrix_t, dst: matrix_t, cache: cache, nw: number, nh: number) { - var xofs_count = 0; - var ch = src.channel, + let xofs_count = 0; + const ch = src.channel, w = src.cols, h = src.rows; - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; - var scale_x = w / nw, + const scale_x = w / nw, scale_y = h / nh; - var scale = 1.0 / (scale_x * scale_y); - var dx = 0, + const scale = 1.0 / (scale_x * scale_y); + let dx = 0, dy = 0, sx = 0, sy = 0, @@ -126,20 +126,20 @@ export function _resample(src: matrix_t, dst: matrix_t, cache: cache, nw: number k = 0, fsx1 = 0.0, fsx2 = 0.0; - var a = 0, + let a = 0, b = 0, dxn = 0, alpha = 0.0, beta = 0.0, beta1 = 0.0; - var buf_node = cache.get_buffer((nw * ch) << 2); - var sum_node = cache.get_buffer((nw * ch) << 2); - var xofs_node = cache.get_buffer((w * 2 * 3) << 2); + const buf_node = cache.get_buffer((nw * ch) << 2); + const sum_node = cache.get_buffer((nw * ch) << 2); + const xofs_node = cache.get_buffer((w * 2 * 3) << 2); - var buf = buf_node.f32; - var sum = sum_node.f32; - var xofs = xofs_node.f32; + const buf = buf_node.f32; + const sum = sum_node.f32; + const xofs = xofs_node.f32; for (; dx < nw; dx++) { (fsx1 = dx * scale_x), (fsx2 = fsx1 + scale_x); diff --git a/src/jsfeatNext.ts b/src/jsfeatNext.ts index ac27639..c20384b 100644 --- a/src/jsfeatNext.ts +++ b/src/jsfeatNext.ts @@ -125,16 +125,16 @@ class motion_model extends jsfeatNext { // does isotropic normalization iso_normalize_points(from: point_t[], to: point_t[], T0: number[], T1: number[], count: number): void { - var i = 0; - var cx0 = 0.0, + let i = 0; + let cx0 = 0.0, cy0 = 0.0, d0 = 0.0, s0 = 0.0; - var cx1 = 0.0, + let cx1 = 0.0, cy1 = 0.0, d1 = 0.0, s1 = 0.0; - var dx = 0.0, + let dx = 0.0, dy = 0.0; for (; i < count; ++i) { @@ -178,10 +178,10 @@ class motion_model extends jsfeatNext { } have_collinear_points(points: point_t[], count: number): boolean { - var j = 0, + let j = 0, k = 0, i = (count - 1) | 0; - var dx1 = 0.0, + let dx1 = 0.0, dy1 = 0.0, dx2 = 0.0, dy2 = 0.0; @@ -211,27 +211,27 @@ class affine2d extends motion_model { } run(from: point_t[], to: point_t[], model: matrix_t, count: number): number { - var i = 0, + let i = 0, j = 0; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; - var md = model.data, + const dt = model.type | JSFEAT_CONSTANTS.C1_t; + const md = model.data, t0d = this.T0.data, t1d = this.T1.data; - var pt0, + let pt0, pt1, px = 0.0, py = 0.0; - var _matmath = new matmath(); - var _linalg = new jsfeatNext.linalg(); + const _matmath = new matmath(); + const _linalg = new jsfeatNext.linalg(); this.iso_normalize_points(from, to, t0d, t1d, count); - var a_buff = this.cache.get_buffer((2 * count * 6) << 3); - var b_buff = this.cache.get_buffer((2 * count) << 3); + const a_buff = this.cache.get_buffer((2 * count * 6) << 3); + const b_buff = this.cache.get_buffer((2 * count) << 3); - var a_mt = new matrix_t(6, 2 * count, dt, a_buff.data); - var b_mt = new matrix_t(1, 2 * count, dt, b_buff.data); - var ad = a_mt.data, + const a_mt = new matrix_t(6, 2 * count, dt, a_buff.data); + const b_mt = new matrix_t(1, 2 * count, dt, b_buff.data); + const ad = a_mt.data, bd = b_mt.data; for (; i < count; ++i) { @@ -284,22 +284,22 @@ class homography2d extends motion_model { } run(from: point_t[], to: point_t[], model: matrix_t, count: number): number { - var i = 0, + let i = 0, j = 0; - var md = model.data, + const md = model.data, t0d = this.T0.data, t1d = this.T1.data; - var LtL = this.mLtL.data, + const LtL = this.mLtL.data, evd = this.Evec.data; - var x = 0.0, + let x = 0.0, y = 0.0, X = 0.0, Y = 0.0; - var _linalg = new jsfeatNext.linalg(); - var _matmath = new matmath(); + const _linalg = new jsfeatNext.linalg(); + const _matmath = new matmath(); // norm - var smx = 0.0, + let smx = 0.0, smy = 0.0, cmx = 0.0, cmy = 0.0, @@ -445,13 +445,13 @@ class homography2d extends motion_model { } error(from: point_t[], to: point_t[], model: matrix_t, err: Int32Array | Float32Array, count: number): void { - var i = 0; - var pt0, + let i = 0; + let pt0, pt1, ww = 0.0, dx = 0.0, dy = 0.0; - var m = model.data; + const m = model.data; for (; i < count; ++i) { pt0 = from[i]; @@ -469,42 +469,42 @@ class homography2d extends motion_model { //if( have_collinear_points(from, count) || have_collinear_points(to, count) ) { //return false; //} - var _matmath = new matmath(); + const _matmath = new matmath(); if (count == 4) { - var negative = 0; + let negative = 0; - var fp0 = from[0], + const fp0 = from[0], fp1 = from[1], fp2 = from[2], fp3 = from[3]; - var tp0 = to[0], + const tp0 = to[0], tp1 = to[1], tp2 = to[2], tp3 = to[3]; // set1 - var A11 = fp0.x, + let A11 = fp0.x, A12 = fp0.y, A13 = 1.0; - var A21 = fp1.x, + let A21 = fp1.x, A22 = fp1.y, A23 = 1.0; - var A31 = fp2.x, + let A31 = fp2.x, A32 = fp2.y, A33 = 1.0; - var B11 = tp0.x, + let B11 = tp0.x, B12 = tp0.y, B13 = 1.0; - var B21 = tp1.x, + let B21 = tp1.x, B22 = tp1.y, B23 = 1.0; - var B31 = tp2.x, + let B31 = tp2.x, B32 = tp2.y, B33 = 1.0; - var detA = _matmath.determinant_3x3(A11, A12, A13, A21, A22, A23, A31, A32, A33); - var detB = _matmath.determinant_3x3(B11, B12, B13, B21, B22, B23, B31, B32, B33); + let detA = _matmath.determinant_3x3(A11, A12, A13, A21, A22, A23, A31, A32, A33); + let detB = _matmath.determinant_3x3(B11, B12, B13, B21, B22, B23, B31, B32, B33); if (detA * detB < 0) negative++; @@ -569,12 +569,12 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { super(); this.levels = levels | 0; this.data = new Array(levels); - var _imgproc = new jsfeatNext.imgproc(); + const _imgproc = new jsfeatNext.imgproc(); this.pyrdown = _imgproc.pyrdown; } allocate(start_w: number, start_h: number, data_type: number): void { - var i = this.levels; + let i = this.levels; while (--i >= 0) { this.data[i] = new matrix_t(start_w >> i, start_h >> i, data_type); } @@ -585,11 +585,11 @@ jsfeatNext.pyramid_t = class pyramid_t extends jsfeatNext { skip_first_level = true; } // just copy data to first level - var i = 2, + let i = 2, a = input, b: any = this.data[0]; if (!skip_first_level) { - var j = input.cols * input.rows; + let j = input.cols * input.rows; while (--j >= 0) { b.data[j] = input.data[j]; } @@ -631,7 +631,7 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { set_threshold(threshold: number): number { this._threshold = Math.min(Math.max(threshold, 0), 255); - for (var i = -255; i <= 255; ++i) { + for (let i = -255; i <= 255; ++i) { this.threshold_tab[i + 255] = i < -this._threshold ? 1 : i > this._threshold ? 2 : 0; } return this._threshold; @@ -642,35 +642,35 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { border = 3; } - var K = 8, + const K = 8, N = 25; - var img = src.data, + const img = src.data, w = src.cols, h = src.rows; - var i = 0, + let i = 0, j = 0, k = 0, vt = 0, x = 0, m3 = 0; - var buf_node = this.cache.get_buffer(3 * w); - var cpbuf_node = this.cache.get_buffer(((w + 1) * 3) << 2); - var buf = buf_node.u8; - var cpbuf = cpbuf_node.i32; - var pixel = this.pixel_off; - var sd = this.score_diff; - var sy = Math.max(3, border); - var ey = Math.min(h - 2, h - border); - var sx = Math.max(3, border); - var ex = Math.min(w - 3, w - border); - var _count = 0, + const buf_node = this.cache.get_buffer(3 * w); + const cpbuf_node = this.cache.get_buffer(((w + 1) * 3) << 2); + const buf = buf_node.u8; + const cpbuf = cpbuf_node.i32; + const pixel = this.pixel_off; + const sd = this.score_diff; + const sy = Math.max(3, border); + const ey = Math.min(h - 2, h - border); + const sx = Math.max(3, border); + const ex = Math.min(w - 3, w - border); + let _count = 0, corners_cnt = 0, pt; - var score_func = _cmp_score_16; - var thresh_tab = this.threshold_tab; - var threshold = this._threshold; + const score_func = _cmp_score_16; + const thresh_tab = this.threshold_tab; + const threshold = this._threshold; - var v = 0, + let v = 0, tab = 0, d = 0, ncorners = 0, @@ -679,29 +679,29 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { ptr = 0, prev = 0, pprev = 0; - var jp1 = 0, + let jp1 = 0, jm1 = 0, score = 0; this._cmp_offsets(pixel, w, 16); // local vars are faster? - var pixel0 = pixel[0]; - var pixel1 = pixel[1]; - var pixel2 = pixel[2]; - var pixel3 = pixel[3]; - var pixel4 = pixel[4]; - var pixel5 = pixel[5]; - var pixel6 = pixel[6]; - var pixel7 = pixel[7]; - var pixel8 = pixel[8]; - var pixel9 = pixel[9]; - var pixel10 = pixel[10]; - var pixel11 = pixel[11]; - var pixel12 = pixel[12]; - var pixel13 = pixel[13]; - var pixel14 = pixel[14]; - var pixel15 = pixel[15]; + const pixel0 = pixel[0]; + const pixel1 = pixel[1]; + const pixel2 = pixel[2]; + const pixel3 = pixel[3]; + const pixel4 = pixel[4]; + const pixel5 = pixel[5]; + const pixel6 = pixel[6]; + const pixel7 = pixel[7]; + const pixel8 = pixel[8]; + const pixel9 = pixel[9]; + const pixel10 = pixel[10]; + const pixel11 = pixel[11]; + const pixel12 = pixel[12]; + const pixel13 = pixel[13]; + const pixel14 = pixel[14]; + const pixel15 = pixel[15]; for (i = 0; i < w * 3; ++i) { buf[i] = 0; @@ -824,8 +824,8 @@ jsfeatNext.fast_corners = class fast_corners extends jsfeatNext { } private _cmp_offsets(pixel: Uint8Array | Int32Array, step: number, pattern_size: number): void { - var k = 0; - var offsets = this.offsets16; + let k = 0; + const offsets = this.offsets16; for (; k < pattern_size; ++k) { pixel[k] = offsets[k << 1] + offsets[(k << 1) + 1] * step; } @@ -845,13 +845,13 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof code === "undefined") { code = JSFEAT_CONSTANTS.COLOR_RGBA2GRAY; } - var x = 0, + let x = 0, y = 0, i = 0, j = 0, ir = 0, jr = 0; - var coeff_r = 4899, + let coeff_r = 4899, coeff_g = 9617, coeff_b = 1868, cn = 4; @@ -863,11 +863,11 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (code == JSFEAT_CONSTANTS.COLOR_RGB2GRAY || code == JSFEAT_CONSTANTS.COLOR_BGR2GRAY) { cn = 3; } - var cn2 = cn << 1, + const cn2 = cn << 1, cn3 = (cn * 3) | 0; dst.resize(w, h, 1); - var dst_u8 = dst.data; + const dst_u8 = dst.data; for (y = 0; y < h; ++y, j += w, i += w * cn) { for (x = 0, ir = i, jr = j; x <= w - 4; x += 4, ir += cn << 2, jr += 4) { @@ -887,7 +887,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // derived from CCV library resample(src: matrix_t, dst: matrix_t, nw: number, nh: number): void { - var h = src.rows, + const h = src.rows, w = src.cols; if (h > nh && w > nw) { dst.resize(nw, nh, src.channel); @@ -904,29 +904,29 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof options === "undefined") { options = 0; } - var w = src.cols, + const w = src.cols, h = src.rows, h2 = h << 1, w2 = w << 1; - var i = 0, + let i = 0, x = 0, y = 0, end = 0; - var windowSize = ((radius << 1) + 1) | 0; - var radiusPlusOne = (radius + 1) | 0, + const windowSize = ((radius << 1) + 1) | 0; + const radiusPlusOne = (radius + 1) | 0, radiusPlus2 = (radiusPlusOne + 1) | 0; - var scale = options & JSFEAT_CONSTANTS.BOX_BLUR_NOSCALE ? 1 : 1.0 / (windowSize * windowSize); + const scale = options & JSFEAT_CONSTANTS.BOX_BLUR_NOSCALE ? 1 : 1.0 / (windowSize * windowSize); - var tmp_buff = this.cache.get_buffer((w * h) << 2); + const tmp_buff = this.cache.get_buffer((w * h) << 2); - var sum = 0, + let sum = 0, dstIndex = 0, srcIndex = 0, nextPixelIndex = 0, previousPixelIndex = 0; - var data_i32 = tmp_buff.i32; // to prevent overflow - var data_u8 = src.data; - var hold = 0; + const data_i32 = tmp_buff.i32; // to prevent overflow + let data_u8 = src.data; + let hold = 0; dst.resize(w, h, src.channel); @@ -1081,7 +1081,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } gaussian_blur(src: matrix_t, dst: matrix_t, kernel_size: number, sigma: number): void { - var jsfeatmath = new jsfeatNext.math(); + const jsfeatmath = new jsfeatNext.math(); if (typeof sigma === "undefined") { sigma = 0.0; } @@ -1089,22 +1089,22 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { kernel_size = 0; } kernel_size = kernel_size == 0 ? (Math.max(1, 4.0 * sigma + 1.0 - 1e-8) * 2 + 1) | 0 : kernel_size; - var half_kernel = kernel_size >> 1; - var w = src.cols, + const half_kernel = kernel_size >> 1; + const w = src.cols, h = src.rows; - var data_type = src.type, + const data_type = src.type, is_u8 = data_type & JSFEAT_CONSTANTS.U8_t; dst.resize(w, h, src.channel); - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; - var buf, + let buf, filter, buf_sz = (kernel_size + Math.max(h, w)) | 0; - var buf_node = this.cache.get_buffer(buf_sz << 2); - var filt_node = this.cache.get_buffer(kernel_size << 2); + const buf_node = this.cache.get_buffer(buf_sz << 2); + const filt_node = this.cache.get_buffer(kernel_size << 2); if (is_u8) { buf = buf_node.i32; @@ -1129,26 +1129,28 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { this.cache.put_buffer(filt_node); } - hough_transform(img: matrix_t, rho_res: number, theta_res: number, threshold: number): Array { - var image = img.data; + hough_transform(img: matrix_t, rho_res: number, theta_res: number, threshold: number): number[] { + let r; + let i; + const image = img.data; - var width = img.cols; - var height = img.rows; - var step = width; + const width = img.cols; + const height = img.rows; + const step = width; - var min_theta = 0.0; - var max_theta = Math.PI; + const min_theta = 0.0; + const max_theta = Math.PI; - var numangle = Math.round((max_theta - min_theta) / theta_res); - var numrho = Math.round(((width + height) * 2 + 1) / rho_res); - var irho = 1.0 / rho_res; + const numangle = Math.round((max_theta - min_theta) / theta_res); + const numrho = Math.round(((width + height) * 2 + 1) / rho_res); + const irho = 1.0 / rho_res; - var accum = new Int32Array((numangle + 2) * (numrho + 2)); //typed arrays are initialized to 0 - var tabSin = new Float32Array(numangle); - var tabCos = new Float32Array(numangle); + const accum = new Int32Array((numangle + 2) * (numrho + 2)); //typed arrays are initialized to 0 + const tabSin = new Float32Array(numangle); + const tabCos = new Float32Array(numangle); - var n = 0; - var ang = min_theta; + let n = 0; + let ang = min_theta; for (; n < numangle; n++) { tabSin[n] = Math.sin(ang) * irho; tabCos[n] = Math.cos(ang) * irho; @@ -1156,12 +1158,12 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } // stage 1. fill accumulator - for (var i = 0; i < height; i++) { - for (var j = 0; j < width; j++) { + for (i = 0; i < height; i++) { + for (let j = 0; j < width; j++) { if (image[i * step + j] != 0) { //console.log(r, (n+1) * (numrho+2) + r+1, tabCos[n], tabSin[n]); - for (var n = 0; n < numangle; n++) { - var r = Math.round(j * tabCos[n] + i * tabSin[n]); + for (n = 0; n < numangle; n++) { + r = Math.round(j * tabCos[n] + i * tabSin[n]); r += (numrho - 1) / 2; accum[(n + 1) * (numrho + 2) + r + 1] += 1; } @@ -1171,10 +1173,10 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // stage 2. find local maximums //TODO: Consider making a vector class that uses typed arrays - var _sort_buf = new Array(); - for (var r = 0; r < numrho; r++) { - for (var n = 0; n < numangle; n++) { - var base = (n + 1) * (numrho + 2) + r + 1; + const _sort_buf = []; + for (r = 0; r < numrho; r++) { + for (n = 0; n < numangle; n++) { + const base = (n + 1) * (numrho + 2) + r + 1; if ( accum[base] > threshold && accum[base] > accum[base - 1] && @@ -1193,15 +1195,15 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { }); // stage 4. store the first min(total,linesMax) lines to the output buffer - var linesMax = Math.min(numangle * numrho, _sort_buf.length); - var scale = 1.0 / (numrho + 2); - var lines = new Array(); - for (var i = 0; i < linesMax; i++) { - var idx = _sort_buf[i]; - var n = Math.floor(idx * scale) - 1; - var r = idx - (n + 1) * (numrho + 2) - 1; - var lrho = (r - (numrho - 1) * 0.5) * rho_res; - var langle = n * theta_res; + const linesMax = Math.min(numangle * numrho, _sort_buf.length); + const scale = 1.0 / (numrho + 2); + const lines = new Array(); + for (i = 0; i < linesMax; i++) { + const idx = _sort_buf[i]; + n = Math.floor(idx * scale) - 1; + r = idx - (n + 1) * (numrho + 2) - 1; + const lrho = (r - (numrho - 1) * 0.5) * rho_res; + const langle = n * theta_res; lines.push([lrho, langle]); } return lines; @@ -1216,13 +1218,13 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { sy = 0; } - var w = src.cols, + const w = src.cols, h = src.rows; - var w2 = w >> 1, + const w2 = w >> 1, h2 = h >> 1; - var _w2 = w2 - (sx << 1), + const _w2 = w2 - (sx << 1), _h2 = h2 - (sy << 1); - var x = 0, + let x = 0, y = 0, sptr = sx + sy * w, sline = 0, @@ -1231,7 +1233,7 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { dst.resize(w2, h2, src.channel); - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; for (y = 0; y < _h2; ++y) { @@ -1252,9 +1254,9 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // dst: [gx,gy,...] scharr_derivatives(src: matrix_t, dst: matrix_t): void { - var w = src.cols, + const w = src.cols, h = src.rows; - var dstep = w << 1, + let dstep = w << 1, x = 0, y = 0, x1 = 0, @@ -1264,19 +1266,19 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { d, e, f; - var srow0 = 0, + let srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; - var trow0, trow1; + let trow0, trow1; dst.resize(w, h, 2); // 2 channel output gx, gy - var img = src.data, + const img = src.data, gxgy = dst.data; - var buf0_node = this.cache.get_buffer((w + 2) << 2); - var buf1_node = this.cache.get_buffer((w + 2) << 2); + const buf0_node = this.cache.get_buffer((w + 2) << 2); + const buf1_node = this.cache.get_buffer((w + 2) << 2); if (src.type & JSFEAT_CONSTANTS.U8_t || src.type & JSFEAT_CONSTANTS.S32_t) { trow0 = buf0_node.i32; @@ -1341,9 +1343,9 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // compute gradient using Sobel kernel [1 2 1] * [-1 0 1]^T // dst: [gx,gy,...] sobel_derivatives(src: matrix_t, dst: matrix_t): void { - var w = src.cols, + const w = src.cols, h = src.rows; - var dstep = w << 1, + let dstep = w << 1, x = 0, y = 0, x1 = 0, @@ -1353,19 +1355,19 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { d, e, f; - var srow0 = 0, + let srow0 = 0, srow1 = 0, srow2 = 0, drow = 0; - var trow0, trow1; + let trow0, trow1; dst.resize(w, h, 2); // 2 channel output gx, gy - var img = src.data, + const img = src.data, gxgy = dst.data; - var buf0_node = this.cache.get_buffer((w + 2) << 2); - var buf1_node = this.cache.get_buffer((w + 2) << 2); + const buf0_node = this.cache.get_buffer((w + 2) << 2); + const buf1_node = this.cache.get_buffer((w + 2) << 2); if (src.type & JSFEAT_CONSTANTS.U8_t || src.type & JSFEAT_CONSTANTS.S32_t) { trow0 = buf0_node.i32; @@ -1430,11 +1432,11 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // please note: // dst_(type) size should be cols = src.cols+1, rows = src.rows+1 compute_integral_image(src: matrix_t, dst_sum: number[], dst_sqsum: number[], dst_tilted: any[]): void { - var w0 = src.cols | 0, + const w0 = src.cols | 0, h0 = src.rows | 0, src_d = src.data; - var w1 = (w0 + 1) | 0; - var s = 0, + const w1 = (w0 + 1) | 0; + let s = 0, s2 = 0, p = 0, pup = 0, @@ -1544,20 +1546,20 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } equalize_histogram(src: matrix_t, dst: matrix_t): void { - var w = src.cols, + const w = src.cols, h = src.rows, src_d = src.data; dst.resize(w, h, src.channel); - var dst_d = dst.data, + const dst_d = dst.data, size = w * h; - var i = 0, + let i = 0, prev = 0, hist0, norm; - var hist0_node = this.cache.get_buffer(256 << 2); + const hist0_node = this.cache.get_buffer(256 << 2); hist0 = hist0_node.i32; for (; i < 256; ++i) hist0[i] = 0; for (i = 0; i < size; ++i) { @@ -1577,14 +1579,14 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { } canny(src: matrix_t, dst: matrix_t, low_thresh: number, high_thresh: number): void { - var w = src.cols, + const w = src.cols, h = src.rows, src_d = src.data; dst.resize(w, h, src.channel); - var dst_d = dst.data; - var i = 0, + const dst_d = dst.data; + let i = 0, j: number = 0, grad = 0, w2 = w << 1, @@ -1594,21 +1596,21 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { x = 0, y = 0, s = 0; - var tg22x = 0, + let tg22x = 0, tg67x = 0; // cache buffers - var dxdy_node = this.cache.get_buffer((h * w2) << 2); - var buf_node = this.cache.get_buffer((3 * (w + 2)) << 2); - var map_node = this.cache.get_buffer(((h + 2) * (w + 2)) << 2); - var stack_node = this.cache.get_buffer((h * w) << 2); - - var buf = buf_node.i32; - var map = map_node.i32; - var stack = stack_node.i32; - var dxdy = dxdy_node.i32; - var dxdy_m = new matrix_t(w, h, JSFEAT_CONSTANTS.S32C2_t, dxdy_node.data); - var row0 = 1, + const dxdy_node = this.cache.get_buffer((h * w2) << 2); + const buf_node = this.cache.get_buffer((3 * (w + 2)) << 2); + const map_node = this.cache.get_buffer(((h + 2) * (w + 2)) << 2); + const stack_node = this.cache.get_buffer((h * w) << 2); + + const buf = buf_node.i32; + const map = map_node.i32; + const stack = stack_node.i32; + const dxdy = dxdy_node.i32; + const dxdy_m = new matrix_t(w, h, JSFEAT_CONSTANTS.S32C2_t, dxdy_node.data); + let row0 = 1, row1 = (w + 2 + 1) | 0, row2 = (2 * (w + 2) + 1) | 0, map_w = (w + 2) | 0, @@ -1762,13 +1764,13 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof fill_value === "undefined") { fill_value = 0; } - var src_width = src.cols | 0, + const src_width = src.cols | 0, src_height = src.rows | 0, dst_width = dst.cols | 0, dst_height = dst.rows | 0; - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; - var x = 0, + let x = 0, y = 0, off = 0, ixs = 0, @@ -1783,8 +1785,8 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { b = 0.0, p0 = 0.0, p1 = 0.0; - var td = transform.data; - var m00 = td[0], + const td = transform.data; + const m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], @@ -1820,13 +1822,13 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { if (typeof fill_value === "undefined") { fill_value = 0; } - var src_width = src.cols, + const src_width = src.cols, src_height = src.rows, dst_width = dst.cols, dst_height = dst.rows; - var src_d = src.data, + const src_d = src.data, dst_d = dst.data; - var x = 0, + let x = 0, y = 0, off = 0, ixs = 0, @@ -1837,8 +1839,8 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { b = 0.0, p0 = 0.0, p1 = 0.0; - var td = transform.data; - var m00 = td[0], + const td = transform.data; + const m00 = td[0], m01 = td[1], m02 = td[2], m10 = td[3], @@ -1869,8 +1871,8 @@ jsfeatNext.imgproc = class imgproc extends jsfeatNext { // Basic RGB Skin detection filter // from http://popscan.blogspot.fr/2012/08/skin-detection-in-digital-images.html skindetector(src: { width: number; height: number; data: any[] }, dst: number[]): void { - var r, g, b, j; - var i = src.width * src.height; + let r, g, b, j; + let i = src.width * src.height; while (i--) { j = i * 4; r = src.data[j]; @@ -1894,14 +1896,14 @@ jsfeatNext.math = class math extends jsfeatNext { } get_gaussian_kernel(size: number, sigma: number, kernel: Float32Array | Int32Array, data_type: number): void { - var i = 0, + let i = 0, x = 0.0, t = 0.0, sigma_x = 0.0, scale_2x = 0.0; - var sum = 0.0; - var kern_node = this.cache.get_buffer(size << 2); - var _kernel = kern_node.f32; //new Float32Array(size); + let sum = 0.0; + const kern_node = this.cache.get_buffer(size << 2); + const _kernel = kern_node.f32; //new Float32Array(size); if ((size & 1) == 1 && size <= 7 && sigma <= 0) { switch (size >> 1) { @@ -1985,45 +1987,45 @@ jsfeatNext.math = class math extends jsfeatNext { console.warn( "โš ๏ธโš ๏ธโš ๏ธ This method is deprecated ad will be removed in the next releases, use transform.perspective_4point_transform() instead. โš ๏ธโš ๏ธโš ๏ธ" ); - var t1 = src_x0; - var t2 = src_x2; - var t4 = src_y1; - var t5 = t1 * t2 * t4; - var t6 = src_y3; - var t7 = t1 * t6; - var t8 = t2 * t7; - var t9 = src_y2; - var t10 = t1 * t9; - var t11 = src_x1; - var t14 = src_y0; - var t15 = src_x3; - var t16 = t14 * t15; - var t18 = t16 * t11; - var t20 = t15 * t11 * t9; - var t21 = t15 * t4; - var t24 = t15 * t9; - var t25 = t2 * t4; - var t26 = t6 * t2; - var t27 = t6 * t11; - var t28 = t9 * t11; - var t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); - var t32 = t1 * t15; - var t35 = t14 * t11; - var t41 = t4 * t1; - var t42 = t6 * t41; - var t43 = t14 * t2; - var t46 = t16 * t9; - var t48 = t14 * t9 * t11; - var t51 = t4 * t6 * t2; - var t55 = t6 * t14; - var Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hr2 = t1; - var Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hr5 = t14; - var Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let t1 = src_x0; + let t2 = src_x2; + let t4 = src_y1; + let t5 = t1 * t2 * t4; + let t6 = src_y3; + let t7 = t1 * t6; + let t8 = t2 * t7; + let t9 = src_y2; + let t10 = t1 * t9; + let t11 = src_x1; + let t14 = src_y0; + let t15 = src_x3; + let t16 = t14 * t15; + let t18 = t16 * t11; + let t20 = t15 * t11 * t9; + let t21 = t15 * t4; + let t24 = t15 * t9; + let t25 = t2 * t4; + let t26 = t6 * t2; + let t27 = t6 * t11; + let t28 = t9 * t11; + let t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); + let t32 = t1 * t15; + let t35 = t14 * t11; + let t41 = t4 * t1; + let t42 = t6 * t41; + let t43 = t14 * t2; + let t46 = t16 * t9; + let t48 = t14 * t9 * t11; + let t51 = t4 * t6 * t2; + let t55 = t6 * t14; + let Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + let Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + let Hr2 = t1; + let Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + let Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + let Hr5 = t14; + let Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + let Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t1 = dst_x0; t2 = dst_x2; @@ -2056,14 +2058,14 @@ jsfeatNext.math = class math extends jsfeatNext { t48 = t14 * t9 * t11; t51 = t4 * t6 * t2; t55 = t6 * t14; - var Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hl2 = t1; - var Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hl5 = t14; - var Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + let Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + let Hl2 = t1; + let Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + let Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + let Hl5 = t14; + let Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + let Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; // the following code computes R = Hl * inverse Hr t2 = Hr4 - Hr7 * Hr5; @@ -2072,20 +2074,20 @@ jsfeatNext.math = class math extends jsfeatNext { t7 = Hr3 * Hr1; t8 = Hr2 * Hr3; t10 = Hr1 * Hr6; - var t12 = Hr2 * Hr6; + let t12 = Hr2 * Hr6; t15 = 1.0 / (t4 - t5 * Hr7 - t7 + t8 * Hr7 + t10 * Hr5 - t12 * Hr4); t18 = -Hr3 + Hr5 * Hr6; - var t23 = -Hr3 * Hr7 + Hr4 * Hr6; + let t23 = -Hr3 * Hr7 + Hr4 * Hr6; t28 = -Hr1 + Hr2 * Hr7; - var t31 = Hr0 - t12; + let t31 = Hr0 - t12; t35 = Hr0 * Hr7 - t10; t41 = -Hr1 * Hr5 + Hr2 * Hr4; - var t44 = t5 - t8; - var t47 = t4 - t7; + let t44 = t5 - t8; + let t47 = t4 - t7; t48 = t2 * t15; - var t49 = t28 * t15; - var t50 = t41 * t15; - var mat = model.data; + let t49 = t28 * t15; + let t50 = t41 * t15; + const mat = model.data; mat[0] = Hl0 * t48 + Hl1 * (t18 * t15) - Hl2 * (t23 * t15); mat[1] = Hl0 * t49 + Hl1 * (t31 * t15) - Hl2 * (t35 * t15); mat[2] = -Hl0 * t50 - Hl1 * (t44 * t15) + Hl2 * (t47 * t15); @@ -2101,9 +2103,9 @@ jsfeatNext.math = class math extends jsfeatNext { // Copyright (c) 1992, 1993 // The Regents of the University of California. All rights reserved. qsort(array: number[], low: number, high: number, cmp: (a: number, b: number) => number): void { - var isort_thresh = 7; - var t, ta, tb, tc; - var sp = 0, + const isort_thresh = 7; + let t, ta, tb, tc; + let sp = 0, left = 0, right = 0, i = 0, @@ -2112,7 +2114,7 @@ jsfeatNext.math = class math extends jsfeatNext { ptr = 0, ptr2 = 0, d = 0; - var left0 = 0, + let left0 = 0, left1 = 0, right0 = 0, right1 = 0, @@ -2122,7 +2124,7 @@ jsfeatNext.math = class math extends jsfeatNext { c = 0, swap_cnt = 0; - var stack = this.qsort_stack; + const stack = this.qsort_stack; if (high - low + 1 <= 1) return; @@ -2313,8 +2315,8 @@ jsfeatNext.math = class math extends jsfeatNext { } median(array: number[], low: number, high: number): number { - var w; - var middle = 0, + let w; + let middle = 0, ll = 0, hh = 0, median = (low + high) >> 1; @@ -2387,8 +2389,8 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { vstep: number, n: number ): void { - var eps = JSFEAT_CONSTANTS.EPSILON; - var i = 0, + const eps = JSFEAT_CONSTANTS.EPSILON; + let i = 0, j = 0, k = 0, m = 0, @@ -2396,9 +2398,9 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { idx = 0, _in = 0, _in2 = 0; - var iters = 0, + let iters = 0, max_iter = n * n * 30; - var mv = 0.0, + let mv = 0.0, val = 0.0, p = 0.0, y = 0.0, @@ -2408,10 +2410,10 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { a0 = 0.0, b0 = 0.0; - var indR_buff = this.cache.get_buffer(n << 2); - var indC_buff = this.cache.get_buffer(n << 2); - var indR = indR_buff.i32; - var indC = indC_buff.i32; + const indR_buff = this.cache.get_buffer(n << 2); + const indC_buff = this.cache.get_buffer(n << 2); + const indR = indR_buff.i32; + const indC = indC_buff.i32; if (V) { for (; i < n; i++) { @@ -2558,22 +2560,22 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { n: number, n1: number ): void { - var eps = JSFEAT_CONSTANTS.EPSILON * 2.0; - var minval = JSFEAT_CONSTANTS.FLT_MIN; - var i = 0, + const eps = JSFEAT_CONSTANTS.EPSILON * 2.0; + const minval = JSFEAT_CONSTANTS.FLT_MIN; + let i = 0, j = 0, k = 0, iter = 0, max_iter = Math.max(m, 30); - var Ai = 0, + let Ai = 0, Aj = 0, Vi = 0, Vj = 0, changed = 0; - var c = 0.0, + let c = 0.0, s = 0.0, t = 0.0; - var t0 = 0.0, + let t0 = 0.0, t1 = 0.0, sd = 0.0, beta = 0.0, @@ -2582,13 +2584,13 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { a = 0.0, p = 0.0, b = 0.0; - var seed = 0x1234; - var val = 0.0, + let seed = 0x1234; + let val = 0.0, val0 = 0.0, asum = 0.0; - var W_buff = this.cache.get_buffer(n << 3); - var W = W_buff.f64; + const W_buff = this.cache.get_buffer(n << 3); + const W = W_buff.f64; for (; i < n; i++) { for (k = 0, sd = 0; k < m; k++) { @@ -2775,14 +2777,14 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { } lu_solve(A: matrix_t, B: matrix_t): number { - var i = 0, + let i = 0, j = 0, k = 0, p = 1, astep = A.cols; - var ad = A.data, + const ad = A.data, bd = B.data; - var t, alpha, d, s; + let t, alpha, d, s; for (i = 0; i < astep; i++) { k = i; @@ -2832,17 +2834,17 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { } cholesky_solve(A: matrix_t, B: matrix_t): number { - var col = 0, + let col = 0, row = 0, col2 = 0, cs = 0, rs = 0, i = 0, j = 0; - var size = A.cols; - var ad = A.data, + const size = A.cols; + const ad = A.data, bd = B.data; - var val, inv_diag; + let val, inv_diag; for (col = 0; col < size; col++) { inv_diag = 1.0; @@ -2907,14 +2909,14 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { if (typeof options === "undefined") { options = 0; } - var at = 0, + let at = 0, i = 0, j = 0, _m = A.rows, _n = A.cols, m = _m, n = _n; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; // we only work with single channel + const dt = A.type | JSFEAT_CONSTANTS.C1_t; // we only work with single channel if (m < n) { at = 1; @@ -2923,13 +2925,13 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { n = i; } - var a_buff = this.cache.get_buffer((m * m) << 3); - var w_buff = this.cache.get_buffer(n << 3); - var v_buff = this.cache.get_buffer((n * n) << 3); + const a_buff = this.cache.get_buffer((m * m) << 3); + const w_buff = this.cache.get_buffer(n << 3); + const v_buff = this.cache.get_buffer((n * n) << 3); - var a_mt = new matrix_t(m, m, dt, a_buff.data); - var w_mt = new matrix_t(1, n, dt, w_buff.data); - var v_mt = new matrix_t(n, n, dt, v_buff.data); + const a_mt = new matrix_t(m, m, dt, a_buff.data); + const w_mt = new matrix_t(1, n, dt, w_buff.data); + const v_mt = new matrix_t(n, n, dt, v_buff.data); if (at == 0) { // transpose @@ -2998,27 +3000,27 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { } svd_solve(A: matrix_t, X: matrix_t, B: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var pu = 0, + let pu = 0, pv = 0; - var nrows = A.rows, + const nrows = A.rows, ncols = A.cols; - var sum = 0.0, + let sum = 0.0, xsum = 0.0, tol = 0.0; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; - var u_buff = this.cache.get_buffer((nrows * nrows) << 3); - var w_buff = this.cache.get_buffer(ncols << 3); - var v_buff = this.cache.get_buffer((ncols * ncols) << 3); + const u_buff = this.cache.get_buffer((nrows * nrows) << 3); + const w_buff = this.cache.get_buffer(ncols << 3); + const v_buff = this.cache.get_buffer((ncols * ncols) << 3); - var u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); - var w_mt = new matrix_t(1, ncols, dt, w_buff.data); - var v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); + const u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); + const w_mt = new matrix_t(1, ncols, dt, w_buff.data); + const v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); - var bd = B.data, + const bd = B.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; @@ -3046,27 +3048,27 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { } svd_invert(Ai: matrix_t, A: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var pu = 0, + let pu = 0, pv = 0, pa = 0; - var nrows = A.rows, + const nrows = A.rows, ncols = A.cols; - var sum = 0.0, + let sum = 0.0, tol = 0.0; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; - //var u_buff = cache1.get_buffer((nrows * nrows) << 3); - var u_buff = this.cache.get_buffer((nrows * nrows) << 3); - var w_buff = this.cache.get_buffer(ncols << 3); - var v_buff = this.cache.get_buffer((ncols * ncols) << 3); - var u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); - var w_mt = new matrix_t(1, ncols, dt, w_buff.data); - var v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); + //const u_buff = cache1.get_buffer((nrows * nrows) << 3); + const u_buff = this.cache.get_buffer((nrows * nrows) << 3); + const w_buff = this.cache.get_buffer(ncols << 3); + const v_buff = this.cache.get_buffer((ncols * ncols) << 3); + const u_mt = new matrix_t(nrows, nrows, dt, u_buff.data); + const w_mt = new matrix_t(1, ncols, dt, w_buff.data); + const v_mt = new matrix_t(ncols, ncols, dt, v_buff.data); - var id = Ai.data, + const id = Ai.data, ud = u_mt.data, wd = w_mt.data, vd = v_mt.data; @@ -3090,14 +3092,14 @@ jsfeatNext.linalg = class linalg extends jsfeatNext { } eigenVV(A: matrix_t, vects: matrix_t, vals?: matrix_t): void { - var n = A.cols, + let n = A.cols, i = n * n; - var dt = A.type | JSFEAT_CONSTANTS.C1_t; + const dt = A.type | JSFEAT_CONSTANTS.C1_t; - var a_buff = this.cache.get_buffer((n * n) << 3); - var w_buff = this.cache.get_buffer(n << 3); - var a_mt = new matrix_t(n, n, dt, a_buff.data); - var w_mt = new matrix_t(1, n, dt, w_buff.data); + const a_buff = this.cache.get_buffer((n * n) << 3); + const w_buff = this.cache.get_buffer(n << 3); + const a_mt = new matrix_t(n, n, dt, a_buff.data); + const w_mt = new matrix_t(1, n, dt, w_buff.data); while (--i >= 0) { a_mt.data[i] = A.data[i]; @@ -3131,19 +3133,19 @@ jsfeatNext.orb = class orb extends jsfeatNext { } describe(src: matrix_t, corners: keypoint_t[], count: number, descriptors: matrix_t): void { - var DESCR_SIZE = 32; // bytes; - var i = 0, + const DESCR_SIZE = 32; // bytes; + let i = 0, b = 0, px = 0.0, py = 0.0, angle = 0.0; - var t0 = 0, + let t0 = 0, t1 = 0, val = 0; - //var img = src.data, w = src.cols, h = src.rows; - var patch_d = this.patch_img.data; - var patch_off = 16 * 32 + 16; // center of patch - var patt = 0; + //let img = src.data, w = src.cols, h = src.rows; + const patch_d = this.patch_img.data; + const patch_off = 16 * 32 + 16; // center of patch + let patt = 0; if (!(descriptors.type & JSFEAT_CONSTANTS.U8_t)) { // relocate to U8 type @@ -3156,8 +3158,8 @@ jsfeatNext.orb = class orb extends jsfeatNext { descriptors.resize(DESCR_SIZE, count, 1); } - var descr_d = descriptors.data; - var descr_off = 0; + const descr_d = descriptors.data; + let descr_off = 0; for (i = 0; i < count; ++i) { px = corners[i].x; @@ -3240,30 +3242,30 @@ jsfeatNext.yape06 = class yape06 extends jsfeatNext { if (typeof border === "undefined") { border = 5; } - var x = 0, + let x = 0, y = 0; - var w = src.cols, + const w = src.cols, h = src.rows, srd_d = src.data; - var Dxx = 5, + const Dxx = 5, Dyy = (5 * w) | 0; - var Dxy = (3 + 3 * w) | 0, + const Dxy = (3 + 3 * w) | 0, Dyx = (3 - 3 * w) | 0; - var lap_buf = this.cache.get_buffer((w * h) << 2); - var laplacian = lap_buf.i32; - var lv = 0, + const lap_buf = this.cache.get_buffer((w * h) << 2); + const laplacian = lap_buf.i32; + let lv = 0, row = 0, rowx = 0, min_eigen_value = 0, pt; - var number_of_points = 0; - var lap_thresh = this.laplacian_threshold; - var eigen_thresh = this.min_eigen_value_threshold; + let number_of_points = 0; + const lap_thresh = this.laplacian_threshold; + const eigen_thresh = this.min_eigen_value_threshold; - var sx = Math.max(5, border) | 0; - var sy = Math.max(3, border) | 0; - var ex = Math.min(w - 5, w - border) | 0; - var ey = Math.min(h - 3, h - border) | 0; + const sx = Math.max(5, border) | 0; + const sy = Math.max(3, border) | 0; + const ex = Math.min(w - 5, w - border) | 0; + const ey = Math.min(h - 3, h - border) | 0; x = w * h; while (--x >= 0) { @@ -3326,9 +3328,9 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { from_sub: point_t[], to_sub: point_t[] ): boolean { - var max_try = 1000; - var indices = []; - var i = 0, + const max_try = 1000; + const indices = []; + let i = 0, j = 0, ssiter = 0, idx_i = 0, @@ -3372,10 +3374,10 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { err: Int32Array | Float32Array, mask: number[] ): number { - var numinliers: number = 0, + let numinliers: number = 0, i = 0, f = 0; - var t = thresh * thresh; + const t = thresh * thresh; kernel.error(from, to, model, err, count); @@ -3403,30 +3405,30 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { if (count < params.size) return false; - var model_points = params.size; - var niters = max_iters, + const model_points = params.size; + let niters = max_iters, iter = 0; - var result: boolean = false; + let result: boolean = false; - var subset0: any = []; - var subset1: any = []; - var found = false; + const subset0: any = []; + const subset1: any = []; + let found = false; - var mc = model.cols, + const mc = model.cols, mr = model.rows; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; + const dt = model.type | JSFEAT_CONSTANTS.C1_t; - var m_buff = this.cache.get_buffer((mc * mr) << 3); - var ms_buff = this.cache.get_buffer(count); - var err_buff = this.cache.get_buffer(count << 2); - var M = new matrix_t(mc, mr, dt, m_buff.data); - var curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8C1_t, ms_buff.data); + const m_buff = this.cache.get_buffer((mc * mr) << 3); + const ms_buff = this.cache.get_buffer(count); + const err_buff = this.cache.get_buffer(count << 2); + const M = new matrix_t(mc, mr, dt, m_buff.data); + const curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8C1_t, ms_buff.data); - var inliers_max = -1, + let inliers_max = -1, numinliers = 0; - var nmodels = 0; + let nmodels = 0; - var err = err_buff.f32; + const err = err_buff.f32; // special case if (count == model_points) { @@ -3501,31 +3503,31 @@ jsfeatNext.motion_estimator = class motion_estimator extends jsfeatNext { if (count < params.size) return false; - var model_points = params.size; - var niters = max_iters, + const model_points = params.size; + let niters = max_iters, iter = 0; - var result: boolean = false; - var _math = new jsfeatNext.math(); + let result: boolean = false; + const _math = new jsfeatNext.math(); - var subset0: any = []; - var subset1: any = []; - var found = false; + const subset0: any = []; + const subset1: any = []; + let found = false; - var mc = model.cols, + const mc = model.cols, mr = model.rows; - var dt = model.type | JSFEAT_CONSTANTS.C1_t; + const dt = model.type | JSFEAT_CONSTANTS.C1_t; - var m_buff = this.cache.get_buffer((mc * mr) << 3); - var ms_buff = this.cache.get_buffer(count); - var err_buff = this.cache.get_buffer(count << 2); - var M = new matrix_t(mc, mr, dt, m_buff.data); - var curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8_t | JSFEAT_CONSTANTS.C1_t, ms_buff.data); + const m_buff = this.cache.get_buffer((mc * mr) << 3); + const ms_buff = this.cache.get_buffer(count); + const err_buff = this.cache.get_buffer(count << 2); + const M = new matrix_t(mc, mr, dt, m_buff.data); + const curr_mask = new matrix_t(count, 1, JSFEAT_CONSTANTS.U8_t | JSFEAT_CONSTANTS.C1_t, ms_buff.data); - var numinliers = 0; - var nmodels = 0; + let numinliers = 0; + let nmodels = 0; - var err = err_buff.f32; - var min_median = 1000000000.0, + const err = err_buff.f32; + let min_median = 1000000000.0, sigma = 0.0, median = 0.0; @@ -3610,7 +3612,7 @@ jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { constructor() { super(); - var _imgproc = new jsfeatNext.imgproc(); + const _imgproc = new jsfeatNext.imgproc(); this.scharr_deriv = _imgproc.scharr_derivatives; } @@ -3639,84 +3641,84 @@ jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { min_eigen_threshold = 0.0001; } - var half_win = (win_size - 1) * 0.5; - var win_area = (win_size * win_size) | 0; - var win_area2 = win_area << 1; - var prev_imgs = prev_pyr.data, + const half_win = (win_size - 1) * 0.5; + const win_area = (win_size * win_size) | 0; + const win_area2 = win_area << 1; + const prev_imgs = prev_pyr.data, next_imgs = curr_pyr.data; - var img_prev = prev_imgs[0].data, + let img_prev = prev_imgs[0].data, img_next = next_imgs[0].data; - var w0 = prev_imgs[0].cols, + let w0 = prev_imgs[0].cols, h0 = prev_imgs[0].rows, lw = 0, lh = 0; - var iwin_node = this.cache.get_buffer(win_area << 2); - var deriv_iwin_node = this.cache.get_buffer(win_area2 << 2); - var deriv_lev_node = this.cache.get_buffer((h0 * (w0 << 1)) << 2); + const iwin_node = this.cache.get_buffer(win_area << 2); + const deriv_iwin_node = this.cache.get_buffer(win_area2 << 2); + const deriv_lev_node = this.cache.get_buffer((h0 * (w0 << 1)) << 2); - var deriv_m = new matrix_t(w0, h0, JSFEAT_CONSTANTS.S32C2_t, deriv_lev_node.data); + const deriv_m = new matrix_t(w0, h0, JSFEAT_CONSTANTS.S32C2_t, deriv_lev_node.data); - var iwin_buf = iwin_node.i32; - var deriv_iwin = deriv_iwin_node.i32; - var deriv_lev = deriv_lev_node.i32; + const iwin_buf = iwin_node.i32; + const deriv_iwin = deriv_iwin_node.i32; + const deriv_lev = deriv_lev_node.i32; - var dstep = 0, + let dstep = 0, src = 0, dsrc = 0, iptr = 0, diptr = 0, jptr = 0; - var lev_sc = 0.0, + let lev_sc = 0.0, prev_x = 0.0, prev_y = 0.0, next_x = 0.0, next_y = 0.0; - var prev_delta_x = 0.0, + let prev_delta_x = 0.0, prev_delta_y = 0.0, delta_x = 0.0, delta_y = 0.0; - var iprev_x = 0, + let iprev_x = 0, iprev_y = 0, inext_x = 0, inext_y = 0; - var i = 0, + let i = 0, j = 0, x = 0, y = 0, level = 0, ptid = 0, iter = 0; - var brd_tl = 0, + let brd_tl = 0, brd_r = 0, brd_b = 0; - var a = 0.0, + let a = 0.0, b = 0.0, b1 = 0.0, b2 = 0.0; // fixed point math - var W_BITS14 = 14; - var W_BITS4 = 14; - var W_BITS1m5 = W_BITS4 - 5; - var W_BITS1m51 = 1 << (W_BITS1m5 - 1); - var W_BITS14_ = 1 << W_BITS14; - var W_BITS41 = 1 << (W_BITS4 - 1); - var FLT_SCALE = 1.0 / (1 << 20); - var iw00 = 0, + const W_BITS14 = 14; + const W_BITS4 = 14; + const W_BITS1m5 = W_BITS4 - 5; + const W_BITS1m51 = 1 << (W_BITS1m5 - 1); + const W_BITS14_ = 1 << W_BITS14; + const W_BITS41 = 1 << (W_BITS4 - 1); + const FLT_SCALE = 1.0 / (1 << 20); + let iw00 = 0, iw01 = 0, iw10 = 0, iw11 = 0, ival = 0, ixval = 0, iyval = 0; - var A11 = 0.0, + let A11 = 0.0, A12 = 0.0, A22 = 0.0, D = 0.0, min_eig = 0.0; - var FLT_EPSILON = 0.00000011920929; + const FLT_EPSILON = 0.00000011920929; eps *= eps; // reset status @@ -3724,7 +3726,7 @@ jsfeatNext.optical_flow_lk = class optical_flow_lk extends jsfeatNext { status[i] = 1; } - var max_level = (prev_pyr.levels - 1) | 0; + const max_level = (prev_pyr.levels - 1) | 0; level = max_level; for (; level >= 0; --level) { diff --git a/src/matmath/matmath.ts b/src/matmath/matmath.ts index 3052854..783e25d 100644 --- a/src/matmath/matmath.ts +++ b/src/matmath/matmath.ts @@ -6,12 +6,12 @@ export default class matmath { if (typeof value === "undefined") { value = 1; } - var src = M.data; - var rows = M.rows, + const src = M.data; + const rows = M.rows, cols = M.cols, cols_1 = (cols + 1) | 0; - var len = rows * cols; - var k = len; + let len = rows * cols; + let k = len; while (--len >= 0) src[len] = 0.0; len = k; k = 0; @@ -22,14 +22,14 @@ export default class matmath { } transpose(At: matrix_t, A: matrix_t): void { - var i = 0, + let i = 0, j = 0, nrows = A.rows, ncols = A.cols; - var Ai = 0, + let Ai = 0, Ati = 0, pAt = 0; - var ad = A.data, + const ad = A.data, atd = At.data; for (; i < nrows; Ati += 1, Ai += ncols, i++) { @@ -40,21 +40,21 @@ export default class matmath { // C = A * B multiply(C: matrix_t, A: matrix_t, B: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var Ap = 0, + let Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; - var ncols = A.cols, + const ncols = A.cols, nrows = A.rows, mcols = B.cols; - var ad = A.data, + const ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let sum = 0.0; for (; i < nrows; Ap += ncols, i++) { for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) { @@ -71,20 +71,20 @@ export default class matmath { // C = A * B' multiply_ABt(C: matrix_t, A: matrix_t, B: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var Ap = 0, + let Ap = 0, pA = 0, pB = 0, Cp = 0; - var ncols = A.cols, + const ncols = A.cols, nrows = A.rows, mrows = B.rows; - var ad = A.data, + const ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let sum = 0.0; for (; i < nrows; Ap += ncols, i++) { for (pB = 0, j = 0; j < mrows; Cp++, j++) { @@ -100,21 +100,21 @@ export default class matmath { // C = A' * B multiply_AtB(C: matrix_t, A: matrix_t, B: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var Ap = 0, + let Ap = 0, pA = 0, pB = 0, p_B = 0, Cp = 0; - var ncols = A.cols, + const ncols = A.cols, nrows = A.rows, mcols = B.cols; - var ad = A.data, + const ad = A.data, bd = B.data, cd = C.data; - var sum = 0.0; + let sum = 0.0; for (; i < ncols; Ap++, i++) { for (p_B = 0, j = 0; j < mcols; Cp++, p_B++, j++) { @@ -131,20 +131,20 @@ export default class matmath { // C = A * A' multiply_AAt(C: matrix_t, A: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var pCdiag = 0, + let pCdiag = 0, p_A = 0, pA = 0, pB = 0, pC = 0, pCt = 0; - var ncols = A.cols, + const ncols = A.cols, nrows = A.rows; - var ad = A.data, + const ad = A.data, cd = C.data; - var sum = 0.0; + let sum = 0.0; for (; i < nrows; pCdiag += nrows + 1, p_A = pA, i++) { pC = pCdiag; @@ -164,20 +164,20 @@ export default class matmath { // C = A' * A multiply_AtA(C: matrix_t, A: matrix_t): void { - var i = 0, + let i = 0, j = 0, k = 0; - var p_A = 0, + let p_A = 0, pA = 0, pB = 0, p_C = 0, pC = 0, p_CC = 0; - var ncols = A.cols, + const ncols = A.cols, nrows = A.rows; - var ad = A.data, + const ad = A.data, cd = C.data; - var sum = 0.0; + let sum = 0.0; for (; i < ncols; p_C += ncols, i++) { p_A = i; @@ -201,32 +201,32 @@ export default class matmath { if (typeof value === "undefined") { value = 1; } - var dt = M.data; + const dt = M.data; dt[0] = dt[4] = dt[8] = value; dt[1] = dt[2] = dt[3] = 0; dt[5] = dt[6] = dt[7] = 0; } invert_3x3(from: matrix_t, to: matrix_t): void { - var A = from.data, + const A = from.data, invA = to.data; - var t1 = A[4]; - var t2 = A[8]; - var t4 = A[5]; - var t5 = A[7]; - var t8 = A[0]; + const t1 = A[4]; + const t2 = A[8]; + const t4 = A[5]; + const t5 = A[7]; + const t8 = A[0]; - var t9 = t8 * t1; - var t11 = t8 * t4; - var t13 = A[3]; - var t14 = A[1]; - var t15 = t13 * t14; - var t17 = A[2]; - var t18 = t13 * t17; - var t20 = A[6]; - var t21 = t20 * t14; - var t23 = t20 * t17; - var t26 = 1.0 / (t9 * t2 - t11 * t5 - t15 * t2 + t18 * t5 + t21 * t4 - t23 * t1); + const t9 = t8 * t1; + const t11 = t8 * t4; + const t13 = A[3]; + const t14 = A[1]; + const t15 = t13 * t14; + const t17 = A[2]; + const t18 = t13 * t17; + const t20 = A[6]; + const t21 = t20 * t14; + const t23 = t20 * t17; + const t26 = 1.0 / (t9 * t2 - t11 * t5 - t15 * t2 + t18 * t5 + t21 * t4 - t23 * t1); invA[0] = (t1 * t2 - t4 * t5) * t26; invA[1] = -(t14 * t2 - t17 * t5) * t26; invA[2] = -(-t14 * t4 + t17 * t1) * t26; @@ -240,26 +240,26 @@ export default class matmath { // C = A * B multiply_3x3(C: matrix_t, A: matrix_t, B: matrix_t): void { - var Cd = C.data, + const Cd = C.data, Ad = A.data, Bd = B.data; - var m1_0 = Ad[0], + const m1_0 = Ad[0], m1_1 = Ad[1], m1_2 = Ad[2]; - var m1_3 = Ad[3], + const m1_3 = Ad[3], m1_4 = Ad[4], m1_5 = Ad[5]; - var m1_6 = Ad[6], + const m1_6 = Ad[6], m1_7 = Ad[7], m1_8 = Ad[8]; - var m2_0 = Bd[0], + const m2_0 = Bd[0], m2_1 = Bd[1], m2_2 = Bd[2]; - var m2_3 = Bd[3], + const m2_3 = Bd[3], m2_4 = Bd[4], m2_5 = Bd[5]; - var m2_6 = Bd[6], + const m2_6 = Bd[6], m2_7 = Bd[7], m2_8 = Bd[8]; @@ -275,7 +275,7 @@ export default class matmath { } mat3x3_determinant(M: matrix_t): number { - var md = M.data; + const md = M.data; return ( md[0] * md[4] * md[8] - md[0] * md[5] * md[7] - diff --git a/src/matrix_t/matrix_t.ts b/src/matrix_t/matrix_t.ts index 01dd880..67929aa 100644 --- a/src/matrix_t/matrix_t.ts +++ b/src/matrix_t/matrix_t.ts @@ -62,9 +62,9 @@ export class matrix_t implements IMatrix_T { } copy_to(other: IMatrix_T): void { - var od = other.data, + const od = other.data, td = this.data; - var i = 0, + let i = 0, n = (this.cols * this.rows * this.channel) | 0; for (; i < n - 4; i += 4) { od[i] = td[i]; @@ -82,7 +82,7 @@ export class matrix_t implements IMatrix_T { ch = this.channel; } // relocate buffer only if new size doesnt fit - var new_size = c * this.dt._get_data_type_size(this.type) * ch * r; + const new_size = c * this.dt._get_data_type_size(this.type) * ch * r; if (new_size > this.buffer.size) { this.cols = c; this.rows = r; diff --git a/src/motion_estimator/ransac_params_t.ts b/src/motion_estimator/ransac_params_t.ts index c0ebf66..ae3d4f0 100644 --- a/src/motion_estimator/ransac_params_t.ts +++ b/src/motion_estimator/ransac_params_t.ts @@ -23,8 +23,8 @@ export class ransac_params_t { this.prob = prob; } update_iters(_eps: number, max_iters: number): number { - var num = Math.log(1 - this.prob); - var denom = Math.log(1 - Math.pow(1 - _eps, this.size)); + const num = Math.log(1 - this.prob); + const denom = Math.log(1 - Math.pow(1 - _eps, this.size)); return (denom >= 0 || -num >= max_iters * -denom ? max_iters : Math.round(num / denom)) | 0; } } diff --git a/src/orb/rectify_patch.ts b/src/orb/rectify_patch.ts index e099757..49fa855 100644 --- a/src/orb/rectify_patch.ts +++ b/src/orb/rectify_patch.ts @@ -11,8 +11,8 @@ export function rectify_patch( H: matrix_t, imgproc: imgproc ) { - var cosine = Math.cos(angle); - var sine = Math.sin(angle); + const cosine = Math.cos(angle); + const sine = Math.sin(angle); (H.data[0] = cosine), (H.data[1] = -sine), diff --git a/src/transform/transform.ts b/src/transform/transform.ts index 3c370da..f1b993c 100644 --- a/src/transform/transform.ts +++ b/src/transform/transform.ts @@ -27,45 +27,45 @@ export class transform { dst_x3: number, dst_y3: number ): void { - var t1 = src_x0; - var t2 = src_x2; - var t4 = src_y1; - var t5 = t1 * t2 * t4; - var t6 = src_y3; - var t7 = t1 * t6; - var t8 = t2 * t7; - var t9 = src_y2; - var t10 = t1 * t9; - var t11 = src_x1; - var t14 = src_y0; - var t15 = src_x3; - var t16 = t14 * t15; - var t18 = t16 * t11; - var t20 = t15 * t11 * t9; - var t21 = t15 * t4; - var t24 = t15 * t9; - var t25 = t2 * t4; - var t26 = t6 * t2; - var t27 = t6 * t11; - var t28 = t9 * t11; - var t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); - var t32 = t1 * t15; - var t35 = t14 * t11; - var t41 = t4 * t1; - var t42 = t6 * t41; - var t43 = t14 * t2; - var t46 = t16 * t9; - var t48 = t14 * t9 * t11; - var t51 = t4 * t6 * t2; - var t55 = t6 * t14; - var Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hr2 = t1; - var Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hr5 = t14; - var Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + let t1 = src_x0; + let t2 = src_x2; + let t4 = src_y1; + let t5 = t1 * t2 * t4; + let t6 = src_y3; + let t7 = t1 * t6; + let t8 = t2 * t7; + let t9 = src_y2; + let t10 = t1 * t9; + let t11 = src_x1; + let t14 = src_y0; + let t15 = src_x3; + let t16 = t14 * t15; + let t18 = t16 * t11; + let t20 = t15 * t11 * t9; + let t21 = t15 * t4; + let t24 = t15 * t9; + let t25 = t2 * t4; + let t26 = t6 * t2; + let t27 = t6 * t11; + let t28 = t9 * t11; + let t30 = 1.0 / (t21 - t24 - t25 + t26 - t27 + t28); + let t32 = t1 * t15; + let t35 = t14 * t11; + let t41 = t4 * t1; + let t42 = t6 * t41; + let t43 = t14 * t2; + let t46 = t16 * t9; + let t48 = t14 * t9 * t11; + let t51 = t4 * t6 * t2; + let t55 = t6 * t14; + const Hr0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + const Hr1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + const Hr2 = t1; + const Hr3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + const Hr4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + const Hr5 = t14; + const Hr6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + const Hr7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; t1 = dst_x0; t2 = dst_x2; @@ -98,14 +98,14 @@ export class transform { t48 = t14 * t9 * t11; t51 = t4 * t6 * t2; t55 = t6 * t14; - var Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; - var Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; - var Hl2 = t1; - var Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; - var Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; - var Hl5 = t14; - var Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; - var Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; + const Hl0 = -(t8 - t5 + t10 * t11 - t11 * t7 - t16 * t2 + t18 - t20 + t21 * t2) * t30; + const Hl1 = (t5 - t8 - t32 * t4 + t32 * t9 + t18 - t2 * t35 + t27 * t2 - t20) * t30; + const Hl2 = t1; + const Hl3 = (-t9 * t7 + t42 + t43 * t4 - t16 * t4 + t46 - t48 + t27 * t9 - t51) * t30; + const Hl4 = (-t42 + t41 * t9 - t55 * t2 + t46 - t48 + t55 * t11 + t51 - t21 * t9) * t30; + const Hl5 = t14; + const Hl6 = (-t10 + t41 + t43 - t35 + t24 - t21 - t26 + t27) * t30; + const Hl7 = (-t7 + t10 + t16 - t43 + t27 - t28 - t21 + t25) * t30; // the following code computes R = Hl * inverse Hr t2 = Hr4 - Hr7 * Hr5; @@ -114,20 +114,20 @@ export class transform { t7 = Hr3 * Hr1; t8 = Hr2 * Hr3; t10 = Hr1 * Hr6; - var t12 = Hr2 * Hr6; + const t12 = Hr2 * Hr6; t15 = 1.0 / (t4 - t5 * Hr7 - t7 + t8 * Hr7 + t10 * Hr5 - t12 * Hr4); t18 = -Hr3 + Hr5 * Hr6; - var t23 = -Hr3 * Hr7 + Hr4 * Hr6; + const t23 = -Hr3 * Hr7 + Hr4 * Hr6; t28 = -Hr1 + Hr2 * Hr7; - var t31 = Hr0 - t12; + const t31 = Hr0 - t12; t35 = Hr0 * Hr7 - t10; t41 = -Hr1 * Hr5 + Hr2 * Hr4; - var t44 = t5 - t8; - var t47 = t4 - t7; + const t44 = t5 - t8; + const t47 = t4 - t7; t48 = t2 * t15; - var t49 = t28 * t15; - var t50 = t41 * t15; - var mat = model.data; + const t49 = t28 * t15; + const t50 = t41 * t15; + const mat = model.data; mat[0] = Hl0 * t48 + Hl1 * (t18 * t15) - Hl2 * (t23 * t15); mat[1] = Hl0 * t49 + Hl1 * (t31 * t15) - Hl2 * (t35 * t15); mat[2] = -Hl0 * t50 - Hl1 * (t44 * t15) + Hl2 * (t47 * t15); @@ -140,17 +140,17 @@ export class transform { } invert_affine_transform(src: matrix_t, dst: matrix_t): void { - var src_d = src.data; - var dst_d = dst.data; + const src_d = src.data; + const dst_d = dst.data; - var m11 = src_d[0], + const m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; - var m21 = src_d[3], + const m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; - var det = 1.0 / (m11 * m22 - m12 * m21); + const det = 1.0 / (m11 * m22 - m12 * m21); dst_d[0] = det * m22; dst_d[1] = det * -m12; @@ -162,19 +162,20 @@ export class transform { } invert_perspective_transform(src: matrix_t, dst: matrix_t): void { - var src_d = src.data; - var dst_d = dst.data; - var m11 = src_d[0], + const src_d = src.data; + const dst_d = dst.data; + const m11 = src_d[0], m12 = src_d[1], m13 = src_d[2]; - var m21 = src_d[3], + const m21 = src_d[3], m22 = src_d[4], m23 = src_d[5]; - var m31 = src_d[6], + const m31 = src_d[6], m32 = src_d[7], m33 = src_d[8]; - var det = 1.0 / (m11 * (m22 * m33 - m23 * m32) - m12 * (m21 * m33 - m23 * m31) + m13 * (m21 * m32 - m22 * m31)); + const det = + 1.0 / (m11 * (m22 * m33 - m23 * m32) - m12 * (m21 * m33 - m23 * m31) + m13 * (m21 * m32 - m22 * m31)); dst_d[0] = det * (m22 * m33 - m23 * m32); dst_d[1] = det * (m13 * m32 - m12 * m33); diff --git a/src/yape/yape.ts b/src/yape/yape.ts index dd7b8e3..be42e12 100644 --- a/src/yape/yape.ts +++ b/src/yape/yape.ts @@ -13,7 +13,7 @@ export class yape { if (typeof pyramid_levels === "undefined") { pyramid_levels = 1; } - var i; + let i; radius = Math.min(radius, 7); radius = Math.max(radius, 3); for (i = 0; i < pyramid_levels; ++i) { @@ -25,18 +25,18 @@ export class yape { if (typeof border === "undefined") { border = 4; } - var t = this.level_tables[0]; - var R = t.radius | 0, + const t = this.level_tables[0]; + const R = t.radius | 0, Rm1 = (R - 1) | 0; - var dirs = t.dirs; - var dirs_count = t.dirs_count | 0; - var opposite = dirs_count >> 1; - var img = src.data, + const dirs = t.dirs; + const dirs_count = t.dirs_count | 0; + const opposite = dirs_count >> 1; + const img = src.data, w = src.cols | 0, h = src.rows | 0, hw = w >> 1; - var scores = t.scores; - var x = 0, + const scores = t.scores; + let x = 0, y = 0, row = 0, rowx = 0, @@ -44,14 +44,14 @@ export class yape { im = 0, abs_score = 0, score = 0; - var tau = this.tau | 0; - var number_of_points = 0, + const tau = this.tau | 0; + let number_of_points = 0, pt; - var sx = Math.max(R + 1, border) | 0; - var sy = Math.max(R + 1, border) | 0; - var ex = Math.min(w - R - 2, w - border) | 0; - var ey = Math.min(h - R - 2, h - border) | 0; + const sx = Math.max(R + 1, border) | 0; + const sy = Math.max(R + 1, border) | 0; + const ex = Math.min(w - R - 2, w - border) | 0; + const ey = Math.min(h - R - 2, h - border) | 0; row = (sy * w + sx) | 0; for (y = sy; y < ey; ++y, row += w) { diff --git a/src/yape/yape_utils.ts b/src/yape/yape_utils.ts index 0e8fe36..9156371 100644 --- a/src/yape/yape_utils.ts +++ b/src/yape/yape_utils.ts @@ -1,6 +1,6 @@ export function precompute_directions(step: number, dirs: Int32Array, R: number): number { - var i = 0; - var x, y; + let i = 0; + let x, y; x = R; for (y = 0; y < x; y++, i++) { @@ -42,7 +42,7 @@ export function precompute_directions(step: number, dirs: Int32Array, R: number) } export function third_check(Sb: Int32Array | number[], off: number, step: number) { - var n = 0; + let n = 0; if (Sb[off + 1] != 0) n++; if (Sb[off - 1] != 0) n++; if (Sb[off + step] != 0) n++; @@ -56,7 +56,7 @@ export function third_check(Sb: Int32Array | number[], off: number, step: number } export function is_local_maxima(p: Int32Array, off: number, v: number, step: number, neighborhood: number) { - var x, y; + let x, y; if (v > 0) { off -= step * neighborhood; @@ -88,14 +88,14 @@ export function perform_one_point( opposite: number, dirs_nb: number ) { - var score = 0; - var a = 0, + let score = 0; + let a = 0, b = (opposite - 1) | 0; - var A = 0, + let A = 0, B0 = 0, B1 = 0, B2 = 0; - var state = 0; + let state = 0; // WE KNOW THAT NOT(A ~ I0 & B1 ~ I0): A = I[x + dirs[a]]; diff --git a/src/yape06/yape06_utils.ts b/src/yape06/yape06_utils.ts index d7ab096..a32c0dc 100644 --- a/src/yape06/yape06_utils.ts +++ b/src/yape06/yape06_utils.ts @@ -10,7 +10,7 @@ export function compute_laplacian( ex: number, ey: number ): void { - var y = 0, + let y = 0, x = 0, yrow = (sy * w + sx) | 0, row = yrow; @@ -31,10 +31,10 @@ export function hessian_min_eigen_value( Dxy: number, Dyx: number ): number { - var Ixx = -2 * src[off] + src[off + Dxx] + src[off - Dxx]; - var Iyy = -2 * src[off] + src[off + Dyy] + src[off - Dyy]; - var Ixy = src[off + Dxy] + src[off - Dxy] - src[off + Dyx] - src[off - Dyx]; - var sqrt_delta = Math.sqrt((Ixx - Iyy) * (Ixx - Iyy) + 4 * Ixy * Ixy) | 0; + const Ixx = -2 * src[off] + src[off + Dxx] + src[off - Dxx]; + const Iyy = -2 * src[off] + src[off + Dyy] + src[off - Dyy]; + const Ixy = src[off + Dxy] + src[off - Dxy] - src[off + Dyx] - src[off - Dyx]; + const sqrt_delta = Math.sqrt((Ixx - Iyy) * (Ixx - Iyy) + 4 * Ixy * Ixy) | 0; return Math.min(Math.abs(tr - sqrt_delta), Math.abs(-(tr + sqrt_delta))); } diff --git a/types/src/data_type/data_type.d.ts b/types/src/data_type/data_type.d.ts index 472688f..5bd029d 100644 --- a/types/src/data_type/data_type.d.ts +++ b/types/src/data_type/data_type.d.ts @@ -4,7 +4,7 @@ export interface IData_Type { _get_data_type_size: (type: number) => number; } export declare class data_type implements IData_Type { - private _data_type_size; + private readonly _data_type_size; constructor(); _get_data_type(type: number): number; _get_channel(type: number): number; From 7c68f9416abe1e0be3abf44200ea93149f6996bb Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 21:27:51 +0100 Subject: [PATCH 08/15] adding .nvmrc file and force to use the node version in the github action --- .github/workflows/CI.yml | 60 +++++++++++++++++++--------------------- .nvmrc | 1 + 2 files changed, 29 insertions(+), 32 deletions(-) create mode 100644 .nvmrc diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 60a61ad..14890d4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,42 +1,38 @@ name: CI on: - - push - - pull_request + - push + - pull_request jobs: - tests: - strategy: - matrix: - node: - - 20.x + check-and-test: + runs-on: ubuntu-20.04 - runs-on: ubuntu-20.04 - name: Node.js ${{ matrix.node }} - steps: - - uses: actions/checkout@v4 + steps: + - name: Checkout repository + - uses: actions/checkout@v4 - - name: Use Node.js ${{ matrix.node }} - uses: actions/setup-node@v4 - with: - node-version: ${{ matrix.node }} + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: '.nvmrc' - - name: Get npm cache directory - id: npm-cache-dir - shell: bash - run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + - name: Get npm cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} - - uses: actions/cache@v4 - id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' - with: - path: ${{ steps.npm-cache-dir.outputs.dir }} - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- + - uses: actions/cache@v4 + id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- - - name: Install - run: | - npm install + - name: Install + run: | + npm install - - name: Tests - run: | - npm run format-check + - name: Tests + run: | + npm run format-check diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..2162b3c --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v20.18.0 \ No newline at end of file From 7299ff0a8b9b6ed72cede5c45d3e237e89794a4b Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 21:30:36 +0100 Subject: [PATCH 09/15] fix for wrong linting in the CI - fix for 'every steps need a run or uses' error --- .github/workflows/CI.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 14890d4..39e2fb6 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -9,7 +9,7 @@ jobs: steps: - name: Checkout repository - - uses: actions/checkout@v4 + uses: actions/checkout@v4 - name: Use Node.js from .nvmrc uses: actions/setup-node@v4 From df4af53ba739ee966ab53faf2dce71ddea2bf083 Mon Sep 17 00:00:00 2001 From: Walter Perdan Date: Sat, 9 Nov 2024 21:32:16 +0100 Subject: [PATCH 10/15] fix for CI - another linting error --- .github/workflows/CI.yml | 56 ++++++++++++++++++++-------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 39e2fb6..ee8e245 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -1,38 +1,38 @@ name: CI on: - - push - - pull_request + - push + - pull_request jobs: - check-and-test: - runs-on: ubuntu-20.04 + check-and-test: + runs-on: ubuntu-20.04 - steps: - - name: Checkout repository - uses: actions/checkout@v4 + steps: + - name: Checkout repository + uses: actions/checkout@v4 - - name: Use Node.js from .nvmrc - uses: actions/setup-node@v4 - with: - node-version-file: '.nvmrc' + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" - - name: Get npm cache directory - id: npm-cache-dir - shell: bash - run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + - name: Get npm cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} - - uses: actions/cache@v4 - id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' - with: - path: ${{ steps.npm-cache-dir.outputs.dir }} - key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- + - uses: actions/cache@v4 + id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- - - name: Install - run: | - npm install + - name: Install + run: | + npm install - - name: Tests - run: | - npm run format-check + - name: Tests + run: | + npm run format-check From afb3716bd5c1ae4c193c9114e67d298c40881b91 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Mon, 11 Nov 2024 18:00:52 +0100 Subject: [PATCH 11/15] upgrading webpack and setting up dependabot script --- .github/workflows/depandabot.yml | 17 ++++++++++++ README.md | 18 ++++++------- dist/package.json | 2 +- package-lock.json | 45 ++++++++++++++++++++------------ package.json | 2 +- 5 files changed, 56 insertions(+), 28 deletions(-) create mode 100644 .github/workflows/depandabot.yml diff --git a/.github/workflows/depandabot.yml b/.github/workflows/depandabot.yml new file mode 100644 index 0000000..dc540c6 --- /dev/null +++ b/.github/workflows/depandabot.yml @@ -0,0 +1,17 @@ +# To get started with Dependabot version updates, you'll need to specify which +# package ecosystems to update and where the package manifests are located. +# Please see the documentation for all configuration options: +# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file + +version: 2 +updates: + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" + + - package-ecosystem: "github-actions" + # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.) + directory: "/" + schedule: + interval: "weekly" diff --git a/README.md b/README.md index 35bb172..949ec92 100644 --- a/README.md +++ b/README.md @@ -2,16 +2,16 @@ ![github stars](https://flat.badgen.net/github/stars/webarkit/jsfeatNext) ![github forks](https://flat.badgen.net/github/forks/webarkit/jsfeatNext) ![npm package version](https://flat.badgen.net/npm/v/@webarkit/jsfeat-next) -![Dependabot Badge](https://flat.badgen.net/dependabot/thepracticaldev/dev.to?icon=dependabot) +![Dependabot Badge](https://flat.badgen.net/dependabot/@webarkit/jsfeat-next?icon=dependabot) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![CI](https://github.com/webarkit/ARnft/actions/workflows/CI.yml/badge.svg)](https://github.com/webarkit/jsfeatNext/actions/workflows/CI.yml) ![twitter](https://flat.badgen.net/twitter/follow/WebarkitO) -# jsfeatNext +# jsfeatNext ๐Ÿš€ A testing repository to develop a ES6 version of [jsfeat](https://github.com/inspirit/jsfeat) for the WebARKit project. Consider that this is a test and many things may changes during the development. I will provide some examples for testing. -## List of features +## List of features โœจ - Typescript definitions @@ -21,7 +21,7 @@ A testing repository to develop a ES6 version of [jsfeat](https://github.com/ins - npm package -## Classes +## Classes ๐Ÿ“š These public classes were implemented: - cache - fast_corners @@ -40,17 +40,17 @@ These public classes were implemented: - yape - yape06 -## npm package +## npm package ๐Ÿ“ฆ You can install the package with: `npm install @webarkit/jsfeat-next` Consider that the package is not well tested and many bugs may arise... -## Future features +## Future features ๐Ÿ”ฎ Not all the original classes from jsfeat are yet implemented, this will be done in a near future. -## Examples +## Examples ๐Ÿงช Go in the examples folder to test some of them. working = โœ”๏ธ not working = โš ๏ธ @@ -78,10 +78,10 @@ working = โœ”๏ธ not working = โš ๏ธ - sample_yape.html โœ”๏ธ - sample_yape06.html โœ”๏ธ -## Typescript examples +## Typescript examples ๐Ÿ“ You can find some Typescript examples in this repository [jsfeatNext-examples](https://github.com/webarkit/jsfeatNext-examples). -## Documentation +## Documentation ๐Ÿ“– There is not yet an official JsfeatNext documentation but you can read the [original jsfeat docs](https://inspirit.github.io/jsfeat/) to have an idea of classes and functions. We tried to be much close as possible to the original code, so if it works on **jsfeat** it will works on **jsfeatNext**. \ No newline at end of file diff --git a/dist/package.json b/dist/package.json index eb50535..aed1c57 100644 --- a/dist/package.json +++ b/dist/package.json @@ -36,7 +36,7 @@ "babel-loader": "^9.2.1", "rimraf": "^6.0.1", "typescript": "^5.6.3", - "webpack": "5.94.0", + "webpack": "5.96.1", "webpack-cli": "^5.1.4" }, "dependencies": { diff --git a/package-lock.json b/package-lock.json index dd1a327..005959c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -20,7 +20,7 @@ "babel-loader": "^9.2.1", "rimraf": "^6.0.1", "typescript": "^5.6.3", - "webpack": "5.94.0", + "webpack": "5.96.1", "webpack-cli": "^5.1.4" } }, @@ -1712,6 +1712,26 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, + "node_modules/@types/eslint": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-9.6.1.tgz", + "integrity": "sha512-FXx2pKgId/WyYo2jXw63kk7/+TY7u7AziEJxJAnSFzHlqTAS3Ync6SvgYAN/k4/PQpnnVuzoMuVnByKK2qp0ag==", + "license": "MIT", + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.7", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.7.tgz", + "integrity": "sha512-MzMFlSLBqNF2gcHWO0G1vP/YQyfvrxZ0bF+u7mzUdZ1/xK4A4sru+nraZz5i3iEIk1l1uyicaDVTB4QbbEkAYg==", + "license": "MIT", + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, "node_modules/@types/estree": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", @@ -1949,15 +1969,6 @@ "node": ">=0.4.0" } }, - "node_modules/acorn-import-attributes": { - "version": "1.9.5", - "resolved": "https://registry.npmjs.org/acorn-import-attributes/-/acorn-import-attributes-1.9.5.tgz", - "integrity": "sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==", - "license": "MIT", - "peerDependencies": { - "acorn": "^8" - } - }, "node_modules/ajv": { "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", @@ -3833,18 +3844,18 @@ } }, "node_modules/webpack": { - "version": "5.94.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.94.0.tgz", - "integrity": "sha512-KcsGn50VT+06JH/iunZJedYGUJS5FGjow8wb9c0v5n1Om8O1g4L6LjtfxwlXIATopoQu+vOXXa7gYisWxCoPyg==", + "version": "5.96.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.96.1.tgz", + "integrity": "sha512-l2LlBSvVZGhL4ZrPwyr8+37AunkcYj5qh8o6u2/2rzoPc8gxFJkLj1WxNgooi9pnoc06jh0BjuXnamM4qlujZA==", "license": "MIT", "dependencies": { - "@types/estree": "^1.0.5", + "@types/eslint-scope": "^3.7.7", + "@types/estree": "^1.0.6", "@webassemblyjs/ast": "^1.12.1", "@webassemblyjs/wasm-edit": "^1.12.1", "@webassemblyjs/wasm-parser": "^1.12.1", - "acorn": "^8.7.1", - "acorn-import-attributes": "^1.9.5", - "browserslist": "^4.21.10", + "acorn": "^8.14.0", + "browserslist": "^4.24.0", "chrome-trace-event": "^1.0.2", "enhanced-resolve": "^5.17.1", "es-module-lexer": "^1.2.1", diff --git a/package.json b/package.json index 0a59bce..1ea5154 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "babel-loader": "^9.2.1", "rimraf": "^6.0.1", "typescript": "^5.6.3", - "webpack": "5.94.0", + "webpack": "5.96.1", "webpack-cli": "^5.1.4" }, "dependencies": { From 97d0ca3171c9a02179ae382ed3b60d8293d42e6a Mon Sep 17 00:00:00 2001 From: kalwalt Date: Mon, 11 Nov 2024 18:05:53 +0100 Subject: [PATCH 12/15] new build script and formatting --- .github/workflows/build.yml | 35 ++++++++++++++++++++++++++++++++ .github/workflows/depandabot.yml | 18 ++++++++-------- 2 files changed, 44 insertions(+), 9 deletions(-) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..e0dab82 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,35 @@ +name: Build JsfeatNext +on: + - push + - pull_request + +jobs: + check-and-test: + runs-on: ubuntu-20.04 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Use Node.js from .nvmrc + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + + - name: Get npm cache directory + id: npm-cache-dir + shell: bash + run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} + + - uses: actions/cache@v4 + id: npm-cache # use this to check for `cache-hit` ==> if: steps.npm-cache.outputs.cache-hit != 'true' + with: + path: ${{ steps.npm-cache-dir.outputs.dir }} + key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} + restore-keys: | + ${{ runner.os }}-node- + + - name: Install + run: | + npm install + - name: Build + run: npm run build-ts diff --git a/.github/workflows/depandabot.yml b/.github/workflows/depandabot.yml index dc540c6..6d151ef 100644 --- a/.github/workflows/depandabot.yml +++ b/.github/workflows/depandabot.yml @@ -5,13 +5,13 @@ version: 2 updates: - - package-ecosystem: "npm" # See documentation for possible values - directory: "/" # Location of package manifests - schedule: - interval: "weekly" + - package-ecosystem: "npm" # See documentation for possible values + directory: "/" # Location of package manifests + schedule: + interval: "weekly" - - package-ecosystem: "github-actions" - # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.) - directory: "/" - schedule: - interval: "weekly" + - package-ecosystem: "github-actions" + # Workflow files stored in the default location of `.github/workflows`. (You don't need to specify `/.github/workflows` for `directory`. You can use `directory: "/"`.) + directory: "/" + schedule: + interval: "weekly" From b416bccd7da480c772546e03128a21272743ff51 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Mon, 11 Nov 2024 18:09:10 +0100 Subject: [PATCH 13/15] moving dependabot script because in the wrong folder --- .github/{workflows => }/depandabot.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename .github/{workflows => }/depandabot.yml (100%) diff --git a/.github/workflows/depandabot.yml b/.github/depandabot.yml similarity index 100% rename from .github/workflows/depandabot.yml rename to .github/depandabot.yml From 60166a97e7ca692ab016f45d2365ca2371bf4398 Mon Sep 17 00:00:00 2001 From: kalwalt Date: Mon, 11 Nov 2024 18:23:29 +0100 Subject: [PATCH 14/15] setting willReadFrequently to true --- examples/grayscale.html | 2 +- examples/sample_boxblur.html | 2 +- examples/sample_canny_edge.html | 2 +- examples/sample_equalize_hist.html | 2 +- examples/sample_fast_corners.html | 2 +- examples/sample_gaussblur.html | 2 +- examples/sample_oflow_lk.html | 2 +- examples/sample_orb.html | 2 +- examples/sample_orb_pinball.html | 2 +- examples/sample_pyrdown.html | 2 +- examples/sample_scharr.html | 2 +- examples/sample_sobel.html | 10 +++++----- examples/sample_sobel_edge.html | 10 +++++----- examples/sample_warp_affine.html | 2 +- examples/sample_warp_perspective.html | 2 +- examples/sample_yape.html | 2 +- examples/sample_yape06.html | 2 +- 17 files changed, 25 insertions(+), 25 deletions(-) diff --git a/examples/grayscale.html b/examples/grayscale.html index 386de6e..3da9c7c 100644 --- a/examples/grayscale.html +++ b/examples/grayscale.html @@ -17,7 +17,7 @@ var jsfeat = jsfeatNext.jsfeatNext; var imgproc = new jsfeat.imgproc(); var canvas = document.getElementById('canvas'); - var ctx = canvas.getContext('2d'); + var ctx = canvas.getContext('2d', {"willReadFrequently": true}); if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) { var hint = { diff --git a/examples/sample_boxblur.html b/examples/sample_boxblur.html index 1a2fc51..2456d03 100644 --- a/examples/sample_boxblur.html +++ b/examples/sample_boxblur.html @@ -99,7 +99,7 @@ function demo_app() { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_canny_edge.html b/examples/sample_canny_edge.html index 87f9f38..dc15e41 100644 --- a/examples/sample_canny_edge.html +++ b/examples/sample_canny_edge.html @@ -100,7 +100,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_equalize_hist.html b/examples/sample_equalize_hist.html index 53881f6..629cf0d 100644 --- a/examples/sample_equalize_hist.html +++ b/examples/sample_equalize_hist.html @@ -93,7 +93,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_fast_corners.html b/examples/sample_fast_corners.html index 250afc4..88328a5 100644 --- a/examples/sample_fast_corners.html +++ b/examples/sample_fast_corners.html @@ -103,7 +103,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_gaussblur.html b/examples/sample_gaussblur.html index 661fa45..ad57c48 100644 --- a/examples/sample_gaussblur.html +++ b/examples/sample_gaussblur.html @@ -99,7 +99,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_oflow_lk.html b/examples/sample_oflow_lk.html index 950d4d2..b0e572d 100644 --- a/examples/sample_oflow_lk.html +++ b/examples/sample_oflow_lk.html @@ -105,7 +105,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_orb.html b/examples/sample_orb.html index 5571788..6b2b8fc 100644 --- a/examples/sample_orb.html +++ b/examples/sample_orb.html @@ -202,7 +202,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_orb_pinball.html b/examples/sample_orb_pinball.html index 9db223f..5c6e160 100644 --- a/examples/sample_orb_pinball.html +++ b/examples/sample_orb_pinball.html @@ -228,7 +228,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_pyrdown.html b/examples/sample_pyrdown.html index f72438e..db3029a 100644 --- a/examples/sample_pyrdown.html +++ b/examples/sample_pyrdown.html @@ -93,7 +93,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_scharr.html b/examples/sample_scharr.html index 88280cf..8759472 100644 --- a/examples/sample_scharr.html +++ b/examples/sample_scharr.html @@ -93,7 +93,7 @@ function demo_app(videoWidth, videoHeight) { canvasWidth = canvas.width; canvasHeight = canvas.height; - ctx = canvas.getContext('2d'); + ctx = canvas.getContext('2d', {"willReadFrequently": true}); ctx.fillStyle = "rgb(0,255,0)"; ctx.strokeStyle = "rgb(0,255,0)"; diff --git a/examples/sample_sobel.html b/examples/sample_sobel.html index f8c1b11..02973d7 100644 --- a/examples/sample_sobel.html +++ b/examples/sample_sobel.html @@ -22,10 +22,10 @@ - - - - + + + - - - - + + +