Make use of new noise protocol support

This commit is contained in:
Tony Garnock-Jones 2023-01-31 16:26:43 +01:00
parent e98782fbe0
commit ca2d3a32b8
5 changed files with 145 additions and 100 deletions

View File

@ -15,11 +15,8 @@
<section>
<form id="nym_form" name="nym_form">
<fieldset>
<label class="control-label" for="wsurl">Server:</label>
<input type="text" id="wsurl" name="wsurl" value="">
<label class="control-label" for="servercap">Capability:</label>
<input type="text" id="servercap" name="servercap" value='<ref "syndicate" [] #[pkgN9TBmEd3Q04grVG4Zdw==]>'>
<label class="control-label" for="route">Dataspace address:</label>
<input type="text" id="route" name="route" value="">
<label class="control-label" for="nym">Nym:</label>
<input type="text" id="nym" name="nym" value="">

View File

@ -1,2 +1,9 @@
let ?ds = dataspace
; Connect using <route [<ws "...">] <ref "syndicate" [] #[pkgN9TBmEd3Q04grVG4Zdw]>>
<bind "syndicate" #x"" $ds>
; Connect using <route [<ws "...">] <noise { service: "syndicate", key: #x"21f6cd4e11e7e37711d6b3084ff18cded8fc8abf293aa47d43e8bb86dda65516" }>>
let ?sk = #x"7626eb6c0ee79cb928a0c3f6e29621e9119da6735859f1425956a49fd937e586"
let ?pk = #x"21f6cd4e11e7e37711d6b3084ff18cded8fc8abf293aa47d43e8bb86dda65516"
<noise { service: "syndicate", key: $pk, secretKey: $sk } $ds>

View File

@ -1,10 +1,10 @@
/// SPDX-License-Identifier: GPL-3.0-or-later
/// SPDX-FileCopyrightText: Copyright © 2016-2021 Tony Garnock-Jones <tonyg@leastfixedpoint.com>
import { Dataspace, Ref, Sturdy, AnyValue, Reader, Schemas, Embedded } from "@syndicate-lang/core";
import { fromJS, Bytes, Dataspace, Ref, Sturdy, AnyValue, Reader, Schemas, Embedded, stringify } from "@syndicate-lang/core";
import { boot as bootHtml, Anchor, template as html, HtmlFragments, GlobalEvent, UIAttribute, UIChangeableProperty } from "@syndicate-lang/html";
import { boot as bootWakeDetector, WakeEvent } from "./wake-detector";
import { boot as bootWsRelay, ForceRelayDisconnect, RelayAddress, Resolved } from "@syndicate-lang/ws-relay";
import { boot as bootWsRelay, ForceRelayDisconnect, RelayAddress, Resolved, Noise } from "@syndicate-lang/ws-relay";
import { Present, Says } from './gen/simpleChatProtocol';
const Transport = Schemas.transportAddress;
@ -12,7 +12,7 @@ const Transport = Schemas.transportAddress;
export function main() {
document.getElementById('chat_form')!.onsubmit = e => { e.preventDefault(); return false; };
document.getElementById('nym_form')!.onsubmit = e => { e.preventDefault(); return false; };
setWsurl();
setDataspaceAddress();
setUsernameIfUnset();
document.getElementById('chat_input')!.focus();
@ -30,35 +30,30 @@ function bootChat(ds: Ref) {
field nym: string = '';
on asserted UIChangeableProperty('#nym', 'value', $v: string) => nym.value = v;
during UIChangeableProperty('#wsurl', 'value', $wsurl: string) =>
during UIChangeableProperty('#servercap', 'value', $servercapText: string) => {
let servercap: AnyValue | null = null;
try {
const a = new Reader<Ref>(servercapText).next();
Sturdy.asSturdyRef(a); // throws if invalid
servercap = a;
} catch (e) {
console.error(e);
}
assert UIAttribute('#servercap', 'class', 'invalid') when (!servercap);
if (wsurl && servercap) {
contactRemote(wsurl, servercap);
}
during UIChangeableProperty('#route', 'value', $routeText: string) => {
let route: Noise.Route<Ref> | null = null;
try {
route = Noise.asRoute(new Reader<Ref>(routeText).next());
} catch (e) {
console.error(e);
}
assert UIAttribute('#route', 'class', 'invalid') when (!route);
if (route) contactRemote(route);
}
function contactRemote(wsurl: string, servercap: AnyValue) {
function contactRemote(route: Noise.Route<Ref>) {
console.log('contactRemote', route);
during Resolved({
"addr": RelayAddress(Transport.WebSocket(wsurl)),
"sturdyref": servercap,
"route": route,
"addr": $addr: RelayAddress,
"resolved": $remoteDs_e: Embedded,
}) => {
const remoteDs = remoteDs_e.embeddedValue;
on message WakeEvent() =>
send message ForceRelayDisconnect(RelayAddress(Transport.WebSocket(wsurl)));
on message WakeEvent() => send message ForceRelayDisconnect(addr);
outputState('connected', 'connected to ' + wsurl);
on stop outputState('disconnected', 'disconnected from ' + wsurl);
outputState('connected', 'connected to ' + stringify(addr));
on stop outputState('disconnected', 'disconnected from ' + stringify(addr));
on message GlobalEvent('#send_chat', 'click', _) => {
const inp = document.getElementById("chat_input") as HTMLInputElement;
@ -89,10 +84,41 @@ function bootChat(ds: Ref) {
}
}
function setWsurl() {
const wsurl = document.getElementById('wsurl')! as HTMLInputElement;
if (wsurl.value === '') {
wsurl.value = `ws://${document.location.hostname}:9001/`;
function setDataspaceAddress() {
const route = document.getElementById('route')! as HTMLInputElement;
if (route.value === '') {
const isSecure = (document.location.protocol ?? '').toLowerCase().endsWith('s:');
const localWs = isSecure ? 'wss' : 'ws';
const wsurls = [
`wss://generic-dataspace.demo.leastfixedpoint.com/`,
`${localWs}://${document.location.hostname}:9001/`,
];
const transports: AnyValue[] =
wsurls.map(u => fromJS(RelayAddress(Transport.WebSocket(u))));
route.value = stringify(Noise.Route<Ref>({
"transports": transports,
"steps": [Noise.RouteStep.NoiseStep(Noise.NoiseStep(Noise.NoiseSpec({
"service": "syndicate",
"key": Bytes.fromHex("21f6cd4e11e7e37711d6b3084ff18cded8fc8abf293aa47d43e8bb86dda65516"),
"protocol": Noise.NoiseProtocol.absent(),
"preSharedKeys": Noise.NoisePreSharedKeys.absent(),
})))],
}));
// To use a sturdyref instead:
//
// route.value = stringify(Noise.Route<Ref>({
// "transports": transports,
// "steps": [Noise.RouteStep.GatekeeperStep(
// Sturdy.SturdyRef({
// "oid": "syndicate",
// "caveatChain": [],
// "sig": Bytes.fromHex('a6480df5306611ddd0d3882b546e1977'),
// }))],
// }));
//
// ... and of course you can chain these things, depending on server setup.
}
}

View File

@ -100,6 +100,10 @@ div.state_connected {
font-size: smaller;
}
#servercap.invalid {
#route.invalid {
background: red;
}
#route {
min-width: 30em;
}

View File

@ -2,17 +2,17 @@
# yarn lockfile v1
"@preserves/core@>=0.20", "@preserves/core@>=0.20.2", "@preserves/core@^0.20.2":
version "0.20.2"
resolved "https://registry.yarnpkg.com/@preserves/core/-/core-0.20.2.tgz#37afa1f1770d0e667b4d384f717e648af745a7fa"
integrity sha512-6mZbhYuzAvgA4u2UpuyW2JI5in4h693AdrDTLXfrpv542tFFcI9XxGyL7AJ/CnwDxaX/0d9lRt7uTOrfJJ0uMw==
"@preserves/core@>=0.20", "@preserves/core@>=0.20.2", "@preserves/core@^0.20.5":
version "0.20.5"
resolved "https://registry.yarnpkg.com/@preserves/core/-/core-0.20.5.tgz#3b34693b1f5aff659639690725a703a95689f822"
integrity sha512-hnywtmY30swKSuHix3MbEoheyCh6plCERzmhnCQllrkhdT0hFm66iSr2PVjNsXAUNIwd3Rh3Vu2btgdjMK+Q9Q==
"@preserves/schema@>=0.21", "@preserves/schema@>=0.21.2":
version "0.21.2"
resolved "https://registry.yarnpkg.com/@preserves/schema/-/schema-0.21.2.tgz#b8aff321e4971a7ff9275f33c499fab068da06bb"
integrity sha512-RZIIc2ETvRLC3sjjfFlyjJK3+6dlOK0N94E7lWPxK9c226vF4MU0CePi9ryRPBihgn5VdsjhCCfWXxt+te3IIw==
version "0.21.7"
resolved "https://registry.yarnpkg.com/@preserves/schema/-/schema-0.21.7.tgz#09e388b8c582c3dc95018ebdfe990381dddabfa8"
integrity sha512-q2gncEOOY3qqs+i+Op5yZx89cckqN601vbEcBDfnQge5PB9HrOrfMk68Wq4w/rpdQpRyVqWhZNxLlKsANjgoOw==
dependencies:
"@preserves/core" "^0.20.2"
"@preserves/core" "^0.20.5"
"@types/glob" "^7.1"
"@types/minimatch" "^3.0"
chalk "^4.1"
@ -30,52 +30,53 @@
estree-walker "^1.0.1"
picomatch "^2.2.2"
"@syndicate-lang/compiler@^0.11.3":
version "0.11.3"
resolved "https://registry.yarnpkg.com/@syndicate-lang/compiler/-/compiler-0.11.3.tgz#77b491c896bf0a83776cb99224968fd979a5e086"
integrity sha512-2ru1hCsaBFQCrPMocUDmyT6GE3IYuqUMYtHwx2pwegH8xPdzz33aShrAmfSRcv56xC+kkGXpj6hS3e+pM2ks6A==
"@syndicate-lang/compiler@^0.11.6":
version "0.11.6"
resolved "https://registry.yarnpkg.com/@syndicate-lang/compiler/-/compiler-0.11.6.tgz#98f6016da98033ae7dac9daa0d601f625ea371a1"
integrity sha512-eIz9jqNz4lzf5s05ngefeX+NMS0c63ysL60rEB9bg+9IpWXYTBlZs0xQoy/3lw2igKZerUlOlOeu2kSkszBNDw==
"@syndicate-lang/core@*", "@syndicate-lang/core@^0.11.4":
version "0.11.4"
resolved "https://registry.yarnpkg.com/@syndicate-lang/core/-/core-0.11.4.tgz#995e2ad3d2594929b6b01f0a3c9c045f7fbcbe5b"
integrity sha512-6abI79+rbR0wC2kJeM/MUJNy8WQYTrtQwEcQOEXCCsfoj7KZ75wkzmC05B09Fu2URJpFzFRRaVKRyImx3oDWXA==
"@syndicate-lang/core@*", "@syndicate-lang/core@^0.12.0":
version "0.12.0"
resolved "https://registry.yarnpkg.com/@syndicate-lang/core/-/core-0.12.0.tgz#dc30759789e322f1a4235ab7f7b0c6905e540a50"
integrity sha512-QwgQ+nh2krHsjVMPcSYL116bg/FgkJdMzlrd973TG2a+0PiapwevYetO72yK2Bw0PfRb0pjU2WN4UkwBYNvRJQ==
dependencies:
"@preserves/core" ">=0.20.2"
"@preserves/schema" ">=0.21.2"
"@syndicate-lang/html@*":
version "0.11.5"
resolved "https://registry.yarnpkg.com/@syndicate-lang/html/-/html-0.11.5.tgz#f1ed2aab0b37e848ffe88fbbd450d4140c670602"
integrity sha512-Y440cq+niz9SaoU5z79SCq44Q4SU59ILRW/gmwByYWTt3zt35zV8nYwn/QhylNU4OvrCkLNImIYtV4f8TSrNAg==
version "0.11.13"
resolved "https://registry.yarnpkg.com/@syndicate-lang/html/-/html-0.11.13.tgz#3594e5aadae97af720184dfba3e4dcc429398234"
integrity sha512-Ld1ye/hhJ9jtIaVtb3TfRbHMWVhupmdZOK2xXaf4tk1/p9mxNqHwXA9YFQ/63XDmFjocVvrVkLlQJvWnBlSjCg==
dependencies:
"@syndicate-lang/core" "^0.11.4"
"@syndicate-lang/core" "^0.12.0"
"@syndicate-lang/ts-plugin@*":
version "0.11.5"
resolved "https://registry.yarnpkg.com/@syndicate-lang/ts-plugin/-/ts-plugin-0.11.5.tgz#afc62b4c73af28fab9c33b30cd78227983ab9f5f"
integrity sha512-LMZO1W9Qa4OvMMMInFXre9Lb9xcFVMG7EqrY3VpmH5OVV+/0CznaNKCmy7EwJJ/Oumuxniu9vSYZ6Mfs9W3ZQg==
version "0.11.11"
resolved "https://registry.yarnpkg.com/@syndicate-lang/ts-plugin/-/ts-plugin-0.11.11.tgz#28564ba88996fdef863d2c73355e19ddd7d6ed65"
integrity sha512-+BlXgSwQxDd4xW8A4S4JZ1YKB3CX371BR9cFIxUTZmkhcGmsYk0QFJoJgCpXlLL/B53QVmD0MHVEV6ynuAiAJQ==
dependencies:
"@syndicate-lang/compiler" "^0.11.3"
"@syndicate-lang/core" "^0.11.4"
"@syndicate-lang/compiler" "^0.11.6"
"@syndicate-lang/core" "^0.12.0"
"@syndicate-lang/tsc@*":
version "0.11.5"
resolved "https://registry.yarnpkg.com/@syndicate-lang/tsc/-/tsc-0.11.5.tgz#67155080f357628b12014b842e00ceae8579e9d8"
integrity sha512-hOwQp7rFiwNaLj6r0LtdUEKe5eql8elWQuQDUbSz5DJ0mHuURDu4BdEH2yLdQEn1lyHz50R4Ze8UcLli4sIabA==
version "0.11.11"
resolved "https://registry.yarnpkg.com/@syndicate-lang/tsc/-/tsc-0.11.11.tgz#3036a64d300b2a477fef3f3cbb5967f16da2a6c9"
integrity sha512-N17ypKR957A+uhZhR+FmeBnwr1aPv0dFPnXepZ1BoM7ygi+8A5p+9LWqhaJRvX03BiYyD5UD+2XJO0xykivMfg==
dependencies:
"@syndicate-lang/compiler" "^0.11.3"
"@syndicate-lang/core" "^0.11.4"
"@syndicate-lang/compiler" "^0.11.6"
"@syndicate-lang/core" "^0.12.0"
glob "^7.1.6"
yargs "^16.2.0"
"@syndicate-lang/ws-relay@*":
version "0.11.5"
resolved "https://registry.yarnpkg.com/@syndicate-lang/ws-relay/-/ws-relay-0.11.5.tgz#b5a72e884679c8166c85b4e694bbfeb00977b4e5"
integrity sha512-XbdYO6h1RXIS3hor4vUtO1y4HjGt1NF//JImdVrWmjCu2rWAMspa99LOZe/XhUK2wk6BLfxk2fZEA3fCz6Yiiw==
version "0.12.1"
resolved "https://registry.yarnpkg.com/@syndicate-lang/ws-relay/-/ws-relay-0.12.1.tgz#f1ed304dba9236af7edefc6310805a1400f28959"
integrity sha512-VpvxviGMjob6trHbvK14zjykN5GKharaX5mXIWBEzQJAvAHkUbYQkg6YGgRxf4QM7aQuAm33SfXI30UHEHmwvA==
dependencies:
"@preserves/core" ">=0.20.2"
"@preserves/schema" ">=0.21.2"
"@syndicate-lang/core" "^0.11.4"
"@syndicate-lang/core" "^0.12.0"
salty-crypto "0.2"
"@types/estree@0.0.39":
version "0.0.39"
@ -90,15 +91,20 @@
"@types/minimatch" "*"
"@types/node" "*"
"@types/minimatch@*", "@types/minimatch@^3.0":
"@types/minimatch@*":
version "5.1.2"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca"
integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==
"@types/minimatch@^3.0":
version "3.0.5"
resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40"
integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==
"@types/node@*":
version "17.0.12"
resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.12.tgz#f7aa331b27f08244888c47b7df126184bc2339c5"
integrity sha512-4YpbAsnJXWYK/fpTVFlMIcUIho2AYCi4wg5aNPrG1ng7fn/1/RZfCIpRCiBX+12RVa34RluilnvCqD+g3KiSiA==
version "18.11.18"
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f"
integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==
ansi-regex@^5.0.1:
version "5.0.1"
@ -113,9 +119,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
color-convert "^2.0.1"
anymatch@~3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==
version "3.1.3"
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e"
integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==
dependencies:
normalize-path "^3.0.0"
picomatch "^2.0.4"
@ -202,12 +208,12 @@ commander@^7.2:
concat-map@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=
integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
version "0.2.2"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9"
integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==
emoji-regex@^8.0.0:
version "8.0.0"
@ -234,7 +240,7 @@ fill-range@^7.0.1:
fs.realpath@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8=
integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
fsevents@~2.3.2:
version "2.3.2"
@ -254,14 +260,14 @@ glob-parent@~5.1.2:
is-glob "^4.0.1"
glob@^7.1, glob@^7.1.6:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
version "7.2.3"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
dependencies:
fs.realpath "^1.0.0"
inflight "^1.0.4"
inherits "2"
minimatch "^3.0.4"
minimatch "^3.1.1"
once "^1.3.0"
path-is-absolute "^1.0.0"
@ -273,7 +279,7 @@ has-flag@^4.0.0:
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=
integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
dependencies:
once "^1.3.0"
wrappy "1"
@ -293,7 +299,7 @@ is-binary-path@~2.1.0:
is-extglob@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=
integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==
is-fullwidth-code-point@^3.0.0:
version "3.0.0"
@ -312,10 +318,10 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
minimatch@^3.0, minimatch@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083"
integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==
minimatch@^3.0, minimatch@^3.1.1:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
dependencies:
brace-expansion "^1.1.7"
@ -327,14 +333,14 @@ normalize-path@^3.0.0, normalize-path@~3.0.0:
once@^1.3.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
dependencies:
wrappy "1"
path-is-absolute@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18=
integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2:
version "2.3.1"
@ -351,7 +357,7 @@ readdirp@~3.6.0:
require-directory@^2.1.1:
version "2.1.1"
resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42"
integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I=
integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==
rollup-plugin-sourcemaps@^0.6:
version "0.6.3"
@ -362,12 +368,17 @@ rollup-plugin-sourcemaps@^0.6:
source-map-resolve "^0.6.0"
rollup@^2.60:
version "2.66.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.66.1.tgz#366b0404de353c4331d538c3ad2963934fcb4937"
integrity sha512-crSgLhSkLMnKr4s9iZ/1qJCplgAgrRY+igWv8KhG/AjKOJ0YX/WpmANyn8oxrw+zenF3BXWDLa7Xl/QZISH+7w==
version "2.79.1"
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
optionalDependencies:
fsevents "~2.3.2"
salty-crypto@0.2:
version "0.2.0"
resolved "https://registry.yarnpkg.com/salty-crypto/-/salty-crypto-0.2.0.tgz#cdc276feded27bd4d0c3b24290a8d20c939c7e16"
integrity sha512-QOR/YpEYcaEog9mvYuBO9pqOwFAHbWgDrUKZWGZHcsq3hxmSbdl/UducMPRgvRUK0oQeiQ9wRkJOYD+6iyLSpA==
source-map-resolve@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2"
@ -407,9 +418,9 @@ to-regex-range@^5.0.1:
is-number "^7.0.0"
typescript@^4.5:
version "4.5.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.5.5.tgz#d8c953832d28924a9e3d37c73d729c846c5896f3"
integrity sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==
version "4.9.5"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a"
integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==
wrap-ansi@^7.0.0:
version "7.0.0"
@ -423,7 +434,7 @@ wrap-ansi@^7.0.0:
wrappy@1:
version "1.0.2"
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
y18n@^5.0.5:
version "5.0.8"