diff --git a/examples/example-simple-chat/index.html b/examples/example-simple-chat/index.html index e409790..64c9f83 100644 --- a/examples/example-simple-chat/index.html +++ b/examples/example-simple-chat/index.html @@ -15,11 +15,8 @@
- - - - - + + diff --git a/examples/example-simple-chat/server-config/standard-dataspace.pr b/examples/example-simple-chat/server-config/standard-dataspace.pr index 1162dec..72f5f81 100644 --- a/examples/example-simple-chat/server-config/standard-dataspace.pr +++ b/examples/example-simple-chat/server-config/standard-dataspace.pr @@ -1,2 +1,9 @@ let ?ds = dataspace + +; Connect using ] > + +; Connect using ] > +let ?sk = #x"7626eb6c0ee79cb928a0c3f6e29621e9119da6735859f1425956a49fd937e586" +let ?pk = #x"21f6cd4e11e7e37711d6b3084ff18cded8fc8abf293aa47d43e8bb86dda65516" + diff --git a/examples/example-simple-chat/src/index.ts b/examples/example-simple-chat/src/index.ts index 3fe436c..27f9b4b 100644 --- a/examples/example-simple-chat/src/index.ts +++ b/examples/example-simple-chat/src/index.ts @@ -1,10 +1,10 @@ /// SPDX-License-Identifier: GPL-3.0-or-later /// SPDX-FileCopyrightText: Copyright © 2016-2021 Tony Garnock-Jones -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(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 | null = null; + try { + route = Noise.asRoute(new Reader(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) { + 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({ + "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({ + // "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. } } diff --git a/examples/example-simple-chat/style.css b/examples/example-simple-chat/style.css index c49ec70..42f6de8 100644 --- a/examples/example-simple-chat/style.css +++ b/examples/example-simple-chat/style.css @@ -100,6 +100,10 @@ div.state_connected { font-size: smaller; } -#servercap.invalid { +#route.invalid { background: red; } + +#route { + min-width: 30em; +} diff --git a/examples/example-simple-chat/yarn.lock b/examples/example-simple-chat/yarn.lock index a7b3b09..58fa8a7 100644 --- a/examples/example-simple-chat/yarn.lock +++ b/examples/example-simple-chat/yarn.lock @@ -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"