From b3a958258342ac71b6a11fb267468b6673395c15 Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Mon, 16 Jan 2023 11:36:16 +0100 Subject: [PATCH 1/6] Three.js and d3 npm modules usage --- .eslintrc.js | 1 - package.json | 2 +- src/js/main.js | 2 + src/js/model.js | 1 + src/js/tabs/pid_tuning.js | 1 + src/js/tabs/receiver.js | 1 + src/main.html | 7 - yarn.lock | 278 +++++++++++++++++++++++++++++++++++++- 8 files changed, 278 insertions(+), 15 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index fc32573f90..73b473234e 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -25,7 +25,6 @@ module.exports = { }, globals: { d3: true, - THREE: true, cordova: true, cordovaUI: true, ol: true, diff --git a/package.json b/package.json index 7d3fb8df54..7f7b525e73 100644 --- a/package.json +++ b/package.json @@ -56,6 +56,7 @@ "bluebird": "^3.7.2", "bonjour": "^3.5.0", "crypto-es": "^1.2.7", + "d3": "^7.8.1", "djv": "^2.1.4", "dompurify": "^2.4.0", "i18next": "^19.0.0", @@ -67,7 +68,6 @@ "jquery-touchswipe": "^1.6.19", "jquery-ui-npm": "^1.12.0", "jsdom": "^21.0.0", - "lru_map": "^0.3.3", "marked": "^4.1.1", "multicast-dns": "^7.2.5", "multiple-select": "^1.5.2", diff --git a/src/js/main.js b/src/js/main.js index a3377d163d..0eefc80b8f 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,4 +1,6 @@ import 'jbox'; +import 'bluebird'; +import * as THREE from 'three'; import '../components/init.js'; import { gui_log } from './gui_log.js'; // same, msp seems to be everywhere used from global scope diff --git a/src/js/model.js b/src/js/model.js index dfcda13aed..24462df56d 100644 --- a/src/js/model.js +++ b/src/js/model.js @@ -1,4 +1,5 @@ import FC from "./fc"; +import * as THREE from 'three'; // generate mixer export const mixerList = [ diff --git a/src/js/tabs/pid_tuning.js b/src/js/tabs/pid_tuning.js index 56de094c28..8af127d0dc 100644 --- a/src/js/tabs/pid_tuning.js +++ b/src/js/tabs/pid_tuning.js @@ -1,4 +1,5 @@ import { i18n } from "../localization"; +import * as THREE from "three"; import { colorTables, getColorForPercentage } from '../utils/css.js'; import GUI, { TABS } from '../gui'; import { tracking } from "../Analytics"; diff --git a/src/js/tabs/receiver.js b/src/js/tabs/receiver.js index 6436c63b11..c97fc1a39d 100644 --- a/src/js/tabs/receiver.js +++ b/src/js/tabs/receiver.js @@ -1,4 +1,5 @@ import { i18n } from "../localization"; +import * as THREE from "three"; import GUI, { TABS } from '../gui'; import { get as getConfig, set as setConfig } from '../ConfigStorage'; import { tracking } from "../Analytics"; diff --git a/src/main.html b/src/main.html index 4d96d71a4f..2241af0ff8 100644 --- a/src/main.html +++ b/src/main.html @@ -53,20 +53,13 @@ - - - - - - - diff --git a/yarn.lock b/yarn.lock index c553eeb584..6a6f06ff7a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5158,6 +5158,11 @@ command-exists@^1.2.9: resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== +commander@7: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^2.19.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" @@ -5701,6 +5706,250 @@ cyclist@^1.0.1: resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3, d3-array@^3.2.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.1.tgz#39331ea706f5709417d31bbb6ec152e0328b39b3" + integrity sha512-gUY/qeHq/yNqqoCKNq4vtpFLdoCdvyNpWoC/KNjhGbhDuQpAM9sIQQKkXSNpXa9h5KySs/gzm7R88WkUutgwWQ== + dependencies: + internmap "1 - 2" + +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + +"d3-color@1 - 3", d3-color@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" + integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== + +d3-contour@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-4.0.2.tgz#bb92063bc8c5663acb2422f99c73cbb6c6ae3bcc" + integrity sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA== + dependencies: + d3-array "^3.2.0" + +d3-delaunay@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" + integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== + dependencies: + delaunator "5" + +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + +"d3-format@1 - 3", d3-format@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" + integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== + +d3-geo@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.1.0.tgz#74fd54e1f4cebd5185ac2039217a98d39b0a4c0e" + integrity sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA== + dependencies: + d3-array "2.5.0 - 3" + +d3-hierarchy@3: + version "3.1.2" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" + integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== + +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + +"d3-path@1 - 3", d3-path@3, d3-path@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" + integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== + +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + +d3-shape@3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" + integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== + dependencies: + d3-path "^3.1.0" + +"d3-time-format@2 - 4", d3-time-format@4: + version "4.1.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" + integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== + dependencies: + d3-time "1 - 3" + +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" + integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== + dependencies: + d3-array "2 - 3" + +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^7.8.1: + version "7.8.1" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.8.1.tgz#f8c3a5843da027ea87c6b6faaf6d8648b70c0e02" + integrity sha512-fdipulGWUYTZTxxU9gDJ2P4mpZL2u7Oqe6n2FI95Q8UY0AjbKNYjPHvhLOsvR+HcSao4vo3YYy4Bk9CWOrt1Vw== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "4" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + d@1, d@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a" @@ -5905,6 +6154,13 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" +delaunator@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" + integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== + dependencies: + robust-predicates "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -8529,7 +8785,7 @@ iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.4: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3, iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@0.6.3, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -8735,6 +8991,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + interpret@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.2.0.tgz#d5061a6224be58e8083985f5014d844359576296" @@ -10237,11 +10498,6 @@ lru-queue@^0.1.0: dependencies: es5-ext "~0.10.2" -lru_map@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/lru_map/-/lru_map-0.3.3.tgz#b5c8351b9464cbd750335a79650a0ec0e56118dd" - integrity sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0= - macos-alias@~0.2.5: version "0.2.11" resolved "https://registry.yarnpkg.com/macos-alias/-/macos-alias-0.2.11.tgz#feeea6c13ba119814a43fc43c470b31e59ef718a" @@ -13444,6 +13700,11 @@ ripemd160@^2.0.0, ripemd160@^2.0.1: hash-base "^3.0.0" inherits "^2.0.1" +robust-predicates@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" + integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== + rollup-plugin-vue@^5.*.*: version "5.1.9" resolved "https://registry.yarnpkg.com/rollup-plugin-vue/-/rollup-plugin-vue-5.1.9.tgz#8769cfdac5531c2d1970222b7887b883db37b866" @@ -13519,6 +13780,11 @@ run-script-os@^1.1.6: resolved "https://registry.yarnpkg.com/run-script-os/-/run-script-os-1.1.6.tgz#8b0177fb1b54c99a670f95c7fdc54f18b9c72347" integrity sha512-ql6P2LzhBTTDfzKts+Qo4H94VUKpxKDFz6QxxwaUZN0mwvi7L3lpOI7BqPCq7lgDh3XLl0dpeXwfcVIitlrYrw== +rw@1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" + integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== + rx-lite-aggregates@^4.0.8: version "4.0.8" resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" From 4906e59e0b7847d93375a9eed4aba5aeee23a694 Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Mon, 16 Jan 2023 19:59:22 +0100 Subject: [PATCH 2/6] feat: remove dependency on bluebird --- .eslintrc.js | 1 + package.json | 1 - src/js/main.js | 1 - src/js/tabs/cli.js | 39 ++++++++++++++------------- src/js/tabs/osd.js | 31 ++++++++++++++------- src/tabs/presets/CliEngine.js | 51 ++++++++++++++++++----------------- test/setup.js | 1 - test/tabs/cli.test.js | 10 +++---- yarn.lock | 2 +- 9 files changed, 75 insertions(+), 62 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 73b473234e..a69224d5c4 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -24,6 +24,7 @@ module.exports = { 'no-duplicate-imports': 'error', }, globals: { + globalThis: true, d3: true, cordova: true, cordovaUI: true, diff --git a/package.json b/package.json index 7f7b525e73..bf70b54d09 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.13.0", "@panter/vue-i18next": "^0.15.2", - "bluebird": "^3.7.2", "bonjour": "^3.5.0", "crypto-es": "^1.2.7", "d3": "^7.8.1", diff --git a/src/js/main.js b/src/js/main.js index 0eefc80b8f..3fb52d5af1 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,5 +1,4 @@ import 'jbox'; -import 'bluebird'; import * as THREE from 'three'; import '../components/init.js'; import { gui_log } from './gui_log.js'; diff --git a/src/js/tabs/cli.js b/src/js/tabs/cli.js index 97fced6420..65d558e038 100644 --- a/src/js/tabs/cli.js +++ b/src/js/tabs/cli.js @@ -111,24 +111,27 @@ cli.initialize = function (callback) { self.history.add(outString.trim()); const outputArray = outString.split("\n"); - return Promise.reduce(outputArray, function(delay, line, index) { - return new Promise(function (resolve) { - GUI.timeout_add('CLI_send_slowly', function () { - let processingDelay = self.lineDelayMs; - line = line.trim(); - if (line.toLowerCase().startsWith('profile')) { - processingDelay = self.profileSwitchDelayMs; - } - const isLastCommand = outputArray.length === index + 1; - if (isLastCommand && self.cliBuffer) { - line = getCliCommand(line, self.cliBuffer); - } - self.sendLine(line, function () { - resolve(processingDelay); - }); - }, delay); - }); - }, 0); + return outputArray.reduce((p, line, index) => + p.then((delay) => + new Promise((resolve) => { + GUI.timeout_add('CLI_send_slowly', function () { + let processingDelay = self.lineDelayMs; + line = line.trim(); + if (line.toLowerCase().startsWith('profile')) { + processingDelay = self.profileSwitchDelayMs; + } + const isLastCommand = outputArray.length === index + 1; + if (isLastCommand && self.cliBuffer) { + line = getCliCommand(line, self.cliBuffer); + } + self.sendLine(line, function () { + resolve(processingDelay); + }); + }, delay); + }), + ), + Promise.resolve(0), + ); } $('#content').load("./tabs/cli.html", function () { diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index f778b3bd7e..6bb362e1b6 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -252,15 +252,28 @@ FONT.msp = { }, }; -FONT.upload = function($progress) { - return Promise.mapSeries(FONT.data.characters, function(data, i) { - $progress.val((i / FONT.data.characters.length) * 100); - return MSP.promise(MSPCodes.MSP_OSD_CHAR_WRITE, FONT.msp.encode(i)); - }) - .then(function() { - - console.log(`Uploaded all ${FONT.data.characters.length} characters`); - gui_log(i18n.getMessage('osdSetupUploadingFontEnd', {length: FONT.data.characters.length})); +FONT.upload = async function ($progress) { + return FONT.data.characters + .reduce( + (p, x, i) => + p.then(() => { + $progress.val((i / FONT.data.characters.length) * 100); + return MSP.promise( + MSPCodes.MSP_OSD_CHAR_WRITE, + FONT.msp.encode(i), + ); + }), + Promise.resolve(), + ) + .then(function () { + console.log( + `Uploaded all ${FONT.data.characters.length} characters` + ); + gui_log( + i18n.getMessage("osdSetupUploadingFontEnd", { + length: FONT.data.characters.length, + }), + ); OSD.GUI.fontManager.close(); diff --git a/src/tabs/presets/CliEngine.js b/src/tabs/presets/CliEngine.js index bc0d9a4109..dc7c5d23a4 100644 --- a/src/tabs/presets/CliEngine.js +++ b/src/tabs/presets/CliEngine.js @@ -88,31 +88,34 @@ export default class CliEngine this._reportSendCommandsProgress(0); const totalCommandsCount = strings.length; - return Promise.reduce(strings, (delay, line, index) => { - return new Promise((resolve) => { - GUI.timeout_add('CLI_send_slowly', () => { - let processingDelay = this.lineDelayMs; - line = line.trim(); - - if (line.toLowerCase().startsWith('profile')) { - processingDelay = this.profileSwitchDelayMs; - } - - const isLastCommand = totalCommandsCount === index + 1; - - if (isLastCommand && this.cliBuffer) { - line = this.getCliCommand(line, this.cliBuffer); - } - - this.sendLine(line, ()=>{ /* empty on-send callback */ }, () => { - resolve(processingDelay); - this._reportSendCommandsProgress(100.0 * index / totalCommandsCount); - }); - }, delay); + return strings.reduce(strings, (p, line, index) => + p.then((delay) => + new Promise((resolve) => { + GUI.timeout_add('CLI_send_slowly', () => { + let processingDelay = this.lineDelayMs; + line = line.trim(); + + if (line.toLowerCase().startsWith('profile')) { + processingDelay = this.profileSwitchDelayMs; + } + + const isLastCommand = totalCommandsCount === index + 1; + + if (isLastCommand && this.cliBuffer) { + line = this.getCliCommand(line, this.cliBuffer); + } + + this.sendLine(line, () => { /* empty on-send callback */ }, () => { + resolve(processingDelay); + this._reportSendCommandsProgress(100.0 * index / totalCommandsCount); + }); + }, delay); + }), + ), + Promise.resolve(0), + ).then(() => { + this._reportSendCommandsProgress(100); }); - }, 0).then(() => { - this._reportSendCommandsProgress(100); - }); } removePromptHash(promptText) { diff --git a/test/setup.js b/test/setup.js index b48c9c27d2..a6ee77dce4 100644 --- a/test/setup.js +++ b/test/setup.js @@ -1,4 +1,3 @@ -import "bluebird"; import { JSDOM } from "jsdom"; import $ from "jquery"; import { vi } from "vitest"; diff --git a/test/tabs/cli.test.js b/test/tabs/cli.test.js index ee893a812b..dd13f640f1 100644 --- a/test/tabs/cli.test.js +++ b/test/tabs/cli.test.js @@ -1,4 +1,3 @@ -import { Promise } from "bluebird"; import { describe, it, @@ -88,7 +87,7 @@ describe("cli", () => { cli.cliBuffer = "se"; cli.read({ data: toArrayBuffer( - "\r\x1B[Kserialpassthrough\tservo\r\n# ser" + "\r\x1B[Kserialpassthrough\tservo\r\n# ser", ), }); // Ambigous auto-complete from firmware is preceded with an \r carriage return @@ -153,9 +152,6 @@ describe("cli", () => { send: () => {}, }; }); - vi.spyOn(Promise, "reduce").mockImplementation((items, cb) => { - items.forEach((line, idx) => cb(0, line, idx)); - }); vi.spyOn(Promise, "Promise").mockResolvedValue(0); vi.spyOn(GUI, "timeout_add").mockImplementation((name, cb) => { @@ -222,7 +218,7 @@ describe("cli", () => { expect(cli.send).toHaveBeenCalledOnce(); expect(cli.send).toHaveBeenCalledWith( - `${backspaceCode.repeat(3)}\t` + `${backspaceCode.repeat(3)}\t`, ); done(); }); @@ -266,7 +262,7 @@ describe("cli", () => { expect(cli.send).toHaveBeenCalledOnce(); expect(cli.send).toHaveBeenCalledWith( - `${backspaceCode.repeat(3)}\n` + `${backspaceCode.repeat(3)}\n`, ); done(); }); diff --git a/yarn.lock b/yarn.lock index 6a6f06ff7a..061d69a9d4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4282,7 +4282,7 @@ bl@^4.0.3: inherits "^2.0.4" readable-stream "^3.4.0" -bluebird@^3.1.1, bluebird@^3.3.5, bluebird@^3.5.5, bluebird@^3.7.2: +bluebird@^3.1.1, bluebird@^3.3.5, bluebird@^3.5.5: version "3.7.2" resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== From 0c6ec71fe326956f5007f6b10223295e8f4c7ceb Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Tue, 17 Jan 2023 08:32:28 +0100 Subject: [PATCH 3/6] feat: drop `object-hash` dependency --- package.json | 1 - src/js/serial_backend.js | 3 ++- src/main.html | 1 - yarn.lock | 5 ----- 4 files changed, 2 insertions(+), 8 deletions(-) diff --git a/package.json b/package.json index bf70b54d09..ffbb031706 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,6 @@ "multicast-dns": "^7.2.5", "multiple-select": "^1.5.2", "nw-vue-devtools-prebuilt": "^0.0.10", - "object-hash": "^3.0.0", "select2": "^4.0.13", "semver-min": "^0.7.2", "short-unique-id": "^4.4.4", diff --git a/src/js/serial_backend.js b/src/js/serial_backend.js index b85ad82def..0b1f5e62d6 100644 --- a/src/js/serial_backend.js +++ b/src/js/serial_backend.js @@ -22,6 +22,7 @@ import { updateTabList } from "./utils/updateTabList"; import { get as getConfig, set as setConfig } from "./ConfigStorage"; import { tracking } from "./Analytics"; import semver from 'semver'; +import CryptoES from 'crypto-es'; let mspHelper; let connectionTimestamp; @@ -463,7 +464,7 @@ function processUid() { MSP.send_message(MSPCodes.MSP_UID, false, false, function () { const deviceIdentifier = FC.CONFIG.deviceIdentifier; - tracking.setFlightControllerData(tracking.DATA.MCU_ID, objectHash.sha1(deviceIdentifier)); + tracking.setFlightControllerData(tracking.DATA.MCU_ID, CryptoES.SHA1(deviceIdentifier)); tracking.sendEvent(tracking.EVENT_CATEGORIES.FLIGHT_CONTROLLER, 'Connected'); connectionTimestamp = Date.now(); gui_log(i18n.getMessage('uniqueDeviceIdReceived', [deviceIdentifier])); diff --git a/src/main.html b/src/main.html index 2241af0ff8..dd4290ee9a 100644 --- a/src/main.html +++ b/src/main.html @@ -65,7 +65,6 @@ - diff --git a/yarn.lock b/yarn.lock index 061d69a9d4..53a05c3654 100644 --- a/yarn.lock +++ b/yarn.lock @@ -11615,11 +11615,6 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-hash@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-3.0.0.tgz#73f97f753e7baffc0e2cc9d6e079079744ac82e9" - integrity sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw== - object-inspect@^1.12.0: version "1.12.0" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.0.tgz#6e2c120e868fd1fd18cb4f18c31741d0d6e776f0" From d946ce7c2ee3d352b97fe6592ef84c7ff47a49b3 Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Fri, 20 Jan 2023 07:57:56 +0100 Subject: [PATCH 4/6] feat: jquery using as module --- src/js/jQuery.js | 6 ++++++ src/js/jQueryPlugins.js | 8 ++++++++ src/js/main.js | 2 ++ src/main.html | 10 ---------- 4 files changed, 16 insertions(+), 10 deletions(-) create mode 100644 src/js/jQuery.js create mode 100644 src/js/jQueryPlugins.js diff --git a/src/js/jQuery.js b/src/js/jQuery.js new file mode 100644 index 0000000000..f7a9e5944e --- /dev/null +++ b/src/js/jQuery.js @@ -0,0 +1,6 @@ +import $ from 'jquery'; + +window.$ = $; +window.jQuery = $; + +export default $; diff --git a/src/js/jQueryPlugins.js b/src/js/jQueryPlugins.js new file mode 100644 index 0000000000..41d5cae573 --- /dev/null +++ b/src/js/jQueryPlugins.js @@ -0,0 +1,8 @@ +import 'jquery-ui-npm'; +import '../../libraries/jquery.nouislider.all.min.js'; +import '../../libraries/jquery.flightindicators.js'; +import '../../libraries/jquery.ba-throttle-debounce.min.js'; +import 'jquery-textcomplete'; +import 'jquery-touchswipe'; +import 'select2'; +import 'multiple-select'; diff --git a/src/js/main.js b/src/js/main.js index 3fb52d5af1..c850cfd106 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,4 +1,6 @@ import 'jbox'; +import $ from './jQuery'; +import './jQueryPlugins'; import * as THREE from 'three'; import '../components/init.js'; import { gui_log } from './gui_log.js'; diff --git a/src/main.html b/src/main.html index dd4290ee9a..fa7e477b7d 100644 --- a/src/main.html +++ b/src/main.html @@ -55,16 +55,6 @@ - - - - - - - - - - From 82477aa4b11939f598aed4d1a215a893861d9eee Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Fri, 20 Jan 2023 07:58:25 +0100 Subject: [PATCH 5/6] chore: lint --- src/js/tabs/osd.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/js/tabs/osd.js b/src/js/tabs/osd.js index 6bb362e1b6..49c4cbc6bd 100644 --- a/src/js/tabs/osd.js +++ b/src/js/tabs/osd.js @@ -267,7 +267,7 @@ FONT.upload = async function ($progress) { ) .then(function () { console.log( - `Uploaded all ${FONT.data.characters.length} characters` + `Uploaded all ${FONT.data.characters.length} characters`, ); gui_log( i18n.getMessage("osdSetupUploadingFontEnd", { From 0431650d074a33af1300573fbad38f6960bb186c Mon Sep 17 00:00:00 2001 From: Tomas Chmelevskij Date: Mon, 23 Jan 2023 07:18:11 +0100 Subject: [PATCH 6/6] feat: remove jquery globals --- gulpfile.js | 7 ++++++- package.json | 3 ++- src/js/jQuery.js | 6 ------ src/js/jQueryPlugins.js | 8 ++++---- src/js/main.js | 4 +++- src/js/utils/common.js | 1 + src/tabs/receiver_msp.html | 6 ------ yarn.lock | 24 ++++++++++++++++++++---- 8 files changed, 36 insertions(+), 23 deletions(-) delete mode 100644 src/js/jQuery.js diff --git a/gulpfile.js b/gulpfile.js index 1d10f4fd64..ab13bbd15d 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -392,6 +392,7 @@ function dist_rollup() { const alias = require('@rollup/plugin-alias'); const vue = require('rollup-plugin-vue'); const rollupReplace = require('@rollup/plugin-replace'); + const inject = require('@rollup/plugin-inject'); return rollup .rollup({ @@ -402,10 +403,14 @@ function dist_rollup() { // it with `import/export` file doesn't have to be here. // I will be picked up by rollup and bundled accordingly. 'js/main_cordova': 'src/js/main_cordova.js', - 'js/utils/common': 'src/js/utils/common.js', + // 'js/utils/common': 'src/js/utils/common.js', 'js/main': 'src/js/main.js', }, plugins: [ + inject({ + $: 'jquery', + jQuery: 'jquery', + }), alias({ entries: { vue: require.resolve('vue/dist/vue.esm.js'), diff --git a/package.json b/package.json index ffbb031706..8030b085e0 100644 --- a/package.json +++ b/package.json @@ -53,6 +53,7 @@ "dependencies": { "@fortawesome/fontawesome-free": "^5.13.0", "@panter/vue-i18next": "^0.15.2", + "@rollup/plugin-inject": "^5.0.3", "bonjour": "^3.5.0", "crypto-es": "^1.2.7", "d3": "^7.8.1", @@ -65,7 +66,7 @@ "jquery": "^3.6.1", "jquery-textcomplete": "^1.8.5", "jquery-touchswipe": "^1.6.19", - "jquery-ui-npm": "^1.12.0", + "jquery-ui": "^1.12.0", "jsdom": "^21.0.0", "marked": "^4.1.1", "multicast-dns": "^7.2.5", diff --git a/src/js/jQuery.js b/src/js/jQuery.js deleted file mode 100644 index f7a9e5944e..0000000000 --- a/src/js/jQuery.js +++ /dev/null @@ -1,6 +0,0 @@ -import $ from 'jquery'; - -window.$ = $; -window.jQuery = $; - -export default $; diff --git a/src/js/jQueryPlugins.js b/src/js/jQueryPlugins.js index 41d5cae573..a2f66d1386 100644 --- a/src/js/jQueryPlugins.js +++ b/src/js/jQueryPlugins.js @@ -1,8 +1,8 @@ -import 'jquery-ui-npm'; -import '../../libraries/jquery.nouislider.all.min.js'; -import '../../libraries/jquery.flightindicators.js'; -import '../../libraries/jquery.ba-throttle-debounce.min.js'; +import 'jquery-ui'; import 'jquery-textcomplete'; import 'jquery-touchswipe'; import 'select2'; import 'multiple-select'; +import '../../libraries/jquery.nouislider.all.min.js'; +import '../../libraries/jquery.flightindicators.js'; +import '../../libraries/jquery.ba-throttle-debounce.min.js'; diff --git a/src/js/main.js b/src/js/main.js index c850cfd106..e354031668 100644 --- a/src/js/main.js +++ b/src/js/main.js @@ -1,9 +1,11 @@ +import $ from 'jquery'; import 'jbox'; -import $ from './jQuery'; +// TODO: this is needed for some of the tabs, might make more sense to import things there. import './jQueryPlugins'; import * as THREE from 'three'; import '../components/init.js'; import { gui_log } from './gui_log.js'; +import * as d3 from 'd3'; // same, msp seems to be everywhere used from global scope import './msp/MSPHelper.js'; import { i18n } from './localization.js'; diff --git a/src/js/utils/common.js b/src/js/utils/common.js index bc5306c07c..3b24c39d69 100644 --- a/src/js/utils/common.js +++ b/src/js/utils/common.js @@ -1,6 +1,7 @@ import semver from "semver"; import { mixerList } from "../model"; import CONFIGURATOR from "../data_storage"; +import $ from "jquery"; export function millitime() { return new Date().getTime(); diff --git a/src/tabs/receiver_msp.html b/src/tabs/receiver_msp.html index 8bed265316..7c3933c325 100644 --- a/src/tabs/receiver_msp.html +++ b/src/tabs/receiver_msp.html @@ -1,12 +1,6 @@ - - - - - - diff --git a/yarn.lock b/yarn.lock index 53a05c3654..edeb0bc93b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1830,6 +1830,15 @@ is-reference "1.2.1" magic-string "^0.27.0" +"@rollup/plugin-inject@^5.0.3": + version "5.0.3" + resolved "https://registry.yarnpkg.com/@rollup/plugin-inject/-/plugin-inject-5.0.3.tgz#0783711efd93a9547d52971db73b2fb6140a67b1" + integrity sha512-411QlbL+z2yXpRWFXSmw/teQRMkXcAAC8aYTemc15gwJRpvEVDQwoe+N/HTFD8RFG8+88Bme9DK2V9CVm7hJdA== + dependencies: + "@rollup/pluginutils" "^5.0.1" + estree-walker "^2.0.2" + magic-string "^0.27.0" + "@rollup/plugin-node-resolve@^15.0.1": version "15.0.1" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-15.0.1.tgz#72be449b8e06f6367168d5b3cd5e2802e0248971" @@ -9761,10 +9770,17 @@ jquery-touchswipe@^1.6.19: resolved "https://registry.yarnpkg.com/jquery-touchswipe/-/jquery-touchswipe-1.6.19.tgz#dfd5ddaec0b78212dd500d29707129b9c7fd6cd4" integrity sha512-b0BGje9reNRU3u6ksAK9QqnX7yBRgLNe/wYG7DOfyDlhBlYjayIT8bSOHmcuvptIDW/ubM9CTW/mnZf9Rohuow== -jquery-ui-npm@^1.12.0: - version "1.12.0" - resolved "https://registry.yarnpkg.com/jquery-ui-npm/-/jquery-ui-npm-1.12.0.tgz#3f2cae88195c7d48acf3786cfa900d0403814e4d" - integrity sha1-PyyuiBlcfUis83hs+pANBAOBTk0= +jquery-ui@^1.12.0: + version "1.13.2" + resolved "https://registry.yarnpkg.com/jquery-ui/-/jquery-ui-1.13.2.tgz#de03580ae6604773602f8d786ad1abfb75232034" + integrity sha512-wBZPnqWs5GaYJmo1Jj0k/mrSkzdQzKDwhXNtHKcBdAcKVxMM3KNYFq+iJ2i1rwiG53Z8M4mTn3Qxrm17uH1D4Q== + dependencies: + jquery ">=1.8.0 <4.0.0" + +"jquery@>=1.8.0 <4.0.0": + version "3.6.3" + resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.3.tgz#23ed2ffed8a19e048814f13391a19afcdba160e6" + integrity sha512-bZ5Sy3YzKo9Fyc8wH2iIQK4JImJ6R0GWI9kL1/k7Z91ZBNgkRXE6U0JfHIizZbort8ZunhSI3jw9I6253ahKfg== jquery@^3.6.0: version "3.6.0"