The snapshot parse, index builds, electrum sync and snapshot refresh ran on the browser's main thread at launch. They now run in bns-indexer.js, a utilityProcess, in two phases: the local snapshot first (no network), then — once the first page has loaded — the published snapshot (one download) and the electrum poll. Main keeps a mirror of the name map for its synchronous lookups; tabs no longer wait for the index to restore. With no local index yet, a name under a known BCNR TLD gets one lookup of just that name on the gateway and opens; the full snapshot and the electrum check follow in the background, and every quick answer is compared with the verified index when it lands (a mismatch reloads the affected tabs). Plain web hosts are never sent to the gateway, and the extension-publisher check only accepts verified data. DESIGN-bns-indexer-service.md: Ariadne's Thread as the owner of the one shared indexer (scope x mode, launch at start, power, and a resolver that never depends on the indexer).
164 lines
4.2 KiB
JSON
164 lines
4.2 KiB
JSON
{
|
|
"name": "theseus-navigator",
|
|
"version": "0.3.70",
|
|
"license": "MPL-2.0",
|
|
"description": "Theseus Navigator — a browser that follows the thread. By Silent Mode, a Deviant project.",
|
|
"author": "Silent Mode",
|
|
"main": "main.js",
|
|
"type": "commonjs",
|
|
"scripts": {
|
|
"start": "electron .",
|
|
"resolve-test": "node resolve-test.mjs",
|
|
"dist": "electron-builder --win nsis portable"
|
|
},
|
|
"dependencies": {
|
|
"@bch-wc2/interfaces": "^0.0.16",
|
|
"@bitauth/libauth": "^3.1.0-next.8",
|
|
"@bitcoinerlab/secp256k1": "^1.2.0",
|
|
"@duckduckgo/autoconsent": "^16.42.0",
|
|
"@ghostery/adblocker": "^2.18.2",
|
|
"@noble/curves": "^2.0.1",
|
|
"@noble/hashes": "^2.0.1",
|
|
"@scure/bip32": "^2.0.1",
|
|
"@wizardconnect/core": "^0.2.4",
|
|
"@wizardconnect/wallet": "^0.2.3",
|
|
"bip32": "^4.0.0",
|
|
"bip39": "^3.1.0",
|
|
"bitcoinjs-lib": "^6.1.7",
|
|
"ecpair": "^2.1.0",
|
|
"eventemitter3": "^5.0.1",
|
|
"fetch-socks": "^1.3.3",
|
|
"isomorphic-ws": "^5.0.0",
|
|
"lossless-json": "^4.0.2",
|
|
"nostr-tools": "^2.10.4",
|
|
"psl": "^1.15.0",
|
|
"socks-proxy-agent": "^10.1.0",
|
|
"ws": "^8.18.0"
|
|
},
|
|
"devDependencies": {
|
|
"electron": "^44.4.3",
|
|
"electron-builder": "^25.1.8"
|
|
},
|
|
"build": {
|
|
"appId": "st.silentmode.theseus",
|
|
"productName": "Theseus Navigator",
|
|
"artifactName": "TheseusNavigator-${version}-${arch}.${ext}",
|
|
"extraMetadata": {
|
|
"description": "Theseus Navigator"
|
|
},
|
|
"directories": {
|
|
"output": "dist-public"
|
|
},
|
|
"asar": true,
|
|
"files": [
|
|
"THIRD-PARTY-NOTICES.md",
|
|
"LICENSE",
|
|
"main.js",
|
|
"bns-indexer.js",
|
|
"preload.js",
|
|
"chrome.html",
|
|
"home.html",
|
|
"settings.html",
|
|
"settings-preload.js",
|
|
"popover.html",
|
|
"popover-preload.js",
|
|
"engine-picker.html",
|
|
"engine-picker-preload.js",
|
|
"downloads.html",
|
|
"downloads-preload.js",
|
|
"address-picker.html",
|
|
"address-picker-preload.js",
|
|
"pw-fill.html",
|
|
"pw-fill-preload.js",
|
|
"home-preload.js",
|
|
"error.html",
|
|
"error-preload.js",
|
|
"sidebar-preload.js",
|
|
"approval-preload.js",
|
|
"approval.html",
|
|
"auth-prompt-preload.js",
|
|
"auth-prompt.html",
|
|
"addon-inject-preload.js",
|
|
"addon-tab-preload.js",
|
|
"addons-host.js",
|
|
"addon-updater.js",
|
|
"addon-update-pubkeys.js",
|
|
"link-status.html",
|
|
"link-status-preload.js",
|
|
"collision.html",
|
|
"collision-preload.js",
|
|
"messages.html",
|
|
"messages-preload.js",
|
|
"bcnr-preload.js",
|
|
"bcnr-origin.js",
|
|
"webapps.js",
|
|
"js-dialog.html",
|
|
"js-dialog-preload.js",
|
|
"quicklinks.html",
|
|
"quicklinks-preload.js",
|
|
"engine-icons/**/*",
|
|
"lib/**/*",
|
|
"package.json",
|
|
"node_modules/**/*",
|
|
"!**/*.md",
|
|
"!**/*.map",
|
|
"!tor${/*}",
|
|
"!dist-public${/*}",
|
|
"!resolve-test.mjs",
|
|
"!*PROMPT.md"
|
|
],
|
|
"extraResources": [
|
|
{
|
|
"from": "tor",
|
|
"to": "tor"
|
|
},
|
|
{
|
|
"from": "../Argus/src/lib/resolver-web.js",
|
|
"to": "resolver-web.mjs"
|
|
},
|
|
{
|
|
"from": "../Argus/src/lib/password-vault.js",
|
|
"to": "password-vault.mjs"
|
|
},
|
|
{
|
|
"from": "lib/hermes.js",
|
|
"to": "lib/hermes.mjs"
|
|
},
|
|
{
|
|
"from": "snapshots/bns-name-snapshot.json",
|
|
"to": "bns-name-snapshot.json"
|
|
},
|
|
{
|
|
"from": "bundled-addons",
|
|
"to": "bundled-addons"
|
|
},
|
|
{
|
|
"from": "build/icon.ico",
|
|
"to": "icon.ico"
|
|
}
|
|
],
|
|
"win": {
|
|
"icon": "build/icon.ico",
|
|
"target": [
|
|
"nsis",
|
|
"portable"
|
|
]
|
|
},
|
|
"nsis": {
|
|
"oneClick": false,
|
|
"perMachine": false,
|
|
"allowToChangeInstallationDirectory": true,
|
|
"artifactName": "TheseusNavigator-Setup-${version}.${ext}",
|
|
"installerIcon": "build/icon.ico",
|
|
"uninstallerIcon": "build/icon.ico",
|
|
"installerHeaderIcon": "build/icon.ico",
|
|
"installerSidebar": "build/installerSidebar.bmp",
|
|
"uninstallerSidebar": "build/uninstallerSidebar.bmp",
|
|
"installerHeader": "build/installerHeader.bmp"
|
|
},
|
|
"portable": {
|
|
"artifactName": "TheseusNavigator-${version}-portable.${ext}"
|
|
}
|
|
}
|
|
}
|
|
|