Migration step 3 (DESIGN-bns-indexer-service.md). Ariadne's Thread now owns BNS indexing on the machine, so Theseus no longer runs a second electrum indexer beside it. bns-indexer.js keeps its process and its messages to main.js, but inside it is now an index host on the shared source chain: - Ariadne's indexer over its pipe, trusted only after ariadne-helper.exe has checked the server process on that connection (found through Ariadne's uninstall key), then pushes; - the local copies: Ariadne's files for both scopes, Theseus's own raw copy, the bundled one. The richest wins. - Theseus's own index copy, written from the pipe data. The shared core runs as Theseus's own indexer only while Ariadne is unhealthy. That means: no pipe 4 s after launch, a pipe that fails the check, a pipe that went silent, or an index not confirmed for 10 min while Ariadne is not paused. The own indexer warm-starts from Ariadne's snapshot, so there is no download and no cold sync. It hands back after 90 s of health, so a flapping service does not start and stop it. Economy is not a failure and never triggers a takeover. With no checkable Ariadne (portable, not installed, older than the pipe) the own indexer starts at once, as in 0.3.70. The one thing Theseus does on Ariadne's side is run the indexer's task at launch when "Launch at start" is off. main.js passes the shared module paths (packaged as .mjs, which is why the shared modules no longer import each other) and keeps the host's status. The Ariadne panel takes its state from the indexer task when one exists, and the sub-page says where Theseus's names come from.
176 lines
4.5 KiB
JSON
176 lines
4.5 KiB
JSON
{
|
|
"name": "theseus-navigator",
|
|
"version": "0.3.71",
|
|
"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": "../Argus/src/lib/bns-index-core.js",
|
|
"to": "bns-index-core.mjs"
|
|
},
|
|
{
|
|
"from": "../Argus/src/lib/bns-source-chain.js",
|
|
"to": "bns-source-chain.mjs"
|
|
},
|
|
{
|
|
"from": "../Argus/src/lib/bns-pipe.js",
|
|
"to": "bns-pipe.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}"
|
|
}
|
|
}
|
|
}
|
|
|