File size: 4,710 Bytes
6abfd9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
{
    "name": "@micprotocol/api",
    "version": "0.1.0",
    "private": true,
    "license": "UNLICENSED",
    "main": "dist/index.js",
    "types": "dist/index.d.ts",
    "exports": {
        ".": {
            "types": "./dist/index.d.ts",
            "default": "./dist/index.js"
        }
    },
    "scripts": {
        "build": "nest build",
        "dev": "nest start --watch",
        "start": "nest start",
        "start:prod": "node dist/main",
        "start:debug": "nest start --debug --watch",
        "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
        "type-check": "tsc --noEmit",
        "prisma:generate": "prisma generate",
        "prisma:push": "prisma db push",
        "prisma:migrate": "prisma migrate dev",
        "prisma:studio": "prisma studio",
        "prisma:seed": "ts-node prisma/seed.ts",
        "test": "NODE_OPTIONS=\"--experimental-vm-modules\" jest",
        "test:watch": "NODE_OPTIONS=\"--experimental-vm-modules\" jest --watch",
        "test:e2e": "NODE_OPTIONS=\"--experimental-vm-modules\" jest --config ./test/jest-e2e.json"
    },
    "dependencies": {
        "@aws-sdk/client-s3": "3.1155.0",
        "@aws-sdk/s3-request-presigner": "3.1155.0",
        "@micprotocol/shared-types": "workspace:*",
        "@nest-lab/throttler-storage-redis": "^1.2.0",
        "@nestjs/axios": "^12.0.1",
        "@nestjs/bullmq": "^12.0.0",
        "@nestjs/common": "^12.2.0",
        "@nestjs/config": "^12.0.1",
        "@nestjs/core": "^12.2.0",
        "@nestjs/platform-express": "^12.2.0",
        "@nestjs/platform-socket.io": "^12.2.0",
        "@nestjs/schedule": "^12.0.2",
        "@nestjs/swagger": "^12.0.3",
        "@nestjs/terminus": "^12.1.0",
        "@nestjs/throttler": "^6.7.1",
        "@nestjs/websockets": "^12.2.0",
        "@prisma/adapter-pg": "^7.10.1",
        "@prisma/client": "^7.10.1",
        "@prisma/config": "^7.10.1",
        "@sentry/nestjs": "^11.8.0",
        "@sentry/profiling-node": "^11.8.0",
        "@trpc/server": "^11.19.0",
        "@types/bcrypt": "^6.0.0",
        "@types/handlebars": "^4.1.0",
        "@types/nodemailer": "^8.0.2",
        "bcrypt": "^6.0.0",
        "better-auth": "^1.2.0",
        "bullmq": "^5.4.0",
        "class-transformer": "^0.5.1",
        "class-validator": "^0.15.1",
        "compression": "^1.8.2",
        "cookie-parser": "^1.4.7",
        "express": "^5.3.0",
        "express-rate-limit": "^8.7.1",
        "firebase-admin": "^14.5.0",
        "fluent-ffmpeg": "^2.1.3",
        "google-auth-library": "^11.3.1",
        "googleapis": "^187.0.0",
        "handlebars": "^4.7.10",
        "helmet": "^8.3.0",
        "ioredis": "^6.0.0",
        "jose": "^6.2.13",
        "livekit-server-sdk": "^2.19.2",
        "meilisearch": "^0.62.0",
        "nodemailer": "^10.2.1",
        "pg": "^8.23.1",
        "raw-body": "^4.0.0",
        "redis": "^6.3.0",
        "reflect-metadata": "^0.2.2",
        "resend": "^6.34.1",
        "rxjs": "^7.8.2",
        "sharp": "^0.35.5",
        "socket.io": "^4.8.4",
        "stripe": "^23.0.1",
        "web-push": "^3.6.7",
        "zod": "^4.3.6"
    },
    "devDependencies": {
        "@micprotocol/tsconfig": "workspace:*",
        "@nestjs/cli": "^12.0.10",
        "@nestjs/schematics": "^12.0.10",
        "@nestjs/testing": "^12.2.0",
        "@types/compression": "^1.8.1",
        "@types/cookie-parser": "^1.4.10",
        "@types/express": "^5.0.6",
        "@types/fluent-ffmpeg": "^2.1.28",
        "@types/jest": "^29.5.0",
        "@types/multer": "^2.3.0",
        "@types/node": "^26.6.5",
        "@types/pg": "^8.23.1",
        "@types/supertest": "^7.2.1",
        "dotenv": "^18.0.9",
        "eslint": "^10.13.0",
        "jest": "^30.5.2",
        "prisma": "^7.10.1",
        "source-map-support": "^0.5.21",
        "supertest": "^7.3.1",
        "ts-jest": "^29.4.15",
        "ts-loader": "^9.6.2",
        "ts-node": "^10.9.2",
        "typescript": "^6.0.0"
    },
    "jest": {
        "moduleFileExtensions": [
            "js",
            "json",
            "ts"
        ],
        "rootDir": "src",
        "testRegex": ".*\\.spec\\.ts$",
        "preset": "ts-jest/presets/default-esm",
        "setupFiles": [
            "<rootDir>/../test/setup-jest.ts"
        ],
        "transform": {
            "^.+\\.ts$": [
                "ts-jest",
                {
                    "useESM": true,
                    "tsconfig": {
                        "module": "esnext"
                    }
                }
            ]
        },
        "collectCoverageFrom": [
            "**/*.(t|j)s"
        ],
        "coverageDirectory": "../coverage",
        "testEnvironment": "node"
    }
}