diff --git a/main.js b/main.js index 42af6bd..e1325ed 100644 --- a/main.js +++ b/main.js @@ -1,13 +1,61 @@ -const { app, BrowserWindow } = require('electron') +const { app, BrowserWindow, ipcMain } = require('electron') const Path = require('node:path') const URL = require('node:url') +const p = require('node:util').promisify +const Keypair = require('ppppp-keypair') + +process.env.ZOOBOARD_DATA ??= Path.join(app.getPath('appData'), 'zooboard') +app.setPath('userData', process.env.ZOOBOARD_DATA) +const path = Path.resolve(app.getPath('userData'), 'ppppp') + +const keypairPath = Path.join(path, 'keypair.json') +const keypair = Keypair.loadOrCreateSync(keypairPath) + +const peer = require('secret-stack/bare')() + .use(require('secret-stack/plugins/net')) + .use(require('secret-handshake-ext/secret-stack')) + .use(require('ssb-conn')) + .use(require('ppppp-db')) + .use(require('ppppp-set')) + .use(require('ppppp-dict')) + .use(require('ppppp-goals')) + .use(require('ppppp-sync')) + .use(require('ppppp-gc')) + .use(require('ppppp-conductor')) + .use(require('ppppp-hub-client')) + .use(require('ppppp-promise')) + .use(require('ppppp-invite')) + .call(null, { + shse: { + caps: require('ppppp-caps'), + }, + global: { + keypair, + path, + timers: { + inactivity: 10 * 60e3, + }, + connections: { + incoming: { + tunnel: [{ transform: 'shse', scope: 'public' }], + }, + outgoing: { + net: [{ transform: 'shse' }], + tunnel: [{ transform: 'shse' }], + }, + }, + }, + conn: { + autostart: false, + }, + }) // WARNING monkey patch! -------------------------------------- -// const na = require('sodium-native') -// na.sodium_malloc = function sodium_malloc_monkey_patched(n) { -// return Buffer.alloc(n) -// } -// na.sodium_free = function sodium_free_monkey_patched() {} +const na = require('sodium-native') +na.sodium_malloc = function sodium_malloc_monkey_patched(n) { + return Buffer.alloc(n) +} +na.sodium_free = function sodium_free_monkey_patched() {} // Electron > 20.3.8 breaks a napi method that `sodium_malloc` // depends on to create external buffers. (see v8 memory cage) // @@ -19,6 +67,7 @@ function createWindow() { const mainWindow = new BrowserWindow({ width: 1200, height: 800, + title: 'Zooboard', webPreferences: { preload: Path.join(__dirname, 'preload.js'), }, @@ -32,12 +81,20 @@ function createWindow() { slashes: true, }) mainWindow.loadURL(startUrl) - // mainWindow.loadFile('index.html') // mainWindow.webContents.openDevTools() } +async function loadAccount() { + await peer.db.loaded() + const id = await p(peer.db.account.findOrCreate)({ subdomain: 'account' }) + await p(peer.set.load)(id) + await p(peer.dict.load)(id) + return id +} + app.whenReady().then(() => { + ipcMain.handle('loadAccount', loadAccount) createWindow() app.on('activate', function () { diff --git a/package-lock.json b/package-lock.json index 1016a2e..6ff6c24 100644 --- a/package-lock.json +++ b/package-lock.json @@ -12,9 +12,24 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "ppppp-caps": "file:../caps", + "ppppp-conductor": "file:../conductor", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-gc": "file:../gc", + "ppppp-goals": "file:../goals", + "ppppp-hub-client": "file:../hub-client", + "ppppp-invite": "file:../invite", + "ppppp-keypair": "file:../keypair", + "ppppp-promise": "file:../promise", + "ppppp-set": "file:../set", + "ppppp-sync": "file:../sync", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "secret-handshake-ext": "0.0.11", + "secret-stack": "8.0.0", + "ssb-conn": "6.0.4", "web-vitals": "^2.1.4" }, "devDependencies": { @@ -22,6 +37,313 @@ "tailwindcss": "^3.4.0" } }, + "../caps": { + "version": "0.0.1", + "license": "CC0-1.0" + }, + "../conductor": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4" + }, + "devDependencies": { + "@types/debug": "4.1.9", + "@types/node": "18.x", + "bs58": "^5.0.0", + "c8": "7", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-gc": "file:../gc", + "ppppp-goals": "file:../goals", + "ppppp-keypair": "file:../keypair", + "ppppp-set": "file:../set", + "ppppp-sync": "file:../sync", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^4.4.0", + "secret-handshake-ext": "~0.0.11", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1" + }, + "engines": { + "node": ">=16" + } + }, + "../db": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@alloc/quick-lru": "^5.2.0", + "atomic-file-rw": "~0.3.0", + "b4a": "~1.6.4", + "blake3": "~2.1.7", + "bs58": "~5.0.0", + "debug": "^4.3.0", + "is-buffer-zero": "^1.0.0", + "json-canon": "~1.0.0", + "lodash.debounce": "~4.0.8", + "multicb": "~1.2.2", + "mutexify": "~1.4.0", + "obz": "~1.1.0", + "polyraf": "^1.1.0", + "ppppp-keypair": "file:../keypair", + "promisify-4loc": "~1.0.0", + "promisify-tuple": "~1.2.0", + "push-stream": "~11.2.0", + "set.prototype.union": "~1.0.2" + }, + "devDependencies": { + "@types/b4a": "^1.6.0", + "c8": "^7.11.0", + "flumecodec": "~0.0.1", + "husky": "^4.3.0", + "ppppp-caps": "file:../caps", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.10", + "secret-stack": "8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../dict": { + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "bs58": "^5.0.0", + "c8": "7", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-keypair": "file:../keypair", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.10", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../gc": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "debug": "^4.3.4", + "multicb": "^1.2.2" + }, + "devDependencies": { + "@types/debug": "4.1.9", + "@types/node": "18.x", + "bs58": "^5.0.0", + "c8": "7", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-goals": "file:../goals", + "ppppp-keypair": "file:../keypair", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.11", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../goals": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "multicb": "~1.2.2", + "obz": "~1.1.0" + }, + "devDependencies": { + "bs58": "^5.0.0", + "c8": "7", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-keypair": "file:../keypair", + "ppppp-set": "file:../set", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.10", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../hub-client": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "bs58": "^5.0.0", + "debug": "^4.3.4", + "promisify-tuple": "~1.2.0", + "pull-notify": "~0.1.2", + "pull-pair": "~1.1.0", + "pull-stream": "~3.7.0", + "ssb-network-errors": "~1.0.1" + }, + "devDependencies": { + "@types/debug": "^4.1.8", + "@types/node": "16.x", + "@types/pull-stream": "^3.6.2", + "c8": "7", + "husky": "^4.3.0", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../invite": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "multiserver-address": "~1.0.1", + "promisify-tuple": "1.2.0" + }, + "devDependencies": { + "@types/node": "^20.2.5", + "c8": "^7.11.0", + "husky": "^4.3.0", + "ppppp-caps": "file:../caps", + "ppppp-keypair": "file:../keypair", + "ppppp-promise": "file:../promise", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^5.0.1", + "secret-handshake-ext": "0.0.11", + "secret-stack": "~8.0.0", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../keypair": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "b4a": "~1.6.4", + "bs58": "~5.0.0", + "mkdirp": "~3.0.1", + "sodium-universal": "~4.0.0" + }, + "devDependencies": { + "@types/b4a": "^1.6.0", + "@types/node": "^20.2.5", + "c8": "^7.11.0", + "husky": "^4.3.0", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "typescript": "^5.0.2" + }, + "engines": { + "node": ">=16" + } + }, + "../promise": { + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "atomic-file-rw": "~0.3.0", + "b4a": "^1.6.4", + "bs58": "~5.0.0" + }, + "devDependencies": { + "@types/b4a": "^1.6.0", + "@types/node": "^20.2.5", + "c8": "^7.11.0", + "husky": "^4.3.0", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-keypair": "file:../keypair", + "ppppp-set": "file:../set", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^5.0.1", + "secret-handshake-ext": "0.0.11", + "secret-stack": "~8.0.0", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../set": { + "version": "1.0.0", + "license": "MIT", + "devDependencies": { + "bs58": "^5.0.0", + "c8": "7", + "obz": "~1.1.0", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-keypair": "file:../keypair", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.10", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, + "../sync": { + "version": "1.0.0", + "license": "MIT", + "dependencies": { + "bloom-filters": "^3.0.0", + "debug": "^4.3.4", + "promisify-4loc": "^1.0.0", + "pull-stream": "^3.7.0", + "push-stream": "^11.2.0", + "push-stream-to-pull-stream": "^1.0.5", + "ssb-network-errors": "^1.0.1" + }, + "devDependencies": { + "@types/debug": "^4.1.9", + "@types/node": "16.x", + "@types/pull-stream": "3.6.3", + "bs58": "^5.0.0", + "c8": "7", + "ppppp-caps": "file:../caps", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-goals": "file:../goals", + "ppppp-keypair": "file:../keypair", + "ppppp-set": "file:../set", + "prettier": "^2.6.2", + "pretty-quick": "^3.1.3", + "rimraf": "^4.4.0", + "secret-handshake-ext": "0.0.11", + "secret-stack": "~8.0.0", + "ssb-box": "^1.0.1", + "typescript": "^5.1.3" + }, + "engines": { + "node": ">=16" + } + }, "node_modules/@aashutoshrathi/word-wrap": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", @@ -5085,6 +5407,17 @@ "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "deprecated": "Use your platform's native atob() and btoa() methods instead" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -5505,6 +5838,15 @@ "node": ">= 4.0.0" } }, + "node_modules/atomic-file-rw": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/atomic-file-rw/-/atomic-file-rw-0.3.0.tgz", + "integrity": "sha512-XMFpe/ub9Mwdlyq3DUdOc/g2sdutDMdYw0XNFSvNGQpYdmxqVmLbeklu5KhemUYyrAj1kIrwoHOx6IxA3a7w3A==", + "dependencies": { + "idb-kv-store": "^4.5.0", + "mutexify": "^1.3.1" + } + }, "node_modules/autoprefixer": { "version": "10.4.16", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", @@ -5568,6 +5910,11 @@ "dequal": "^2.0.3" } }, + "node_modules/b4a": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.6.4.tgz", + "integrity": "sha512-fpWrvyVHEKyeEvbKZTVOeZF3VSKKWtJxFIxX/jaVPf+cLbGUSitjb49pHLqPV2BUNNZ0LcoeEGfE/YCpyDYHIw==" + }, "node_modules/babel-jest": { "version": "27.5.1", "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz", @@ -5853,6 +6200,30 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, + "node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -5889,6 +6260,49 @@ "node": ">=8" } }, + "node_modules/bl": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/bl/-/bl-6.0.10.tgz", + "integrity": "sha512-F14DFhDZfxtVm2FY0k9kG2lWAwzZkO9+jX3Ytuoy/V0E1/5LBuBzzQHXAjqpxXEDIpmTPZZf5GVIGPQcLxFpaA==", + "dependencies": { + "buffer": "^6.0.3", + "inherits": "^2.0.4", + "readable-stream": "^4.2.0" + } + }, + "node_modules/bl/node_modules/readable-stream": { + "version": "4.5.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-4.5.2.tgz", + "integrity": "sha512-yjavECdqeZ3GLXNgRXgeQEdz9fvDDkNKyHnbHRFtOr7/LcfgBcmct7t/ET+HaCTqfh06OzoAxrkN/IfjJBVe+g==", + "dependencies": { + "abort-controller": "^3.0.0", + "buffer": "^6.0.3", + "events": "^3.3.0", + "process": "^0.11.10", + "string_decoder": "^1.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/blake2b": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/blake2b/-/blake2b-2.1.4.tgz", + "integrity": "sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==", + "dependencies": { + "blake2b-wasm": "^2.4.0", + "nanoassert": "^2.0.0" + } + }, + "node_modules/blake2b-wasm": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/blake2b-wasm/-/blake2b-wasm-2.4.0.tgz", + "integrity": "sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, "node_modules/bluebird": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", @@ -6026,6 +6440,14 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, "node_modules/bser": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", @@ -6034,6 +6456,29 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-crc32": { "version": "0.2.13", "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", @@ -6196,6 +6641,14 @@ "node": ">=4" } }, + "node_modules/chacha20-universal": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/chacha20-universal/-/chacha20-universal-1.0.4.tgz", + "integrity": "sha512-/IOxdWWNa7nRabfe7+oF+jVkGjlr2xUL4J8l/OvzZhj+c9RpMqoo3Dq+5nU1j/BflRV4BKnaQ4+4oH1yBpQG1Q==", + "dependencies": { + "nanoassert": "^2.0.0" + } + }, "node_modules/chalk": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", @@ -6222,6 +6675,32 @@ "resolved": "https://registry.npmjs.org/check-types/-/check-types-11.2.3.tgz", "integrity": "sha512-+67P1GkJRaxQD6PKK0Et9DhwQB+vGg3PM5+aavopCpZT1lj9jeqfvpgTLAWErNj8qApkkmXlu/Ug74kmhagkXg==" }, + "node_modules/chloride": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/chloride/-/chloride-2.4.1.tgz", + "integrity": "sha512-ZiID87W2o2llvuF4C7Fvt9GJisazSdMsSkjAq4WaMed9zn77nlkcy08ZfrPtOGAXyaxTDj0VjnuyD97EdJLz3g==", + "dependencies": { + "sodium-browserify": "^1.2.7", + "sodium-browserify-tweetnacl": "^0.2.5", + "sodium-chloride": "^1.1.2" + }, + "optionalDependencies": { + "sodium-native": "^3.0.0" + } + }, + "node_modules/chloride-test": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/chloride-test/-/chloride-test-1.2.4.tgz", + "integrity": "sha512-9vhoi1qXSBPn6//ZxIgSe3M2QhKHzIPZQzmrZgmPADsqW0Jxpe3db1e7aGSRUMXbxAQ04SfypdT8dGaSvIvKDw==", + "dependencies": { + "json-buffer": "^2.0.11" + } + }, + "node_modules/chloride-test/node_modules/json-buffer": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-2.0.11.tgz", + "integrity": "sha512-Wu4/hxSZX7Krzjor+sZHWaRau6Be4WQHlrkl3v8cmxRBBewF2TotlgHUedKQJyFiUyFxnK/ZlRYnR9UNVZ7pkg==" + }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", @@ -6286,6 +6765,14 @@ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==" }, + "node_modules/clarify-error": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clarify-error/-/clarify-error-1.0.0.tgz", + "integrity": "sha512-f96oT3/Cdwz1eB+7RaH/XRR42lwGqVPnDl9NAm9ugT+BwAFoUS/pVnkgXUo/5UaUmwMMs6/GNFP8A8gCgmgvog==", + "engines": { + "node": ">=10" + } + }, "node_modules/clean-css": { "version": "5.3.3", "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-5.3.3.tgz", @@ -7254,6 +7741,11 @@ "node": ">=8" } }, + "node_modules/discontinuous-range": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", + "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==" + }, "node_modules/dlv": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", @@ -7397,6 +7889,14 @@ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, + "node_modules/ed2curve": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/ed2curve/-/ed2curve-0.1.4.tgz", + "integrity": "sha512-hDZWhCHZ1wu4P2g2RVsM2MjDmmJzhvcsXr5qHUSBJZXvuhJSunhbVsWoBXdIe0/yTa3RV4UaWpOmFmrVsKr0wA==", + "dependencies": { + "tweetnacl": "0.x.x" + } + }, "node_modules/ee-first": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", @@ -8397,6 +8897,14 @@ "node": ">= 0.6" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/eventemitter3": { "version": "4.0.7", "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", @@ -9378,6 +9886,11 @@ "node": ">=4" } }, + "node_modules/has-network2": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/has-network2/-/has-network2-0.0.3.tgz", + "integrity": "sha512-EvEZguA+LkyiS8G/Qks5I6imKnM2Z3NPN3eoQhviUQ7O6/d8nyZ7sDozBk6kTIA+Qj/S/V8ubRA1rqJcxc3qBQ==" + }, "node_modules/has-property-descriptors": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", @@ -9452,6 +9965,11 @@ "node": ">= 6.0.0" } }, + "node_modules/hoox": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/hoox/-/hoox-0.0.1.tgz", + "integrity": "sha512-4tKFjXcp8AWuw5lLTL7Xnixj1w88r+y1j9HKE8GoSeqDfsv6fLNMLjnrkB/H9tH+LqLp4+7eLss5IFS3Qra4lw==" + }, "node_modules/hpack.js": { "version": "2.1.6", "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", @@ -9735,6 +10253,15 @@ "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", "integrity": "sha512-gchesWBzyvGHRO9W8tzUWFDycow5gwjvFKfyV9FF32Y7F50yZMp7mP+T2mJIWFx49zicqyC4uefHM17o6xKIVQ==" }, + "node_modules/idb-kv-store": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/idb-kv-store/-/idb-kv-store-4.5.0.tgz", + "integrity": "sha512-snvtAQRforYUI+C2+45L2LBJy/0/uQUffxv8/uwiS98fSUoXHVrFPClgzWZWxT0drwkLHJRm9inZcYzTR42GLA==", + "dependencies": { + "inherits": "^2.0.3", + "promisize": "^1.1.2" + } + }, "node_modules/identity-obj-proxy": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/identity-obj-proxy/-/identity-obj-proxy-3.0.0.tgz", @@ -9746,6 +10273,25 @@ "node": ">=4" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/ignore": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", @@ -9812,6 +10358,11 @@ "node": ">=0.8.19" } }, + "node_modules/increment-buffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/increment-buffer/-/increment-buffer-1.0.1.tgz", + "integrity": "sha512-djREfebnCm+rsaMKhxQ3iQI0uUicnKoWUt3eHBLAMqqh9PRJYb+gc2Sty7HYpXrE0JdgdND/wNZIqOyUcMdejw==" + }, "node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", @@ -9852,6 +10403,11 @@ "node": ">= 0.4" } }, + "node_modules/ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==" + }, "node_modules/ipaddr.js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.1.0.tgz", @@ -9955,6 +10511,11 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-canonical-base64": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/is-canonical-base64/-/is-canonical-base64-1.1.1.tgz", + "integrity": "sha512-o6t/DwgEapC0bsloqtegAQyZzQXaQ5+8fzsyf2KmLqupC2ifLFq/lMQiFCJeGpdSrK1o6GL+WW2lRU050lLlFg==" + }, "node_modules/is-core-module": { "version": "2.13.1", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", @@ -10240,6 +10801,19 @@ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==" }, + "node_modules/is-valid-domain": { + "version": "0.0.20", + "resolved": "https://registry.npmjs.org/is-valid-domain/-/is-valid-domain-0.0.20.tgz", + "integrity": "sha512-Yd9oD7sgCycVvH8CHy5U4fLXibPwxVw2+diudYbT8ZfAiQDtW1H9WvPRR4+rtN9qOll+r+KAfO4SjO28OPpitA==", + "dependencies": { + "punycode": "^1.4.1" + } + }, + "node_modules/is-valid-domain/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/is-weakmap": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz", @@ -12645,6 +13219,19 @@ "node": ">= 0.8.0" } }, + "node_modules/libsodium": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.13.tgz", + "integrity": "sha512-mK8ju0fnrKXXfleL53vtp9xiPq5hKM0zbDQtcxQIsSmxNgSxqCj6R7Hl9PkrNe2j29T4yoDaF7DJLK9/i5iWUw==" + }, + "node_modules/libsodium-wrappers": { + "version": "0.7.13", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.13.tgz", + "integrity": "sha512-kasvDsEi/r1fMzKouIDv7B8I6vNmknXwGiYodErGuESoFTohGSKZplFtVxZqHaoQ217AynyIFgnOVRitpHs0Qw==", + "dependencies": { + "libsodium": "^0.7.13" + } + }, "node_modules/lilconfig": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", @@ -12805,6 +13392,11 @@ "tmpl": "1.0.5" } }, + "node_modules/map-merge": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/map-merge/-/map-merge-1.1.0.tgz", + "integrity": "sha512-TGNNg3WqoLsS5HnlK6GHIXFvM/0wYMtlyflc1nAQUhgptr9wIu7JwQ2YsqnpFSqbSYFv2U6rgXQTHJmWJOtlzQ==" + }, "node_modules/matcher": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/matcher/-/matcher-3.0.0.tgz", @@ -13058,6 +13650,11 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/moo": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", + "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==" + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -13075,6 +13672,67 @@ "multicast-dns": "cli.js" } }, + "node_modules/multicb": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/multicb/-/multicb-1.2.2.tgz", + "integrity": "sha512-PZM4dhYFmCF6uZGWpEmoPMUqJBywS9IcAgybT2GmSpYI1BvGvoWSdbio+ik+q/YD2vodhvslESWIS3NnkKYdqQ==" + }, + "node_modules/multiserver": { + "version": "3.8.2", + "resolved": "https://registry.npmjs.org/multiserver/-/multiserver-3.8.2.tgz", + "integrity": "sha512-gmR/5dY+N81EN0yDaziSJXAJhJjG+3Rv3lJc74OSA1ySRKOMqZwEuGJjqG6ZcZiaqcHvhQZkZavDJsAwtmnvoA==", + "dependencies": { + "debug": "^4.1.1", + "multicb": "^1.2.2", + "multiserver-scopes": "^2.0.0", + "pull-stream": "^3.6.1", + "pull-websocket": "^3.4.0", + "secret-handshake": "^1.1.16", + "separator-escape": "0.0.1", + "socks": "^2.2.3", + "stream-to-pull-stream": "^1.7.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/multiserver-address": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/multiserver-address/-/multiserver-address-1.0.1.tgz", + "integrity": "sha512-IfZMAGs9onCLkYNSnNBri3JxuvhQYllMyh3W9ry86iEDcfW9uPVsHTHDsjDxQtL+dPq3byshmA+Y4LN2wLHwNw==", + "dependencies": { + "nearley": "^2.15.1" + } + }, + "node_modules/multiserver-scopes": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/multiserver-scopes/-/multiserver-scopes-2.0.0.tgz", + "integrity": "sha512-XWv9J617i3mWtZIZQNTpYI9iq4goUpsKy3GdUEDls23z1VaMzuRp2rL3S3IKrheVdgmrf0zHbErcXokGxqQfzw==", + "dependencies": { + "non-private-ip": "^2.0.0" + } + }, + "node_modules/mutexify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/mutexify/-/mutexify-1.4.0.tgz", + "integrity": "sha512-pbYSsOrSB/AKN5h/WzzLRMFgZhClWccf2XIB4RSMC8JbquiB0e0/SH5AIfdQMdyHmYtv4seU7yV/TvAwPLJ1Yg==", + "dependencies": { + "queue-tick": "^1.0.0" + } + }, + "node_modules/muxrpc": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/muxrpc/-/muxrpc-8.0.0.tgz", + "integrity": "sha512-b2VEM0S0Cvz4Xppx+bXlvOJWCQoGnJuP9ilfucIkXC0UmhL8eaF4nwKTKK5659AoVL8F1v4tQt0IdVxoYsc9/A==", + "dependencies": { + "clarify-error": "^1.0.0", + "debug": "^4.3.3", + "packet-stream": "~2.0.0", + "packet-stream-codec": "^1.2.0", + "pull-goodbye": "0.0.3", + "pull-stream": "^3.6.10" + } + }, "node_modules/mz": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz", @@ -13085,6 +13743,11 @@ "thenify-all": "^1.0.0" } }, + "node_modules/nanoassert": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/nanoassert/-/nanoassert-2.0.0.tgz", + "integrity": "sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==" + }, "node_modules/nanoid": { "version": "3.3.7", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", @@ -13112,6 +13775,32 @@ "resolved": "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz", "integrity": "sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==" }, + "node_modules/nearley": { + "version": "2.20.1", + "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", + "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", + "dependencies": { + "commander": "^2.19.0", + "moo": "^0.5.0", + "railroad-diagrams": "^1.0.0", + "randexp": "0.4.6" + }, + "bin": { + "nearley-railroad": "bin/nearley-railroad.js", + "nearley-test": "bin/nearley-test.js", + "nearley-unparse": "bin/nearley-unparse.js", + "nearleyc": "bin/nearleyc.js" + }, + "funding": { + "type": "individual", + "url": "https://nearley.js.org/#give-to-nearley" + } + }, + "node_modules/nearley/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", @@ -13142,6 +13831,16 @@ "node": ">= 6.13.0" } }, + "node_modules/node-gyp-build": { + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, "node_modules/node-int64": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", @@ -13152,6 +13851,17 @@ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==" }, + "node_modules/non-private-ip": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/non-private-ip/-/non-private-ip-2.2.0.tgz", + "integrity": "sha512-NZ3Upr3K2whD6vdZ9k8gHsijsrQl5O6IARLIUDyvQwSuO/owM1kOMu8wDMMsIR8ujlLvhPNjlTZC2SXzWwWByQ==", + "dependencies": { + "ip": "^1.1.5" + }, + "bin": { + "non-private-ip": "bin.js" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13361,6 +14071,11 @@ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==" }, + "node_modules/on-change-network-strict": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/on-change-network-strict/-/on-change-network-strict-1.0.0.tgz", + "integrity": "sha512-ldHCpTJWgr5KUJy3/TVoSGNwBUA8BP9UFmd0iQqe4aGaXY4PJyzQPiVBIo8VBSlSoKyaJY3vcpW0hixZb6gPaA==" + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -13380,6 +14095,11 @@ "node": ">= 0.8" } }, + "node_modules/on-wakeup": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/on-wakeup/-/on-wakeup-1.0.1.tgz", + "integrity": "sha512-3ufOvnTvh39ah2/TT++HpLailHVmEVVrKtzKLKifAUyWbulKLGGJGOF7ywKC4k/iQGmn9KooV6WmQl/6BVwklA==" + }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", @@ -13491,6 +14211,26 @@ "node": ">=6" } }, + "node_modules/packet-stream": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/packet-stream/-/packet-stream-2.0.6.tgz", + "integrity": "sha512-kSxHpoTqlgNEetMp77snCTVILwLw4dJX6pB/z1g1PRG5xylH8cf9upIPygt+epBC3l14XrcZH4/kQYSrzp2Ijg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/packet-stream-codec": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/packet-stream-codec/-/packet-stream-codec-1.2.0.tgz", + "integrity": "sha512-3xoTsSVqCPd+0mPsQGlfYm2ecvJK9tS1HOxrjnKEiB1Ynq0fOJHEXcZV/hxW6BkOSGBsGX7dTN8bjdNTU3nKBA==", + "dependencies": { + "pull-reader": "^1.3.1", + "pull-through": "^1.0.18" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/param-case": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz", @@ -14977,6 +15717,54 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==" }, + "node_modules/ppppp-caps": { + "resolved": "../caps", + "link": true + }, + "node_modules/ppppp-conductor": { + "resolved": "../conductor", + "link": true + }, + "node_modules/ppppp-db": { + "resolved": "../db", + "link": true + }, + "node_modules/ppppp-dict": { + "resolved": "../dict", + "link": true + }, + "node_modules/ppppp-gc": { + "resolved": "../gc", + "link": true + }, + "node_modules/ppppp-goals": { + "resolved": "../goals", + "link": true + }, + "node_modules/ppppp-hub-client": { + "resolved": "../hub-client", + "link": true + }, + "node_modules/ppppp-invite": { + "resolved": "../invite", + "link": true + }, + "node_modules/ppppp-keypair": { + "resolved": "../keypair", + "link": true + }, + "node_modules/ppppp-promise": { + "resolved": "../promise", + "link": true + }, + "node_modules/ppppp-set": { + "resolved": "../set", + "link": true + }, + "node_modules/ppppp-sync": { + "resolved": "../sync", + "link": true + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -15029,6 +15817,14 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==", + "engines": { + "node": ">= 0.6.0" + } + }, "node_modules/process-nextick-args": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", @@ -15051,6 +15847,19 @@ "asap": "~2.0.6" } }, + "node_modules/promisify-tuple": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/promisify-tuple/-/promisify-tuple-1.2.0.tgz", + "integrity": "sha512-DRI8QrLUzbQxgwLiwKhtVCpSqtAUnnyPaCi3cad2+0avb2o5UzobLWHkXUOAYQB8e4fSJVef22eVm77c/8n//g==", + "engines": { + "node": ">=6" + } + }, + "node_modules/promisize": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/promisize/-/promisize-1.1.2.tgz", + "integrity": "sha512-6/X05CD1iri6YyLy6TW7a23HY0igsrb/qetltYKfJznLfzmspWtN/cY/UR0By3M5i13hBDWfmM2P42ovKl3GAw==" + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -15103,6 +15912,177 @@ "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==" }, + "node_modules/pull-abortable": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/pull-abortable/-/pull-abortable-4.1.1.tgz", + "integrity": "sha512-/zz8tW+T5tvtDc4NQVZTp3lJZoGEpUb2VDV3R5Q2/9lavNTwHK+hC5yF/3Q3LMmdn5AluFy23RFoqXIoySPl1w==" + }, + "node_modules/pull-box-stream": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/pull-box-stream/-/pull-box-stream-1.0.13.tgz", + "integrity": "sha512-OPg5cTnBCH9jpTCNZfm+BrtrAzmu5NsWDyDadaWiB06oWQujSMfRJp58VqhuJOCEgxVkeKFhXTaSKE+StNKRHw==", + "dependencies": { + "chloride": "^2.2.7", + "increment-buffer": "~1.0.0", + "pull-reader": "^1.2.5", + "pull-stream": "^3.2.3", + "pull-through": "^1.0.18", + "split-buffer": "~1.0.0" + } + }, + "node_modules/pull-cat": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", + "integrity": "sha512-i3w+xZ3DCtTVz8S62hBOuNLRHqVDsHMNZmgrZsjPnsxXUgbWtXEee84lo1XswE7W2a3WHyqsNuDJTjVLAQR8xg==" + }, + "node_modules/pull-goodbye": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/pull-goodbye/-/pull-goodbye-0.0.3.tgz", + "integrity": "sha512-fl3RcIHKsxFaygdU3dcwSznLr73HYGOEU9IshpiatYSV+PW3TOUEjtfdu1L8uIsUoDajJz3HM/+mG0mFD4+v5A==", + "dependencies": { + "pull-stream": "^3.6.14" + } + }, + "node_modules/pull-handshake": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/pull-handshake/-/pull-handshake-1.1.4.tgz", + "integrity": "sha512-+dT8auWatbSNt1o43GKygECvOM2znXdyWwhEQaxztJSvxrNtEqo/wgZttknLfyxxbkbS6qUten6LsXTOwYj0yg==", + "dependencies": { + "pull-cat": "^1.1.9", + "pull-pair": "~1.1.0", + "pull-pushable": "^2.0.0", + "pull-reader": "^1.2.3" + } + }, + "node_modules/pull-header": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/pull-header/-/pull-header-0.0.0.tgz", + "integrity": "sha512-QHCFTdixUvbN3Q/QikON3AbPgkYcljjKEQCJl7EHBFcNS/tFn+Yw89uCs9tRLcE/f64FcS9OKmH73kSxfqLc3g==" + }, + "node_modules/pull-inactivity": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/pull-inactivity/-/pull-inactivity-2.1.4.tgz", + "integrity": "sha512-W2Q+6Jk0oRMICYXBXom3/ipz2U5YPUSQUfLvVgUqL/daHop7QQB3Jz5XpnnxsekCPoM61lGvXc7kFDZt0uWzMg==", + "dependencies": { + "pull-abortable": "^4.1.1", + "pull-stream": "^3.4.5" + } + }, + "node_modules/pull-map-last": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/pull-map-last/-/pull-map-last-1.0.0.tgz", + "integrity": "sha512-N2B3s6TYwQ0qvEaPe2qUt24jXd/QD8obkcqmPqupQ9oXLI87wbRFd0qEQIMMx/+qR/5KGBYIAAzYL9yeIUSnKQ==" + }, + "node_modules/pull-notify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/pull-notify/-/pull-notify-0.1.2.tgz", + "integrity": "sha512-oooAxYEUGNbOVsUrmqqTWWsAUMRIs4sYglnxgleiVcWyvrWgOuk/WUoZDajPTsYix2/rd+z5xSclzHLA7QygcQ==", + "dependencies": { + "pull-pushable": "^2.0.0" + } + }, + "node_modules/pull-pair": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pull-pair/-/pull-pair-1.1.0.tgz", + "integrity": "sha512-7VEFLxWnj2AKaN3AvtyaM508d1+56/ulSjDLu4j6kcd9DnEM6LfG8b1R9gCLqzIjJo5stFrWynVc6e451OW4LQ==" + }, + "node_modules/pull-pause": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/pull-pause/-/pull-pause-0.0.2.tgz", + "integrity": "sha512-yQs63NDgD/FeAsdF7INpy4uDolkstkS4Gx1Z3BvMR2gQS8RREJd2tsy6d/K6T+/CDStGnCQI7JLrkjz10YNiSA==" + }, + "node_modules/pull-ping": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pull-ping/-/pull-ping-2.0.3.tgz", + "integrity": "sha512-nbY4yHnMesJBrvkbhMim4VXUC9k1VCkgrkQu49pf8mxFbmb/U2KQrsuePvSmLjRL+VgkBVRSUXUoOY7DtSvhKw==", + "dependencies": { + "pull-pushable": "^2.0.0", + "pull-stream": "^3.4.5", + "statistics": "^3.3.0" + } + }, + "node_modules/pull-pushable": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.2.0.tgz", + "integrity": "sha512-M7dp95enQ2kaHvfCt2+DJfyzgCSpWVR2h2kWYnVsW6ZpxQBx5wOu0QWOvQPVoPnBLUZYitYP2y7HyHkLQNeGXg==" + }, + "node_modules/pull-rate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pull-rate/-/pull-rate-1.0.2.tgz", + "integrity": "sha512-HH4fXHM7gu2uCO6u2SqTuGGDqPZNVHKXjTdyP9igg8jAROnvSph9plMAQqmv4elYFCm+Bfah2ASGWWe/+NdzMQ==", + "dependencies": { + "pull-stream": "^3.6.0" + } + }, + "node_modules/pull-reader": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/pull-reader/-/pull-reader-1.3.1.tgz", + "integrity": "sha512-CBkejkE5nX50SiSEzu0Qoz4POTJMS/mw8G6aj3h3M/RJoKgggLxyF0IyTZ0mmpXFlXRcLmLmIEW4xeYn7AeDYw==" + }, + "node_modules/pull-secretstream": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pull-secretstream/-/pull-secretstream-2.0.3.tgz", + "integrity": "sha512-f6axznv3JrYWESpv1YOugQIMzKbGYhSiTnTP7HjUo//FN7qbfLRP3inNtCgnAHMaxhVw23ZI9H1F00GfCEUMKQ==", + "dependencies": { + "bl": "^6.0.8", + "debug": "^4.3.4", + "pull-cat": "^1.1.11", + "pull-header": "^0.0.0", + "pull-map-last": "^1.0.0", + "pull-reader": "^1.3.1", + "pull-stream": "^3.7.0", + "pull-through": "^1.0.18", + "sodium-secretstream": "^1.1.0", + "sodium-universal": "^4.0.0" + } + }, + "node_modules/pull-stream": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.7.0.tgz", + "integrity": "sha512-Eco+/R004UaCK2qEDE8vGklcTG2OeZSVm1kTUQNrykEjDwcFXDZhygFDsW49DbXyJMEhHeRL3z5cRVqPAhXlIw==" + }, + "node_modules/pull-through": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/pull-through/-/pull-through-1.0.18.tgz", + "integrity": "sha512-t8BBRdKstI/JoWS3FAXRnBvo1ahoLcKo8nm8ZUzr4OUgIf47RodD6HjnPIpw/d6HQZaMu+TotLAYCNwLTnvcNw==", + "dependencies": { + "looper": "~3.0.0" + } + }, + "node_modules/pull-through/node_modules/looper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", + "integrity": "sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==" + }, + "node_modules/pull-websocket": { + "version": "3.4.2", + "resolved": "https://registry.npmjs.org/pull-websocket/-/pull-websocket-3.4.2.tgz", + "integrity": "sha512-hGFWC4/fzRdO2FEsyR9woVzgv/yG4PIk3RXPN4azBpomGzGQFRUORwKQDS3j7RAIy8tjvN2W+qjU8jNn2NWeNQ==", + "dependencies": { + "relative-url": "^1.0.2", + "typedarray-to-buffer": "^4.0.0", + "ws": "^7.0.0" + } + }, + "node_modules/pull-websocket/node_modules/typedarray-to-buffer": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-4.0.0.tgz", + "integrity": "sha512-6dOYeZfS3O9RtRD1caom0sMxgK59b27+IwoNy8RDPsmslSGOyU+mpTamlaIW7aNKi90ZQZ9DFaZL3YRoiSCULQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -15168,6 +16148,11 @@ } ] }, + "node_modules/queue-tick": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz", + "integrity": "sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag==" + }, "node_modules/quick-lru": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", @@ -15188,6 +16173,23 @@ "performance-now": "^2.1.0" } }, + "node_modules/railroad-diagrams": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", + "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==" + }, + "node_modules/randexp": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", + "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", + "dependencies": { + "discontinuous-range": "1.0.0", + "ret": "~0.1.10" + }, + "engines": { + "node": ">=0.12" + } + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -15655,6 +16657,11 @@ "node": ">= 0.10" } }, + "node_modules/relative-url": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/relative-url/-/relative-url-1.0.2.tgz", + "integrity": "sha512-jI1AmBVFFMXwQ3I6tIYVmVOjy8f+ogHbqkeb8/LL9tszEQiTV8I0l8XT4oEomUOoxfm698f92gYlNKeA/9LJVQ==" + }, "node_modules/renderkid": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/renderkid/-/renderkid-3.0.0.tgz", @@ -15810,6 +16817,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, "node_modules/retry": { "version": "0.13.1", "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", @@ -16094,6 +17109,59 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/secret-handshake": { + "version": "1.1.21", + "resolved": "https://registry.npmjs.org/secret-handshake/-/secret-handshake-1.1.21.tgz", + "integrity": "sha512-e02+IddZv40tNJmaRZNZ6aYje95h9MvmpmbOg2PVjLKRA5p9QnrQypJlVE2dU516TyYc9jikBjqhXV1IlkwNUw==", + "dependencies": { + "chloride": "^2.2.8", + "clarify-error": "^1.0.0", + "pull-box-stream": "^1.0.13", + "pull-handshake": "^1.1.1", + "pull-stream": "^3.4.5" + } + }, + "node_modules/secret-handshake-ext": { + "version": "0.0.11", + "resolved": "https://registry.npmjs.org/secret-handshake-ext/-/secret-handshake-ext-0.0.11.tgz", + "integrity": "sha512-VxyL1fA+3Zyntf2g8DyEz8o63k55NJxSSh8IEQZvYHX1B5HS37R4LRJOSTc3pDKLZNENQhKfmmBm2gk7mLCWIA==", + "dependencies": { + "b4a": "~1.6.4", + "bs58": "~5.0.0", + "debug": "^4.3.4", + "pull-handshake": "~1.1.4", + "pull-secretstream": "^2.0.1", + "pull-stream": "~3.7.0", + "sodium-universal": "~4.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/secret-stack": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/secret-stack/-/secret-stack-8.0.0.tgz", + "integrity": "sha512-lKtn6EkdfhoBQ3u50QZ1jwJM0ht76/z3xKlO9uLGOrcm01UCzkXjW1uzEOYM+Igd3Kdni1Zku8LNB9+ggyVdug==", + "dependencies": { + "debug": "^4.3.0", + "hoox": "0.0.1", + "map-merge": "^1.1.0", + "multiserver": "^3.1.0", + "muxrpc": "^8.0.0", + "pull-inactivity": "~2.1.1", + "pull-rate": "^1.0.2", + "pull-stream": "^3.4.5", + "to-camel-case": "^1.0.0" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/secret-stack-decorators": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/secret-stack-decorators/-/secret-stack-decorators-1.1.0.tgz", + "integrity": "sha512-wYl0Mcul/fuEbZwn9tN62c+W4LP2RPus/ilt3wdBNQqfBFSMlDXTLaIsrA4SEElb7JEBH4xzdQbOCnTvYHeWCA==" + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -16189,6 +17257,11 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, + "node_modules/separator-escape": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/separator-escape/-/separator-escape-0.0.1.tgz", + "integrity": "sha512-daCzTzZVoowYzjW7x9xMH6zr+lt/zsGxV1rtXaoTnlues7ZDx6Qu0l5W3jCdgnXGE1ONAGL+XPWY+IRDxnJ9EQ==" + }, "node_modules/serialize-error": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/serialize-error/-/serialize-error-7.0.1.tgz", @@ -16342,6 +17415,53 @@ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" }, + "node_modules/sha.js": { + "version": "2.4.5", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.5.tgz", + "integrity": "sha512-459AP5kwdIhtMLLE1+h2q5a6E7hyY7Ri88GUIhFsyrQinKkm+7qj1ARHELow7GkFS7oimWmIwhXTSxBsuNuOsw==", + "dependencies": { + "inherits": "^2.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha256-universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sha256-universal/-/sha256-universal-1.2.1.tgz", + "integrity": "sha512-ghn3muhdn1ailCQqqceNxRgkOeZSVfSE13RQWEg6njB+itsFzGVSJv+O//2hvNXZuxVIRyNzrgsZ37SPDdGJJw==", + "dependencies": { + "b4a": "^1.0.1", + "sha256-wasm": "^2.2.1" + } + }, + "node_modules/sha256-wasm": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/sha256-wasm/-/sha256-wasm-2.2.2.tgz", + "integrity": "sha512-qKSGARvao+JQlFiA+sjJZhJ/61gmW/3aNLblB2rsgIxDlDxsJPHo8a1seXj12oKtuHVgJSJJ7QEGBUYQN741lQ==", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, + "node_modules/sha512-universal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/sha512-universal/-/sha512-universal-1.2.1.tgz", + "integrity": "sha512-kehYuigMoRkIngCv7rhgruLJNNHDnitGTBdkcYbCbooL8Cidj/bS78MDxByIjcc69M915WxcQTgZetZ1JbeQTQ==", + "dependencies": { + "b4a": "^1.0.1", + "sha512-wasm": "^2.3.1" + } + }, + "node_modules/sha512-wasm": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/sha512-wasm/-/sha512-wasm-2.3.4.tgz", + "integrity": "sha512-akWoxJPGCB3aZCrZ+fm6VIFhJ/p8idBv7AWGFng/CZIrQo51oQNsvDbTSRXWAzIiZJvpy16oIDiCCPqTe21sKg==", + "dependencies": { + "b4a": "^1.0.1", + "nanoassert": "^2.0.0" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -16387,6 +17507,14 @@ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, + "node_modules/siphash24": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/siphash24/-/siphash24-1.3.1.tgz", + "integrity": "sha512-moemC3ZKiTzH29nbFo3Iw8fbemWWod4vNs/WgKbQ54oEs6mE6XVlguxvinYjB+UmaE0PThgyED9fUkWvirT8hA==", + "dependencies": { + "nanoassert": "^2.0.0" + } + }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -16400,6 +17528,15 @@ "node": ">=8" } }, + "node_modules/smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "engines": { + "node": ">= 6.0.0", + "npm": ">= 3.0.0" + } + }, "node_modules/sockjs": { "version": "0.3.24", "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", @@ -16410,6 +17547,127 @@ "websocket-driver": "^0.7.4" } }, + "node_modules/socks": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", + "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", + "dependencies": { + "ip": "^2.0.0", + "smart-buffer": "^4.2.0" + }, + "engines": { + "node": ">= 10.13.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/socks/node_modules/ip": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", + "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==" + }, + "node_modules/sodium-browserify": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/sodium-browserify/-/sodium-browserify-1.3.0.tgz", + "integrity": "sha512-1KRS6Oew3X13AIZhbmGF0YBdt2pQdafJMfv83OZHWbzxG92YBBnN8HYx/VKmYB4xCe90eidNaDJWBEFw/o3ahw==", + "dependencies": { + "libsodium-wrappers": "^0.7.4", + "sha.js": "2.4.5", + "sodium-browserify-tweetnacl": "^0.2.5", + "tweetnacl": "^0.14.1" + } + }, + "node_modules/sodium-browserify-tweetnacl": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/sodium-browserify-tweetnacl/-/sodium-browserify-tweetnacl-0.2.6.tgz", + "integrity": "sha512-ZnEI26hdluilpYY28Xc4rc1ALfmEp2TWihkJX6Mdtw0z9RfHfpZJU7P8DoKbN1HcBdU9aJmguFZs7igE8nLJPg==", + "dependencies": { + "chloride-test": "^1.1.0", + "ed2curve": "^0.1.4", + "sha.js": "^2.4.8", + "tweetnacl": "^1.0.1", + "tweetnacl-auth": "^0.3.0" + } + }, + "node_modules/sodium-browserify-tweetnacl/node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sodium-browserify-tweetnacl/node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/sodium-chloride": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sodium-chloride/-/sodium-chloride-1.1.2.tgz", + "integrity": "sha512-8AVzr9VHueXqfzfkzUA0aXe/Q4XG3UTmhlP6Pt+HQc5bbAPIJFo7ZIMh9tvn+99QuiMcyDJdYumegGAczl0N+g==" + }, + "node_modules/sodium-javascript": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/sodium-javascript/-/sodium-javascript-0.8.0.tgz", + "integrity": "sha512-rEBzR5mPxPES+UjyMDvKPIXy9ImF17KOJ32nJNi9uIquWpS/nfj+h6m05J5yLJaGXjgM72LmQoUbWZVxh/rmGg==", + "dependencies": { + "blake2b": "^2.1.1", + "chacha20-universal": "^1.0.4", + "nanoassert": "^2.0.0", + "sha256-universal": "^1.1.0", + "sha512-universal": "^1.1.0", + "siphash24": "^1.0.1", + "xsalsa20": "^1.0.0" + } + }, + "node_modules/sodium-native": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-3.4.1.tgz", + "integrity": "sha512-PaNN/roiFWzVVTL6OqjzYct38NSXewdl2wz8SRB51Br/MLIJPrbM3XexhVWkq7D3UWMysfrhKVf1v1phZq6MeQ==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + } + }, + "node_modules/sodium-secretstream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/sodium-secretstream/-/sodium-secretstream-1.1.0.tgz", + "integrity": "sha512-Qg7D2xomELDjDCWAmE4izk1aecG/il8pQIGmSWFaKgah/V58BVWG/PuSZF6vseTpcqnetIFGaOWzmPNzyTD50A==", + "dependencies": { + "b4a": "^1.1.1", + "sodium-universal": "^4.0.0" + } + }, + "node_modules/sodium-universal": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/sodium-universal/-/sodium-universal-4.0.0.tgz", + "integrity": "sha512-iKHl8XnBV96k1c75gwwzANFdephw/MDWSjQAjPmBE+du0y3P23Q8uf7AcdcfFsYAMwLg7WVBfSAIBtV/JvRsjA==", + "dependencies": { + "blake2b": "^2.1.1", + "chacha20-universal": "^1.0.4", + "nanoassert": "^2.0.0", + "sha256-universal": "^1.1.0", + "sha512-universal": "^1.1.0", + "siphash24": "^1.0.1", + "sodium-javascript": "~0.8.0", + "sodium-native": "^4.0.0", + "xsalsa20": "^1.0.0" + } + }, + "node_modules/sodium-universal/node_modules/sodium-native": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/sodium-native/-/sodium-native-4.0.4.tgz", + "integrity": "sha512-faqOKw4WQKK7r/ybn6Lqo1F9+L5T6NlBJJYvpxbZPetpWylUVqz449mvlwIBKBqxEHbWakWuOlUt8J3Qpc4sWw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.6.0" + } + }, "node_modules/source-list-map": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", @@ -16502,11 +17760,110 @@ "wbuf": "^1.7.3" } }, + "node_modules/split-buffer": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/split-buffer/-/split-buffer-1.0.0.tgz", + "integrity": "sha512-cbHOF413jAsBL7JLpU1RWX07Xs+dPb25DbeCvwDzSN3+4bNmRPJa2QHpDdtREgGKgIfx6Tzj/jiqyOS3kNLPnQ==" + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==" }, + "node_modules/ssb-conn": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/ssb-conn/-/ssb-conn-6.0.4.tgz", + "integrity": "sha512-rCjpBBPKx9fe3mmrPUcdVz3voE490SqE4BWkBkQuEBi9d/WEMnJymPSJklHN5jmW2Yv4cDIMhnvbfOqu3P18ag==", + "dependencies": { + "debug": "^4.3.1", + "has-network2": ">=0.0.3", + "ip": "^1.1.5", + "on-change-network-strict": "1.0.0", + "on-wakeup": "^1.0.1", + "pull-notify": "^0.1.2", + "pull-pause": "~0.0.2", + "pull-ping": "^2.0.3", + "pull-stream": "^3.6.14", + "secret-stack-decorators": "1.1.0", + "ssb-conn-db": "~1.0.5", + "ssb-conn-hub": "~1.2.0", + "ssb-conn-query": "~1.2.2", + "ssb-conn-staging": "~1.0.0", + "ssb-ref": "^2.14.3", + "ssb-typescript": "^2.8.0", + "statistics": "^3.3.0", + "ziii": "~1.0.2" + }, + "peerDependencies": { + "secret-stack": ">=6.2.0" + } + }, + "node_modules/ssb-conn-db": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/ssb-conn-db/-/ssb-conn-db-1.0.5.tgz", + "integrity": "sha512-2rbqjvlDMTke2/qgauA415QSQ4hUJziXHqcXuC2Yh1uPrCDXHXrp0dhCchn0b/taEeL0Ppqo/Tsy6szQdqlEDw==", + "dependencies": { + "atomic-file-rw": "^0.3.0", + "debug": "^4.3.1", + "multiserver-address": "~1.0.1", + "pull-notify": "~0.1.2", + "ssb-ref": ">=2.13.9" + } + }, + "node_modules/ssb-conn-hub": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ssb-conn-hub/-/ssb-conn-hub-1.2.1.tgz", + "integrity": "sha512-EazMSgPJSOZTp/NdhUOq4kduAliT9k0GNJvao3Muvqk4Y17V4yIwCKt8SENHI5BMz2ATrDmFLj9uf5z/83Txww==", + "dependencies": { + "debug": "^4.3.1", + "ip": "^1.1.5", + "multiserver": "^3.7.0", + "multiserver-address": "~1.0.1", + "promisify-tuple": "^1.0.1", + "pull-cat": "~1.1.11", + "pull-notify": "~0.1.1", + "pull-stream": "^3.6.14", + "ssb-ref": "^2.14.3" + } + }, + "node_modules/ssb-conn-query": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ssb-conn-query/-/ssb-conn-query-1.2.2.tgz", + "integrity": "sha512-pvCU8oxpX9sBap6oBrLUwDGAYnHSxkhYAYnj6RxGNotPKDIRZUBZB04yQ4nA1rHm7oHOnBgcuK0GRWls78pnkQ==", + "dependencies": { + "ssb-conn-db": "~1.0.3", + "ssb-conn-hub": "~1.2.0", + "ssb-conn-staging": "~1.0.0" + } + }, + "node_modules/ssb-conn-staging": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/ssb-conn-staging/-/ssb-conn-staging-1.0.0.tgz", + "integrity": "sha512-NOy1qZoBkhH0XNzLteaaKKePXigEJSCntD4RPRU6vWLMlQ10+SzlIz4TWKgvEVx0LfCe6tEx/vhQf6vBWO/Ylw==", + "dependencies": { + "debug": "^4.1.1", + "multiserver-address": "~1.0.1", + "pull-cat": "~1.1.11", + "pull-notify": "~0.1.1", + "pull-stream": "^3.6.9" + } + }, + "node_modules/ssb-ref": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/ssb-ref/-/ssb-ref-2.16.0.tgz", + "integrity": "sha512-ylyrfz9NLxwTCbeDDAdLo++O3elhNs6/gUqMhZ22F+gSOIjwXy2X7dpg5Q1YTH7uALOSu307Rpo1UfK9sj7Sjw==", + "dependencies": { + "ip": "^1.1.3", + "is-canonical-base64": "^1.1.1", + "is-valid-domain": "~0.0.1", + "multiserver-address": "^1.0.1" + } + }, + "node_modules/ssb-typescript": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/ssb-typescript/-/ssb-typescript-2.8.0.tgz", + "integrity": "sha512-akqVsc2HNM0x5q4iN8v/t0jDuNOyU8E8UfyObqU4qWALIXLUptUQd1n03bWOcDn/+sjb2CLpjq584gDoQ4gEjw==" + }, "node_modules/stable": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", @@ -16630,6 +17987,11 @@ "node": ">= 0.8.0" } }, + "node_modules/statistics": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/statistics/-/statistics-3.3.0.tgz", + "integrity": "sha512-9+dmo0XcSK1AU6/uNuSUV/9/KnGUT+7ZKeL+J4IWcjcczflFTWwYQaInBBSo2zyEFVkFd59bGVxzZ8SSBWC66g==" + }, "node_modules/statuses": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", @@ -16649,6 +18011,20 @@ "node": ">= 0.4" } }, + "node_modules/stream-to-pull-stream": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz", + "integrity": "sha512-6sNyqJpr5dIOQdgNy/xcDWwDuzAsAwVzhzrWlAPAQ7Lkjx/rv0wgvxEyKwTq6FmNd5rjTrELt/CLmaSw7crMGg==", + "dependencies": { + "looper": "^3.0.0", + "pull-stream": "^3.2.3" + } + }, + "node_modules/stream-to-pull-stream/node_modules/looper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", + "integrity": "sha512-LJ9wplN/uSn72oJRsXTx+snxPet5c8XiZmOKCm906NVYu+ag6SB6vUcnJcWxgnl2NfbIyeobAn7Bwv6xRj2XJg==" + }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", @@ -17313,6 +18689,14 @@ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==" }, + "node_modules/to-camel-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-camel-case/-/to-camel-case-1.0.0.tgz", + "integrity": "sha512-nD8pQi5H34kyu1QDMFjzEIYqk0xa9Alt6ZfrdEMuHCFOfTLhDG5pgTu/aAM9Wt9lXILwlXmWP43b8sav0GNE8Q==", + "dependencies": { + "to-space-case": "^1.0.0" + } + }, "node_modules/to-fast-properties": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", @@ -17321,6 +18705,11 @@ "node": ">=4" } }, + "node_modules/to-no-case": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/to-no-case/-/to-no-case-1.0.2.tgz", + "integrity": "sha512-Z3g735FxuZY8rodxV4gH7LxClE4H0hTIyHNIHdk+vpQxjLm0cwnKXq/OFVZ76SOQmto7txVcwSCwkU5kqp+FKg==" + }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", @@ -17332,6 +18721,14 @@ "node": ">=8.0" } }, + "node_modules/to-space-case": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/to-space-case/-/to-space-case-1.0.0.tgz", + "integrity": "sha512-rLdvwXZ39VOn1IxGL3V6ZstoTbwLRckQmn/U8ZDLuWwIXNpuZDhQ3AiRUlhTbOXFVE9C+dR51wM0CBDhk31VcA==", + "dependencies": { + "to-no-case": "^1.0.0" + } + }, "node_modules/toidentifier": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", @@ -17437,6 +18834,19 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==" + }, + "node_modules/tweetnacl-auth": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/tweetnacl-auth/-/tweetnacl-auth-0.3.1.tgz", + "integrity": "sha512-9/c8c6qRMTfWuv54ETFhihgYoofi0M9HUovMSGJ1rLRUj6O5A0vuCg2L/qKfvmcjLVhaTgAJCLy2EqCLJK2QLw==", + "dependencies": { + "tweetnacl": "0.x.x" + } + }, "node_modules/type-check": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", @@ -18733,6 +20143,11 @@ "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" }, + "node_modules/xsalsa20": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/xsalsa20/-/xsalsa20-1.2.0.tgz", + "integrity": "sha512-FIr/DEeoHfj7ftfylnoFt3rAIRoWXpx2AoDfrT2qD2wtp7Dp+COajvs/Icb7uHqRW9m60f5iXZwdsJJO3kvb7w==" + }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -18799,6 +20214,11 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "node_modules/ziii": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/ziii/-/ziii-1.0.2.tgz", + "integrity": "sha512-q1FogtBIchy1W0fkxUpe6A4n4WUvAM+hAHN1J6LjBNCV42ZegeC5JSz0mcNv4qxnI0V4cL4FNeEhPMm97Ed0kA==" } } } diff --git a/package.json b/package.json index 8667603..773c2c6 100644 --- a/package.json +++ b/package.json @@ -17,9 +17,24 @@ "@testing-library/jest-dom": "^5.17.0", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^13.5.0", + "ppppp-caps": "file:../caps", + "ppppp-keypair": "file:../keypair", + "ppppp-db": "file:../db", + "ppppp-dict": "file:../dict", + "ppppp-set": "file:../set", + "ppppp-goals": "file:../goals", + "ppppp-sync": "file:../sync", + "ppppp-gc": "file:../gc", + "ppppp-conductor": "file:../conductor", + "ppppp-hub-client": "file:../hub-client", + "ppppp-promise": "file:../promise", + "ppppp-invite": "file:../invite", "react": "^18.2.0", "react-dom": "^18.2.0", "react-scripts": "5.0.1", + "secret-handshake-ext": "0.0.11", + "secret-stack": "8.0.0", + "ssb-conn": "6.0.4", "web-vitals": "^2.1.4" }, "devDependencies": { diff --git a/preload.js b/preload.js new file mode 100644 index 0000000..7f4ebf7 --- /dev/null +++ b/preload.js @@ -0,0 +1,5 @@ +const { contextBridge, ipcRenderer } = require('electron/renderer') + +contextBridge.exposeInMainWorld('electronAPI', { + loadAccount: () => ipcRenderer.invoke('loadAccount') +}) \ No newline at end of file diff --git a/public/index.html b/public/index.html index aa069f2..c242b14 100644 --- a/public/index.html +++ b/public/index.html @@ -2,42 +2,10 @@
- - - - - - - -