From 8541dd6b99c0c42d5ab37bf443a23af069fa81b1 Mon Sep 17 00:00:00 2001 From: Vasilii Mikhailovskii Date: Sun, 15 Dec 2024 00:59:44 +0200 Subject: [PATCH] fix --- apps/frontend/package.json | 2 +- packages/constants/package.json | 2 +- packages/couchdb-changes-stream/package.json | 2 +- packages/couchdb-changes-stream/tsconfig.json | 2 +- .../package.json | 2 +- packages/lib-service-seq-tracker/package.json | 20 +- .../lib-service-seq-tracker/tsconfig.json | 12 +- packages/tg-bot-webhook-ddoc/tsconfig.json | 2 +- packages/types/package.json | 2 +- .../types/src/DBDocuments/MessageDocument.ts | 2 +- pnpm-lock.yaml | 273 ++++++++---------- .../package.json | 2 +- services/tg-bot/package.json | 2 +- services/tg-bot/src/bot/index.ts | 10 +- .../replayToQrCodeMessageMiddleware.ts | 92 ++++++ services/tg-bot/src/dbs.ts | 18 +- .../src/services/iterateMessagesChanges.ts | 2 +- services/tg-bot/src/utils/date.ts | 8 + 18 files changed, 269 insertions(+), 186 deletions(-) create mode 100644 services/tg-bot/src/bot/middleware/replayToQrCodeMessageMiddleware.ts diff --git a/apps/frontend/package.json b/apps/frontend/package.json index cf47550..dc9ec1b 100644 --- a/apps/frontend/package.json +++ b/apps/frontend/package.json @@ -68,7 +68,7 @@ "sass-embedded": "^1.82.0", "tailwindcss": "^3.4.14", "tailwindcss-safe-area": "^0.6.0", - "typescript": "~5.6.3", + "typescript": "~5.7.2", "unplugin-auto-import": "^0.18.6", "unplugin-info": "^1.2.1", "unplugin-vue-components": "^0.27.4", diff --git a/packages/constants/package.json b/packages/constants/package.json index 6f6c4d7..ad10cfc 100644 --- a/packages/constants/package.json +++ b/packages/constants/package.json @@ -22,6 +22,6 @@ "@hereconnect/types": "workspace:^" }, "peerDependencies": { - "typescript": "~5.6.3" + "typescript": "~5.7.2" } } \ No newline at end of file diff --git a/packages/couchdb-changes-stream/package.json b/packages/couchdb-changes-stream/package.json index c1b8ab9..7a65574 100644 --- a/packages/couchdb-changes-stream/package.json +++ b/packages/couchdb-changes-stream/package.json @@ -43,6 +43,6 @@ "eslint-config-prettier": "^9.1.0", "eslint-plugin-prettier": "^5.2.1", "prettier": "^3.4.1", - "typescript": "^5.7.2" + "typescript": "~5.7.2" } } diff --git a/packages/couchdb-changes-stream/tsconfig.json b/packages/couchdb-changes-stream/tsconfig.json index 4cce36d..6481cbc 100644 --- a/packages/couchdb-changes-stream/tsconfig.json +++ b/packages/couchdb-changes-stream/tsconfig.json @@ -3,7 +3,7 @@ "target": "ES2020", "module": "ESNext", "lib": ["DOM", "ES2020"], - "outDir": "dist", + "outDir": "./dist", "strict": true, "moduleResolution": "node", "esModuleInterop": true, diff --git a/packages/lib-service-health-checkserver/package.json b/packages/lib-service-health-checkserver/package.json index a1e7288..c9695d0 100644 --- a/packages/lib-service-health-checkserver/package.json +++ b/packages/lib-service-health-checkserver/package.json @@ -20,6 +20,6 @@ }, "devDependencies": { "@types/node": "^20.17.6", - "typescript": "~5.6.3" + "typescript": "~5.7.2" } } \ No newline at end of file diff --git a/packages/lib-service-seq-tracker/package.json b/packages/lib-service-seq-tracker/package.json index 43c7a24..d8f50d3 100644 --- a/packages/lib-service-seq-tracker/package.json +++ b/packages/lib-service-seq-tracker/package.json @@ -1,22 +1,26 @@ { "name": "@hereconnect/lib-service-seq-tracker", "version": "1.0.0", - "main": "src/serviceSeqTracker.ts", + "main": "dist/serviceSeqTracker.js", + "types": "dist/serviceSeqTracker.d.ts", "exports": { ".": { - "import": "./src/serviceSeqTracker.ts", - "default": "./src/serviceSeqTracker.ts" + "import": "./dist/serviceSeqTracker.js", + "types": "./dist/serviceSeqTracker.d.ts", + "default": "./dist/serviceSeqTracker.js" } }, - "files": ["src/**/*"], + "files": [ + "src/**/*" + ], "private": true, "scripts": { "lint": "tsc --noEmit src/serviceSeqTracker.ts", - "build": "pnpm run lint" + "build": "tsc", + "prepare": "npm run build" }, "devDependencies": { - "typescript": "~5.6.3", - "@types/node": "^20.17.6", - "@types/pouchdb-core": "^7.0.15" + "@types/pouchdb-core": "^7.0.15", + "typescript": "~5.7.2" } } \ No newline at end of file diff --git a/packages/lib-service-seq-tracker/tsconfig.json b/packages/lib-service-seq-tracker/tsconfig.json index 3ee0636..d4c3d63 100644 --- a/packages/lib-service-seq-tracker/tsconfig.json +++ b/packages/lib-service-seq-tracker/tsconfig.json @@ -1,10 +1,14 @@ { "compilerOptions": { "declaration": true, - "emitDeclarationOnly": true, + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "node", "outDir": "./dist", "strict": true, - "types": ["node"] + "esModuleInterop": true, + "skipLibCheck": true }, - "include": ["index.ts"] -} \ No newline at end of file + "include": ["src/serviceSeqTracker.ts"], + "exclude": ["node_modules", "dist"] +} diff --git a/packages/tg-bot-webhook-ddoc/tsconfig.json b/packages/tg-bot-webhook-ddoc/tsconfig.json index ecbdf13..ec67d47 100644 --- a/packages/tg-bot-webhook-ddoc/tsconfig.json +++ b/packages/tg-bot-webhook-ddoc/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "target": "ES5", "module": "CommonJS", - "outDir": "dist", + "outDir": "./dist", "strict": true, "moduleResolution": "node", "esModuleInterop": true, diff --git a/packages/types/package.json b/packages/types/package.json index 347f4ae..18f401b 100644 --- a/packages/types/package.json +++ b/packages/types/package.json @@ -18,7 +18,7 @@ "prepare": "npm run build" }, "peerDependencies": { - "typescript": "~5.6.3", + "typescript": "~5.7.2", "@types/web-push": "^3.6.4" } } \ No newline at end of file diff --git a/packages/types/src/DBDocuments/MessageDocument.ts b/packages/types/src/DBDocuments/MessageDocument.ts index 2ceff8b..be0254c 100644 --- a/packages/types/src/DBDocuments/MessageDocument.ts +++ b/packages/types/src/DBDocuments/MessageDocument.ts @@ -28,7 +28,7 @@ export interface MessageDocument extends BaseDocument { user_uuid: string; /** Идентификатор браузера, отправившего сообщение */ - browser_uuid: string; + browser_uuid?: string; /** Вложения, такие как фото */ // _attachments?: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d48970c..353b62b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,7 +12,7 @@ importers: dependencies: '@f3ve/vue-markdown-it': specifier: ^0.2.3 - version: 0.2.3(vue@3.5.13(typescript@5.6.3)) + version: 0.2.3(vue@3.5.13(typescript@5.7.2)) '@hereconnect/constants': specifier: workspace:^ version: link:../../packages/constants @@ -21,16 +21,16 @@ importers: version: link:../../packages/types '@primevue/forms': specifier: ^4.2.1 - version: 4.2.4(vue@3.5.13(typescript@5.6.3)) + version: 4.2.4(vue@3.5.13(typescript@5.7.2)) '@primevue/themes': specifier: ^4.2.1 version: 4.2.4 '@tanstack/vue-query': specifier: ^5.60.6 - version: 5.61.5(vue@3.5.13(typescript@5.6.3)) + version: 5.61.5(vue@3.5.13(typescript@5.7.2)) '@unhead/vue': specifier: ^1.11.13 - version: 1.11.13(vue@3.5.13(typescript@5.6.3)) + version: 1.11.13(vue@3.5.13(typescript@5.7.2)) events: specifier: ^3.3.0 version: 3.3.0 @@ -39,7 +39,7 @@ importers: version: 2.3.0 pinia: specifier: ^2.2.6 - version: 2.2.8(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)) + version: 2.2.8(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)) pouchdb-browser: specifier: ^9.0.0 version: 9.0.0 @@ -54,7 +54,7 @@ importers: version: 7.0.0 primevue: specifier: ^4.2.1 - version: 4.2.4(vue@3.5.13(typescript@5.6.3)) + version: 4.2.4(vue@3.5.13(typescript@5.7.2)) qr-code-styling: specifier: ^1.8.4 version: 1.8.4 @@ -72,10 +72,10 @@ importers: version: 1.11.13 vue: specifier: ^3.5.12 - version: 3.5.13(typescript@5.6.3) + version: 3.5.13(typescript@5.7.2) vue-router: specifier: ^4.4.5 - version: 4.5.0(vue@3.5.13(typescript@5.6.3)) + version: 4.5.0(vue@3.5.13(typescript@5.7.2)) devDependencies: '@playwright/test': specifier: ^1.48.2 @@ -103,16 +103,16 @@ importers: version: 2.2.9 '@vitejs/plugin-vue': specifier: ^5.1.4 - version: 5.2.1(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3)) + version: 5.2.1(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2)) '@vitest/eslint-plugin': specifier: 1.1.7 - version: 1.1.7(@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)(vitest@2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0)) + version: 1.1.7(@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)(vitest@2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0)) '@vue/eslint-config-prettier': specifier: ^10.1.0 version: 10.1.0(eslint@9.15.0(jiti@1.21.6))(prettier@3.4.1) '@vue/eslint-config-typescript': specifier: ^14.1.3 - version: 14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@1.21.6)))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + version: 14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@1.21.6)))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) '@vue/test-utils': specifier: ^2.4.6 version: 2.4.6 @@ -156,8 +156,8 @@ importers: specifier: ^0.6.0 version: 0.6.0(tailwindcss@3.4.15) typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 unplugin-auto-import: specifier: ^0.18.6 version: 0.18.6(rollup@4.27.4) @@ -166,7 +166,7 @@ importers: version: 1.2.1(esbuild@0.23.1)(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0)) unplugin-vue-components: specifier: ^0.27.4 - version: 0.27.5(@babel/parser@7.26.2)(rollup@4.27.4)(vue@3.5.13(typescript@5.6.3)) + version: 0.27.5(@babel/parser@7.26.2)(rollup@4.27.4)(vue@3.5.13(typescript@5.7.2)) vite: specifier: ^5.4.10 version: 5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0) @@ -175,19 +175,19 @@ importers: version: 4.0.6 vite-plugin-vue-devtools: specifier: ^7.5.4 - version: 7.6.7(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3)) + version: 7.6.7(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2)) vitest: specifier: ^2.1.4 version: 2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0) vue-tsc: specifier: ^2.1.10 - version: 2.1.10(typescript@5.6.3) + version: 2.1.10(typescript@5.7.2) packages/constants: dependencies: typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 devDependencies: '@hereconnect/types': specifier: workspace:^ @@ -217,7 +217,7 @@ importers: specifier: ^3.4.1 version: 3.4.2 typescript: - specifier: ^5.7.2 + specifier: ~5.7.2 version: 5.7.2 packages/lib-service-health-checkserver: @@ -226,20 +226,17 @@ importers: specifier: ^20.17.6 version: 20.17.9 typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 packages/lib-service-seq-tracker: devDependencies: - '@types/node': - specifier: ^20.17.6 - version: 20.17.9 '@types/pouchdb-core': specifier: ^7.0.15 version: 7.0.15 typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 packages/tg-bot-webhook-ddoc: devDependencies: @@ -262,8 +259,8 @@ importers: specifier: ^3.6.4 version: 3.6.4 typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 services/db-migrations: dependencies: @@ -329,8 +326,8 @@ importers: specifier: ^4.19.2 version: 4.19.2 typescript: - specifier: ~5.6.3 - version: 5.6.3 + specifier: ~5.7.2 + version: 5.7.2 services/tg-bot: dependencies: @@ -432,7 +429,7 @@ importers: specifier: ^4.30.1 version: 4.30.1 typescript: - specifier: ^5.7.2 + specifier: ~5.7.2 version: 5.7.2 packages: @@ -1348,6 +1345,9 @@ packages: '@types/node@22.10.1': resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} + '@types/node@22.10.2': + resolution: {integrity: sha512-Xxr6BBRCAOQixvonOye19wnzyDiUtTeqldOOmj3CkeblonbccA12PFwlufvRdrpjXxqnmUaeiU5EOA+7s5diUQ==} + '@types/pouchdb-adapter-http@6.1.6': resolution: {integrity: sha512-DJur1mt07GJXwGb5K+MOILoCOSgoQpsi7hybcTzRLeR3IO8Y8eq7TnhTkftAJdx9VHJGOiOXFjO+8BYM69j5yA==} @@ -3663,11 +3663,6 @@ packages: typescript: optional: true - typescript@5.6.3: - resolution: {integrity: sha512-hjcS1mhfuyi4WW8IWtjP7brDrG2cuDZukyrYrSauoXGNgx0S7zceP07adYkJycEr56BOUTNPzbInooiN3fn1qw==} - engines: {node: '>=14.17'} - hasBin: true - typescript@5.7.2: resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} engines: {node: '>=14.17'} @@ -4429,10 +4424,10 @@ snapshots: dependencies: levn: 0.4.1 - '@f3ve/vue-markdown-it@0.2.3(vue@3.5.13(typescript@5.6.3))': + '@f3ve/vue-markdown-it@0.2.3(vue@3.5.13(typescript@5.7.2))': dependencies: markdown-it: 14.1.0 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) '@grammyjs/conversations@1.2.0(grammy@1.33.0)': dependencies: @@ -4641,24 +4636,24 @@ snapshots: dependencies: '@primevue/metadata': 4.2.4 - '@primevue/core@4.2.4(vue@3.5.13(typescript@5.6.3))': + '@primevue/core@4.2.4(vue@3.5.13(typescript@5.7.2))': dependencies: '@primeuix/styled': 0.3.2 '@primeuix/utils': 0.3.2 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) - '@primevue/forms@4.2.4(vue@3.5.13(typescript@5.6.3))': + '@primevue/forms@4.2.4(vue@3.5.13(typescript@5.7.2))': dependencies: '@primeuix/forms': 0.0.2 '@primeuix/utils': 0.3.2 - '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.6.3)) + '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.7.2)) transitivePeerDependencies: - vue - '@primevue/icons@4.2.4(vue@3.5.13(typescript@5.6.3))': + '@primevue/icons@4.2.4(vue@3.5.13(typescript@5.7.2))': dependencies: '@primeuix/utils': 0.3.2 - '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.6.3)) + '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.7.2)) transitivePeerDependencies: - vue @@ -4742,13 +4737,13 @@ snapshots: '@tanstack/query-core@5.61.5': {} - '@tanstack/vue-query@5.61.5(vue@3.5.13(typescript@5.6.3))': + '@tanstack/vue-query@5.61.5(vue@3.5.13(typescript@5.7.2))': dependencies: '@tanstack/match-sorter-utils': 8.19.4 '@tanstack/query-core': 5.61.5 '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.6.3) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.6.3)) + vue: 3.5.13(typescript@5.7.2) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2)) '@trysound/sax@0.2.0': {} @@ -4803,6 +4798,10 @@ snapshots: dependencies: undici-types: 6.20.0 + '@types/node@22.10.2': + dependencies: + undici-types: 6.20.0 + '@types/pouchdb-adapter-http@6.1.6': dependencies: '@types/pouchdb-core': 7.0.15 @@ -4852,11 +4851,11 @@ snapshots: '@types/web-push@3.6.4': dependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 '@types/ws@8.5.13': dependencies: - '@types/node': 22.10.1 + '@types/node': 22.10.2 '@types/yargs-parser@21.0.3': {} @@ -4864,38 +4863,38 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.16.0 - '@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.16.0 eslint: 9.15.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.7.2) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/eslint-plugin@8.18.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) '@typescript-eslint/scope-manager': 8.18.0 - '@typescript-eslint/type-utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/type-utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.18.0 eslint: 9.15.0(jiti@1.21.6) graphemer: 1.4.0 ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.4.3(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -4916,16 +4915,16 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@typescript-eslint/scope-manager': 8.16.0 '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) '@typescript-eslint/visitor-keys': 8.16.0 debug: 4.3.7 eslint: 9.15.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -4951,26 +4950,26 @@ snapshots: '@typescript-eslint/types': 8.18.0 '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) debug: 4.3.7 eslint: 9.15.0(jiti@1.21.6) - ts-api-utils: 1.4.3(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.7.2) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/type-utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/type-utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.3) - '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) debug: 4.3.7 eslint: 9.15.0(jiti@1.21.6) - ts-api-utils: 1.4.3(typescript@5.6.3) - typescript: 5.6.3 + ts-api-utils: 1.4.3(typescript@5.7.2) + typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -4989,7 +4988,7 @@ snapshots: '@typescript-eslint/types@8.18.0': {} - '@typescript-eslint/typescript-estree@8.16.0(typescript@5.6.3)': + '@typescript-eslint/typescript-estree@8.16.0(typescript@5.7.2)': dependencies: '@typescript-eslint/types': 8.16.0 '@typescript-eslint/visitor-keys': 8.16.0 @@ -4998,23 +4997,9 @@ snapshots: is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.6.3) + ts-api-utils: 1.4.3(typescript@5.7.2) optionalDependencies: - typescript: 5.6.3 - transitivePeerDependencies: - - supports-color - - '@typescript-eslint/typescript-estree@8.18.0(typescript@5.6.3)': - dependencies: - '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/visitor-keys': 8.18.0 - debug: 4.3.7 - fast-glob: 3.3.2 - is-glob: 4.0.3 - minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 1.4.3(typescript@5.6.3) - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -5032,26 +5017,26 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.16.0 '@typescript-eslint/types': 8.16.0 - '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.16.0(typescript@5.7.2) eslint: 9.15.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.15.0(jiti@1.21.6)) '@typescript-eslint/scope-manager': 8.18.0 '@typescript-eslint/types': 8.18.0 - '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.6.3) + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) eslint: 9.15.0(jiti@1.21.6) - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color @@ -5090,26 +5075,26 @@ snapshots: dependencies: '@unhead/schema': 1.11.13 - '@unhead/vue@1.11.13(vue@3.5.13(typescript@5.6.3))': + '@unhead/vue@1.11.13(vue@3.5.13(typescript@5.7.2))': dependencies: '@unhead/schema': 1.11.13 '@unhead/shared': 1.11.13 defu: 6.1.4 hookable: 5.5.3 unhead: 1.11.13 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) - '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3))': + '@vitejs/plugin-vue@5.2.1(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2))': dependencies: vite: 5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0) - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) - '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)(vitest@2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0))': + '@vitest/eslint-plugin@1.1.7(@typescript-eslint/utils@8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)(vitest@2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0))': dependencies: - '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/utils': 8.18.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) eslint: 9.15.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 vitest: 2.1.6(@types/node@20.17.9)(jsdom@25.0.1(canvas@2.11.2))(sass-embedded@1.82.0) '@vitest/expect@2.1.6': @@ -5231,7 +5216,7 @@ snapshots: '@vue/devtools-api@6.6.4': {} - '@vue/devtools-core@7.6.7(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3))': + '@vue/devtools-core@7.6.7(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue/devtools-kit': 7.6.7 '@vue/devtools-shared': 7.6.7 @@ -5239,7 +5224,7 @@ snapshots: nanoid: 5.0.9 pathe: 1.1.2 vite-hot-client: 0.2.4(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0)) - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) transitivePeerDependencies: - vite @@ -5266,21 +5251,21 @@ snapshots: transitivePeerDependencies: - '@types/eslint' - '@vue/eslint-config-typescript@14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@1.21.6)))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3)': + '@vue/eslint-config-typescript@14.1.4(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint-plugin-vue@9.31.0(eslint@9.15.0(jiti@1.21.6)))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2)': dependencies: - '@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.18.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) eslint: 9.15.0(jiti@1.21.6) eslint-plugin-vue: 9.31.0(eslint@9.15.0(jiti@1.21.6)) fast-glob: 3.3.2 - typescript-eslint: 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + typescript-eslint: 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) vue-eslint-parser: 9.4.3(eslint@9.15.0(jiti@1.21.6)) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - '@typescript-eslint/parser' - supports-color - '@vue/language-core@2.1.10(typescript@5.6.3)': + '@vue/language-core@2.1.10(typescript@5.7.2)': dependencies: '@volar/language-core': 2.4.10 '@vue/compiler-dom': 3.5.13 @@ -5291,7 +5276,7 @@ snapshots: muggle-string: 0.4.1 path-browserify: 1.0.1 optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 '@vue/reactivity@3.5.13': dependencies: @@ -5309,11 +5294,11 @@ snapshots: '@vue/shared': 3.5.13 csstype: 3.1.3 - '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.6.3))': + '@vue/server-renderer@3.5.13(vue@3.5.13(typescript@5.7.2))': dependencies: '@vue/compiler-ssr': 3.5.13 '@vue/shared': 3.5.13 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) '@vue/shared@3.5.13': {} @@ -6296,7 +6281,7 @@ snapshots: jest-util@29.7.0: dependencies: '@jest/types': 29.6.3 - '@types/node': 22.10.1 + '@types/node': 22.10.2 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 @@ -6690,13 +6675,13 @@ snapshots: pify@2.3.0: {} - pinia@2.2.8(typescript@5.6.3)(vue@3.5.13(typescript@5.6.3)): + pinia@2.2.8(typescript@5.7.2)(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.6.3) - vue-demi: 0.14.10(vue@3.5.13(typescript@5.6.3)) + vue: 3.5.13(typescript@5.7.2) + vue-demi: 0.14.10(vue@3.5.13(typescript@5.7.2)) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 pirates@4.0.6: {} @@ -6874,12 +6859,12 @@ snapshots: primeicons@7.0.0: {} - primevue@4.2.4(vue@3.5.13(typescript@5.6.3)): + primevue@4.2.4(vue@3.5.13(typescript@5.7.2)): dependencies: '@primeuix/styled': 0.3.2 '@primeuix/utils': 0.3.2 - '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.6.3)) - '@primevue/icons': 4.2.4(vue@3.5.13(typescript@5.6.3)) + '@primevue/core': 4.2.4(vue@3.5.13(typescript@5.7.2)) + '@primevue/icons': 4.2.4(vue@3.5.13(typescript@5.7.2)) transitivePeerDependencies: - vue @@ -7375,10 +7360,6 @@ snapshots: dependencies: punycode: 2.3.1 - ts-api-utils@1.4.3(typescript@5.6.3): - dependencies: - typescript: 5.6.3 - ts-api-utils@1.4.3(typescript@5.7.2): dependencies: typescript: 5.7.2 @@ -7402,19 +7383,17 @@ snapshots: type-fest@4.30.1: {} - typescript-eslint@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3): + typescript-eslint@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3))(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) - '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.6.3) + '@typescript-eslint/eslint-plugin': 8.16.0(@typescript-eslint/parser@8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2))(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/parser': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) + '@typescript-eslint/utils': 8.16.0(eslint@9.15.0(jiti@1.21.6))(typescript@5.7.2) eslint: 9.15.0(jiti@1.21.6) optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - typescript@5.6.3: {} - typescript@5.7.2: {} uc.micro@2.1.0: {} @@ -7485,7 +7464,7 @@ snapshots: transitivePeerDependencies: - supports-color - unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(rollup@4.27.4)(vue@3.5.13(typescript@5.6.3)): + unplugin-vue-components@0.27.5(@babel/parser@7.26.2)(rollup@4.27.4)(vue@3.5.13(typescript@5.7.2)): dependencies: '@antfu/utils': 0.7.10 '@rollup/pluginutils': 5.1.3(rollup@4.27.4) @@ -7497,7 +7476,7 @@ snapshots: minimatch: 9.0.5 mlly: 1.7.3 unplugin: 1.16.0 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) optionalDependencies: '@babel/parser': 7.26.2 transitivePeerDependencies: @@ -7574,9 +7553,9 @@ snapshots: globby: 13.2.2 sirv: 2.0.4 - vite-plugin-vue-devtools@7.6.7(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3)): + vite-plugin-vue-devtools@7.6.7(rollup@4.27.4)(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2)): dependencies: - '@vue/devtools-core': 7.6.7(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.6.3)) + '@vue/devtools-core': 7.6.7(vite@5.4.11(@types/node@20.17.9)(sass-embedded@1.82.0))(vue@3.5.13(typescript@5.7.2)) '@vue/devtools-kit': 7.6.7 '@vue/devtools-shared': 7.6.7 execa: 9.5.1 @@ -7655,9 +7634,9 @@ snapshots: vue-component-type-helpers@2.1.10: {} - vue-demi@0.14.10(vue@3.5.13(typescript@5.6.3)): + vue-demi@0.14.10(vue@3.5.13(typescript@5.7.2)): dependencies: - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) vue-eslint-parser@9.4.3(eslint@9.15.0(jiti@1.21.6)): dependencies: @@ -7672,27 +7651,27 @@ snapshots: transitivePeerDependencies: - supports-color - vue-router@4.5.0(vue@3.5.13(typescript@5.6.3)): + vue-router@4.5.0(vue@3.5.13(typescript@5.7.2)): dependencies: '@vue/devtools-api': 6.6.4 - vue: 3.5.13(typescript@5.6.3) + vue: 3.5.13(typescript@5.7.2) - vue-tsc@2.1.10(typescript@5.6.3): + vue-tsc@2.1.10(typescript@5.7.2): dependencies: '@volar/typescript': 2.4.10 - '@vue/language-core': 2.1.10(typescript@5.6.3) + '@vue/language-core': 2.1.10(typescript@5.7.2) semver: 7.6.3 - typescript: 5.6.3 + typescript: 5.7.2 - vue@3.5.13(typescript@5.6.3): + vue@3.5.13(typescript@5.7.2): dependencies: '@vue/compiler-dom': 3.5.13 '@vue/compiler-sfc': 3.5.13 '@vue/runtime-dom': 3.5.13 - '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.6.3)) + '@vue/server-renderer': 3.5.13(vue@3.5.13(typescript@5.7.2)) '@vue/shared': 3.5.13 optionalDependencies: - typescript: 5.6.3 + typescript: 5.7.2 vuvuzela@1.0.3: {} diff --git a/services/message-delivery-method-web-push/package.json b/services/message-delivery-method-web-push/package.json index ce3fbbb..32c64b3 100644 --- a/services/message-delivery-method-web-push/package.json +++ b/services/message-delivery-method-web-push/package.json @@ -48,6 +48,6 @@ "@types/pouchdb-find": "^7.3.3", "@types/web-push": "^3.6.4", "tsx": "^4.19.2", - "typescript": "~5.6.3" + "typescript": "~5.7.2" } } diff --git a/services/tg-bot/package.json b/services/tg-bot/package.json index ae4c6eb..2b9d352 100644 --- a/services/tg-bot/package.json +++ b/services/tg-bot/package.json @@ -73,6 +73,6 @@ "eslint": "^9.16.0", "tsx": "^4.19.2", "type-fest": "^4.30.1", - "typescript": "^5.7.2" + "typescript": "~5.7.2" } } diff --git a/services/tg-bot/src/bot/index.ts b/services/tg-bot/src/bot/index.ts index 54ae25b..828333b 100644 --- a/services/tg-bot/src/bot/index.ts +++ b/services/tg-bot/src/bot/index.ts @@ -4,6 +4,7 @@ import { MyContext } from "../types/myContext"; import { env } from "../config/env"; import { CouchDBStorageAdapter } from "./storageAdapters/CouchDBStorageAdapter"; import { loadUserMiddleware } from "./middleware/loadUser"; +import { replayToQrCodeMessageMiddleware } from "./middleware/replayToQrCodeMessageMiddleware"; import { tgBotSessionsDb } from "../dbs"; import { startCommand } from "./commands/start"; import { helpCommand } from "./commands/help"; @@ -39,13 +40,16 @@ export const createBot = ({ // Подключаем сессии. По необходимости определите initial state для сессии bot.use(session({ storage, initial: () => ({}) })); + // Middleware для загрузки или создания пользователя + bot.use(loadUserMiddleware); + + // Middleware для обработки ответов на сообщения + bot.use(replayToQrCodeMessageMiddleware); + // Подключаем conversations для многошаговых сценариев bot.use(conversations()); bot.use(createConversation(newQRCodeConversation)); - // Middleware для загрузки или создания пользователя - bot.use(loadUserMiddleware); - // Регистрация команд bot.command("start", startCommand); bot.command("help", helpCommand); diff --git a/services/tg-bot/src/bot/middleware/replayToQrCodeMessageMiddleware.ts b/services/tg-bot/src/bot/middleware/replayToQrCodeMessageMiddleware.ts new file mode 100644 index 0000000..63c0bfa --- /dev/null +++ b/services/tg-bot/src/bot/middleware/replayToQrCodeMessageMiddleware.ts @@ -0,0 +1,92 @@ +import { MyContext } from "../../types/myContext"; +import { qrDb, messagesDb } from "../../dbs"; +import type { MessageDocument } from "@hereconnect/types"; +import { secondsToISOString } from "../../utils/date"; + +/** + * Middleware for handling replies to messages containing QR code identifiers. + * + * This middleware checks if a received message is a reply to another message + * containing a specific pattern with QR code and chat identifiers. If the + * pattern is found, it logs and processes the identifiers and sends a reply + * acknowledging the response. If the pattern is not found or if the message + * is not a reply, appropriate logs and responses are generated. + * + * @param ctx - The context object containing the message and other request details. + * @param next - The next middleware function in the stack to be executed. + */ +export const replayToQrCodeMessageMiddleware = async ( + ctx: MyContext, + next: () => Promise, +) => { + if (!ctx.has(":text")) { + return next(); + } + if (!ctx.msg.reply_to_message) { + console.log("Это не ответное сообщение."); + return next(); + } + + // Получаем текст сообщения, на которое пришёл ответ + const originalMessage = ctx.msg.reply_to_message.text; + + const m = originalMessage?.match(/#qr(?\S+)_c(?\S+)/); + if (!m?.groups) { + console.log("m.groups is empty", m, m?.groups); + await ctx.reply( + `Я не смогу обработать это сообщение.\nВыберете в телеграм ответить у любого сообщения QR-кода чтобы я его мог переслать в диалог.`, + ); + return next(); + } + + const { qr_code_uri, chat } = m.groups; + console.log(qr_code_uri, chat); + + // Логируем исходное сообщение и ответ + console.log("Ответ на сообщение: ", originalMessage); + console.log("Ответное сообщение: ", ctx.msg.text); + + const qrCodeDoc = await qrDb.get(`qr_code:${qr_code_uri}`).catch((error) => { + if (error.name === "not_found") return; + throw error; + }); + + if (!qrCodeDoc) { + await ctx.reply( + `Я не смогу обработать это сообщение. QR-код с ID ${qr_code_uri} не найден.`, + ); + return next(); + } + + if (!ctx.userDoc) { + await ctx.reply(`Я не смогу обработать это сообщение. Вы не авторизованы`); + return next(); + } + + console.log(ctx.userDoc?.telegram_id, "!==", qrCodeDoc.telegram_id); + + if (ctx.userDoc?.telegram_id !== qrCodeDoc.telegram_id) { + await ctx.reply(`Я не смогу обработать это сообщение. Это не ваш QR-код`); + return next(); + } + + const created_at = secondsToISOString(ctx.msg.date); + const user_uuid = ctx.userDoc!.user_uuid; + const message: MessageDocument = { + _id: `message:${qr_code_uri}:${chat}:${created_at}`, + type: "message", + qr_code_uri, + chat, + from: "owner", + body: ctx.msg.text.trim(), + user_uuid, + created_at, + }; + + await messagesDb.put(message); + + // Вы можете выполнить любую логику с этими данными + await ctx.reply( + `Вы ответили на сообщение: "${originalMessage}" с текстом: "${ctx.msg.text}"`, + ); +}; diff --git a/services/tg-bot/src/dbs.ts b/services/tg-bot/src/dbs.ts index 612770b..d829050 100644 --- a/services/tg-bot/src/dbs.ts +++ b/services/tg-bot/src/dbs.ts @@ -3,11 +3,10 @@ import { ServiceSeqTrackerDatabase } from "@hereconnect/lib-service-seq-tracker" import type { QRCodeDocument, - MessageDeliveryMethodWebPushVapid, UserChatSettingsDocument, - WebPushSubscriptionDocument, PublicSettingsDocument, UserDocument, + MessageDocument, } from "@hereconnect/types"; import type { ServiceSeqTrackerDocument } from "@hereconnect/lib-service-seq-tracker"; @@ -26,17 +25,11 @@ export const MESSAGES_DB_NAME = "messages"; export const TG_BOT_DB_URL = `${env.API_URL}/${TG_BOT_DB_NAME}`; export const MESSAGES_DB_URL = `${env.API_URL}/${MESSAGES_DB_NAME}`; +export const messagesDb = new PouchDB(MESSAGES_DB_URL, { + skip_setup: true, +}); export const messagesServiceSeqTrackerDb = - new PouchDB(MESSAGES_DB_URL, { - skip_setup: true, - }); - -export const serverSettingsDb = new PouchDB( - `${env.API_URL}/server_settings`, - { - skip_setup: true, - }, -); + messagesDb satisfies PouchDB.Database as unknown as PouchDB.Database; export const publicSettingsDb = new PouchDB( `${env.API_URL}/public_settings`, @@ -75,7 +68,6 @@ export const usersDb = new PouchDB(`${env.API_URL}/_users`, { const checkDatabases = async () => { const databases = { - serverSettingsDb, publicSettingsDb, qrDb, usersDb, diff --git a/services/tg-bot/src/services/iterateMessagesChanges.ts b/services/tg-bot/src/services/iterateMessagesChanges.ts index 8400643..3521d3a 100644 --- a/services/tg-bot/src/services/iterateMessagesChanges.ts +++ b/services/tg-bot/src/services/iterateMessagesChanges.ts @@ -53,7 +53,7 @@ async function handleChange(msgDoc: MessageDocument, bot: Bot) { console.log(`sending to ${telegramUsersDocs.length} telegram accounts`); } - const hashTag = `#qr_${qrDoc.uri}_c${msgDoc.chat}`; + const hashTag = `#qr${qrDoc.uri}_c${msgDoc.chat}`; const manageMessageUrl = `${env.APP_BASE_URL}/manage/qr/${qrDoc.uri}/chat/${msgDoc.chat}#message-${encodeURIComponent(msgDoc.created_at)}`; // const manageMessageUrl = `tg://resolve?domain=${bot.botInfo.username}&start=message:${qrDoc.uri}:${msgDoc.created_at}`; // const msgCaption = ` — ${link("сообщение", manageMessageUrl)} QR-кода «${qrDoc.name}»`; diff --git a/services/tg-bot/src/utils/date.ts b/services/tg-bot/src/utils/date.ts index 73f5cc1..49d4fef 100644 --- a/services/tg-bot/src/utils/date.ts +++ b/services/tg-bot/src/utils/date.ts @@ -2,3 +2,11 @@ export function getIsoDate(): string { return new Date().toISOString(); } + +export function secondsToISOString(seconds: number): string { + // Преобразуем секунды в миллисекунды + const milliseconds = seconds * 1000; + + // Создаем объект Date и преобразуем в ISOString + return new Date(milliseconds).toISOString(); +}