1{
2 "name": "matrix-hookshot",
3 "version": "7.0.0",
4 "description": "A bridge between Matrix and multiple project management services, such as GitHub, GitLab and JIRA.",
5 "main": "lib/app.js",
6 "repository": "https://github.com/matrix-org/matrix-hookshot",
7 "author": "matrix.org",
8 "license": "Apache-2.0",
9 "napi": {
10 "name": "matrix-hookshot-rs"
11 },
12 "engines": {
13 "node": ">=22"
14 },
15 "scripts": {
16 "build:web": "vite build",
17 "build:app": "tsc --project tsconfig.json",
18 "build:app:rs": "napi build --dts ../src/libRs.d.ts --release ./lib",
19 "build:app:fix-defs": "ts-node scripts/definitions-fixer.ts src/libRs.d.ts",
20 "build:docs": "ts-node scripts/build-metrics-docs.ts > docs/metrics.md && mdbook build",
21 "dev:web": "vite dev",
22 "build": "scripts/build-app.sh",
23 "clean:web": "rimraf public/",
24 "clean:app": "tsc --build tsconfig.json --clean",
25 "clean:app:rs": "rimraf src/libRs.d.ts target/",
26 "clean:docs": "mdbook clean",
27 "clean": "scripts/clean.sh",
28 "prepare": "yarn build",
29 "start": "node --require source-map-support/register lib/App/BridgeApp.js",
30 "start:app": "node --require source-map-support/register lib/App/BridgeApp.js",
31 "start:webhooks": "node --require source-map-support/register lib/App/GithubWebhookApp.js",
32 "start:matrixsender": "node --require source-map-support/register lib/App/MatrixSenderApp.js",
33 "start:resetcrypto": "node --require source-map-support/register lib/App/ResetCryptoStore.js",
34 "test": "NODE_OPTIONS=--no-experimental-strip-types mocha -r ts-node/register tests/init.ts 'tests/*.ts' 'tests/**/*.ts'",
35 "test:e2e": "vitest",
36 "test:cover": "NODE_OPTIONS=--no-experimental-strip-types nyc --reporter=lcov --reporter=text yarn test",
37 "lint": "yarn run lint:js && yarn run lint:rs",
38 "lint:js": "yarn prettier -c src tests spec web scripts docs && eslint",
39 "lint:js:apply": "yarn prettier -w src tests spec web scripts docs && eslint --fix",
40 "lint:rs": "cargo fmt --all -- --check && cargo clippy -- -Dwarnings",
41 "lint:rs:apply": "cargo clippy --fix && cargo fmt --all",
42 "generate-default-config": "ts-node src/config/Defaults.ts --config > config.sample.yml",
43 "validate-config": "ts-node src/config/Config.ts"
44 },
45 "dependencies": {
46 "@alloc/quick-lru": "^5.2.0",
47 "@octokit/auth-app": "^6.0.2",
48 "@octokit/auth-token": "^4.0.0",
49 "@octokit/rest": "^20.0.2",
50 "@octokit/webhooks": "^12.0.10",
51 "@sentry/node": "^7.52.1",
52 "@vector-im/compound-design-tokens": "^2.0.1",
53 "@vector-im/compound-web": "^7.3.0",
54 "ajv": "^8.11.0",
55 "axios": "^1.8.2",
56 "clsx": "^2.1.1",
57 "cors": "^2.8.5",
58 "date-fns": "^4.1.0",
59 "express": "^4.20.0",
60 "figma-js": "^1.16.1-0",
61 "helmet": "^7.1.0",
62 "http-status-codes": "^2.2.0",
63 "ioredis": "^5.2.3",
64 "jira-client": "^8.2.2",
65 "markdown-it": "^14.0.0",
66 "matrix-appservice-bridge": "^9.0.1",
67 "matrix-bot-sdk": "npm:@vector-im/matrix-bot-sdk@0.7.1-element.8",
68 "matrix-widget-api": "^1.10.0",
69 "micromatch": "^4.0.8",
70 "mime": "^4.0.4",
71 "node-emoji": "^2.1.3",
72 "parse-duration": "^2.1.3",
73 "preact-render-to-string": "^6.3.1",
74 "prom-client": "^15.1.0",
75 "quickjs-emscripten": "^0.31.0",
76 "reflect-metadata": "^0.2.1",
77 "source-map-support": "^0.5.21",
78 "string-argv": "^0.3.1",
79 "tiny-typed-emitter": "^2.1.0",
80 "url-join": "^5.0.0",
81 "vite-plugin-magical-svg": "^1.1.1",
82 "winston": "^3.11.0",
83 "xml2js": "^0.6.2",
84 "yaml": "^2.3.4"
85 },
86 "devDependencies": {
87 "@babel/core": "^7.26.9",
88 "@codemirror/lang-javascript": "^6.0.2",
89 "@eslint/eslintrc": "^3.2.0",
90 "@eslint/js": "^9.15.0",
91 "@fontsource/inter": "^5.1.0",
92 "@napi-rs/cli": "^2.13.2",
93 "@octokit/webhooks-types": "^7.6.1",
94 "@preact/preset-vite": "^2.9.1",
95 "@rollup/plugin-alias": "^5.1.0",
96 "@testcontainers/redis": "^10.25.0",
97 "@tsconfig/node22": "^22",
98 "@types/ajv": "^1.0.0",
99 "@types/busboy": "^1.5.4",
100 "@types/chai": "^4.2.22",
101 "@types/cors": "^2.8.12",
102 "@types/express": "^4.17.14",
103 "@types/jira-client": "^7.1.0",
104 "@types/markdown-it": "^13.0.7",
105 "@types/micromatch": "^4.0.1",
106 "@types/mime": "^3.0.4",
107 "@types/mocha": "^10.0.6",
108 "@types/node": "^22",
109 "@types/xml2js": "^0.4.11",
110 "@uiw/react-codemirror": "^4.12.3",
111 "busboy": "^1.6.0",
112 "chai": "^4",
113 "eslint": "^9.15.0",
114 "eslint-plugin-chai-expect": "^3.1.0",
115 "eslint-plugin-mocha": "^10.5.0",
116 "eslint-plugin-react": "^7.37.2",
117 "mocha": "^10.8.2",
118 "nyc": "^17.1.0",
119 "preact": "^10.26.2",
120 "prettier": "^3.5.3",
121 "rimraf": "6.0.1",
122 "sass": "^1.81.0",
123 "testcontainers": "^10.25.0",
124 "ts-node": "10.9.2",
125 "typescript": "^5.7.2",
126 "typescript-eslint": "^8.16.0",
127 "vite": "^5.4.19",
128 "vitest": "^3.1.3"
129 },
130 "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e"
131}