From 1938372c2776219c9b89602bab7425e63fc5ae5e Mon Sep 17 00:00:00 2001 From: Azur84 Date: Fri, 14 Nov 2025 20:37:51 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=AE=20setup=20logger=20and=20other=20l?= =?UTF-8?q?ittle=20change?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- package.json | 5 +- pnpm-lock.yaml | 194 +++++++++++++++++++++------- pnpm-workspace.yaml | 1 + src/database/models/player.model.ts | 7 + src/index.ts | 33 +++-- src/logger.ts | 41 ++++++ src/pack_logs.ts | 18 --- tsconfig.json | 6 +- 9 files changed, 225 insertions(+), 84 deletions(-) create mode 100644 src/logger.ts delete mode 100644 src/pack_logs.ts diff --git a/.gitignore b/.gitignore index cb7893c..17c3a62 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ node_modules out .env -dist \ No newline at end of file +dist +database.sqlite +logs \ No newline at end of file diff --git a/package.json b/package.json index 72c44d5..373968f 100644 --- a/package.json +++ b/package.json @@ -15,19 +15,18 @@ "bufferutil": "^4.0.9", "discord.js": "^14.24.2", "dotenv": "^17.2.3", - "msgpack-lite": "^0.1.26", + "msgpackr": "^1.11.5", "pino": "^10.1.0", + "pino-pretty": "^13.1.2", "reflect-metadata": "^0.2.2", "sequelize": "^6.37.7", "sequelize-typescript": "^2.1.6", "sqlite3": "^5.1.7", "stream-chain": "^3.4.0", - "stream-json": "^1.9.1", "typia": "^10.0.2" }, "devDependencies": { "@eslint/js": "^9.39.1", - "@types/msgpack-lite": "^0.1.12", "@types/node": "^24.10.0", "eslint": "^9.39.1", "eslint-config-prettier": "^10.1.8", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0ad5ebf..20ce59d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,12 +17,15 @@ importers: dotenv: specifier: ^17.2.3 version: 17.2.3 - msgpack-lite: - specifier: ^0.1.26 - version: 0.1.26 + msgpackr: + specifier: ^1.11.5 + version: 1.11.5 pino: specifier: ^10.1.0 version: 10.1.0 + pino-pretty: + specifier: ^13.1.2 + version: 13.1.2 reflect-metadata: specifier: ^0.2.2 version: 0.2.2 @@ -38,9 +41,6 @@ importers: stream-chain: specifier: ^3.4.0 version: 3.4.0 - stream-json: - specifier: ^1.9.1 - version: 1.9.1 typia: specifier: ^10.0.2 version: 10.0.2(@types/node@24.10.0)(typescript@5.9.3) @@ -48,9 +48,6 @@ importers: '@eslint/js': specifier: ^9.39.1 version: 9.39.1 - '@types/msgpack-lite': - specifier: ^0.1.12 - version: 0.1.12 '@types/node': specifier: ^24.10.0 version: 24.10.0 @@ -169,6 +166,36 @@ packages: '@types/node': optional: true + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + resolution: {integrity: sha512-QZHtlVgbAdy2zAqNA9Gu1UpIuI8Xvsd1v8ic6B2pZmeFnFcMWiPLfWXh7TVw4eGEZ/C9TH281KwhVoeQUKbyjw==} + cpu: [arm64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + resolution: {integrity: sha512-mdzd3AVzYKuUmiWOQ8GNhl64/IoFGol569zNRdkLReh6LRLHOXxU4U8eq0JwaD8iFHdVGqSy4IjFL4reoWCDFw==} + cpu: [x64] + os: [darwin] + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + resolution: {integrity: sha512-YxQL+ax0XqBJDZiKimS2XQaf+2wDGVa1enVRGzEvLLVFeqa5kx2bWbtcSXgsxjQB7nRqqIGFIcLteF/sHeVtQg==} + cpu: [arm64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + resolution: {integrity: sha512-fg0uy/dG/nZEXfYilKoRe7yALaNmHoYeIoJuJ7KJ+YyU2bvY8vPv27f7UKhGRpY6euFYqEVhxCFZgAUNQBM3nw==} + cpu: [arm] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + resolution: {integrity: sha512-cvwNfbP07pKUfq1uH+S6KJ7dT9K8WOE4ZiAcsrSes+UY55E/0jLYc+vq+DO7jlmqRb5zAggExKm0H7O/CBaesg==} + cpu: [x64] + os: [linux] + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + resolution: {integrity: sha512-x0fWaQtYp4E6sktbsdAqnehxDgEc/VwM7uLsRCYWaiGu0ykYdZPiS8zCWdnjHwyiumousxfBm4SO31eXqwEZhQ==} + cpu: [x64] + os: [win32] + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -226,9 +253,6 @@ packages: '@types/ms@2.1.0': resolution: {integrity: sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==} - '@types/msgpack-lite@0.1.12': - resolution: {integrity: sha512-DzYHfFOxK1UCm3pErFyGCQzsNYjcy1chCtO5bLdvL0IbD6L0l0IZzYMHvFAmEDLJ+k6XJosY0WKKmjkOBu9gKQ==} - '@types/node@24.10.0': resolution: {integrity: sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==} @@ -441,6 +465,9 @@ packages: resolution: {integrity: sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==} hasBin: true + colorette@2.0.20: + resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -462,6 +489,9 @@ packages: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} engines: {node: '>= 8'} + dateformat@4.6.3: + resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} + debug@4.4.3: resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} engines: {node: '>=6.0'} @@ -587,13 +617,13 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - event-lite@0.1.3: - resolution: {integrity: sha512-8qz9nOz5VeD2z96elrEKD2U433+L3DWdUdDkOINLGOJvx1GsMBbMn0aCeu28y8/e85A6mCigBiFlYMnTBEGlSw==} - expand-template@2.0.3: resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==} engines: {node: '>=6'} + fast-copy@3.0.2: + resolution: {integrity: sha512-dl0O9Vhju8IrcLndv2eU4ldt1ftXMqqfgN4H1cpmGV7P6jeB9FwpN9a2c8DPGE1Ys88rNUJVYDHq73CGAGOPfQ==} + fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} @@ -607,6 +637,9 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-safe-stringify@2.1.1: + resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} + fastq@1.19.1: resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==} @@ -698,6 +731,9 @@ packages: resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} + help-me@5.0.0: + resolution: {integrity: sha512-7xgomUX6ADmcYzFik0HzAxh/73YlKR9bmFzf51CZwR+b6YtzU2m0u49hQCqV6SvlqIqsaxovfwdvbnsw3b/zpg==} + http-cache-semantics@4.2.0: resolution: {integrity: sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==} @@ -768,9 +804,6 @@ packages: resolution: {integrity: sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==} engines: {node: '>=12.0.0'} - int64-buffer@0.1.10: - resolution: {integrity: sha512-v7cSY1J8ydZ0GyjUHqF+1bshJ6cnEVLo9EnjB8p+4HDRPZc9N5jjmvUV7NvEsqQOKyH0pmIBFWXVQbiS0+OBbA==} - ip-address@10.1.0: resolution: {integrity: sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==} engines: {node: '>= 12'} @@ -806,9 +839,6 @@ packages: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} - isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - isexe@2.0.0: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} @@ -816,6 +846,10 @@ packages: resolution: {integrity: sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==} engines: {node: '>=16'} + joycon@3.1.1: + resolution: {integrity: sha512-34wB/Y7MW7bzjKRjUKTa46I2Z7eV62Rkhva+KkopW7Qvv/OSWBqvkSY7vusOPrNuZcUG3tApvdVgNB8POj3SPw==} + engines: {node: '>=10'} + js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true @@ -943,10 +977,13 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - msgpack-lite@0.1.26: - resolution: {integrity: sha512-SZ2IxeqZ1oRFGo0xFGbvBJWMp3yLIY9rlIJyxy8CGrwZn1f0ZK4r6jV/AM1r0FZMDUkWkglOk/eeKIL9g77Nxw==} + msgpackr-extract@3.0.3: + resolution: {integrity: sha512-P0efT1C9jIdVRefqjzOQ9Xml57zpOXnIuS+csaB4MdZbTdmGDLo8XhzBG1N7aO11gKDDkJvBLULeFTo46wwreA==} hasBin: true + msgpackr@1.11.5: + resolution: {integrity: sha512-UjkUHN0yqp9RWKy0Lplhh+wlpdt9oQBYgULZOiFhV3VclSF1JnSQWZ5r9gORQlNYaUKQoR8itv7g7z1xDDuACA==} + mute-stream@0.0.8: resolution: {integrity: sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==} @@ -967,6 +1004,10 @@ packages: node-addon-api@7.1.1: resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-gyp-build-optional-packages@5.2.2: + resolution: {integrity: sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==} + hasBin: true + node-gyp-build@4.8.4: resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==} hasBin: true @@ -1049,6 +1090,10 @@ packages: pino-abstract-transport@2.0.0: resolution: {integrity: sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==} + pino-pretty@13.1.2: + resolution: {integrity: sha512-3cN0tCakkT4f3zo9RXDIhy6GTvtYD6bK4CRBLN9j3E/ePqN1tugAXD5rGVfoChW6s0hiek+eyYlLNqc/BG7vBQ==} + hasBin: true + pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} @@ -1173,6 +1218,9 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==} + semver@7.7.3: resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} engines: {node: '>=10'} @@ -1270,15 +1318,9 @@ packages: resolution: {integrity: sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==} engines: {node: '>= 8'} - stream-chain@2.2.5: - resolution: {integrity: sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==} - stream-chain@3.4.0: resolution: {integrity: sha512-cyDiaDqAfgmeiv0PWFXCg9oKNVYNzYxHK9j5CMsYMHZDk+/yYcSV+CXQZliZ0U4mNU8DLqiVNZXUfs8BqhgwMw==} - stream-json@1.9.1: - resolution: {integrity: sha512-uWkjJ+2Nt/LO9Z/JyKZbMusL8Dkh97uUBTv3AJQ74y07lVahLY4eEFsPsE97pxYBwr8nnjMAIch5eqI0gPShyw==} - string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} @@ -1298,6 +1340,10 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} + strip-json-comments@5.0.3: + resolution: {integrity: sha512-1tB5mhVo7U+ETBKNf92xT4hrQa3pm0MZ0PQvuDnWgAAGHDsfp4lPSpiS6psrSiet87wyGPh9ft6wmhOMQ0hDiw==} + engines: {node: '>=14.16'} + supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -1567,6 +1613,24 @@ snapshots: optionalDependencies: '@types/node': 24.10.0 + '@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-darwin-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-arm@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-linux-x64@3.0.3': + optional: true + + '@msgpackr-extract/msgpackr-extract-win32-x64@3.0.3': + optional: true + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -1619,10 +1683,6 @@ snapshots: '@types/ms@2.1.0': {} - '@types/msgpack-lite@0.1.12': - dependencies: - '@types/node': 24.10.0 - '@types/node@24.10.0': dependencies: undici-types: 7.16.0 @@ -1882,6 +1942,8 @@ snapshots: color-support@1.1.3: optional: true + colorette@2.0.20: {} + commander@10.0.1: {} comment-json@4.4.1: @@ -1903,6 +1965,8 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + dateformat@4.6.3: {} + debug@4.4.3: dependencies: ms: 2.1.3 @@ -2044,10 +2108,10 @@ snapshots: esutils@2.0.3: {} - event-lite@0.1.3: {} - expand-template@2.0.3: {} + fast-copy@3.0.2: {} + fast-deep-equal@3.1.3: {} fast-glob@3.3.3: @@ -2062,6 +2126,8 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-safe-stringify@2.1.1: {} + fastq@1.19.1: dependencies: reusify: 1.1.0 @@ -2165,6 +2231,8 @@ snapshots: dependencies: function-bind: 1.1.2 + help-me@5.0.0: {} + http-cache-semantics@4.2.0: optional: true @@ -2251,8 +2319,6 @@ snapshots: transitivePeerDependencies: - '@types/node' - int64-buffer@0.1.10: {} - ip-address@10.1.0: optional: true @@ -2277,12 +2343,12 @@ snapshots: is-unicode-supported@0.1.0: {} - isarray@1.0.0: {} - isexe@2.0.0: {} isexe@3.1.1: {} + joycon@3.1.1: {} + js-yaml@4.1.0: dependencies: argparse: 2.0.1 @@ -2422,12 +2488,21 @@ snapshots: ms@2.1.3: {} - msgpack-lite@0.1.26: + msgpackr-extract@3.0.3: dependencies: - event-lite: 0.1.3 - ieee754: 1.2.1 - int64-buffer: 0.1.10 - isarray: 1.0.0 + node-gyp-build-optional-packages: 5.2.2 + optionalDependencies: + '@msgpackr-extract/msgpackr-extract-darwin-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-darwin-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-arm64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-linux-x64': 3.0.3 + '@msgpackr-extract/msgpackr-extract-win32-x64': 3.0.3 + optional: true + + msgpackr@1.11.5: + optionalDependencies: + msgpackr-extract: 3.0.3 mute-stream@0.0.8: {} @@ -2444,6 +2519,11 @@ snapshots: node-addon-api@7.1.1: {} + node-gyp-build-optional-packages@5.2.2: + dependencies: + detect-libc: 2.1.2 + optional: true + node-gyp-build@4.8.4: {} node-gyp@8.4.1: @@ -2544,6 +2624,22 @@ snapshots: dependencies: split2: 4.2.0 + pino-pretty@13.1.2: + dependencies: + colorette: 2.0.20 + dateformat: 4.6.3 + fast-copy: 3.0.2 + fast-safe-stringify: 2.1.1 + help-me: 5.0.0 + joycon: 3.1.1 + minimist: 1.2.8 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 2.0.0 + pump: 3.0.3 + secure-json-parse: 4.1.0 + sonic-boom: 4.2.0 + strip-json-comments: 5.0.3 + pino-std-serializers@7.0.0: {} pino@10.1.0: @@ -2668,6 +2764,8 @@ snapshots: safer-buffer@2.1.2: {} + secure-json-parse@4.1.0: {} + semver@7.7.3: {} sequelize-pool@7.1.0: {} @@ -2763,14 +2861,8 @@ snapshots: minipass: 3.3.6 optional: true - stream-chain@2.2.5: {} - stream-chain@3.4.0: {} - stream-json@1.9.1: - dependencies: - stream-chain: 2.2.5 - string-width@4.2.3: dependencies: emoji-regex: 8.0.0 @@ -2789,6 +2881,8 @@ snapshots: strip-json-comments@3.1.1: {} + strip-json-comments@5.0.3: {} + supports-color@7.2.0: dependencies: has-flag: 4.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 97c9c03..49ae2df 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,3 +1,4 @@ onlyBuiltDependencies: - bufferutil + - msgpackr-extract - sqlite3 diff --git a/src/database/models/player.model.ts b/src/database/models/player.model.ts index e69de29..77f5acc 100644 --- a/src/database/models/player.model.ts +++ b/src/database/models/player.model.ts @@ -0,0 +1,7 @@ +import { Column, Model, Table } from "sequelize-typescript"; + +@Table +export default class Player extends Model{ + @Column + discord_id!: number; +} \ No newline at end of file diff --git a/src/index.ts b/src/index.ts index 9287c0e..b824368 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,18 +1,23 @@ -import { Client, GatewayIntentBits, IntentsBitField } from "discord.js"; +import { Client, Events, GatewayIntentBits, IntentsBitField } from "discord.js"; import { config } from "dotenv"; import path from "path"; import pino, { transport } from "pino"; import { Sequelize } from "sequelize-typescript"; -config() +config({ + quiet:true +}) -const transporter = transport({ - target: "pino/file", - options: { - destination: path.join(__dirname, "logs", `latest.log.json`) } - } -) -const logger = pino(transporter) +const logger = pino(transport({ + targets: [ + { + target: path.resolve(__dirname,"logger"), + }, + { + target: "pino-pretty" + } + ] +})) const intents = new IntentsBitField() .add(GatewayIntentBits.Guilds) @@ -30,9 +35,15 @@ const sequelize = new Sequelize({ models: [path.join(__dirname + 'database/**/*.model.ts')], dialect: "sqlite", storage: "database.sqlite", - logging: false + logging(sql, timing) { + logger.info(sql) + }, }) -Promise.all([client.login(process.env.TOKEN), sequelize.authenticate()]).then(async () => { +client.on(Events.Debug, (info) => logger.debug(info)); +client.on(Events.Warn, (info) => logger.warn(info)); +client.on(Events.Error, (error) => logger.error(error)); + +Promise.all([/*client.login(process.env.TOKEN),*/ sequelize.authenticate().then(()=>sequelize.sync({alter:true}))]).then(async () => { }) \ No newline at end of file diff --git a/src/logger.ts b/src/logger.ts new file mode 100644 index 0000000..46b60dc --- /dev/null +++ b/src/logger.ts @@ -0,0 +1,41 @@ +import { createReadStream, createWriteStream, existsSync, mkdirSync } from "fs"; +import { PackrStream, UnpackrStream } from "msgpackr"; +import path from "path"; +import PinoPretty from "pino-pretty"; +import { Transform } from "stream"; +import chain from "stream-chain"; +import parser from "stream-chain/jsonl/parser.js"; +import stringer from "stream-chain/jsonl/stringerStream.js"; +import { createZstdCompress, createZstdDecompress } from "zlib"; + +if (process.argv[2]) { + read(process.argv[2]) +} + +function read(id: string) { + chain([ + createReadStream(path.join(__dirname, "..", "logs", `${id}.log.msg.zst`)), + createZstdDecompress(), + new UnpackrStream(), + new Transform({ + objectMode: true, + transform(chunk, _, callback) { + callback(null,chunk.value) + }, + }), + stringer(), + PinoPretty({ colorize: true }), + ]) +} + +export default async function () { + const logsfolder = path.join(__dirname, "..", "logs") + if (!existsSync(logsfolder)) mkdirSync(logsfolder, { recursive: true }) + const date = new Date() + return chain([ + parser(), + new PackrStream(), + createZstdCompress(), + createWriteStream(path.join(logsfolder, `${date.getFullYear()}-${date.getMonth()}-${date.getDay()}-${(date.getHours() * 60 * 60 + date.getMinutes() * 60 + date.getSeconds()).toString(36)}.log.msg.zst`)) + ]) +} \ No newline at end of file diff --git a/src/pack_logs.ts b/src/pack_logs.ts deleted file mode 100644 index 7d6c757..0000000 --- a/src/pack_logs.ts +++ /dev/null @@ -1,18 +0,0 @@ -import { createReadStream, createWriteStream, ReadStream } from "fs"; -import path from "path"; -import chain from "stream-chain"; -import parser from "stream-chain/jsonl/parser.js"; -import { createEncodeStream } from "msgpack-lite"; -import { createGzip } from "zlib"; - -function pack_latest() { - chain([ - createReadStream(path.join(__dirname, "logs", "latest.log.json")), - parser(), - createEncodeStream(), - createGzip(), - createWriteStream(path.join(__dirname, "logs", `${Date.now()}.log.msgpack.gz`)) - ]) -} - -pack_latest() \ No newline at end of file diff --git a/tsconfig.json b/tsconfig.json index 7bc8c88..3a62986 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -43,7 +43,11 @@ "transform": "typia/lib/transform" } ], - "strictNullChecks": true + "strictNullChecks": true, + "incremental": true, + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "tsBuildInfoFile": "dist/.tsbuildinfo" }, "include": [ "src"