add element patch
This commit is contained in:
parent
555e6a9351
commit
c6eaec739f
5 changed files with 13205 additions and 0 deletions
|
@ -74,6 +74,7 @@ in {
|
||||||
checkPhase = "true";
|
checkPhase = "true";
|
||||||
installCheckPhase = "true";
|
installCheckPhase = "true";
|
||||||
});
|
});
|
||||||
|
element-web = prev.callPackage ../../packages/element-web.nix {};
|
||||||
}
|
}
|
||||||
// nix-packages.packages.${system})
|
// nix-packages.packages.${system})
|
||||||
];
|
];
|
||||||
|
|
215
packages/element-web-package.json
Normal file
215
packages/element-web-package.json
Normal file
|
@ -0,0 +1,215 @@
|
||||||
|
{
|
||||||
|
"name": "element-web",
|
||||||
|
"version": "1.11.3",
|
||||||
|
"description": "A feature-rich client for Matrix.org",
|
||||||
|
"author": "New Vector Ltd.",
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/vector-im/element-web"
|
||||||
|
},
|
||||||
|
"license": "Apache-2.0",
|
||||||
|
"files": [
|
||||||
|
"lib",
|
||||||
|
"res",
|
||||||
|
"src",
|
||||||
|
"webpack.config.js",
|
||||||
|
"scripts",
|
||||||
|
"docs",
|
||||||
|
"release.sh",
|
||||||
|
"deploy",
|
||||||
|
"CHANGELOG.md",
|
||||||
|
"CONTRIBUTING.rst",
|
||||||
|
"LICENSE",
|
||||||
|
"README.md",
|
||||||
|
"AUTHORS.rst",
|
||||||
|
"package.json",
|
||||||
|
"contribute.json"
|
||||||
|
],
|
||||||
|
"style": "bundle.css",
|
||||||
|
"scripts": {
|
||||||
|
"i18n": "matrix-gen-i18n",
|
||||||
|
"prunei18n": "matrix-prune-i18n",
|
||||||
|
"diff-i18n": "cp src/i18n/strings/en_EN.json src/i18n/strings/en_EN_orig.json && matrix-gen-i18n && matrix-compare-i18n-files src/i18n/strings/en_EN_orig.json src/i18n/strings/en_EN.json",
|
||||||
|
"clean": "rimraf lib webapp",
|
||||||
|
"build": "yarn clean && yarn build:genfiles && yarn build:bundle",
|
||||||
|
"build-stats": "yarn clean && yarn build:genfiles && yarn build:bundle-stats",
|
||||||
|
"build:jitsi": "node scripts/build-jitsi.js",
|
||||||
|
"build:res": "node scripts/copy-res.js",
|
||||||
|
"build:genfiles": "yarn build:res && yarn build:jitsi && yarn build:module_system",
|
||||||
|
"build:modernizr": "modernizr -c .modernizr.json -d src/vector/modernizr.js",
|
||||||
|
"build:bundle": "webpack --progress --bail --mode production",
|
||||||
|
"build:bundle-stats": "webpack --progress --bail --mode production --json > webpack-stats.json",
|
||||||
|
"build:module_system": "tsc --project ./tsconfig.module_system.json && node ./lib/module_system/scripts/install.js",
|
||||||
|
"dist": "scripts/package.sh",
|
||||||
|
"start": "yarn build:module_system && concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js\"",
|
||||||
|
"start:https": "concurrently --kill-others-on-fail --prefix \"{time} [{name}]\" -n res,element-js \"yarn start:res\" \"yarn start:js --https\"",
|
||||||
|
"start:res": "yarn build:jitsi && node scripts/copy-res.js -w",
|
||||||
|
"start:js": "webpack-dev-server --host=0.0.0.0 --output-filename=bundles/_dev_/[name].js --output-chunk-filename=bundles/_dev_/[name].js -w --mode development --disable-host-check --hot",
|
||||||
|
"lint": "yarn lint:types && yarn lint:js && yarn lint:style",
|
||||||
|
"lint:js": "eslint --max-warnings 0 src module_system",
|
||||||
|
"lint:js-fix": "eslint --fix src module_system",
|
||||||
|
"lint:types": "tsc --noEmit --jsx react && tsc --noEmit --project ./tsconfig.module_system.json",
|
||||||
|
"lint:style": "stylelint \"res/css/**/*.pcss\"",
|
||||||
|
"test": "jest",
|
||||||
|
"coverage": "yarn test --coverage",
|
||||||
|
"analyse:unused-exports": "node ./scripts/analyse_unused_exports.js"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"@matrix-org/olm": "https://gitlab.matrix.org/api/v4/projects/27/packages/npm/@matrix-org/olm/-/@matrix-org/olm-3.2.12.tgz",
|
||||||
|
"@matrix-org/react-sdk-module-api": "^0.0.3",
|
||||||
|
"browser-request": "^0.3.3",
|
||||||
|
"gfm.css": "^1.1.2",
|
||||||
|
"jsrsasign": "^10.5.25",
|
||||||
|
"katex": "^0.12.0",
|
||||||
|
"matrix-js-sdk": "github:matrix-org/matrix-js-sdk#develop",
|
||||||
|
"matrix-react-sdk": "github:maunium/matrix-react-sdk",
|
||||||
|
"matrix-widget-api": "^1.0.0",
|
||||||
|
"prop-types": "^15.7.2",
|
||||||
|
"react": "17.0.2",
|
||||||
|
"react-dom": "17.0.2",
|
||||||
|
"sanitize-html": "^2.3.2",
|
||||||
|
"ua-parser-js": "^0.7.24"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"@babel/core": "^7.12.10",
|
||||||
|
"@babel/eslint-parser": "^7.12.10",
|
||||||
|
"@babel/eslint-plugin": "^7.12.10",
|
||||||
|
"@babel/plugin-proposal-class-properties": "^7.12.1",
|
||||||
|
"@babel/plugin-proposal-export-default-from": "^7.12.1",
|
||||||
|
"@babel/plugin-proposal-nullish-coalescing-operator": "^7.12.1",
|
||||||
|
"@babel/plugin-proposal-numeric-separator": "^7.12.7",
|
||||||
|
"@babel/plugin-proposal-object-rest-spread": "^7.12.1",
|
||||||
|
"@babel/plugin-proposal-optional-chaining": "^7.12.7",
|
||||||
|
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
|
||||||
|
"@babel/plugin-transform-runtime": "^7.12.10",
|
||||||
|
"@babel/preset-env": "^7.12.11",
|
||||||
|
"@babel/preset-react": "^7.12.10",
|
||||||
|
"@babel/preset-typescript": "^7.12.7",
|
||||||
|
"@babel/register": "^7.12.10",
|
||||||
|
"@babel/runtime": "^7.12.5",
|
||||||
|
"@principalstudio/html-webpack-inject-preload": "^1.2.7",
|
||||||
|
"@sentry/webpack-plugin": "^1.18.1",
|
||||||
|
"@svgr/webpack": "^5.5.0",
|
||||||
|
"@types/flux": "^3.1.9",
|
||||||
|
"@types/jest": "^28.0.0",
|
||||||
|
"@types/modernizr": "^3.5.3",
|
||||||
|
"@types/node": "^14.14.22",
|
||||||
|
"@types/react": "17.0.14",
|
||||||
|
"@types/react-dom": "17.0.9",
|
||||||
|
"@types/sanitize-html": "^2.3.1",
|
||||||
|
"@types/ua-parser-js": "^0.7.36",
|
||||||
|
"@typescript-eslint/eslint-plugin": "^5.6.0",
|
||||||
|
"@typescript-eslint/parser": "^5.6.0",
|
||||||
|
"allchange": "^1.0.6",
|
||||||
|
"autoprefixer": "^9.8.6",
|
||||||
|
"babel-jest": "^28.0.0",
|
||||||
|
"babel-loader": "^8.2.2",
|
||||||
|
"chokidar": "^3.5.1",
|
||||||
|
"concurrently": "^5.3.0",
|
||||||
|
"cpx": "^1.5.0",
|
||||||
|
"css-loader": "^3.6.0",
|
||||||
|
"dotenv": "^10.0.0",
|
||||||
|
"eslint": "8.9.0",
|
||||||
|
"eslint-config-google": "^0.14.0",
|
||||||
|
"eslint-plugin-deprecate": "^0.7.0",
|
||||||
|
"eslint-plugin-import": "^2.25.4",
|
||||||
|
"eslint-plugin-matrix-org": "^0.6.1",
|
||||||
|
"eslint-plugin-react": "^7.28.0",
|
||||||
|
"eslint-plugin-react-hooks": "^4.3.0",
|
||||||
|
"extract-text-webpack-plugin": "^4.0.0-beta.0",
|
||||||
|
"fake-indexeddb": "^3.1.2",
|
||||||
|
"file-loader": "^5.1.0",
|
||||||
|
"fs-extra": "^0.30.0",
|
||||||
|
"html-webpack-plugin": "^4.5.2",
|
||||||
|
"jest": "^28.0.0",
|
||||||
|
"jest-environment-jsdom": "^28.1.3",
|
||||||
|
"jest-raw-loader": "^1.0.1",
|
||||||
|
"jest-sonar-reporter": "^2.0.0",
|
||||||
|
"json-loader": "^0.5.7",
|
||||||
|
"loader-utils": "^1.4.0",
|
||||||
|
"matrix-mock-request": "^2.0.0",
|
||||||
|
"matrix-react-test-utils": "^0.2.3",
|
||||||
|
"matrix-web-i18n": "^1.3.0",
|
||||||
|
"mini-css-extract-plugin": "^0.12.0",
|
||||||
|
"minimist": "^1.2.6",
|
||||||
|
"mkdirp": "^1.0.4",
|
||||||
|
"modernizr": "^3.12.0",
|
||||||
|
"node-fetch": "^2.6.7",
|
||||||
|
"optimize-css-assets-webpack-plugin": "^5.0.4",
|
||||||
|
"postcss-easings": "^2.0.0",
|
||||||
|
"postcss-hexrgba": "2.0.1",
|
||||||
|
"postcss-import": "^12.0.1",
|
||||||
|
"postcss-loader": "^3.0.0",
|
||||||
|
"postcss-mixins": "^6.2.3",
|
||||||
|
"postcss-nested": "^4.2.3",
|
||||||
|
"postcss-preset-env": "^6.7.0",
|
||||||
|
"postcss-scss": "^2.1.1",
|
||||||
|
"postcss-simple-vars": "^5.0.2",
|
||||||
|
"raw-loader": "^4.0.2",
|
||||||
|
"rimraf": "^3.0.2",
|
||||||
|
"semver": "^7.3.7",
|
||||||
|
"shell-escape": "^0.2.0",
|
||||||
|
"simple-proxy-agent": "^1.1.0",
|
||||||
|
"string-replace-loader": "2",
|
||||||
|
"style-loader": "2",
|
||||||
|
"stylelint": "^14.9.1",
|
||||||
|
"stylelint-config-standard": "^26.0.0",
|
||||||
|
"stylelint-scss": "^4.2.0",
|
||||||
|
"terser-webpack-plugin": "^2.3.8",
|
||||||
|
"ts-prune": "^0.10.3",
|
||||||
|
"typescript": "^4.7.4",
|
||||||
|
"webpack": "^4.46.0",
|
||||||
|
"webpack-cli": "^3.3.12",
|
||||||
|
"webpack-dev-server": "^3.11.2",
|
||||||
|
"worker-loader": "^2.0.0",
|
||||||
|
"worklet-loader": "^2.0.0",
|
||||||
|
"yaml": "^2.0.1"
|
||||||
|
},
|
||||||
|
"resolutions": {
|
||||||
|
"@types/react": "17.0.14"
|
||||||
|
},
|
||||||
|
"jest": {
|
||||||
|
"testEnvironment": "jsdom",
|
||||||
|
"testEnvironmentOptions": {
|
||||||
|
"url": "http://localhost/"
|
||||||
|
},
|
||||||
|
"testMatch": [
|
||||||
|
"<rootDir>/test/**/*-test.[tj]s?(x)"
|
||||||
|
],
|
||||||
|
"setupFilesAfterEnv": [
|
||||||
|
"<rootDir>/node_modules/matrix-react-sdk/test/setupTests.js"
|
||||||
|
],
|
||||||
|
"moduleNameMapper": {
|
||||||
|
"\\.(css|scss|pcss)$": "<rootDir>/__mocks__/cssMock.js",
|
||||||
|
"\\.(gif|png|ttf|woff2)$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/imageMock.js",
|
||||||
|
"\\.svg$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/svg.js",
|
||||||
|
"\\$webapp/i18n/languages.json": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/languages.json",
|
||||||
|
"^browser-request$": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/browser-request.js",
|
||||||
|
"^react$": "<rootDir>/node_modules/react",
|
||||||
|
"^react-dom$": "<rootDir>/node_modules/react-dom",
|
||||||
|
"^matrix-js-sdk$": "<rootDir>/node_modules/matrix-js-sdk/src",
|
||||||
|
"^matrix-react-sdk$": "<rootDir>/node_modules/matrix-react-sdk/src",
|
||||||
|
"decoderWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"decoderWorker\\.min\\.wasm": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"waveWorker\\.min\\.js": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"context-filter-polyfill": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js",
|
||||||
|
"FontManager.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/FontManager.js",
|
||||||
|
"workers/(.+)\\.worker\\.ts": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/workerMock.js",
|
||||||
|
"^!!raw-loader!.*": "jest-raw-loader",
|
||||||
|
"RecorderWorklet": "<rootDir>/node_modules/matrix-react-sdk/__mocks__/empty.js"
|
||||||
|
},
|
||||||
|
"transformIgnorePatterns": [
|
||||||
|
"/node_modules/(?!matrix-js-sdk).+$",
|
||||||
|
"/node_modules/(?!matrix-react-sdk).+$"
|
||||||
|
],
|
||||||
|
"coverageReporters": [
|
||||||
|
"text-summary",
|
||||||
|
"lcov"
|
||||||
|
],
|
||||||
|
"testResultsProcessor": "jest-sonar-reporter"
|
||||||
|
},
|
||||||
|
"jestSonar": {
|
||||||
|
"reportPath": "coverage",
|
||||||
|
"sonar56x": true
|
||||||
|
}
|
||||||
|
}
|
12893
packages/element-web-yarn.lock
Normal file
12893
packages/element-web-yarn.lock
Normal file
File diff suppressed because it is too large
Load diff
88
packages/element-web.nix
Normal file
88
packages/element-web.nix
Normal file
|
@ -0,0 +1,88 @@
|
||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, runCommand
|
||||||
|
, fetchFromGitHub
|
||||||
|
, fetchYarnDeps
|
||||||
|
, writeText
|
||||||
|
, jq
|
||||||
|
, yarn
|
||||||
|
, fixup_yarn_lock
|
||||||
|
, nodejs
|
||||||
|
, jitsi-meet
|
||||||
|
, conf ? { }
|
||||||
|
}:
|
||||||
|
|
||||||
|
let
|
||||||
|
pinData = lib.importJSON ./pin.json;
|
||||||
|
noPhoningHome = {
|
||||||
|
disable_guests = true; # disable automatic guest account registration at matrix.org
|
||||||
|
piwik = false; # disable analytics
|
||||||
|
};
|
||||||
|
configOverrides = writeText "element-config-overrides.json" (builtins.toJSON (noPhoningHome // conf));
|
||||||
|
|
||||||
|
in stdenv.mkDerivation rec {
|
||||||
|
pname = "element-web";
|
||||||
|
inherit (pinData) version;
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "vector-im";
|
||||||
|
repo = pname;
|
||||||
|
rev = version;
|
||||||
|
sha256 = pinData.webSrcHash;
|
||||||
|
};
|
||||||
|
|
||||||
|
yarnLock = ./element-web-yarn.lock;
|
||||||
|
offlineCache = fetchYarnDeps {
|
||||||
|
inherit yarnLock;
|
||||||
|
sha256 = pinData.webYarnHash;
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [ yarn fixup_yarn_lock jq nodejs ];
|
||||||
|
|
||||||
|
configurePhase = ''
|
||||||
|
runHook preConfigure
|
||||||
|
|
||||||
|
export HOME=$PWD/tmp
|
||||||
|
mkdir -p $HOME
|
||||||
|
|
||||||
|
cp ${./element-web-package.json} package.json
|
||||||
|
cp $yarnLock yarn.lock
|
||||||
|
fixup_yarn_lock yarn.lock
|
||||||
|
yarn config --offline set yarn-offline-mirror $offlineCache
|
||||||
|
yarn install --offline --frozen-lockfile --ignore-platform --ignore-scripts --no-progress --non-interactive
|
||||||
|
patchShebangs node_modules
|
||||||
|
|
||||||
|
runHook postConfigure
|
||||||
|
'';
|
||||||
|
|
||||||
|
buildPhase = ''
|
||||||
|
runHook preBuild
|
||||||
|
|
||||||
|
export VERSION=${version}
|
||||||
|
yarn build:res --offline
|
||||||
|
yarn build:module_system --offline
|
||||||
|
yarn build:bundle --offline
|
||||||
|
|
||||||
|
runHook postBuild
|
||||||
|
'';
|
||||||
|
|
||||||
|
installPhase = ''
|
||||||
|
runHook preInstall
|
||||||
|
|
||||||
|
cp -R webapp $out
|
||||||
|
cp ${jitsi-meet}/libs/external_api.min.js $out/jitsi_external_api.min.js
|
||||||
|
echo "${version}" > "$out/version"
|
||||||
|
jq -s '.[0] * .[1]' "config.sample.json" "${configOverrides}" > "$out/config.json"
|
||||||
|
|
||||||
|
runHook postInstall
|
||||||
|
'';
|
||||||
|
|
||||||
|
meta = {
|
||||||
|
description = "A glossy Matrix collaboration client for the web";
|
||||||
|
homepage = "https://element.io/";
|
||||||
|
changelog = "https://github.com/vector-im/element-web/blob/v${version}/CHANGELOG.md";
|
||||||
|
maintainers = lib.teams.matrix.members;
|
||||||
|
license = lib.licenses.asl20;
|
||||||
|
platforms = lib.platforms.all;
|
||||||
|
};
|
||||||
|
}
|
8
packages/pin.json
Normal file
8
packages/pin.json
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"version": "44e01823a35accb6b08100116b0f34ddf7213387",
|
||||||
|
"desktopSrcHash": "WYXPsiR3hKj+cPvs5bLzZ301vLISp3ANLf/GgBBMYqM=",
|
||||||
|
"desktopYarnHash": "0v60ak06g87i3q5rqgxy3v3whk3njj0v1ml9rfdab1mbzrj6209c",
|
||||||
|
"webSrcHash": "12qp3wlyz9zcdmkk08pa4nvzfj1wp0r6k7cn7mkvi9zqjcx1xcbi",
|
||||||
|
"webYarnHash": "sha256-8G0TXtcgmCD+sPA6v0cko7Fg73Ti70FFXk2/DlY/1Y0="
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue