-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathpackage.json
177 lines (177 loc) Β· 10 KB
/
package.json
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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
{
"name": "yandex-video-translate-bot",
"volta": {
"node": "18.20.2"
},
"packageManager": "[email protected]",
"type": "commonjs",
"engines": {
"node": ">=18"
},
"main": "./src/index.ts",
"scripts": {
"build": "pnpm tsc --build",
"typecheck": "tsc --noEmit",
"command:js": "node",
"command:ts": "DEBUG='*' pnpm tsx",
"run:js": "pnpm command:js ./build/index.js",
"run:ts": "pnpm command:ts .",
"run:deamon": "pnpm nodemon --exec \"pnpm command:ts\" --watch \"./.env\" --watch \"./src\" .",
"dev": "APP_ENV='local' NODE_ENV='development' pnpm run:deamon",
"dev:prod": "APP_ENV='local' NODE_ENV='production' pnpm run:deamon",
"start": "NODE_ENV=production pnpm run:js",
"start:dev": "NODE_ENV=development pnpm run:js",
"dev:deamon": "pnpm _pre:nvm 'NODE_ENV=development pnpm _dev:deamon:command'",
"dev:prod:deamon": "pnpm _pre:nvm 'NODE_ENV=production pnpm _dev:deamon:command'",
"s3:env:pull": "rclone sync yandex-cloud-nezort11:video-translate-bot-env ./yc_env --progress",
"s3:env:push": "rclone sync ./yc_env yandex-cloud-nezort11:video-translate-bot-env --progress",
"s3:storage:pull": "rclone sync yandex-cloud-nezort11:video-translate-bot-storage ./yc_storage --progress",
"s3:storage:push": "rclone sync ./yc_storage yandex-cloud-nezort11:video-translate-bot-storage --progress",
"db:migrate": "pnpm drizzle-kit generate && pnpm drizzle-kit push",
"db:migrate:s3": "APP_MODE='remote' pnpm db:migrate",
"yc:registry:create": "source ./scripts/pre-env.sh && yc container registry create --name $REGISTRY_NAME",
"yc:registry:get": "source ./scripts/pre-env.sh && yc container registry get $REGISTRY_NAME",
"yc:registry:configure": "yc container registry configure-docker",
"yc:image:build": "source ./scripts/pre-image.sh && docker buildx build --load --platform linux/amd64 --tag $IMAGE_NAME .",
"yc:image:push": "source ./scripts/pre-image.sh && docker image push $IMAGE_NAME",
"yc:container:create": "source ./scripts/pre-env.sh && yc serverless container create --name $CONTAINER_NAME",
"yc:container:print": "source ./scripts/pre-container.sh && echo \"Your serverless container is available at https://$CONTAINER_ID.containers.yandexcloud.net/\"",
"yc:container:deploy": "source ./scripts/pre-image.sh && yc serverless container revision deploy --container-name $CONTAINER_NAME --image $IMAGE_NAME --cores 1 --memory 2GB --concurrency 3 --execution-timeout 300s --service-account-id $SERVICE_ACCOUNT_ID",
"yc:deploy": "pnpm yc:image:build && pnpm yc:image:push && pnpm yc:container:deploy && pnpm yc:container:print",
"webhook:info": "./scripts/get-webhookinfo.sh",
"webhook:set": "./scripts/set-webhook.sh",
"webhook:delete": "./scripts/delete-webhook.sh"
},
"comments": {
"server:serverless:info": "cd packages/video-translate-server && pnpm serverless:info",
"_pre:nvm": "bash -c \"source $HOME/.nvm/nvm.sh && nvm use && $script\"",
"_command": "DEBUG='*' node --experimental-specifier-resolution=node --no-warnings",
"_dev:command": "pnpm _command --inspect --loader ts-node/esm ./src/index.ts",
"_dev": "NODE_ENV='development' pnpm _dev:command",
"_dev:prod": "NODE_ENV='production' pnpm _dev:command",
"_dev:deamon:command": "pnpm nodemon --exec \"pnpm _command --inspect --loader ts-node/esm\" --watch \"./.env\" --watch \"./src\" ./src/index.ts",
"command": "node --experimental-specifier-resolution=node --no-warnings",
"_cli": "NODE_ENV=development node --experimental-specifier-resolution=node --no-warnings --loader ts-node/esm ./src/cli.ts $url",
"cli": "pnpm _cli",
"serverless:deploy": "pnpm serverless deploy --stage=prod",
"serverless:info": "pnpm serverless info --stage=prod",
"serverless:purge": "pnpm serverless remove",
"bot:deploy": "pnpm build && pnpm serverless:deploy && pnpm webhook:set",
"bot:purge": "pnpm serverless:purge && pnpm webhook:delete",
"npm:pre": "mv ./node_modules ./node_modules_dev && mv ./node_modules_prod ./node_modules 2>/dev/null ; npm install --omit=dev",
"npm:post": "mv ./node_modules ./node_modules_prod && mv ./node_modules_dev ./node_modules",
"build:package": "source ./scripts/projectname-env.sh && zip -r ./${PACKAGE_NAME}.zip ./package.json ./node_modules ./build ./.env ./cookies.json",
"yc:storage:upload": "source ./.env && source ./scripts/projectname-env.sh && yc storage s3api put-object --bucket $STORAGE_BUCKET --key function --body ./${PACKAGE_NAME}.zip",
"yc:function:deploy": "source ./.env && source ./scripts/projectname-env.sh && yc serverless function version create --package-bucket-name $STORAGE_BUCKET --package-object-name function --function-name=${PACKAGE_NAME}-prod-main --runtime nodejs18 --entrypoint build/index.handler --memory 2048m --execution-timeout 300s",
"app:deploy": "pnpm build && pnpm npm:pre && pnpm build:package && pnpm npm:post && pnpm yc:storage:upload && pnpm yc:function:deploy",
"app2:deploy": "pnpm build && pnpm serverless deploy ",
"": "",
"-pre:env": "bash -c 'source ./.env && '\"$0\"",
"-dev": "pnpm pre:nvm 'pnpm webhook:reset && pnpm nodemon --exec \"pnpm command --loader ts-node/esm\" ./src/main.ts'",
"handler": "pnpm command ./build/handler.js",
"docker:dev": "docker compose up",
"-yc:registry:create": "pnpm pre:env 'yc container registry create --name $REGISTRY_NAME'",
"-yc:registry:configure": "yc container registry configure-docker",
"-yc:registry:publish": "pnpm pre:env 'docker image push $IMAGE_NAME'",
"-yc:container:create": "pnpm pre:env 'yc serverless container create --name $CONTAINER_NAME'",
"-yc:container:deploy": "pnpm pre:env 'yc serverless container revision deploy --container-name $CONTAINER_NAME --image $IMAGE_NAME --cores 1 --memory 1GB --concurrency 1 --execution-timeout 30s --service-account-id $SERVICE_ACCOUNT_ID && pnpm webhook:set'",
"-webhook:set": "pnpm pre:env 'pnpm telegraf -m setWebhook -t \"$BOT_TOKEN\" -D \"{ \\\"url\\\": \\\"https://$CONTAINER_DOMAIN\\\" }\"'",
"-webhook:reset": "pnpm pre:env 'pnpm telegraf -m setWebhook -t \"$BOT_TOKEN\" -D \"{ \\\"url\\\": \\\"\\\" }\"'",
"-ci": "pnpm docker:build",
"-cd": "pnpm ci && pnpm yc:registry:publish && pnpm yc:container:deploy",
"ssh": "ssh raspberrypi",
"ssh2": "pnpm pre:env 'sshpass -p $SERVER_PASSWORD ssh timeweb'",
"purge": "pnpm pre:env 'sshpass -p $SERVER_PASSWORD ssh timeweb \"cd /root/yandex-voice-translate-bot && ls --almost-all | grep -xv node_modules | xargs rm -rf\"'",
"deploy": "rsync -avzc --exclude=.DS_Store --exclude=.git --exclude=node_modules --exclude=build --exclude=.pnpm/cache --exclude='*.mp3' --exclude='*.mp4' --exclude='*.log' . raspberrypi2:~/yandex-voice-translate-bot",
"deploy2": "pnpm pre:env 'sshpass -p $SERVER_PASSWORD rsync -avzc --exclude=.git --exclude=node_modules --exclude=build --exclude=.pnpm/install-state.gz --exclude=.pnpm/cache --exclude=*.mp3 --exclude=*.mp4 . timeweb:/root/yandex-voice-translate-bot'",
"deploy:ffmpeg": "pnpm pre:env 'sshpass -p $SERVER_PASSWORD rsync -avzc ../ffmpeg-dist timeweb:/root/ffmpeg-dist'",
"docker": "docker compose --env-file ./.env --env-file ./image-translate/.env -f ./compose.yml",
"docker:build": "pnpm docker build && pnpm docker:down && pnpm docker:image:clean",
"docker:up": "pnpm docker up --detach",
"docker:logs": "pnpm docker logs --follow --timestamps --since='6h' --tail='1000'",
"docker:top": "pnpm docker top",
"docker:shell": "pnpm docker exec yandex_voice_translate_bot bash",
"docker:run": "pnpm docker run -it yandex_voice_translate_bot bash",
"docker:down": "pnpm docker down",
"docker:stop": "pnpm docker stop",
"docker:restart": "pnpm docker:down && pnpm docker:up",
"docker:down:clean": "pnpm docker down --rmi=all --volumes",
"docker:image:clean": "docker image rm -f $(docker image ls -aqf dangling=true) || echo ''",
"docker:container:clean": "docker rm $(docker ps --filter=status=exited --filter=status=dead -q)",
"docker:cache:info": "docker system df",
"docker:cache:clean": "docker system prune --volumes",
"yarn:cache:clean": "rm -rf ~/.yarn/cache && rm -rf ~/Library/Caches/Yarn/v6",
"get-audio-duration": "3.1.1",
"get-video-duration": "4.1.0",
"node-persist": "3.1.3",
"protobufjs": "7.2.2"
},
"dependencies": {
"@distube/ytdl-core": "4.16.0",
"@ffmpeg/core": "0.11.0",
"@ffmpeg/ffmpeg": "0.11.6",
"@iamtraction/google-translate": "2.0.1",
"@sentry/node": "7.53.1",
"@telegraf/session": "2.0.0-beta.7",
"abort-controller": "^3.0.0",
"axios": "1.3.4",
"better-sqlite3": "11.8.1",
"bottleneck": "^2.19.5",
"cheerio": "1.0.0-rc.12",
"cors": "2.8.5",
"debug": "^4.3.4",
"dotenv": "16.0.3",
"drizzle-orm": "0.39.1",
"express": "4.18.2",
"form-data": "4.0.0",
"kysely": "0.27.5",
"link-preview-js": "3.0.5",
"lodash": "4.17.21",
"moment": "2.29.4",
"nanoid": "3.3.4",
"p-timeout": "^6.1.2",
"pino": "8.14.1",
"pino-pretty": "10.0.0",
"protobufjs": "7.4.0",
"s3-localstorage": "1.1.8",
"serialize-error": "11.0.3",
"serverless-http": "3.2.0",
"telegraf": "4.16.3",
"telegraf-session-s33": "1.0.2",
"telegraf-throttler": "0.6.0",
"telegram": "2.15.15"
},
"devDependencies": {
"@types/better-sqlite3": "7.6.12",
"@types/debug": "^4.1.12",
"@types/express": "4.17.17",
"@types/lodash": "^4",
"@types/node": "18.15.3",
"@types/node-persist": "^3",
"@yandex-cloud/serverless-plugin": "1.7.25",
"drizzle-kit": "0.30.4",
"husky": "8.0.3",
"lint-staged": "15.4.3",
"nodemon": "2.0.20",
"serverless": "3.40.0",
"ts-node": "10.9.1",
"tsx": "4.19.2",
"typescript": "5.4.5",
"yarnhook": "0.6.0"
},
"pnpm": {
"patchedDependencies": {
"@ffmpeg/[email protected]": "patches/@ffmpeg-core-npm-0.11.0-514ee933c9.patch"
}
},
"husky": {
"hooks": {
"post-checkout": "yarnhook",
"post-merge": "yarnhook",
"post-rewrite": "yarnhook"
}
},
"lint-staged": {
"*.ts": "tsc --noEmit"
}
}