260 lines
8.3 KiB
Diff
260 lines
8.3 KiB
Diff
diff --git a/pkgs/by-name/ma/matrix-appservice-slack/package.json b/pkgs/by-name/ma/matrix-appservice-slack/package.json
|
|
deleted file mode 100644
|
|
index d4a27436aea1ea..00000000000000
|
|
--- a/pkgs/by-name/ma/matrix-appservice-slack/package.json
|
|
+++ /dev/null
|
|
@@ -1,96 +0,0 @@
|
|
-{
|
|
- "name": "matrix-appservice-slack",
|
|
- "version": "2.1.2",
|
|
- "description": "A Matrix <--> Slack bridge",
|
|
- "engines": {
|
|
- "node": ">=16 <=18"
|
|
- },
|
|
- "main": "app.js",
|
|
- "scripts": {
|
|
- "prepare": "yarn build",
|
|
- "start": "node ./lib/app.js",
|
|
- "build": "yarn build:app && yarn build:widget",
|
|
- "build:app": "tsc --build",
|
|
- "build:widget": "vite build --config widget/vite.config.ts",
|
|
- "test": "yarn test:unit && yarn test:integration",
|
|
- "test:unit": "mocha --require ts-node/register --recursive tests/unit/*.ts",
|
|
- "test:integration": "mocha --exit --reporter list --ui bdd --require ts-node/register --recursive tests/integration/*.ts",
|
|
- "test:postgres": "SLACKBRIDGE_TEST_ENABLEPG=yes mocha --reporter list --ui bdd --require ts-node/register --recursive tests/integration/PgDatastoreTest.ts",
|
|
- "lint": "eslint -c .eslintrc.js ./src && eslint -c ./widget/.eslintrc.js 'widget/src/**/*.{ts,tsx}'"
|
|
- },
|
|
- "repository": {
|
|
- "type": "git",
|
|
- "url": "git+https://github.com/matrix-org/matrix-appservice-slack.git"
|
|
- },
|
|
- "keywords": [
|
|
- "matrix-org",
|
|
- "slack"
|
|
- ],
|
|
- "author": "Matrix.org",
|
|
- "license": "Apache-2.0",
|
|
- "bugs": {
|
|
- "url": "https://github.com/matrix-org/matrix-appservice-slack/issues"
|
|
- },
|
|
- "homepage": "https://github.com/matrix-org/matrix-appservice-slack#readme",
|
|
- "dependencies": {
|
|
- "@alloc/quick-lru": "^5.2.0",
|
|
- "@slack/logger": "^3.0.0",
|
|
- "@slack/rtm-api": "^6.0.0",
|
|
- "@slack/web-api": "^6.7.2",
|
|
- "Slackdown": "git+https://Half-Shot@github.com/half-shot/slackdown.git",
|
|
- "ajv": "^8.12.0",
|
|
- "axios": "^0.27.2",
|
|
- "classnames": "^2.3.2",
|
|
- "escape-string-regexp": "^4.0.0",
|
|
- "https-proxy-agent": "^5.0.1",
|
|
- "matrix-appservice-bridge": "^8.1.2",
|
|
- "matrix-widget-api": "^1.1.1",
|
|
- "minimist": "^1.2.6",
|
|
- "nedb": "^1.8.0",
|
|
- "node-emoji": "^1.10.0",
|
|
- "nunjucks": "^3.2.4",
|
|
- "p-queue": "^6.0.0",
|
|
- "pg-promise": "^10.11.1",
|
|
- "randomstring": "^1.2.1",
|
|
- "react": "^18.2.0",
|
|
- "react-dom": "^18.2.0",
|
|
- "url-join": "^5.0.0",
|
|
- "uuid": "^8.3.2",
|
|
- "yargs": "17.5.1"
|
|
- },
|
|
- "devDependencies": {
|
|
- "@tailwindcss/forms": "^0.5.3",
|
|
- "@tsconfig/node16": "^1.0.3",
|
|
- "@types/chai": "^4.2.21",
|
|
- "@types/js-yaml": "^4.0.2",
|
|
- "@types/mocha": "^9.1.1",
|
|
- "@types/nedb": "^1.8.12",
|
|
- "@types/node": "^18.6.1",
|
|
- "@types/node-emoji": "^1.8.1",
|
|
- "@types/nunjucks": "^3.1.5",
|
|
- "@types/randomstring": "^1.1.7",
|
|
- "@types/react": "^18.0.27",
|
|
- "@types/react-dom": "^18.0.10",
|
|
- "@types/uuid": "^8.3.1",
|
|
- "@types/yargs": "17.0.10",
|
|
- "@typescript-eslint/eslint-plugin": "^5.0.0",
|
|
- "@typescript-eslint/parser": "^5.50.0",
|
|
- "@vitejs/plugin-react": "^3.1.0",
|
|
- "autoprefixer": "^10.4.13",
|
|
- "chai": "^4.3.4",
|
|
- "eslint": "^8.20.0",
|
|
- "eslint-plugin-jsdoc": "^39.3.3",
|
|
- "eslint-plugin-prefer-arrow": "^1.2.3",
|
|
- "eslint-plugin-react": "^7.32.2",
|
|
- "eslint-plugin-react-hooks": "^4.6.0",
|
|
- "js-yaml": "^4.1.0",
|
|
- "mocha": "^10.0.0",
|
|
- "postcss": "^8.4.21",
|
|
- "prom-client": "^14.0.1",
|
|
- "source-map-support": "^0.5.19",
|
|
- "tailwindcss": "^3.2.4",
|
|
- "ts-node": "^10.1.0",
|
|
- "typescript": "^4.4.3",
|
|
- "vite": "^4.1.1"
|
|
- }
|
|
-}
|
|
diff --git a/pkgs/by-name/ma/matrix-appservice-slack/package.nix b/pkgs/by-name/ma/matrix-appservice-slack/package.nix
|
|
index b37ebccbf2f275..480bd57ba3c8bb 100644
|
|
--- a/pkgs/by-name/ma/matrix-appservice-slack/package.nix
|
|
+++ b/pkgs/by-name/ma/matrix-appservice-slack/package.nix
|
|
@@ -1,55 +1,74 @@
|
|
{
|
|
lib,
|
|
+ stdenv,
|
|
fetchFromGitHub,
|
|
fetchYarnDeps,
|
|
+ yarnConfigHook,
|
|
+ yarnBuildHook,
|
|
+ nodejs_20,
|
|
makeWrapper,
|
|
- mkYarnPackage,
|
|
- nodejs_18,
|
|
callPackage,
|
|
}:
|
|
|
|
let
|
|
- data = lib.importJSON ./pin.json;
|
|
- nodejs = nodejs_18;
|
|
+ nodejs = nodejs_20;
|
|
matrix-sdk-crypto-nodejs = callPackage ./matrix-sdk-crypto-nodejs-0_1_0-beta_3/package.nix { };
|
|
in
|
|
-mkYarnPackage rec {
|
|
- inherit nodejs;
|
|
-
|
|
+stdenv.mkDerivation rec {
|
|
pname = "matrix-appservice-slack";
|
|
- version = data.version;
|
|
+ version = "2.1.2";
|
|
|
|
- packageJSON = ./package.json;
|
|
src = fetchFromGitHub {
|
|
owner = "matrix-org";
|
|
repo = "matrix-appservice-slack";
|
|
- rev = data.version;
|
|
- hash = data.srcHash;
|
|
+ rev = version;
|
|
+ hash = "sha256-e9k+5xvgHkVt/fKAr0XhYjbEzHYwdGRdqiPWWbT0T5M=";
|
|
};
|
|
|
|
- offlineCache = fetchYarnDeps {
|
|
+ nativeBuildInputs = [
|
|
+ makeWrapper
|
|
+ nodejs
|
|
+ yarnConfigHook
|
|
+ yarnBuildHook
|
|
+ ];
|
|
+
|
|
+ postPatch = ''
|
|
+ # upstream locks the supported node version range down, which we don't want
|
|
+ substituteInPlace package.json \
|
|
+ --replace-fail '"node": ">=16 <=18"' '"node": ">=16"'
|
|
+ '';
|
|
+
|
|
+ yarnOfflineCache = fetchYarnDeps {
|
|
yarnLock = src + "/yarn.lock";
|
|
- sha256 = data.yarnHash;
|
|
- };
|
|
- packageResolutions = {
|
|
- "@matrix-org/matrix-sdk-crypto-nodejs" =
|
|
- "${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs";
|
|
+ hash = "sha256-fw4gXh4wfzHFgUYiEAvbhVrjno/E70iMhdk60F3Oxgg=";
|
|
};
|
|
|
|
- nativeBuildInputs = [ makeWrapper ];
|
|
+ preBuild = ''
|
|
+ # matrix-sdk-crypto-nodejs needs rust to be built from source, which we can achieve in a separate derivation
|
|
|
|
- buildPhase = ''
|
|
- runHook preBuild
|
|
- yarn run build
|
|
- runHook postBuild
|
|
+ # first, we ensure the separately built module's version is actually the same as the version in the lockfile
|
|
+ diff ${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs/package.json node_modules/@matrix-org/matrix-sdk-crypto-nodejs/package.json
|
|
+
|
|
+ # then we copy it into node_modules
|
|
+ rm -r node_modules/@matrix-org/matrix-sdk-crypto-nodejs
|
|
+ ln -s ${matrix-sdk-crypto-nodejs}/lib/node_modules/@matrix-org/matrix-sdk-crypto-nodejs node_modules/@matrix-org/matrix-sdk-crypto-nodejs
|
|
'';
|
|
|
|
- postInstall = ''
|
|
- makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-slack" --add-flags \
|
|
- "$out/libexec/matrix-appservice-slack/deps/matrix-appservice-slack/lib/app.js"
|
|
+ installPhase = ''
|
|
+ runHook preInstall
|
|
+
|
|
+ mkdir -p "$out"/libexec/matrix-appservice-slack
|
|
+ cp -r package.json lib node_modules "$out"/libexec/matrix-appservice-slack
|
|
+
|
|
+ makeWrapper '${lib.getExe nodejs}' "$out/bin/matrix-appservice-slack" --add-flags \
|
|
+ "$out/libexec/matrix-appservice-slack/lib/app.js"
|
|
+
|
|
+ runHook postInstall
|
|
'';
|
|
|
|
- doDist = false;
|
|
+ passthru = {
|
|
+ inherit matrix-sdk-crypto-nodejs;
|
|
+ };
|
|
|
|
meta = with lib; {
|
|
description = "Matrix <--> Slack bridge";
|
|
diff --git a/pkgs/by-name/ma/matrix-appservice-slack/pin.json b/pkgs/by-name/ma/matrix-appservice-slack/pin.json
|
|
deleted file mode 100644
|
|
index 3adfcbabae62b4..00000000000000
|
|
--- a/pkgs/by-name/ma/matrix-appservice-slack/pin.json
|
|
+++ /dev/null
|
|
@@ -1,5 +0,0 @@
|
|
-{
|
|
- "version": "2.1.2",
|
|
- "srcHash": "sha256-e9k+5xvgHkVt/fKAr0XhYjbEzHYwdGRdqiPWWbT0T5M=",
|
|
- "yarnHash": "0266rrfx0fnrhn64ivy4iygf6nl5vc5i08j6h72k2zrh3rg203kz"
|
|
-}
|
|
diff --git a/pkgs/by-name/ma/matrix-appservice-slack/update.sh b/pkgs/by-name/ma/matrix-appservice-slack/update.sh
|
|
deleted file mode 100755
|
|
index dc3bab3311f21c..00000000000000
|
|
--- a/pkgs/by-name/ma/matrix-appservice-slack/update.sh
|
|
+++ /dev/null
|
|
@@ -1,36 +0,0 @@
|
|
-#!/usr/bin/env nix-shell
|
|
-#!nix-shell -I nixpkgs=../../../../ -i bash -p nix curl jq prefetch-yarn-deps nix-prefetch-github nix-prefetch-git
|
|
-
|
|
-if [ "$#" -gt 1 ] || [[ "$1" == -* ]]; then
|
|
- echo "Regenerates packaging data for matrix-appservice-slack."
|
|
- echo "Usage: $0 [git release tag]"
|
|
- exit 1
|
|
-fi
|
|
-
|
|
-version="$1"
|
|
-
|
|
-set -euo pipefail
|
|
-
|
|
-if [ -z "$version" ]; then
|
|
- version="$(curl "https://api.github.com/repos/matrix-org/matrix-appservice-slack/releases?per_page=1" | jq -r '.[0].tag_name')"
|
|
-fi
|
|
-
|
|
-src="https://raw.githubusercontent.com/matrix-org/matrix-appservice-slack/$version"
|
|
-src_hash=$(nix-prefetch-github matrix-org matrix-appservice-slack --rev ${version} | jq -r .hash)
|
|
-
|
|
-tmpdir=$(mktemp -d)
|
|
-trap 'rm -rf "$tmpdir"' EXIT
|
|
-
|
|
-pushd $tmpdir
|
|
-curl -O "$src/yarn.lock"
|
|
-yarn_hash=$(prefetch-yarn-deps yarn.lock)
|
|
-popd
|
|
-
|
|
-curl -O "$src/package.json"
|
|
-cat > pin.json << EOF
|
|
-{
|
|
- "version": "$version",
|
|
- "srcHash": "$src_hash",
|
|
- "yarnHash": "$yarn_hash"
|
|
-}
|
|
-EOF
|