commit
d1a9594c37
8 changed files with 36019 additions and 0 deletions
1
.github/workflows/build.yml
vendored
1
.github/workflows/build.yml
vendored
|
@ -11,6 +11,7 @@ jobs:
|
|||
- akkoma
|
||||
- pleroma-fe
|
||||
- admin-fe
|
||||
- fedibird-fe
|
||||
- emoji-lotte
|
||||
- emoji-volpeon-blobfox
|
||||
- emoji-volpeon-blobfox-flip
|
||||
|
|
74
akkoma/fedibird-fe/default.nix
Normal file
74
akkoma/fedibird-fe/default.nix
Normal file
|
@ -0,0 +1,74 @@
|
|||
{
|
||||
lib,
|
||||
mkYarnPackage,
|
||||
fetchFromGitea,
|
||||
fetchYarnDeps,
|
||||
fixup_yarn_lock,
|
||||
yarn,
|
||||
nodejs,
|
||||
jpegoptim,
|
||||
oxipng,
|
||||
nodePackages,
|
||||
writeScript,
|
||||
applyPatches,
|
||||
callPackage,
|
||||
}: let
|
||||
source = builtins.fromJSON (builtins.readFile ./source.json);
|
||||
src = applyPatches {
|
||||
src = fetchFromGitea {
|
||||
domain = "akkoma.dev";
|
||||
owner = "AkkomaGang";
|
||||
repo = "fedibird-fe";
|
||||
inherit (source) rev sha256;
|
||||
};
|
||||
patches = [./fedibird-fe.patch];
|
||||
};
|
||||
nodeOptions = callPackage ../../lib/opensslLegacyProvider.nix {};
|
||||
in
|
||||
mkYarnPackage rec {
|
||||
pname = "fedibird-fe";
|
||||
version = source.date;
|
||||
inherit src;
|
||||
packageJSON = ./package.json;
|
||||
yarnLock = ./yarn.lock;
|
||||
yarnNix = ./yarn.nix;
|
||||
|
||||
nativeBuildInputs = [
|
||||
jpegoptim
|
||||
oxipng
|
||||
nodePackages.svgo
|
||||
];
|
||||
patchPhase = ''
|
||||
'';
|
||||
configurePhase = "cp -r $node_modules node_modules";
|
||||
buildPhase = ''
|
||||
export NODE_OPTIONS="${nodeOptions}"
|
||||
yarn run build:production --offline
|
||||
'';
|
||||
installPhase = ''
|
||||
cp -rv dist $out
|
||||
cp -rv public/packs $out/packs
|
||||
cp -rv public/emoji $out/emoji
|
||||
'';
|
||||
distPhase = ''
|
||||
# (Losslessly) optimise compression of image artifacts
|
||||
find $out -type f -name '*.jpg' -execdir ${jpegoptim}/bin/jpegoptim -w$NIX_BUILD_CORES {} \;
|
||||
find $out -type f -name '*.png' -execdir ${oxipng}/bin/oxipng -o max -t $NIX_BUILD_CORES {} \;
|
||||
find $out -type f -name '*.svg' -execdir ${nodePackages.svgo}/bin/svgo {} \;
|
||||
'';
|
||||
passthru = {
|
||||
updateScript = writeScript "update-fedibird-fe" ''
|
||||
${../../scripts/update-git.sh} https://akkoma.dev/AkkomaGang/fedibird-fe.git akkoma/fedibird-fe/source.json
|
||||
if [ "$(git diff -- akkoma/fedibird-fe/source.json)" ]; then
|
||||
SRC_PATH=$(nix-build -E '(import ./. {}).${pname}.src')
|
||||
${../../scripts/update-yarn.sh} $SRC_PATH akkoma/fedibird-fe
|
||||
fi
|
||||
'';
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Fedibird frontend for Akkoma and Pleroma";
|
||||
homepage = "https://akkoma.dev/AkkomaGang/fedibird-fe/";
|
||||
license = licenses.agpl3;
|
||||
};
|
||||
}
|
11143
akkoma/fedibird-fe/fedibird-fe.patch
Normal file
11143
akkoma/fedibird-fe/fedibird-fe.patch
Normal file
File diff suppressed because it is too large
Load diff
200
akkoma/fedibird-fe/package.json
Normal file
200
akkoma/fedibird-fe/package.json
Normal file
|
@ -0,0 +1,200 @@
|
|||
{
|
||||
"name": "@mastodon/mastodon",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"engines": {
|
||||
"node": ">=12"
|
||||
},
|
||||
"scripts": {
|
||||
"postversion": "git push --tags",
|
||||
"build:development": "cross-env NODE_ENV=development webpack --config config/webpack/development.js",
|
||||
"build:production": "cross-env NODE_ENV=production webpack --config config/webpack/production.js",
|
||||
"manage:translations": "node ./config/webpack/translationRunner.js",
|
||||
"start": "node ./streaming/index.js",
|
||||
"test": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:jest",
|
||||
"test:lint": "${npm_execpath} run test:lint:js && ${npm_execpath} run test:lint:sass",
|
||||
"test:lint:js": "eslint --ext=js . --cache",
|
||||
"test:lint:sass": "sass-lint -v",
|
||||
"test:jest": "cross-env NODE_ENV=test jest --coverage"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "https://akkoma.dev/AkkomaGang/fedibird-fe"
|
||||
},
|
||||
"browserslist": [
|
||||
"last 2 versions",
|
||||
"not IE 11",
|
||||
"iOS >= 9",
|
||||
"not dead"
|
||||
],
|
||||
"jest": {
|
||||
"projects": [
|
||||
"<rootDir>/app/javascript/mastodon"
|
||||
],
|
||||
"testPathIgnorePatterns": [
|
||||
"<rootDir>/node_modules/",
|
||||
"<rootDir>/vendor/",
|
||||
"<rootDir>/config/",
|
||||
"<rootDir>/log/",
|
||||
"<rootDir>/public/",
|
||||
"<rootDir>/tmp/"
|
||||
],
|
||||
"setupFiles": [
|
||||
"raf/polyfill"
|
||||
],
|
||||
"setupFilesAfterEnv": [
|
||||
"<rootDir>/app/javascript/mastodon/test_setup.js"
|
||||
],
|
||||
"collectCoverageFrom": [
|
||||
"app/javascript/mastodon/**/*.js",
|
||||
"!app/javascript/mastodon/features/emoji/emoji_compressed.js",
|
||||
"!app/javascript/mastodon/locales/locale-data/*.js",
|
||||
"!app/javascript/mastodon/service_worker/entry.js",
|
||||
"!app/javascript/mastodon/test_setup.js"
|
||||
],
|
||||
"coverageDirectory": "<rootDir>/coverage",
|
||||
"moduleDirectories": [
|
||||
"<rootDir>/node_modules",
|
||||
"<rootDir>/app/javascript"
|
||||
]
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@babel/core": "^7.14.8",
|
||||
"@babel/plugin-proposal-decorators": "^7.14.5",
|
||||
"@babel/plugin-transform-react-inline-elements": "^7.14.5",
|
||||
"@babel/plugin-transform-runtime": "^7.14.5",
|
||||
"@babel/preset-env": "^7.15.0",
|
||||
"@babel/preset-react": "^7.14.5",
|
||||
"@babel/runtime": "^7.14.8",
|
||||
"@gamestdio/websocket": "^0.3.2",
|
||||
"@github/webauthn-json": "^0.5.7",
|
||||
"@rails/ujs": "^6.1.4",
|
||||
"array-includes": "^3.1.3",
|
||||
"arrow-key-navigation": "^1.2.0",
|
||||
"autoprefixer": "^9.8.6",
|
||||
"axios": "^0.21.1",
|
||||
"babel-loader": "^8.2.2",
|
||||
"babel-plugin-lodash": "^3.3.4",
|
||||
"babel-plugin-preval": "^5.0.0",
|
||||
"babel-plugin-react-intl": "^6.2.0",
|
||||
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
|
||||
"babel-runtime": "^6.26.0",
|
||||
"blurhash": "^1.1.3",
|
||||
"classnames": "^2.3.1",
|
||||
"color-blend": "^3.0.1",
|
||||
"compression-webpack-plugin": "^6.1.1",
|
||||
"cross-env": "^7.0.3",
|
||||
"css-loader": "^5.2.7",
|
||||
"cssnano": "^4.1.11",
|
||||
"detect-passive-events": "^2.0.3",
|
||||
"dotenv": "^10.0.0",
|
||||
"emoji-mart": "^3.0.1",
|
||||
"es6-symbol": "^3.1.3",
|
||||
"escape-html": "^1.0.3",
|
||||
"exif-js": "^2.3.0",
|
||||
"express": "^4.17.1",
|
||||
"file-loader": "^6.2.0",
|
||||
"font-awesome": "^4.7.0",
|
||||
"glob": "^7.1.7",
|
||||
"history": "^4.10.1",
|
||||
"http-link-header": "^1.0.3",
|
||||
"immutable": "^3.8.2",
|
||||
"imports-loader": "^1.2.0",
|
||||
"intersection-observer": "^0.12.0",
|
||||
"intl": "^1.2.5",
|
||||
"intl-messageformat": "^2.2.0",
|
||||
"intl-relativeformat": "^6.4.3",
|
||||
"is-nan": "^1.3.2",
|
||||
"js-yaml": "^4.1.0",
|
||||
"lodash": "^4.17.21",
|
||||
"mark-loader": "^0.1.6",
|
||||
"marky": "^1.2.2",
|
||||
"mini-css-extract-plugin": "^1.6.2",
|
||||
"mkdirp": "^1.0.4",
|
||||
"npmlog": "^5.0.0",
|
||||
"object-assign": "^4.1.1",
|
||||
"object-fit-images": "^3.2.3",
|
||||
"object.values": "^1.1.3",
|
||||
"offline-plugin": "^5.0.7",
|
||||
"path-complete-extname": "^1.0.0",
|
||||
"pg": "^8.5.0",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"postcss-object-fit-images": "^1.1.2",
|
||||
"promise.prototype.finally": "^3.1.2",
|
||||
"prop-types": "^15.5.10",
|
||||
"punycode": "^2.1.0",
|
||||
"react": "^16.14.0",
|
||||
"react-datepicker": "^4.1.1",
|
||||
"react-dom": "^16.14.0",
|
||||
"react-hotkeys": "^1.1.4",
|
||||
"react-immutable-proptypes": "^2.2.0",
|
||||
"react-immutable-pure-component": "^2.2.2",
|
||||
"react-intl": "^2.9.0",
|
||||
"react-masonry-infinite": "^1.2.2",
|
||||
"react-motion": "^0.5.2",
|
||||
"react-notification": "^6.8.5",
|
||||
"react-overlays": "^0.9.3",
|
||||
"react-redux": "^7.2.4",
|
||||
"react-redux-loading-bar": "^4.0.8",
|
||||
"react-router-dom": "^4.1.1",
|
||||
"react-router-scroll-4": "^1.0.0-beta.1",
|
||||
"react-select": "^4.3.1",
|
||||
"react-sparklines": "^1.7.0",
|
||||
"react-swipeable-views": "^0.14.0",
|
||||
"react-textarea-autosize": "^8.3.3",
|
||||
"react-toggle": "^4.1.2",
|
||||
"redis": "^3.1.2",
|
||||
"redux": "^4.1.0",
|
||||
"redux-immutable": "^4.0.0",
|
||||
"redux-thunk": "^2.2.0",
|
||||
"regenerator-runtime": "^0.13.9",
|
||||
"rellax": "^1.12.1",
|
||||
"requestidlecallback": "^0.3.0",
|
||||
"reselect": "^4.0.0",
|
||||
"rimraf": "^3.0.2",
|
||||
"s-age": "^1.1.2",
|
||||
"sass": "^1.37.0",
|
||||
"sass-loader": "^10.2.0",
|
||||
"stacktrace-js": "^2.0.2",
|
||||
"stringz": "^2.1.0",
|
||||
"substring-trie": "^1.0.2",
|
||||
"terser-webpack-plugin": "^4.2.3",
|
||||
"tesseract.js": "^2.1.1",
|
||||
"throng": "^4.0.0",
|
||||
"tiny-queue": "^0.2.1",
|
||||
"twitter-text": "3.1.0",
|
||||
"uuid": "^8.3.1",
|
||||
"webpack": "^4.46.0",
|
||||
"webpack-assets-manifest": "^4.0.6",
|
||||
"webpack-bundle-analyzer": "^4.4.2",
|
||||
"webpack-cli": "^3.3.12",
|
||||
"webpack-merge": "^5.8.0",
|
||||
"wicg-inert": "^3.1.1",
|
||||
"ws": "^8.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@testing-library/jest-dom": "^5.14.1",
|
||||
"@testing-library/react": "^11.2.7",
|
||||
"babel-eslint": "^10.1.0",
|
||||
"babel-jest": "^27.0.6",
|
||||
"eslint": "^7.32.0",
|
||||
"eslint-plugin-import": "~2.23.4",
|
||||
"eslint-plugin-jsx-a11y": "~6.4.1",
|
||||
"eslint-plugin-promise": "~5.1.0",
|
||||
"eslint-plugin-react": "~7.24.0",
|
||||
"jest": "^26.6.3",
|
||||
"raf": "^3.4.1",
|
||||
"react-intl-translations-manager": "^5.0.3",
|
||||
"react-test-renderer": "^16.14.0",
|
||||
"sass-lint": "^1.13.1",
|
||||
"webpack-dev-server": "^3.11.2",
|
||||
"yargs": "^17.0.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"kind-of": "^6.0.3"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"bufferutil": "^4.0.3",
|
||||
"utf-8-validate": "^5.0.5"
|
||||
}
|
||||
}
|
11
akkoma/fedibird-fe/source.json
Normal file
11
akkoma/fedibird-fe/source.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"url": "https://akkoma.dev/AkkomaGang/fedibird-fe.git",
|
||||
"rev": "0a64eb70d71f2800f37c3e39f184616d87ab6f59",
|
||||
"date": "2022-08-21T17:30:39+01:00",
|
||||
"path": "/nix/store/dnmyrwrfc2n37sdbrbhglps57gx1yfjh-fedibird-fe",
|
||||
"sha256": "1b1qzqn762iyi3sdf4cwdch74zcskan3cv097picsmprdpr4ni7y",
|
||||
"fetchLFS": false,
|
||||
"fetchSubmodules": false,
|
||||
"deepClone": false,
|
||||
"leaveDotGit": false
|
||||
}
|
11946
akkoma/fedibird-fe/yarn.lock
Normal file
11946
akkoma/fedibird-fe/yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
12643
akkoma/fedibird-fe/yarn.nix
Normal file
12643
akkoma/fedibird-fe/yarn.nix
Normal file
File diff suppressed because it is too large
Load diff
|
@ -14,6 +14,7 @@
|
|||
akkoma = pkgs.callPackage ./akkoma {};
|
||||
pleroma-fe = pkgs.callPackage ./akkoma/pleroma-fe {};
|
||||
admin-fe = pkgs.callPackage ./akkoma/admin-fe {};
|
||||
fedibird-fe = pkgs.callPackage ./akkoma/fedibird-fe {};
|
||||
emoji-lotte = pkgs.callPackage ./art/emoji/lotte {};
|
||||
emoji-volpeon-blobfox = pkgs.callPackage ./art/emoji/volpeon/blobfox.nix {};
|
||||
emoji-volpeon-blobfox-flip = pkgs.callPackage ./art/emoji/volpeon/blobfox_flip.nix {};
|
||||
|
|
Reference in a new issue