fix: add reconnect logic to devtools

This commit is contained in:
pelikhan 2021-12-31 10:21:56 -08:00
Родитель 5a5bfa0022
Коммит 51876e8bc2
4 изменённых файлов: 231 добавлений и 185 удалений

Просмотреть файл

@ -37,27 +37,27 @@
"homepage": "https://github.com/microsoft/jacdac-cli#readme",
"dependencies": {
"commander": "^8.3.0",
"jacdac-ts": "^1.22.5",
"jacdac-ts": "^1.24.0",
"faye-websocket": "^0.11.4"
},
"devDependencies": {
"@semantic-release/exec": "^6.0.2",
"@semantic-release/exec": "^6.0.3",
"@semantic-release/git": "^10.0.1",
"@typescript-eslint/eslint-plugin": "^5.3.1",
"@typescript-eslint/parser": "^5.3.1",
"eslint": "^8.2.0",
"@typescript-eslint/eslint-plugin": "^5.8.1",
"@typescript-eslint/parser": "^5.8.1",
"eslint": "^8.5.0",
"eslint-config-standard": "^16.0.3",
"eslint-plugin-import": "^2.25.3",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^5.1.1",
"microbundle": "^0.14.1",
"prettier": "^2.4.1",
"semantic-release": "^18.0.0",
"eslint-plugin-promise": "^6.0.0",
"microbundle": "^0.14.2",
"prettier": "^2.5.1",
"semantic-release": "^18.0.1",
"tslint-microsoft-contrib": "^6.2.0",
"typescript": "^4.4.4"
"typescript": "^4.5.4"
},
"peerDependencies": {
"serialport": "^9.2.5",
"serialport": "^9.2.8",
"webusb": "^2.2.0"
},
"files": [

Просмотреть файл

@ -7,37 +7,48 @@
var protocol = secure ? "wss:" : "ws:";
var hostname = location.hostname;
var port = secure ? 443 : 8081;
var wsurl = protocol + "//" + hostname + ":" + port + "/";
// node.js -> iframe dashboard
var ws = new WebSocket(wsurl);
ws.binaryType = "arraybuffer";
console.debug("devtools: connecting " + wsurl + "...");
ws.addEventListener("open", function () {
console.debug("devtools: connected " + ws.url);
});
ws.addEventListener("message", function (msg) {
var data = new Uint8Array(msg.data);
var pktMsg = {
type: "messagepacket",
channel: "jacdac",
data: data,
sender: sender
};
frame.contentWindow.postMessage(pktMsg, "*");
});
ws.addEventListener("close", function () {
console.debug("devtools: connection closed");
});
ws.addEventListener("error", function (e) {
console.error("devtools: error " + (e + ""), e);
});
// iframe dashboard -> node.js
window.addEventListener("message", function (msg) {
var data = msg.data;
if (data && data.type === "messagepacket" && data.channel === "jacdac") {
if ((ws === null || ws === void 0 ? void 0 : ws.readyState) === WebSocket.OPEN) {
ws.send(data.data);
var wsurl = "".concat(protocol, "//").concat(hostname, ":").concat(port, "/");
var ws;
var connectSocket = function () {
// already connected or connecting
if (ws)
return;
// node.js -> iframe dashboard
ws = new WebSocket(wsurl);
ws.binaryType = "arraybuffer";
console.debug("devtools: connecting ".concat(wsurl, "..."));
ws.addEventListener("open", function () {
console.debug("devtools: connected ".concat(ws.url));
});
ws.addEventListener("message", function (msg) {
var data = new Uint8Array(msg.data);
var pktMsg = {
type: "messagepacket",
channel: "jacdac",
data: data,
sender: sender
};
frame.contentWindow.postMessage(pktMsg, "*");
});
ws.addEventListener("close", function () {
console.debug("devtools: connection closed");
ws = undefined;
});
ws.addEventListener("error", function (e) {
console.error("devtools: error ".concat(e + ""), e);
ws === null || ws === void 0 ? void 0 : ws.close();
});
// iframe dashboard -> node.js
window.addEventListener("message", function (msg) {
var data = msg.data;
if (data && data.type === "messagepacket" && data.channel === "jacdac") {
if ((ws === null || ws === void 0 ? void 0 : ws.readyState) === WebSocket.OPEN) {
ws.send(data.data);
}
}
}
});
});
};
// start background connection
setInterval(connectSocket, 5000);
connectSocket();
})();

Просмотреть файл

@ -9,36 +9,49 @@
const hostname = location.hostname
const port = secure ? 443 : 8081
const wsurl = `${protocol}//${hostname}:${port}/`
// node.js -> iframe dashboard
const ws = new WebSocket(wsurl)
ws.binaryType = "arraybuffer"
console.debug(`devtools: connecting ${wsurl}...`)
ws.addEventListener("open", () => {
console.debug(`devtools: connected ${ws.url}`)
})
ws.addEventListener("message", (msg) => {
const data = new Uint8Array(msg.data)
const pktMsg = {
type: "messagepacket",
channel: "jacdac",
data,
sender,
}
frame.contentWindow.postMessage(pktMsg, "*")
})
ws.addEventListener("close", () => {
console.debug(`devtools: connection closed`)
})
ws.addEventListener("error", (e: Event) => {
console.error(`devtools: error ${e + ""}`, e)
})
// iframe dashboard -> node.js
window.addEventListener("message", msg => {
const data = msg.data
if (data && data.type === "messagepacket" && data.channel === "jacdac") {
if (ws?.readyState === WebSocket.OPEN) {
ws.send(data.data)
let ws: WebSocket
const connectSocket = () => {
// already connected or connecting
if (ws) return
// node.js -> iframe dashboard
ws = new WebSocket(wsurl)
ws.binaryType = "arraybuffer"
console.debug(`devtools: connecting ${wsurl}...`)
ws.addEventListener("open", () => {
console.debug(`devtools: connected ${ws.url}`)
})
ws.addEventListener("message", (msg) => {
const data = new Uint8Array(msg.data)
const pktMsg = {
type: "messagepacket",
channel: "jacdac",
data,
sender,
}
}
})
frame.contentWindow.postMessage(pktMsg, "*")
})
ws.addEventListener("close", () => {
console.debug(`devtools: connection closed`)
ws = undefined
})
ws.addEventListener("error", (e: Event) => {
console.error(`devtools: error ${e + ""}`, e)
ws?.close()
})
// iframe dashboard -> node.js
window.addEventListener("message", msg => {
const data = msg.data
if (data && data.type === "messagepacket" && data.channel === "jacdac") {
if (ws?.readyState === WebSocket.OPEN) {
ws.send(data.data)
}
}
})
}
// start background connection
setInterval(connectSocket, 5000);
connectSocket();
})()

244
yarn.lock
Просмотреть файл

@ -967,14 +967,14 @@
"@babel/helper-validator-identifier" "^7.15.7"
to-fast-properties "^2.0.0"
"@eslint/eslintrc@^1.0.4":
version "1.0.4"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.4.tgz#dfe0ff7ba270848d10c5add0715e04964c034b31"
integrity sha512-h8Vx6MdxwWI2WM8/zREHMoqdgLNXEL4QX3MWSVMdyNJGvXVOs+6lp+m2hc3FnuMHDc4poxFNI20vCk0OmI4G0Q==
"@eslint/eslintrc@^1.0.5":
version "1.0.5"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.0.5.tgz#33f1b838dbf1f923bfa517e008362b78ddbbf318"
integrity sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
espree "^9.0.0"
espree "^9.2.0"
globals "^13.9.0"
ignore "^4.0.6"
import-fresh "^3.2.1"
@ -987,18 +987,18 @@
resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.2.tgz"
integrity sha512-82cpyJyKRoQoRi+14ibCeGPu0CwypgtBAdBhq1WfvagpCZNKqwXbKwXllYSMG91DhmG4jt9gN8eP6lGOtozuaw==
"@humanwhocodes/config-array@^0.6.0":
version "0.6.0"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.6.0.tgz#b5621fdb3b32309d2d16575456cbc277fa8f021a"
integrity sha512-JQlEKbcgEUjBFhLIF4iqM7u/9lwgHRBcpHrmUNCALK0Q3amXN6lxdoXLnF0sm11E9VqTmBALR87IlUg1bZ8A9A==
"@humanwhocodes/config-array@^0.9.2":
version "0.9.2"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.9.2.tgz#68be55c737023009dfc5fe245d51181bb6476914"
integrity sha512-UXOuFCGcwciWckOpmfKDq/GyhlTf9pN/BzG//x8p8zTOFEcGuA68ANXheFS0AGvy3qgZqLBUkMs7hqzqCKOVwA==
dependencies:
"@humanwhocodes/object-schema" "^1.2.0"
"@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
minimatch "^3.0.4"
"@humanwhocodes/object-schema@^1.2.0":
"@humanwhocodes/object-schema@^1.2.1":
version "1.2.1"
resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz"
resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz#b520529ec21d8e5945a1851dfd1c32e94e39ff45"
integrity sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==
"@isaacs/string-locale-compare@^1.0.1", "@isaacs/string-locale-compare@^1.1.0":
@ -1336,14 +1336,14 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
"@semantic-release/commit-analyzer@^9.0.0":
version "9.0.1"
resolved "https://registry.npmjs.org/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.1.tgz"
integrity sha512-ncNsnrLmiykhgNZUXNvhhAjNN0me7VGIb0X5hu3ogyi5DDPapjGAHdEffO5vi+HX1BFWLRD/Ximx5PjGAKjAqQ==
"@semantic-release/commit-analyzer@^9.0.2":
version "9.0.2"
resolved "https://registry.yarnpkg.com/@semantic-release/commit-analyzer/-/commit-analyzer-9.0.2.tgz#a78e54f9834193b55f1073fa6258eecc9a545e03"
integrity sha512-E+dr6L+xIHZkX4zNMe6Rnwg4YQrWNXK+rNsvwOPpdFppvZO1olE2fIgWhv89TkQErygevbjsZFSIxp+u6w2e5g==
dependencies:
conventional-changelog-angular "^5.0.0"
conventional-commits-filter "^2.0.0"
conventional-commits-parser "^3.0.7"
conventional-commits-parser "^3.2.3"
debug "^4.0.0"
import-from "^4.0.0"
lodash "^4.17.4"
@ -1359,10 +1359,10 @@
resolved "https://registry.npmjs.org/@semantic-release/error/-/error-3.0.0.tgz"
integrity sha512-5hiM4Un+tpl4cKw3lV4UgzJj+SmfNIDCLLw0TepzQxz9ZGV5ixnqkzIVF+3tp0ZHgcMKE+VNGHJjEeyFG2dcSw==
"@semantic-release/exec@^6.0.2":
version "6.0.2"
resolved "https://registry.npmjs.org/@semantic-release/exec/-/exec-6.0.2.tgz"
integrity sha512-ciaqJTHB1TFtU6C78xrgmoNI9UyfheR9+Bk6Ico7CJ7+ADOEAvUrPBKvz64UCfoWlg+SlKGTVGbFnA509wRUVw==
"@semantic-release/exec@^6.0.3":
version "6.0.3"
resolved "https://registry.yarnpkg.com/@semantic-release/exec/-/exec-6.0.3.tgz#d212fdf19633bdfb553de6cb6c7f8781933224db"
integrity sha512-bxAq8vLOw76aV89vxxICecEa8jfaWwYITw6X74zzlO0mc/Bgieqx9kBRz9z96pHectiTAtsCwsQcUyLYWnp3VQ==
dependencies:
"@semantic-release/error" "^3.0.0"
aggregate-error "^3.0.0"
@ -1492,11 +1492,16 @@
resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz"
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/node@*", "@types/node@^16.11.7":
"@types/node@*":
version "16.11.7"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.7.tgz#36820945061326978c42a01e56b61cd223dfdc42"
integrity sha512-QB5D2sqfSjCmTuWcBWyJ+/44bcjO7VbjSbOE0ucoVbAsSNQc4Lt6QkgkVXkTDwkL4z/beecZNDvVX15D4P8Jbw==
"@types/node@^16.11.11":
version "16.11.17"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.17.tgz#ae146499772e33fc6382e1880bc567e41a528586"
integrity sha512-C1vTZME8cFo8uxY2ui41xcynEotVkczIVI5AjLmy5pkpBv/FtG+jhtOlfcPysI8VRVwoOMv6NJm44LGnoMSWkw==
"@types/normalize-package-data@^2.4.0":
version "2.4.1"
resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz"
@ -1534,13 +1539,13 @@
resolved "https://registry.npmjs.org/@types/web-bluetooth/-/web-bluetooth-0.0.11.tgz"
integrity sha512-2CF3Kk2Rcvg/c2QzO7mXUhY7eL9CC3aKzrF+dNWNmp7Q8bmlvjmUM1nFPMSngawdJ+CcIdu8eJlQRytBgAZR9w==
"@typescript-eslint/eslint-plugin@^5.3.1":
version "5.3.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.3.1.tgz#d8ff412f10f54f6364e7fd7c1e70eb6767f434c3"
integrity sha512-cFImaoIr5Ojj358xI/SDhjog57OK2NqlpxwdcgyxDA3bJlZcJq5CPzUXtpD7CxI2Hm6ATU7w5fQnnkVnmwpHqw==
"@typescript-eslint/eslint-plugin@^5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.8.1.tgz#97dfaa39f38e99f86801fdf34f9f1bed66704258"
integrity sha512-wTZ5oEKrKj/8/366qTM366zqhIKAp6NCMweoRONtfuC07OAU9nVI2GZZdqQ1qD30WAAtcPdkH+npDwtRFdp4Rw==
dependencies:
"@typescript-eslint/experimental-utils" "5.3.1"
"@typescript-eslint/scope-manager" "5.3.1"
"@typescript-eslint/experimental-utils" "5.8.1"
"@typescript-eslint/scope-manager" "5.8.1"
debug "^4.3.2"
functional-red-black-tree "^1.0.1"
ignore "^5.1.8"
@ -1548,60 +1553,60 @@
semver "^7.3.5"
tsutils "^3.21.0"
"@typescript-eslint/experimental-utils@5.3.1":
version "5.3.1"
resolved "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-5.3.1.tgz"
integrity sha512-RgFn5asjZ5daUhbK5Sp0peq0SSMytqcrkNfU4pnDma2D8P3ElZ6JbYjY8IMSFfZAJ0f3x3tnO3vXHweYg0g59w==
"@typescript-eslint/experimental-utils@5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-5.8.1.tgz#01861eb2f0749f07d02db342b794145a66ed346f"
integrity sha512-fbodVnjIDU4JpeXWRDsG5IfIjYBxEvs8EBO8W1+YVdtrc2B9ppfof5sZhVEDOtgTfFHnYQJDI8+qdqLYO4ceww==
dependencies:
"@types/json-schema" "^7.0.9"
"@typescript-eslint/scope-manager" "5.3.1"
"@typescript-eslint/types" "5.3.1"
"@typescript-eslint/typescript-estree" "5.3.1"
"@typescript-eslint/scope-manager" "5.8.1"
"@typescript-eslint/types" "5.8.1"
"@typescript-eslint/typescript-estree" "5.8.1"
eslint-scope "^5.1.1"
eslint-utils "^3.0.0"
"@typescript-eslint/parser@^5.3.1":
version "5.3.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.3.1.tgz#8ff1977c3d3200c217b3e4628d43ef92f89e5261"
integrity sha512-TD+ONlx5c+Qhk21x9gsJAMRohWAUMavSOmJgv3JGy9dgPhuBd5Wok0lmMClZDyJNLLZK1JRKiATzCKZNUmoyfw==
"@typescript-eslint/parser@^5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.8.1.tgz#380f5f1e596b540059998aa3fc80d78f0f9b0d0a"
integrity sha512-K1giKHAjHuyB421SoXMXFHHVI4NdNY603uKw92++D3qyxSeYvC10CBJ/GE5Thpo4WTUvu1mmJI2/FFkz38F2Gw==
dependencies:
"@typescript-eslint/scope-manager" "5.3.1"
"@typescript-eslint/types" "5.3.1"
"@typescript-eslint/typescript-estree" "5.3.1"
"@typescript-eslint/scope-manager" "5.8.1"
"@typescript-eslint/types" "5.8.1"
"@typescript-eslint/typescript-estree" "5.8.1"
debug "^4.3.2"
"@typescript-eslint/scope-manager@5.3.1":
version "5.3.1"
resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.3.1.tgz"
integrity sha512-XksFVBgAq0Y9H40BDbuPOTUIp7dn4u8oOuhcgGq7EoDP50eqcafkMVGrypyVGvDYHzjhdUCUwuwVUK4JhkMAMg==
"@typescript-eslint/scope-manager@5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.8.1.tgz#7fc0604f7ade8833e4d42cebaa1e2debf8b932e4"
integrity sha512-DGxJkNyYruFH3NIZc3PwrzwOQAg7vvgsHsHCILOLvUpupgkwDZdNq/cXU3BjF4LNrCsVg0qxEyWasys5AiJ85Q==
dependencies:
"@typescript-eslint/types" "5.3.1"
"@typescript-eslint/visitor-keys" "5.3.1"
"@typescript-eslint/types" "5.8.1"
"@typescript-eslint/visitor-keys" "5.8.1"
"@typescript-eslint/types@5.3.1":
version "5.3.1"
resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.3.1.tgz"
integrity sha512-bG7HeBLolxKHtdHG54Uac750eXuQQPpdJfCYuw4ZI3bZ7+GgKClMWM8jExBtp7NSP4m8PmLRM8+lhzkYnSmSxQ==
"@typescript-eslint/types@5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.8.1.tgz#04c6b49ebc8c99238238a6b8b43f2fc613983b5a"
integrity sha512-L/FlWCCgnjKOLefdok90/pqInkomLnAcF9UAzNr+DSqMC3IffzumHTQTrINXhP1gVp9zlHiYYjvozVZDPleLcA==
"@typescript-eslint/typescript-estree@5.3.1":
version "5.3.1"
resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.3.1.tgz"
integrity sha512-PwFbh/PKDVo/Wct6N3w+E4rLZxUDgsoII/GrWM2A62ETOzJd4M6s0Mu7w4CWsZraTbaC5UQI+dLeyOIFF1PquQ==
"@typescript-eslint/typescript-estree@5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.8.1.tgz#a592855be688e7b729a1e9411d7d74ec992ed6ef"
integrity sha512-26lQ8l8tTbG7ri7xEcCFT9ijU5Fk+sx/KRRyyzCv7MQ+rZZlqiDPtMKWLC8P7o+dtCnby4c+OlxuX1tp8WfafQ==
dependencies:
"@typescript-eslint/types" "5.3.1"
"@typescript-eslint/visitor-keys" "5.3.1"
"@typescript-eslint/types" "5.8.1"
"@typescript-eslint/visitor-keys" "5.8.1"
debug "^4.3.2"
globby "^11.0.4"
is-glob "^4.0.3"
semver "^7.3.5"
tsutils "^3.21.0"
"@typescript-eslint/visitor-keys@5.3.1":
version "5.3.1"
resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.3.1.tgz"
integrity sha512-3cHUzUuVTuNHx0Gjjt5pEHa87+lzyqOiHXy/Gz+SJOCW1mpw9xQHIIEwnKn+Thph1mgWyZ90nboOcSuZr/jTTQ==
"@typescript-eslint/visitor-keys@5.8.1":
version "5.8.1"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.8.1.tgz#58a2c566265d5511224bc316149890451c1bbab0"
integrity sha512-SWgiWIwocK6NralrJarPZlWdr0hZnj5GXHIgfdm8hNkyKvpeQuFyLP6YjSIe9kf3YBIfU6OHSZLYkQ+smZwtNg==
dependencies:
"@typescript-eslint/types" "5.3.1"
"@typescript-eslint/types" "5.8.1"
eslint-visitor-keys "^3.0.0"
JSONStream@^1.0.4:
@ -1622,10 +1627,10 @@ acorn-jsx@^5.3.1:
resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz"
integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==
acorn@^8.5.0:
version "8.5.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.5.0.tgz#4512ccb99b3698c752591e9bb4472e38ad43cee2"
integrity sha512-yXbYeFy+jUuYd3/CDcg2NkIYE991XYX/bje7LmjJigUciaeO1JR4XxXgCIV1/Zc/dRuFEyw1L0pbA+qynJkW5Q==
acorn@^8.6.0:
version "8.7.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.0.tgz#90951fde0f8f09df93549481e5fc141445b791cf"
integrity sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==
agent-base@6, agent-base@^6.0.2:
version "6.0.2"
@ -2309,7 +2314,7 @@ conventional-commits-filter@^2.0.0, conventional-commits-filter@^2.0.7:
lodash.ismatch "^4.4.0"
modify-values "^1.0.0"
conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7:
conventional-commits-parser@^3.0.0:
version "3.2.3"
resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.3.tgz"
integrity sha512-YyRDR7On9H07ICFpRm/igcdjIqebXbvf4Cff+Pf0BrBys1i1EOzx9iFXNlAbdrLAR8jf7bkUYkDAr8pEy0q4Pw==
@ -2321,6 +2326,18 @@ conventional-commits-parser@^3.0.0, conventional-commits-parser@^3.0.7:
split2 "^3.0.0"
through2 "^4.0.0"
conventional-commits-parser@^3.2.3:
version "3.2.4"
resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972"
integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q==
dependencies:
JSONStream "^1.0.4"
is-text-path "^1.0.1"
lodash "^4.17.15"
meow "^8.0.0"
split2 "^3.0.0"
through2 "^4.0.0"
convert-source-map@^1.7.0:
version "1.8.0"
resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz"
@ -2857,10 +2874,10 @@ eslint-plugin-node@^11.1.0:
resolve "^1.10.1"
semver "^6.1.0"
eslint-plugin-promise@^5.1.1:
version "5.1.1"
resolved "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-5.1.1.tgz"
integrity sha512-XgdcdyNzHfmlQyweOPTxmc7pIsS6dE4MvwhXWMQ2Dxs1XAL2GJDilUsjWen6TWik0aSI+zD/PqocZBblcm9rdA==
eslint-plugin-promise@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18"
integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==
eslint-scope@^5.1.1:
version "5.1.1"
@ -2870,10 +2887,10 @@ eslint-scope@^5.1.1:
esrecurse "^4.3.0"
estraverse "^4.1.1"
eslint-scope@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-6.0.0.tgz#9cf45b13c5ac8f3d4c50f46a5121f61b3e318978"
integrity sha512-uRDL9MWmQCkaFus8RF5K9/L/2fn+80yoW3jkD53l4shjCh26fCtvJGasxjUqP5OT87SYTxCVA3BwTUzuELx9kA==
eslint-scope@^7.1.0:
version "7.1.0"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.1.0.tgz#c1f6ea30ac583031f203d65c73e723b01298f153"
integrity sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
@ -2902,18 +2919,18 @@ eslint-visitor-keys@^2.0.0:
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
eslint-visitor-keys@^3.0.0:
eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.1.0:
version "3.1.0"
resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.1.0.tgz"
integrity sha512-yWJFpu4DtjsWKkt5GeNBBuZMlNcYVs6vRCLoCVEJrTjaSB6LC98gFipNK/erM2Heg/E8mIK+hXG/pJMLK+eRZA==
eslint@^8.2.0:
version "8.2.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.2.0.tgz#44d3fb506d0f866a506d97a0fc0e90ee6d06a815"
integrity sha512-erw7XmM+CLxTOickrimJ1SiF55jiNlVSp2qqm0NuBWPtHYQCegD5ZMaW0c3i5ytPqL+SSLaCxdvQXFPLJn+ABw==
eslint@^8.5.0:
version "8.5.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.5.0.tgz#ddd2c1afd8f412036f87ae2a063d2aa296d3175f"
integrity sha512-tVGSkgNbOfiHyVte8bCM8OmX+xG9PzVG/B4UCF60zx7j61WIVY/AqJECDgpLD4DbbESD0e174gOg3ZlrX15GDg==
dependencies:
"@eslint/eslintrc" "^1.0.4"
"@humanwhocodes/config-array" "^0.6.0"
"@eslint/eslintrc" "^1.0.5"
"@humanwhocodes/config-array" "^0.9.2"
ajv "^6.10.0"
chalk "^4.0.0"
cross-spawn "^7.0.2"
@ -2921,10 +2938,10 @@ eslint@^8.2.0:
doctrine "^3.0.0"
enquirer "^2.3.5"
escape-string-regexp "^4.0.0"
eslint-scope "^6.0.0"
eslint-scope "^7.1.0"
eslint-utils "^3.0.0"
eslint-visitor-keys "^3.0.0"
espree "^9.0.0"
eslint-visitor-keys "^3.1.0"
espree "^9.2.0"
esquery "^1.4.0"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
@ -2951,14 +2968,14 @@ eslint@^8.2.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
espree@^9.0.0:
version "9.0.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.0.0.tgz#e90a2965698228502e771c7a58489b1a9d107090"
integrity sha512-r5EQJcYZ2oaGbeR0jR0fFVijGOcwai07/690YRXLINuhmVeRY4UKSAsQPe/0BNuDgwP7Ophoc1PRsr2E3tkbdQ==
espree@^9.2.0:
version "9.2.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.2.0.tgz#c50814e01611c2d0f8bd4daa83c369eabba80dbc"
integrity sha512-oP3utRkynpZWF/F2x/HZJ+AGtnIclaR7z1pYPxy7NYM2fSO6LgK/Rkny8anRSPK/VwEA1eqm2squui0T7ZMOBg==
dependencies:
acorn "^8.5.0"
acorn "^8.6.0"
acorn-jsx "^5.3.1"
eslint-visitor-keys "^3.0.0"
eslint-visitor-keys "^3.1.0"
esprima@~4.0.0:
version "4.0.1"
@ -3929,12 +3946,12 @@ issue-parser@^6.0.0:
lodash.isstring "^4.0.1"
lodash.uniqby "^4.7.0"
jacdac-ts@^1.22.5:
version "1.22.5"
resolved "https://registry.yarnpkg.com/jacdac-ts/-/jacdac-ts-1.22.5.tgz#1f33bde07ff020b5a823229eb4545bf3099a7571"
integrity sha512-ZqPG9PpD6m9Jllh7aAjuGasboxuXiiSrHqqZH/p/39wBWnPkoI3pprBDP4EjPkM6XT3ynGhe8LbitxzsFrUYFQ==
jacdac-ts@^1.24.0:
version "1.24.0"
resolved "https://registry.yarnpkg.com/jacdac-ts/-/jacdac-ts-1.24.0.tgz#ac2162192e4c9608cb844561c82e37c186ee9aaa"
integrity sha512-jQX3fquPPe9GPaal7fxfJmyhM92Df3XYWt3t7R4kVU04vRZNE+VgY+SRbF0MzO661pbRcUbjH8IN2HuuF5chqA==
dependencies:
"@types/node" "^16.11.7"
"@types/node" "^16.11.11"
"@types/w3c-web-serial" "^1.0.2"
"@types/w3c-web-usb" "^1.0.5"
"@types/web-bluetooth" "^0.0.11"
@ -4424,10 +4441,10 @@ merge2@^1.3.0:
resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz"
integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==
microbundle@^0.14.1:
version "0.14.1"
resolved "https://registry.npmjs.org/microbundle/-/microbundle-0.14.1.tgz"
integrity sha512-/JAAPKWRyvBV0QjmmhgPU9NGuX3Tk1u8EXuMJ+6npFmnm+EtuL8IpJihxmljpUwaoHLyDy+b2ntfWoN6BkDQzA==
microbundle@^0.14.2:
version "0.14.2"
resolved "https://registry.yarnpkg.com/microbundle/-/microbundle-0.14.2.tgz#2db869c8145bd159aa55058ead47223f58f93bf2"
integrity sha512-jODALfU3w7jnJAqw7Tou9uU8e8zH0GRVWzOd/V7eAvD1fsfb9pyMbmzhFZqnX6SCb54eP1EF5oRyNlSxBAxoag==
dependencies:
"@babel/core" "^7.12.10"
"@babel/plugin-proposal-class-properties" "7.12.1"
@ -5516,10 +5533,10 @@ prelude-ls@^1.2.1:
resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
prettier@^2.4.1:
version "2.4.1"
resolved "https://registry.npmjs.org/prettier/-/prettier-2.4.1.tgz"
integrity sha512-9fbDAXSBcc6Bs1mZrDYb3XKzDLm4EXXL9sC1LqKP5rZkT6KRr/rf9amVUcODVXgguK/isJz0d0hP72WeaKWsvA==
prettier@^2.5.1:
version "2.5.1"
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.5.1.tgz#fff75fa9d519c54cf0fce328c1017d94546bc56a"
integrity sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==
pretty-bytes@^3.0.0:
version "3.0.1"
@ -5973,12 +5990,12 @@ safe-identifier@^0.4.2:
resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"
integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==
semantic-release@^18.0.0:
version "18.0.0"
resolved "https://registry.npmjs.org/semantic-release/-/semantic-release-18.0.0.tgz"
integrity sha512-/Szyhq5DTZCYry/aZqpBbK/kqv10ydn6oiiaYOXtPgDbAIkqidZcQOm+mfYFJ0sBTUaOYCKMlcPMgJycP7jDYQ==
semantic-release@^18.0.1:
version "18.0.1"
resolved "https://registry.yarnpkg.com/semantic-release/-/semantic-release-18.0.1.tgz#df5ad44b9c2fd67fe3cdbc660b3d1f55298b9f34"
integrity sha512-xTdKCaEnCzHr+Fqyhg/5I8P9pvY9z7WHa8TFCYIwcdPbuzAtQShOTzw3VNPsqBT+Yq1kFyBQFBKBYkGOlqWmfA==
dependencies:
"@semantic-release/commit-analyzer" "^9.0.0"
"@semantic-release/commit-analyzer" "^9.0.2"
"@semantic-release/error" "^3.0.0"
"@semantic-release/github" "^8.0.0"
"@semantic-release/npm" "^8.0.0"
@ -6643,11 +6660,16 @@ typedarray-to-buffer@^3.1.5:
dependencies:
is-typedarray "^1.0.0"
typescript@^4.1.3, typescript@^4.4.4:
typescript@^4.1.3:
version "4.4.4"
resolved "https://registry.npmjs.org/typescript/-/typescript-4.4.4.tgz"
integrity sha512-DqGhF5IKoBl8WNf8C1gu8q0xZSInh9j1kJJMqT3a94w1JzVaBU4EXOSMrz9yDqMT0xt3selp83fuFMQ0uzv6qA==
typescript@^4.5.4:
version "4.5.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.4.tgz#a17d3a0263bf5c8723b9c52f43c5084edf13c2e8"
integrity sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==
uglify-js@^3.1.4:
version "3.14.3"
resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.14.3.tgz"