Skip to content

Commit

Permalink
Add agregore
Browse files Browse the repository at this point in the history
  • Loading branch information
42LoCo42 committed Jan 8, 2024
1 parent 137a6ec commit 018d5cc
Show file tree
Hide file tree
Showing 5 changed files with 7,907 additions and 0 deletions.
1 change: 1 addition & 0 deletions flake.nix
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"9mount" = pkgs.callPackage ./packages/9mount { };
SwayAudioIdleInhibit = pkgs.callPackage ./packages/SwayAudioIdleInhibit.nix { };
XWaylandVideoBridge = pkgs.callPackage ./packages/XWaylandVideoBridge.nix { };
agregore = pkgs.callPackage ./packages/agregore { };
argon-kg = self.inputs.argon-kg.outputs.defaultPackage.${system};
capnp-go = pkgs.callPackage ./packages/capnp-go.nix { };
e2eirc = pkgs.callPackage ./packages/e2eirc.nix { };
Expand Down
79 changes: 79 additions & 0 deletions packages/agregore/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
{ fetchFromGitHub
, fetchurl
, lib
, mkYarnModules
, runCommand
, stdenvNoCC

, electron
, makeBinaryWrapper
, nodejs
, yarn
}:
let
inherit (lib) getExe mapAttrsToList pipe;

pname = "agregore";
version = "2.4.0";

src =
let
raw = fetchFromGitHub {
owner = "AgregoreWeb";
repo = "agregore-browser";
rev = "v${version}";
hash = "sha256-jDwdBSZdz/hXDeNBpw35WBXAzhlYjTplbZaBfVO+IBg=";
};
in
runCommand "patch" { } ''
cp -r ${raw} $out
chmod -R +w $out
cd $out
patch -p1 < ${./fix.patch}
'';

modules = mkYarnModules {
inherit pname version;
packageJSON = "${src}/package.json";
yarnLock = "${src}/yarn.lock";
yarnFlags = [ "--production" ];
};

download-extensions = pipe "${src}/app/extensions/builtins.json" [
builtins.readFile
builtins.fromJSON
(mapAttrsToList (name: val:
let
file = fetchurl {
url = builtins.replaceStrings [ "{version}" ] [ val.version ] val.url;
hash = val.hash or "";
};
in
"cp ${file} $out/agregore/app/extensions/builtins/${name}.zip"))
(builtins.concatStringsSep "\n")
];
in
stdenvNoCC.mkDerivation {
inherit pname version src;

nativeBuildInputs = [
makeBinaryWrapper
nodejs
yarn
];

buildPhase = ''
node ./update-versions.js
mkdir -p $out/agregore/app/extensions/builtins
${download-extensions}
'';

installPhase = ''
mkdir -p $out/agregore
cp -r app build package.json ${modules}/node_modules $out/agregore
makeWrapper "${getExe electron}" $out/bin/agregore \
--chdir $out/agregore --add-flags "."
'';
}
80 changes: 80 additions & 0 deletions packages/agregore/fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
diff --git a/app/extensions/builtins.json b/app/extensions/builtins.json
index 98151b6..840efc6 100644
--- a/app/extensions/builtins.json
+++ b/app/extensions/builtins.json
@@ -1,23 +1,27 @@
{
"agregore-history": {
"version": "1.1.1",
- "url": "https://github.com/AgregoreWeb/extension-agregore-history/releases/download/v{version}/agregore-history-v{version}.zip"
+ "url": "https://github.com/AgregoreWeb/extension-agregore-history/releases/download/v{version}/agregore-history-v{version}.zip",
+ "hash": "sha256-1LULPhRVb1M34cJrWwhjOh+W9kKBjj8xOrn2vOL3H7k="
},
"agregore-renderer": {
"version": "2.1.1",
- "url": "https://github.com/AgregoreWeb/extension-agregore-renderer/releases/download/v{version}/agregore-renderer-v{version}.zip"
+ "url": "https://github.com/AgregoreWeb/extension-agregore-renderer/releases/download/v{version}/agregore-renderer-v{version}.zip",
+ "hash": "sha256-Xyg/oVRpdNeCfSKhgms7Ws/68j+MdnX3Dn1Peb/lNtE="
},
"agregore-qr-share": {
"version": "1.0.1",
- "url": "https://github.com/AgregoreWeb/extension-agregore-qr-share/releases/download/v{version}/agregore-qr-share-v{version}.zip"
+ "url": "https://github.com/AgregoreWeb/extension-agregore-qr-share/releases/download/v{version}/agregore-qr-share-v{version}.zip",
+ "hash": "sha256-QP8EjDCUElTUuIB5R5TNL2CZ3lvxIn099atSt9WYnt8="
},
"archiveweb.page": {
"version": "0.10.0",
- "url": "https://github.com/webrecorder/archiveweb.page/releases/download/v{version}/ArchiveWeb.page-{version}-extension.zip"
+ "url": "https://github.com/webrecorder/archiveweb.page/releases/download/v{version}/ArchiveWeb.page-{version}-extension.zip",
+ "hash": "sha256-ek8u87PxEmrvzygKluSjwrf34q4iS4ePNGKkEttcgqw="
},
"ublock": {
"version": "1.47.4",
"url": "https://github.com/gorhill/uBlock/releases/download/{version}/uBlock0_{version}.chromium.zip",
- "stripPrefix": "uBlock0.chromium/"
+ "hash": "sha256-MphO4sLzZV2LSJUq7XsZWY38CzI6913m1VeK0k/iAlk="
}
}
diff --git a/app/ui/omni-box.js b/app/ui/omni-box.js
index 8eaee7f..e832dd3 100644
--- a/app/ui/omni-box.js
+++ b/app/ui/omni-box.js
@@ -1,7 +1,7 @@
/* global HTMLElement, CustomEvent, customElements */

const { looksLikeLegacySSB, convertLegacySSB: makeSSB } = require('ssb-fetch')
-const { CID } = require('multiformats/cid')
+const { CID } = import('multiformats/src')

const IPNS_PREFIX = '/ipns/'
const IPFS_PREFIX = '/ipfs/'
diff --git a/package.json b/package.json
index 3a5ea83..bf50bcf 100644
--- a/package.json
+++ b/package.json
@@ -212,7 +212,7 @@
"scoped-fs": "^1.4.1",
"semver": "^7.5.2",
"ssb-fetch": "^1.5.2",
- "whatwg-mimetype": "https://github.com/jsdom/whatwg-mimetype#v2.3.0",
+ "whatwg-mimetype": "^2.3.0",
"wrtc": "^0.4.7"
}
}
diff --git a/yarn.lock b/yarn.lock
index 528dd77..360449b 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -7348,9 +7348,10 @@ webtorrent@^1.8.1:
optionalDependencies:
utp-native "^2.5.3"

-"whatwg-mimetype@https://github.com/jsdom/whatwg-mimetype#v2.3.0":
+whatwg-mimetype@^2.3.0:
version "2.3.0"
- resolved "https://github.com/jsdom/whatwg-mimetype#7eadb26d8e02f9d95bc2f6e272df7eb653d7a903"
+ resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf"
+ integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==

whatwg-url@^5.0.0:
version "5.0.0"
218 changes: 218 additions & 0 deletions packages/agregore/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,218 @@
{
"name": "agregore-browser",
"version": "2.4.0",
"description": "A minimal web browser for the distributed web",
"main": "app/main.cjs",
"type": "module",
"scripts": {
"test": "npm run lint",
"start": "electron .",
"debug": "env NODE_ENV=debug electron --trace-uncaught .",
"builder": "electron-builder build --publish never",
"builder-all": "electron-builder build -mwl",
"lint": "standard --fix",
"preversion": "npm run test",
"postinstall": "npm run postversion && npm run download-extensions && electron-builder install-app-deps",
"download-extensions": "node ./download-extensions.js",
"postversion": "node ./update-versions.js"
},
"standard": {
"ignore": [
"bundle.js",
"bundle-markdown.js",
"bundle-json.js",
"bundle-gemini.js",
"bundle-ssb.js",
"extension-agregore-*/",
"version.js"
]
},
"build": {
"npmRebuild": true,
"asar": true,
"asarUnpack": [
"app/**",
"node_modules/**",
"build/icon.png",
"build/icon-small.png",
"package.json"
],
"productName": "Agregore Browser",
"appId": "agregore.mauve.moe",
"files": [
"build/*",
"app/**/*",
"app/*",
"node_modules/**/*",
"package.json"
],
"fileAssociations": [
{
"ext": "html",
"name": "web page",
"role": "Viewer"
},
{
"ext": "md",
"name": "markdown",
"role": "Viewer"
},
{
"ext": "gemini",
"role": "Viewer"
}
],
"directories": {
"output": "release"
},
"protocols": [
{
"name": "hypercore-protocol",
"schemes": [
"hyper",
"dat"
],
"role": "Viewer"
},
{
"name": "webpages",
"schemes": [
"http",
"https"
],
"role": "Viewer"
},
{
"name": "gemini",
"schemes": [
"gemini"
],
"role": "Viewer"
},
{
"name": "ipfs",
"schemes": [
"ipfs",
"ipns",
"ipld"
],
"role": "Viewer"
},
{
"name": "bittorrent",
"schemes": [
"magnet",
"bittorrent",
"bt"
],
"role": "Viewer"
},
{
"name": "SecureScuttlebutt",
"schemes": [
"ssb"
],
"role": "Viewer"
}
],
"dmg": {
"contents": [
{
"x": 130,
"y": 220
},
{
"x": 410,
"y": 220,
"type": "link",
"path": "/Applications"
}
]
},
"mac": {
"artifactName": "${name}-${version}-${os}-${arch}.${ext}",
"darkModeSupport": true,
"gatekeeperAssess": false,
"target": [
{
"target": "dmg",
"arch": [
"x64"
]
}
]
},
"win": {
"target": [
"nsis",
"portable"
]
},
"linux": {
"artifactName": "${name}-${version}-${os}-${arch}.${ext}",
"executableArgs": [
"--enable-accelerated-video"
],
"target": [
"deb",
"AppImage",
"apk",
"pacman"
],
"category": "Network;FileTransfer:P2P"
}
},
"repository": {
"type": "git",
"url": "git+https://github.com/AgregoreWeb/agregore-browser.git"
},
"keywords": [
"dat",
"hypercore",
"hyper",
"hyperdrive",
"ipfs",
"browser",
"dweb"
],
"author": "rangermauve <[email protected]> (https://mauve.moe/)",
"license": "AGPL-3.0",
"bugs": {
"url": "https://github.com/AgregoreWeb/agregore-browser/issues"
},
"homepage": "https://github.com/AgregoreWeb/agregore-browser#readme",
"devDependencies": {
"@netless/extension-flat": "^1.0.1",
"electron": "^28.0.0",
"electron-builder": "^23.6.0",
"standard": "^17.0.0"
},
"dependencies": {
"abort-controller": "^3.0.0",
"bt-fetch": "^3.1.1",
"create-desktop-shortcuts": "^1.7.0",
"data-uri-to-buffer": "^3.0.1",
"decompress": "^4.2.1",
"delay": "^6.0.0",
"electron-extended-webextensions": "0.0.10",
"fs-extra": "^9.0.1",
"gemini-fetch": "^2.0.0",
"gemini-to-html": "^1.0.0",
"go-ipfs": "^0.17.0",
"hyper-sdk": "^4.4.0",
"hypercore-fetch": "^9.9.0",
"ipfs-http-client": "^60.0.0",
"ipfsd-ctl": "^13.0.0",
"js-ipfs-fetch": "^5.0.0",
"mime": "^2.4.6",
"multiformats": "^9.9.0",
"p-queue": "^7.3.4",
"rc": "^1.2.8",
"sanitize-filename": "^1.6.3",
"scoped-fs": "^1.4.1",
"semver": "^7.5.2",
"ssb-fetch": "^1.5.2",
"whatwg-mimetype": "^2.3.0",
"wrtc": "^0.4.7"
}
}
Loading

0 comments on commit 018d5cc

Please sign in to comment.