diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/matrix-synapse/matrix-appservice-slack')
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 |