about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack')
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix56
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json96
-rw-r--r--nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/pin.json5
-rwxr-xr-xnixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/update.sh36
4 files changed, 193 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
new file mode 100644
index 000000000000..e7928dab5417
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, fetchFromGitHub
+, fetchYarnDeps
+, makeWrapper
+, matrix-sdk-crypto-nodejs
+, mkYarnPackage
+, nodejs
+}:
+
+let
+  data = lib.importJSON ./pin.json;
+in
+mkYarnPackage rec {
+  inherit nodejs;
+
+  pname = "matrix-appservice-slack";
+  version = data.version;
+
+  packageJSON = ./package.json;
+  src = fetchFromGitHub {
+    owner = "matrix-org";
+    repo = "matrix-appservice-slack";
+    rev = data.version;
+    hash = data.srcHash;
+  };
+
+  offlineCache = 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";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  buildPhase = ''
+    runHook preBuild
+    yarn run build
+    runHook postBuild
+  '';
+
+  postInstall = ''
+    makeWrapper '${nodejs}/bin/node' "$out/bin/matrix-appservice-slack" --add-flags \
+        "$out/libexec/matrix-appservice-slack/deps/matrix-appservice-slack/lib/app.js"
+  '';
+
+  doDist = false;
+
+  meta = with lib; {
+    description = "A Matrix <--> Slack bridge";
+    mainProgram = "matrix-appservice-slack";
+    maintainers = with maintainers; [ beardhatcode chvp ];
+    license = licenses.asl20;
+  };
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
new file mode 100644
index 000000000000..d4a27436aea1
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/package.json
@@ -0,0 +1,96 @@
+{
+  "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/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/pin.json b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/pin.json
new file mode 100644
index 000000000000..3adfcbabae62
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/pin.json
@@ -0,0 +1,5 @@
+{
+  "version": "2.1.2",
+  "srcHash": "sha256-e9k+5xvgHkVt/fKAr0XhYjbEzHYwdGRdqiPWWbT0T5M=",
+  "yarnHash": "0266rrfx0fnrhn64ivy4iygf6nl5vc5i08j6h72k2zrh3rg203kz"
+}
diff --git a/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/update.sh b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/update.sh
new file mode 100755
index 000000000000..dc3bab3311f2
--- /dev/null
+++ b/nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack/update.sh
@@ -0,0 +1,36 @@
+#!/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