The blocklist consumer existed in the resolver library and the gateway, but the browser opened a flagged name without comment. Now the indexer process reads the subscribed lists from the chain every ten minutes and hands the flags to main. A flagged name loads a warning page naming the reason, the list and the report; the user may continue, and that is remembered per name. Two gates, because content is reached two ways. loadBns shows the real interstitial. serveBns refuses with an inline page on every path that skips it: reload, back and forward, bns:// links, web app windows. The inline page has no button, since a page at the site's own origin must not be able to approve itself; only blocked.html may ask to continue, checked by file URL. Settings › Naming has the policy: warn (default), never open, or ignore the lists. The csam reason is never offered a way through. A list that cannot be read keeps the last known flags and never stops a name from resolving. The gateway put its own warning in front of flagged sites, which this browser could not get past: it fetches files itself, with no cookie jar. It now sends x-bns-policy: client and the gateway stays out of the way for a client that says it decides for itself. dev/blocklist-selftest.js runs the real protocol handler and decision functions against a scratch profile.
181 lines
4.6 KiB
JSON
181 lines
4.6 KiB
JSON
{
|
|
"name": "theseus-navigator",
|
|
"version": "0.3.77",
|
|
"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",
|
|
"lang-picker.html",
|
|
"lang-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",
|
|
"unlock.html",
|
|
"unlock-preload.js",
|
|
"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",
|
|
"blocked.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}"
|
|
}
|
|
}
|
|
}
|
|
|