diff --git a/astro.config.mjs b/astro.config.mjs index 8029926..6c5e1e2 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -8,8 +8,6 @@ import svelte, { vitePreprocess } from '@astrojs/svelte'; import node from '@astrojs/node'; -import inoxToolsRuntimeLogger from '@inox-tools/runtime-logger'; - // https://astro.build/config export default defineConfig({ output: 'server', @@ -28,7 +26,7 @@ export default defineConfig({ plugins: [tailwindcss()] }, - integrations: [icon(), svelte({ preprocess: vitePreprocess() }), inoxToolsRuntimeLogger()], + integrations: [icon(), svelte({ preprocess: vitePreprocess() })], env: { schema: { diff --git a/package-lock.json b/package-lock.json index 378d79e..cb3dbc0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,7 +13,6 @@ "@iconify-json/fa-brands": "^1.2.2", "@iconify-json/heroicons": "^1.2.3", "@iconify/svelte": "^5.0.2", - "@inox-tools/runtime-logger": "^0.7.0", "@tailwindcss/vite": "^4.1.14", "astro": "^5.14.4", "astro-icon": "=1.1.2", @@ -22,6 +21,7 @@ "drizzle-orm": "^0.44.6", "mysql2": "^3.15.2", "nanostores": "^1.0.1", + "pino": "^10.0.0", "sass-embedded": "^1.93.2", "skinview3d": "^3.4.1", "tailwindcss": "^4.1.14", @@ -1427,40 +1427,6 @@ "url": "https://opencollective.com/libvips" } }, - "node_modules/@inox-tools/modular-station": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@inox-tools/modular-station/-/modular-station-0.7.0.tgz", - "integrity": "sha512-XumkSTPonuAQHk4gWwXxDOoKIYig5gskmk9QJJ8+ow7uZMeW/brcX+Mx2RtStI8BkdPGlasYANx0zaSNOa4z8A==", - "license": "MIT", - "dependencies": { - "@inox-tools/utils": "^0.7.0", - "astro-integration-kit": "~0.19.0", - "debug": "^4.4.1" - }, - "peerDependencies": { - "astro": "^5" - } - }, - "node_modules/@inox-tools/runtime-logger": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@inox-tools/runtime-logger/-/runtime-logger-0.7.0.tgz", - "integrity": "sha512-ENKnuY5jmykcXYkRPUxKu6uw3/Vue3pa461g3vAC7l+XJXj5vZ4hGisIJruOIhM1ceA7WLXIhGu/PKoQ2fb9Dg==", - "license": "MIT", - "dependencies": { - "@inox-tools/modular-station": "^0.7.0", - "@inox-tools/utils": "^0.7.0", - "astro-integration-kit": "~0.19.0" - }, - "peerDependencies": { - "astro": "^5" - } - }, - "node_modules/@inox-tools/utils": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@inox-tools/utils/-/utils-0.7.0.tgz", - "integrity": "sha512-mwvDYG21P7uy8JmFTXV5xGocFi2hOx41uai49Sf83HX0bXCYknOyEoouSYRzvoiKP21csRtIFywGwxEjG+TMQg==", - "license": "MIT" - }, "node_modules/@isaacs/fs-minipass": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz", @@ -3333,18 +3299,6 @@ "@iconify/utils": "^2.1.30" } }, - "node_modules/astro-integration-kit": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/astro-integration-kit/-/astro-integration-kit-0.19.0.tgz", - "integrity": "sha512-ftDrem91kJZoenhpJJfRtB29D/bmNglEp2oOXqF1uL5yODZauGIy3tDgIbec0UEMp6tNuky4tfWseUXpej5Dng==", - "license": "MIT", - "dependencies": { - "pathe": "^1.1.2" - }, - "peerDependencies": { - "astro": "^4.14.0 || ^5.0.0" - } - }, "node_modules/astro/node_modules/tinyexec": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.1.tgz", @@ -3376,6 +3330,15 @@ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", "license": "MIT" }, + "node_modules/atomic-sleep": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", + "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==", + "license": "MIT", + "engines": { + "node": ">=8.0.0" + } + }, "node_modules/aws-ssl-profiles": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/aws-ssl-profiles/-/aws-ssl-profiles-1.1.2.tgz", @@ -7392,6 +7355,15 @@ "integrity": "sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==", "license": "MIT" }, + "node_modules/on-exit-leak-free": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz", + "integrity": "sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==", + "license": "MIT", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/on-finished": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", @@ -7676,6 +7648,43 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/pino": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-10.0.0.tgz", + "integrity": "sha512-eI9pKwWEix40kfvSzqEP6ldqOoBIN7dwD/o91TY5z8vQI12sAffpR/pOqAD1IVVwIVHDpHjkq0joBPdJD0rafA==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0", + "on-exit-leak-free": "^2.1.0", + "pino-abstract-transport": "^2.0.0", + "pino-std-serializers": "^7.0.0", + "process-warning": "^5.0.0", + "quick-format-unescaped": "^4.0.3", + "real-require": "^0.2.0", + "safe-stable-stringify": "^2.3.1", + "slow-redact": "^0.3.0", + "sonic-boom": "^4.0.1", + "thread-stream": "^3.0.0" + }, + "bin": { + "pino": "bin.js" + } + }, + "node_modules/pino-abstract-transport": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pino-abstract-transport/-/pino-abstract-transport-2.0.0.tgz", + "integrity": "sha512-F63x5tizV6WCh4R6RHyi2Ml+M70DNRXt/+HANowMflpgGFMAym/VKm6G7ZOQRjqN7XbGxK1Lg9t6ZrtzOaivMw==", + "license": "MIT", + "dependencies": { + "split2": "^4.0.0" + } + }, + "node_modules/pino-std-serializers": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-7.0.0.tgz", + "integrity": "sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==", + "license": "MIT" + }, "node_modules/pkg-types": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/pkg-types/-/pkg-types-1.3.1.tgz", @@ -7890,6 +7899,22 @@ "node": ">=6" } }, + "node_modules/process-warning": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-5.0.0.tgz", + "integrity": "sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/fastify" + }, + { + "type": "opencollective", + "url": "https://opencollective.com/fastify" + } + ], + "license": "MIT" + }, "node_modules/prompts": { "version": "2.4.2", "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", @@ -7985,6 +8010,12 @@ ], "license": "MIT" }, + "node_modules/quick-format-unescaped": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz", + "integrity": "sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==", + "license": "MIT" + }, "node_modules/radix3": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/radix3/-/radix3-1.1.2.tgz", @@ -8013,6 +8044,15 @@ "url": "https://paulmillr.com/funding/" } }, + "node_modules/real-require": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz", + "integrity": "sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==", + "license": "MIT", + "engines": { + "node": ">= 12.13.0" + } + }, "node_modules/regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/regex/-/regex-6.0.1.tgz", @@ -8346,6 +8386,15 @@ "dev": true, "license": "MIT" }, + "node_modules/safe-stable-stringify": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz", + "integrity": "sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==", + "license": "MIT", + "engines": { + "node": ">=10" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -8890,6 +8939,12 @@ "three": "^0.156.0" } }, + "node_modules/slow-redact": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/slow-redact/-/slow-redact-0.3.2.tgz", + "integrity": "sha512-MseHyi2+E/hBRqdOi5COy6wZ7j7DxXRz9NkseavNYSvvWC06D8a5cidVZX3tcG5eCW3NIyVU4zT63hw0Q486jw==", + "license": "MIT" + }, "node_modules/smol-toml": { "version": "1.4.2", "resolved": "https://registry.npmjs.org/smol-toml/-/smol-toml-1.4.2.tgz", @@ -8902,6 +8957,15 @@ "url": "https://github.com/sponsors/cyyynthia" } }, + "node_modules/sonic-boom": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-4.2.0.tgz", + "integrity": "sha512-INb7TM37/mAcsGmc9hyyI6+QR3rR1zVRu36B0NeGXKnOOLiZOfER5SA+N7X7k3yUYRzLWafduTDvJAfDswwEww==", + "license": "MIT", + "dependencies": { + "atomic-sleep": "^1.0.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -8921,6 +8985,15 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/split2": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz", + "integrity": "sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==", + "license": "ISC", + "engines": { + "node": ">= 10.x" + } + }, "node_modules/sqlstring": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.3.tgz", @@ -9199,6 +9272,15 @@ "node": ">=8" } }, + "node_modules/thread-stream": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-3.1.0.tgz", + "integrity": "sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==", + "license": "MIT", + "dependencies": { + "real-require": "^0.2.0" + } + }, "node_modules/three": { "version": "0.156.1", "resolved": "https://registry.npmjs.org/three/-/three-0.156.1.tgz", diff --git a/package.json b/package.json index cde78d7..fd38296 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "@iconify-json/fa-brands": "^1.2.2", "@iconify-json/heroicons": "^1.2.3", "@iconify/svelte": "^5.0.2", - "@inox-tools/runtime-logger": "^0.7.0", "@tailwindcss/vite": "^4.1.14", "astro": "^5.14.4", "astro-icon": "=1.1.2", @@ -25,6 +24,7 @@ "drizzle-orm": "^0.44.6", "mysql2": "^3.15.2", "nanostores": "^1.0.1", + "pino": "^10.0.0", "sass-embedded": "^1.93.2", "skinview3d": "^3.4.1", "tailwindcss": "^4.1.14", diff --git a/src/middleware.ts b/src/middleware.ts index 41f5258..1a0f0a6 100644 --- a/src/middleware.ts +++ b/src/middleware.ts @@ -1,7 +1,7 @@ import { sequence } from 'astro/middleware'; import crypto from 'node:crypto'; import type { MiddlewareHandler } from 'astro'; -import { logger } from '@it-astro:logger'; +import { logger } from '@util/log.ts'; const actionInternalServerError: MiddlewareHandler = async (context, next) => { let response = await next(); diff --git a/src/util/log.ts b/src/util/log.ts new file mode 100644 index 0000000..ac32dc9 --- /dev/null +++ b/src/util/log.ts @@ -0,0 +1,11 @@ +import pino from 'pino'; + +export const logger = pino({ + base: null, + level: process.env.LOG_LEVEL || (import.meta.env.DEV ? 'debug' : 'warn'), + formatters: { + level: (label) => { + return { label }; + } + } +});