From 9247639b62e5ee70269bfa110a69ed5155b04a0a Mon Sep 17 00:00:00 2001 From: Anna Bocharova Date: Sat, 25 Nov 2023 16:10:26 +0100 Subject: [PATCH] EZ: Trying v15 for QA (#1297) * Using 15.0.0-beta1. * Fix index on creating server. * Fix logger type in Telegram channel. * Using beta3. * Testing using vitest. * Revert back to jest with ts-jest for further testing. * Using beta4. --- backend/package.json | 4 +- backend/src/channels/telegram.ts | 5 +- backend/src/config.ts | 17 +++--- backend/src/index.ts | 2 +- backend/yarn.lock | 98 +++----------------------------- 5 files changed, 24 insertions(+), 102 deletions(-) diff --git a/backend/package.json b/backend/package.json index 2ffb0d54a..071fbadb6 100644 --- a/backend/package.json +++ b/backend/package.json @@ -17,8 +17,8 @@ "@types/express": "^4.17.21", "@types/fast-memory-cache": "^2.0.2", "@types/http-errors": "^2.0.4", - "@types/jest": "^29.5.8", "@types/node": "^20.9.2", + "@types/jest": "^29.5.8", "@typescript-eslint/eslint-plugin": "^5.62.0", "@typescript-eslint/parser": "^5.62.0", "eslint": "^8.54.0", @@ -37,7 +37,7 @@ "@octokit/auth-app": "^6.0.1", "@octokit/core": "^5.0.1", "express": "^4.18.2", - "express-zod-api": "^14.2.2", + "express-zod-api": "^15.0.0-beta4", "fast-memory-cache": "^2.0.4", "http-errors": "^2.0.0", "mongoose": "^8.0.1", diff --git a/backend/src/channels/telegram.ts b/backend/src/channels/telegram.ts index 0c43b3272..63abc5c99 100644 --- a/backend/src/channels/telegram.ts +++ b/backend/src/channels/telegram.ts @@ -1,5 +1,5 @@ -import { createLogger } from "express-zod-api"; import { Telegraf } from "telegraf"; +import { Logger } from "winston"; import { Channel, AliveHook } from "../channel"; import { frontendUrl, tgBot } from "../config"; import { UserDocument, Users } from "../db"; @@ -8,12 +8,11 @@ import type { UserFromGetMe } from "telegraf/types"; type AliveConsideringPayload = { chatId: string } | { user: UserDocument }; const aliveConsideringThrottle = 60; // seconds -type Logger = ReturnType; export class TelegramChannel implements Channel { readonly #hook: AliveHook; readonly #bot: Telegraf; - readonly #logger: ReturnType; + readonly #logger: Logger; public ready: Promise; constructor(hook: AliveHook, logger: Logger) { diff --git a/backend/src/config.ts b/backend/src/config.ts index ffb2f3c62..b04f6a872 100644 --- a/backend/src/config.ts +++ b/backend/src/config.ts @@ -1,14 +1,10 @@ -import { createConfig, createLogger } from "express-zod-api"; +import { createConfig } from "express-zod-api"; import fs from "fs"; +import { Logger } from "winston"; export const frontendUrl = "https://www.incaseofmy.de/"; const sslDir = "/etc/letsencrypt/live/api.incaseofmy.de"; -export const logger = createLogger({ - level: "debug", - color: true, -}); - export const config = createConfig({ server: { listen: process.env.PORT || 6060, @@ -27,9 +23,16 @@ export const config = createConfig({ listen: 443, }, cors: true, - logger, + logger: { level: "debug", color: true }, }); +export const logger = config.logger as Logger; + +declare module "express-zod-api" { + interface LoggerOverrides extends Logger {} + interface MockOverrides extends jest.Mock {} +} + export const github = { appId: 155154, clientId: "Iv1.a3d196a34df183d3", diff --git a/backend/src/index.ts b/backend/src/index.ts index 97ba400c3..75fb7dc7a 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -10,5 +10,5 @@ import { routing } from "./routing"; logger.info(`Mongo ${db.version}`); const { data: appInfo } = await app.request("GET /app"); logger.info("GitHub Application", appInfo); - createServer({ ...config, logger }, routing); + await createServer(config, routing); })(); diff --git a/backend/yarn.lock b/backend/yarn.lock index 73772734b..fabf57175 100644 --- a/backend/yarn.lock +++ b/backend/yarn.lock @@ -1030,20 +1030,6 @@ resolved "https://registry.yarnpkg.com/@types/btoa-lite/-/btoa-lite-1.0.0.tgz#e190a5a548e0b348adb0df9ac7fa5f1151c7cca4" integrity sha512-wJsiX1tosQ+J5+bY5LrSahHxr2wT+uME5UDwdN1kg4frt40euqA+wzECkmq4t5QbveHiJepfdThgQrPw6KiSlg== -"@types/busboy@*": - version "1.5.1" - resolved "https://registry.yarnpkg.com/@types/busboy/-/busboy-1.5.1.tgz#c8112818cfde780c2d4df384ba59744d2faae2c7" - integrity sha512-JAymE2skNionWnBUwby3MatzPUw4D/6/7FX1qxBXLzmRnFxmqU0luIof7om0I8R3B/rSr9FKUnFCqxZ/NeGbrw== - dependencies: - "@types/node" "*" - -"@types/compression@^1.7.3": - version "1.7.3" - resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.3.tgz#2dd34648fc3b71c95aacd63b3098b2192da33929" - integrity sha512-rKquEGjebqizyHNMOpaE/4FdYR5VQiWFeesqYfvJU0seSEyB4625UGhNOO/qIkH10S3wftiV7oefc8WdLZ/gCQ== - dependencies: - "@types/express" "*" - "@types/connect@*": version "3.4.36" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.36.tgz#e511558c15a39cb29bd5357eebb57bd1459cd1ab" @@ -1051,14 +1037,6 @@ dependencies: "@types/node" "*" -"@types/express-fileupload@^1.4.2": - version "1.4.2" - resolved "https://registry.yarnpkg.com/@types/express-fileupload/-/express-fileupload-1.4.2.tgz#42ff388e71facfbd348c220f917803db3088abf3" - integrity sha512-m7j9veuCI02m0eyMfmZI7jrVU2CzH43U6EbAuzvCoBdhliXdIndb32cukcRTG4AOQONbe0MBmEcWvXAmQh9IMg== - dependencies: - "@types/busboy" "*" - "@types/express" "*" - "@types/express-serve-static-core@^4.17.33": version "4.17.37" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.37.tgz#7e4b7b59da9142138a2aaa7621f5abedce8c7320" @@ -1069,7 +1047,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@*", "@types/express@^4.17.21": +"@types/express@^4.17.21": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -1320,7 +1298,7 @@ abort-controller@^3.0.0: dependencies: event-target-shim "^5.0.0" -accepts@~1.3.5, accepts@~1.3.8: +accepts@~1.3.8: version "1.3.8" resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e" integrity sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw== @@ -1749,18 +1727,6 @@ bundle-name@^3.0.0: dependencies: run-applescript "^5.0.0" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== - dependencies: - streamsearch "^1.1.0" - -bytes@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" - integrity sha512-pMhOfFDPiv9t5jjIXkHosWmkSyQbvsgEVNkz0ERHbuLh2T/7j4Mqqpz523Fe8MVY89KC6Sh/QfS2sM+SjgFDcw== - bytes@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.2.tgz#8b0beeb98605adf1b128fa4386403c009e0221a5" @@ -1933,26 +1899,6 @@ commander@2.15.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" integrity sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag== -compressible@~2.0.16: - version "2.0.18" - resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" - integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== - dependencies: - mime-db ">= 1.43.0 < 2" - -compression@~1.7.4: - version "1.7.4" - resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" - integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== - dependencies: - accepts "~1.3.5" - bytes "3.0.0" - compressible "~2.0.16" - debug "2.6.9" - on-headers "~1.0.2" - safe-buffer "5.1.2" - vary "~1.1.2" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" @@ -2594,24 +2540,13 @@ expect@^29.0.0, expect@^29.7.0: jest-message-util "^29.7.0" jest-util "^29.7.0" -express-fileupload@~1.4.2: - version "1.4.2" - resolved "https://registry.yarnpkg.com/express-fileupload/-/express-fileupload-1.4.2.tgz#59f8ab14f9d12c4b53dfc29e56face4313ca0b59" - integrity sha512-vk+9cK595jP03T+YgoYPAebynVCZuUBtW1JkyJnitQnWzlONHdxdAIm9yo99V4viTEftq7MUfzuqmWyqWGzMIg== - dependencies: - busboy "^1.6.0" - -express-zod-api@^14.2.2: - version "14.2.2" - resolved "https://registry.yarnpkg.com/express-zod-api/-/express-zod-api-14.2.2.tgz#beb760b65cf3dc1a5d1825276fc8c7b5a08f7b5e" - integrity sha512-DuI74PBrQ8z8yR9F5kVbaElJOfw9jcuxFRrV9Ossbj+LJGv/s7m3x2inlQf6IXgPF/DtGsDqCLIA6MeQWaUeuA== +express-zod-api@^15.0.0-beta4: + version "15.0.0-beta4" + resolved "https://registry.yarnpkg.com/express-zod-api/-/express-zod-api-15.0.0-beta4.tgz#a9264ea8c9f3df5bf54e9ef9e0baf245c6354829" + integrity sha512-3HzoGNUK9zYcM/AhUuo5arFK0VGDLaKRw857zjAjle+GDNYBZQy27VCB5bS2e5ZlV9dhMarOIRBE94gWaCF8Tw== dependencies: - "@types/compression" "^1.7.3" - "@types/express-fileupload" "^1.4.2" - compression "~1.7.4" - express-fileupload "~1.4.2" openapi3-ts "^4.1.2" - ramda "~0.29.1" + ramda "^0.29.1" express@^4.18.2: version "4.18.2" @@ -4071,7 +4006,7 @@ micromatch@^4.0.4: braces "^3.0.2" picomatch "^2.3.1" -mime-db@1.52.0, "mime-db@>= 1.43.0 < 2": +mime-db@1.52.0: version "1.52.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== @@ -4324,11 +4259,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-headers@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" - integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== - once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" @@ -4715,7 +4645,7 @@ queue-microtask@^1.2.2: resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== -ramda@~0.29.1: +ramda@^0.29.1: version "0.29.1" resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.29.1.tgz#408a6165b9555b7ba2fc62555804b6c5a2eca196" integrity sha512-OfxIeWzd4xdUNxlWhgFazxsA/nl3mS4/jGZI5n00uWOoSSFRhC1b6gl6xvmzUamgmqELraWp0J/qqVlXYPDPyA== @@ -4858,11 +4788,6 @@ safe-array-concat@^1.0.0: has-symbols "^1.0.3" isarray "^2.0.5" -safe-buffer@5.1.2: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - safe-buffer@5.2.1, safe-buffer@^5.0.1, safe-buffer@^5.2.1, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" @@ -5085,11 +5010,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-2.0.1.tgz#55cb000ccf1d48728bd23c685a063998cf1a1b63" integrity sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ== -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - string-length@^4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a"