theseus/package.json
Local Dev 1f1bde6e60 Theseus: BNS index in its own process; a name never waits for the download
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).
2026-10-03 13:08:28 +02:00

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}"
}
}
}