A social knowledge tool for researchers built on ATProto
1{
2 "name": "semble",
3 "version": "1.0.0",
4 "description": "",
5 "main": "index.js",
6 "workspaces": [
7 "src/types",
8 "src/webapp"
9 ],
10 "directories": {
11 "doc": "docs"
12 },
13 "scripts": {
14 "build:webapp": "npm run build:types && npm run build --workspace=semble-webapp",
15 "build:types": "npm run build --workspace=@semble/types",
16 "dev:types": "npm run dev --workspace=@semble/types",
17 "type-check": "tsc --noEmit",
18 "start": "node dist/index.js",
19 "worker:feeds": "node dist/workers/feed-worker.js",
20 "worker:search": "node dist/workers/search-worker.js",
21 "test": "jest",
22 "test:unit": "jest --testPathIgnorePatterns='.integration.test.' --testPathIgnorePatterns='.e2e.test.'",
23 "test:integration": "jest --testPathPattern='.integration.test.'",
24 "test:integration:db": "jest --testPathPattern='.integration.test.' --testNamePattern='Drizzle'",
25 "test:integration:db:watch": "jest --watch --testPathPattern='.integration.test.' --testNamePattern='Drizzle'",
26 "test:integration:redis": "jest --testPathPattern='.integration.test.' --testNamePattern='BullMQ'",
27 "test:integration:redis:watch": "jest --watch --testPathPattern='.integration.test.' --testNamePattern='BullMQ'",
28 "test:e2e": "jest --testPathPattern='.e2e.test.' --testTimeout=300000",
29 "test:watch": "jest --watch",
30 "test:unit:watch": "jest --watch --testPathIgnorePatterns='.integration.test.' --testPathIgnorePatterns='.e2e.test.'",
31 "test:integration:watch": "jest --watch --testPathPattern='.integration.test.'",
32 "build": "tsup",
33 "build:watch": "tsc --watch",
34 "dev:app:inner": "dotenv -e .env.local -- concurrently -k -n TYPE,APP -c red,blue \"tsc --noEmit --watch\" \"tsup --watch --onSuccess='node dist/index.js'\"",
35 "dev:worker:feeds:inner": "dotenv -e .env.local -- concurrently -k -n WORKER -c green \"tsup --watch --onSuccess='node dist/workers/feed-worker.js'\"",
36 "dev:worker:search:inner": "dotenv -e .env.local -- concurrently -k -n WORKER -c yellow \"tsup --watch --onSuccess='node dist/workers/search-worker.js'\"",
37 "dev:mock": "USE_MOCK_PERSISTENCE=true USE_FAKE_PUBLISHERS=true USE_MOCK_AUTH=true USE_MOCK_VECTOR_DB=true npm run dev:app:inner",
38 "dev:mock:pub:auth": "USE_FAKE_PUBLISHERS=true USE_MOCK_AUTH=true npm run dev",
39 "dev": "bash ./scripts/dev-combined.sh",
40 "migrate": "node dist/scripts/migrate.js",
41 "lexgen": "lex gen-server ./src/modules/atproto/infrastructure/lexicon ./src/modules/atproto/infrastructure/lexicons/*",
42 "db:start": "docker run --name annos-postgres -e POSTGRES_USER=postgres -e POSTGRES_PASSWORD=postgres -e POSTGRES_DB=annotations -p 5432:5432 -d postgres:14",
43 "db:stop": "docker stop annos-postgres",
44 "db:remove": "docker rm annos-postgres",
45 "redis:start": "docker run --name annos-redis -p 6379:6379 -d redis:7-alpine",
46 "redis:stop": "docker stop annos-redis",
47 "redis:remove": "docker rm annos-redis",
48 "db:generate": "drizzle-kit generate --schema=./src/modules/**/*.sql.ts --out=./src/shared/infrastructure/database/migrations --dialect=postgresql",
49 "webapp:dev": "npm run build:types && cd src/webapp && npm run dev",
50 "webapp:extension:dev": "cd src/webapp && npm run dev:extension",
51 "webapp:build": "cd src/webapp && npm run build",
52 "webapp:start": "cd src/webapp && npm run start",
53 "webapp:storybook": "cd src/webapp && npm run storybook",
54 "format": "prettier --write .",
55 "format:check": "prettier --check .",
56 "lint": "eslint .",
57 "lint:fix": "eslint . --fix"
58 },
59 "keywords": [],
60 "author": "",
61 "license": "ISC",
62 "dependencies": {
63 "@atproto/api": "^0.15.2",
64 "@atproto/common": "^0.4.10",
65 "@atproto/identity": "^0.4.7",
66 "@atproto/lexicon": "^0.4.10",
67 "@atproto/oauth-client-node": "^0.2.15",
68 "@atproto/sync": "^0.1.20",
69 "@atproto/syntax": "^0.4.0",
70 "@atproto/xrpc-server": "^0.7.15",
71 "@semble/types": "*",
72 "@upstash/vector": "^1.2.2",
73 "bullmq": "^5.56.8",
74 "cookie-parser": "^1.4.7",
75 "cors": "^2.8.5",
76 "dotenv": "^16.5.0",
77 "express": "^5.1.0",
78 "ioredis": "^5.6.1",
79 "jsonwebtoken": "^9.0.2",
80 "postgres": "^3.4.5",
81 "redlock": "^5.0.0-beta.2",
82 "uuid": "^11.1.0",
83 "zod": "^3.22.4"
84 },
85 "devDependencies": {
86 "@atproto/lex-cli": "^0.8.0",
87 "@flydotio/dockerfile": "^0.7.10",
88 "@testcontainers/postgresql": "^11.0.3",
89 "@testcontainers/redis": "^11.4.0",
90 "@types/cookie-parser": "^1.4.9",
91 "@types/cors": "^2.8.18",
92 "@types/express": "^5.0.1",
93 "@types/ioredis": "^5.0.0",
94 "@types/jest": "^29.5.14",
95 "@types/jsdom": "^21.1.7",
96 "@types/jsonwebtoken": "^9.0.9",
97 "@types/pg": "^8.11.13",
98 "@types/supertest": "^6.0.3",
99 "@typescript-eslint/eslint-plugin": "^8.37.0",
100 "@typescript-eslint/parser": "^8.37.0",
101 "concurrently": "^9.1.2",
102 "dotenv-cli": "^8.0.0",
103 "drizzle-kit": "^0.31.1",
104 "drizzle-orm": "^0.43.1",
105 "eslint": "^9.31.0",
106 "eslint-config-prettier": "^10.1.5",
107 "eslint-plugin-prettier": "^5.5.1",
108 "eslint-plugin-storybook": "^9.1.2",
109 "jest": "^29.7.0",
110 "jsdom": "^26.1.0",
111 "nodemon": "^3.1.10",
112 "pg": "^8.14.1",
113 "playwright": "^1.40.0",
114 "prettier": "^3.6.2",
115 "supertest": "^7.1.0",
116 "testcontainers": "^11.0.3",
117 "ts-jest": "^29.3.2",
118 "tsconfig-paths": "^4.2.0",
119 "tsup": "^8.4.0",
120 "typescript": "^5.8.3"
121 }
122}