diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5cd01a5d..010513c4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,7 +38,7 @@ importers: version: 5.9.3 vitest: specifier: ^3.0.0 - version: 3.2.4(@types/node@20.19.33)(tsx@4.21.0) + version: 3.2.4(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2) packages/api-client: {} @@ -80,6 +80,178 @@ importers: specifier: '>=18.0.0' version: 19.2.4 + services/billing-service: + dependencies: + '@azure/cosmos': + specifier: ^4.2.0 + version: 4.9.1(@azure/core-client@1.10.1) + '@fastify/cors': + specifier: ^10.0.2 + version: 10.1.0 + '@fastify/swagger': + specifier: ^9.4.2 + version: 9.7.0 + fastify: + specifier: ^5.2.1 + version: 5.7.4 + fastify-metrics: + specifier: ^10.3.0 + version: 10.6.0(fastify@5.7.4) + stripe: + specifier: ^17.5.0 + version: 17.7.0 + zod: + specifier: ^3.24.2 + version: 3.25.76 + devDependencies: + '@types/node': + specifier: ^22.12.0 + version: 22.19.11 + tsx: + specifier: ^4.19.2 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^3.0.5 + version: 3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + + services/growth-service: + dependencies: + '@azure/cosmos': + specifier: ^4.2.0 + version: 4.9.1(@azure/core-client@1.10.1) + '@fastify/cors': + specifier: ^10.0.2 + version: 10.1.0 + '@fastify/swagger': + specifier: ^9.4.2 + version: 9.7.0 + fastify: + specifier: ^5.2.1 + version: 5.7.4 + fastify-metrics: + specifier: ^10.3.0 + version: 10.6.0(fastify@5.7.4) + stripe: + specifier: ^17.5.0 + version: 17.7.0 + zod: + specifier: ^3.24.2 + version: 3.25.76 + devDependencies: + '@types/node': + specifier: ^22.12.0 + version: 22.19.11 + tsx: + specifier: ^4.19.2 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^3.0.5 + version: 3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + + services/monitoring: + devDependencies: + '@types/node': + specifier: ^22.12.0 + version: 22.19.11 + tsx: + specifier: ^4.19.2 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + + services/platform-service: + dependencies: + '@azure/cosmos': + specifier: ^4.2.0 + version: 4.9.1(@azure/core-client@1.10.1) + '@azure/storage-blob': + specifier: ^12.31.0 + version: 12.31.0 + '@fastify/cors': + specifier: ^10.0.2 + version: 10.1.0 + '@fastify/swagger': + specifier: ^9.4.2 + version: 9.7.0 + bcryptjs: + specifier: ^2.4.3 + version: 2.4.3 + fastify: + specifier: ^5.2.1 + version: 5.7.4 + fastify-metrics: + specifier: ^10.3.0 + version: 10.6.0(fastify@5.7.4) + jose: + specifier: ^6.0.8 + version: 6.1.3 + zod: + specifier: ^3.24.2 + version: 3.25.76 + devDependencies: + '@types/bcryptjs': + specifier: ^2.4.6 + version: 2.4.6 + '@types/node': + specifier: ^22.12.0 + version: 22.19.11 + tsx: + specifier: ^4.19.2 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^3.0.5 + version: 3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + + services/tracker-service: + dependencies: + '@azure/cosmos': + specifier: ^4.2.0 + version: 4.9.1(@azure/core-client@1.10.1) + '@fastify/cors': + specifier: ^10.0.2 + version: 10.1.0 + '@fastify/rate-limit': + specifier: ^10.3.0 + version: 10.3.0 + '@fastify/swagger': + specifier: ^9.4.2 + version: 9.7.0 + fastify: + specifier: ^5.2.1 + version: 5.7.4 + fastify-metrics: + specifier: ^10.3.0 + version: 10.6.0(fastify@5.7.4) + jose: + specifier: ^6.0.8 + version: 6.1.3 + zod: + specifier: ^3.24.2 + version: 3.25.76 + devDependencies: + '@types/node': + specifier: ^22.12.0 + version: 22.19.11 + tsx: + specifier: ^4.19.2 + version: 4.21.0 + typescript: + specifier: ^5.7.3 + version: 5.9.3 + vitest: + specifier: ^3.0.5 + version: 3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + packages: '@azure-rest/core-client@2.5.1': @@ -125,6 +297,10 @@ packages: resolution: {integrity: sha512-XPArKLzsvl0Hf0CaGyKHUyVgF7oDnhKoP85Xv6M4StF/1AhfORhZudHtOyf2s+FcbuQ9dPRAjB8J2KvRRMUK2A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/core-util/-/core-util-1.13.1.tgz} engines: {node: '>=20.0.0'} + '@azure/core-xml@1.5.0': + resolution: {integrity: sha512-D/sdlJBMJfx7gqoj66PKVmhDDaU6TKA49ptcolxdas29X7AfvLTmfAGLjAcIMBK7UZ2o4lygHIqVckOlQU3xWw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/core-xml/-/core-xml-1.5.0.tgz} + engines: {node: '>=20.0.0'} + '@azure/cosmos@4.9.1': resolution: {integrity: sha512-fPnfL4JsmJJ/jEYUhlznKfrEr2pMvJwBncGVcUC2Xi7Nlj0MrUMRE+UOrptl/lRV2W7l68Br+b9Ikzm0KiZZHg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/cosmos/-/cosmos-4.9.1.tgz} engines: {node: '>=20.0.0'} @@ -141,6 +317,14 @@ packages: resolution: {integrity: sha512-fCqPIfOcLE+CGqGPd66c8bZpwAji98tZ4JI9i/mlTNTlsIWslCfpg48s/ypyLxZTump5sypjrKn2/kY7q8oAbA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/logger/-/logger-1.3.0.tgz} engines: {node: '>=20.0.0'} + '@azure/storage-blob@12.31.0': + resolution: {integrity: sha512-DBgNv10aCSxopt92DkTDD0o9xScXeBqPKGmR50FPZQaEcH4JLQ+GEOGEDv19V5BMkB7kxr+m4h6il/cCDPvmHg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/storage-blob/-/storage-blob-12.31.0.tgz} + engines: {node: '>=20.0.0'} + + '@azure/storage-common@12.3.0': + resolution: {integrity: sha512-/OFHhy86aG5Pe8dP5tsp+BuJ25JOAl9yaMU3WZbkeoiFMHFtJ7tu5ili7qEdBXNW9G5lDB19trwyI6V49F/8iQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@azure/storage-common/-/storage-common-12.3.0.tgz} + engines: {node: '>=20.0.0'} + '@esbuild/aix-ppc64@0.27.3': resolution: {integrity: sha512-9fJMTNFTWZMh5qwrBItuziu834eOCUcEqymSH7pY+zoMVEZg3gcPuBNxH1EvfVYe9h0x/Ptw8KBzv7qxb7l8dg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@esbuild/aix-ppc64/-/aix-ppc64-0.27.3.tgz} engines: {node: '>=18'} @@ -297,9 +481,43 @@ packages: cpu: [x64] os: [win32] + '@fastify/ajv-compiler@4.0.5': + resolution: {integrity: sha512-KoWKW+MhvfTRWL4qrhUwAAZoaChluo0m0vbiJlGMt2GXvL4LVPQEjt8kSpHI3IBq5Rez8fg+XeH3cneztq+C7A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/ajv-compiler/-/ajv-compiler-4.0.5.tgz} + + '@fastify/cors@10.1.0': + resolution: {integrity: sha512-MZyBCBJtII60CU9Xme/iE4aEy8G7QpzGR8zkdXZkDFt7ElEMachbE61tfhAG/bvSaULlqlf0huMT12T7iqEmdQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/cors/-/cors-10.1.0.tgz} + + '@fastify/error@4.2.0': + resolution: {integrity: sha512-RSo3sVDXfHskiBZKBPRgnQTtIqpi/7zhJOEmAxCiBcM7d0uwdGdxLlsCaLzGs8v8NnxIRlfG0N51p5yFaOentQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/error/-/error-4.2.0.tgz} + + '@fastify/fast-json-stringify-compiler@5.0.3': + resolution: {integrity: sha512-uik7yYHkLr6fxd8hJSZ8c+xF4WafPK+XzneQDPU+D10r5X19GW8lJcom2YijX2+qtFF1ENJlHXKFM9ouXNJYgQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/fast-json-stringify-compiler/-/fast-json-stringify-compiler-5.0.3.tgz} + + '@fastify/forwarded@3.0.1': + resolution: {integrity: sha512-JqDochHFqXs3C3Ml3gOY58zM7OqO9ENqPo0UqAjAjH8L01fRZqwX9iLeX34//kiJubF7r2ZQHtBRU36vONbLlw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/forwarded/-/forwarded-3.0.1.tgz} + + '@fastify/merge-json-schemas@0.2.1': + resolution: {integrity: sha512-OA3KGBCy6KtIvLf8DINC5880o5iBlDX4SxzLQS8HorJAbqluzLRn80UXU0bxZn7UOFhFgpRJDasfwn9nG4FG4A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/merge-json-schemas/-/merge-json-schemas-0.2.1.tgz} + + '@fastify/proxy-addr@5.1.0': + resolution: {integrity: sha512-INS+6gh91cLUjB+PVHfu1UqcB76Sqtpyp7bnL+FYojhjygvOPA9ctiD/JDKsyD9Xgu4hUhCSJBPig/w7duNajw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/proxy-addr/-/proxy-addr-5.1.0.tgz} + + '@fastify/rate-limit@10.3.0': + resolution: {integrity: sha512-eIGkG9XKQs0nyynatApA3EVrojHOuq4l6fhB4eeCk4PIOeadvOJz9/4w3vGI44Go17uaXOWEcPkaD8kuKm7g6Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/rate-limit/-/rate-limit-10.3.0.tgz} + + '@fastify/swagger@9.7.0': + resolution: {integrity: sha512-Vp1SC1GC2Hrkd3faFILv86BzUNyFz5N4/xdExqtCgkGASOzn/x+eMe4qXIGq7cdT6wif/P/oa6r1Ruqx19paZA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@fastify/swagger/-/swagger-9.7.0.tgz} + '@jridgewell/sourcemap-codec@1.5.5': resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz} + '@lukeed/ms@2.0.2': + resolution: {integrity: sha512-9I2Zn6+NJLfaGoz9jN3lpwDgAYvfGeNYdbAIjJOqzs4Tpc+VU3Jqq4IofSUBKajiDS8k9fZIg18/z13mpk1bsA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@lukeed/ms/-/ms-2.0.2.tgz} + engines: {node: '>=8'} + + '@pinojs/redact@0.4.0': + resolution: {integrity: sha512-k2ENnmBugE/rzQfEcdWHcCY+/FM3VLzH9cYEsbdsoqrvzAKRhUZeRNhAZvB8OitQJ1TBed3yqWtdjzS6wJKBwg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@pinojs/redact/-/redact-0.4.0.tgz} + '@rollup/rollup-android-arm-eabi@4.57.1': resolution: {integrity: sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz} cpu: [arm] @@ -453,6 +671,9 @@ packages: '@types/node@20.19.33': resolution: {integrity: sha512-Rs1bVAIdBs5gbTIKza/tgpMuG1k3U/UMJLWecIMxNdJFDMzcM5LOiLVRYh3PilWEYDIeUDv7bpiHPLPsbydGcw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@types/node/-/node-20.19.33.tgz} + '@types/node@22.19.11': + resolution: {integrity: sha512-BH7YwL6rA93ReqeQS1c4bsPpcfOmJasG+Fkr6Y59q83f9M1WcBRHR2vM+P9eOisYRcN3ujQoiZY8uk5W+1WL8w==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@types/node/-/node-22.19.11.tgz} + '@types/react@19.2.14': resolution: {integrity: sha512-ilcTH/UniCkMdtexkoCN0bI7pMcJDvmQFPvuPvmEaYA/NSfFTAgdUSLAoVjaRJm7+6PvcM+q1zYOwS4wTYMF9w==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@types/react/-/react-19.2.14.tgz} @@ -489,22 +710,57 @@ packages: '@vitest/utils@3.2.4': resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/@vitest/utils/-/utils-3.2.4.tgz} + abstract-logging@2.0.1: + resolution: {integrity: sha512-2BjRTZxTPvheOvGbBslFSYOUkr+SjPtOnrLP33f+VIWLzezQpZcqVg7ja3L4dBXmzzgwT+a029jRx5PCi3JuiA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/abstract-logging/-/abstract-logging-2.0.1.tgz} + agent-base@7.1.4: resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/agent-base/-/agent-base-7.1.4.tgz} engines: {node: '>= 14'} + ajv-formats@3.0.1: + resolution: {integrity: sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/ajv-formats/-/ajv-formats-3.0.1.tgz} + peerDependencies: + ajv: ^8.0.0 + peerDependenciesMeta: + ajv: + optional: true + + ajv@8.17.1: + resolution: {integrity: sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/ajv/-/ajv-8.17.1.tgz} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/assertion-error/-/assertion-error-2.0.1.tgz} engines: {node: '>=12'} + atomic-sleep@1.0.0: + resolution: {integrity: sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/atomic-sleep/-/atomic-sleep-1.0.0.tgz} + engines: {node: '>=8.0.0'} + + avvio@9.1.0: + resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/avvio/-/avvio-9.1.0.tgz} + + bcryptjs@2.4.3: + resolution: {integrity: sha512-V/Hy/X9Vt7f3BbPJEi8BdVFMByHi+jNXrYkW3huaybV/kQ0KJg0Y6PkEMbn+zeT+i+SiKZ/HMqJGIIt4LZDqNQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/bcryptjs/-/bcryptjs-2.4.3.tgz} + bcryptjs@3.0.3: resolution: {integrity: sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/bcryptjs/-/bcryptjs-3.0.3.tgz} hasBin: true + bintrees@1.0.2: + resolution: {integrity: sha512-VOMgTMwjAaUG580SXn3LacVgjurrbMme7ZZNYGSSV7mmtY6QQRh0Eg3pwIcntQ77DErK1L0NxkbetjcoXzVwKw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/bintrees/-/bintrees-1.0.2.tgz} + cac@6.7.14: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/cac/-/cac-6.7.14.tgz} engines: {node: '>=8'} + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz} + engines: {node: '>= 0.4'} + + call-bound@1.0.4: + resolution: {integrity: sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/call-bound/-/call-bound-1.0.4.tgz} + engines: {node: '>= 0.4'} + chai@5.3.3: resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/chai/-/chai-5.3.3.tgz} engines: {node: '>=18'} @@ -513,6 +769,10 @@ packages: resolution: {integrity: sha512-PAJdDJusoxnwm1VwW07VWwUN1sl7smmC3OKggvndJFadxxDRyFJBX/ggnu/KE4kQAB7a3Dp8f/YXC1FlUprWmA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/check-error/-/check-error-2.1.3.tgz} engines: {node: '>= 16'} + cookie@1.1.1: + resolution: {integrity: sha512-ei8Aos7ja0weRpFzJnEA9UHJ/7XQmqglbRwnf2ATjcB9Wq874VKH9kfjjirM6UhU2/E5fFYadylyhFldcqSidQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/cookie/-/cookie-1.1.1.tgz} + engines: {node: '>=18'} + csstype@3.2.3: resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/csstype/-/csstype-3.2.3.tgz} @@ -529,9 +789,29 @@ packages: resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/deep-eql/-/deep-eql-5.0.2.tgz} engines: {node: '>=6'} + dequal@2.0.3: + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/dequal/-/dequal-2.0.3.tgz} + engines: {node: '>=6'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/dunder-proto/-/dunder-proto-1.0.1.tgz} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/es-define-property/-/es-define-property-1.0.1.tgz} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/es-errors/-/es-errors-1.3.0.tgz} + engines: {node: '>= 0.4'} + es-module-lexer@1.7.0: resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/es-module-lexer/-/es-module-lexer-1.7.0.tgz} + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/es-object-atoms/-/es-object-atoms-1.1.1.tgz} + engines: {node: '>= 0.4'} + esbuild@0.27.3: resolution: {integrity: sha512-8VwMnyGCONIs6cWue2IdpHxHnAjzxnw2Zr7MkVxB2vjmQ2ivqGFb4LEG3SMnv0Gb2F/G/2yA8zUaiL1gywDCCg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/esbuild/-/esbuild-0.27.3.tgz} engines: {node: '>=18'} @@ -540,13 +820,53 @@ packages: estree-walker@3.0.3: resolution: {integrity: sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/estree-walker/-/estree-walker-3.0.3.tgz} + events@3.3.0: + resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/events/-/events-3.3.0.tgz} + engines: {node: '>=0.8.x'} + expect-type@1.3.0: resolution: {integrity: sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/expect-type/-/expect-type-1.3.0.tgz} engines: {node: '>=12.0.0'} + fast-decode-uri-component@1.0.1: + resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz} + fast-json-stringify@6.3.0: + resolution: {integrity: sha512-oRCntNDY/329HJPlmdNLIdogNtt6Vyjb1WuT01Soss3slIdyUp8kAcDU3saQTOquEK8KFVfwIIF7FebxUAu+yA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-json-stringify/-/fast-json-stringify-6.3.0.tgz} + + fast-querystring@1.1.2: + resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-querystring/-/fast-querystring-1.1.2.tgz} + + fast-uri@3.1.0: + resolution: {integrity: sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-uri/-/fast-uri-3.1.0.tgz} + + fast-xml-parser@5.3.5: + resolution: {integrity: sha512-JeaA2Vm9ffQKp9VjvfzObuMCjUYAp5WDYhRYL5LrBPY/jUDlUtOvDfot0vKSkB9tuX885BDHjtw4fZadD95wnA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fast-xml-parser/-/fast-xml-parser-5.3.5.tgz} + hasBin: true + + fastify-metrics@10.6.0: + resolution: {integrity: sha512-QIPncCnwBOEObMn+VaRhsBC1ox8qEsaiYF2sV/A1UbXj7ic70W8/HNn/hlEC2W8JQbBeZMx++o1um2fPfhsFDQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fastify-metrics/-/fastify-metrics-10.6.0.tgz} + peerDependencies: + fastify: '>=4' + + fastify-plugin@4.5.1: + resolution: {integrity: sha512-stRHYGeuqpEZTL1Ef0Ovr2ltazUT9g844X5z/zEBFLG8RYlpDiOCIG+ATvYEp+/zmc7sN29mcIMp8gvYplYPIQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fastify-plugin/-/fastify-plugin-4.5.1.tgz} + + fastify-plugin@5.1.0: + resolution: {integrity: sha512-FAIDA8eovSt5qcDgcBvDuX/v0Cjz0ohGhENZ/wpc3y+oZCY2afZ9Baqql3g/lC+OHRnciQol4ww7tuthOb9idw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fastify-plugin/-/fastify-plugin-5.1.0.tgz} + + fastify@5.7.4: + resolution: {integrity: sha512-e6l5NsRdaEP8rdD8VR0ErJASeyaRbzXYpmkrpr2SuvuMq6Si3lvsaVy5C+7gLanEkvjpMDzBXWE5HPeb/hgTxA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fastify/-/fastify-5.7.4.tgz} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fastq/-/fastq-1.20.1.tgz} + fdir@6.5.0: resolution: {integrity: sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fdir/-/fdir-6.5.0.tgz} engines: {node: '>=12.0.0'} @@ -556,14 +876,41 @@ packages: picomatch: optional: true + find-my-way@9.4.0: + resolution: {integrity: sha512-5Ye4vHsypZRYtS01ob/iwHzGRUDELlsoCftI/OZFhcLs1M0tkGPcXldE80TAZC5yYuJMBPJQQ43UHlqbJWiX2w==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/find-my-way/-/find-my-way-9.4.0.tgz} + engines: {node: '>=20'} + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/fsevents/-/fsevents-2.3.3.tgz} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/function-bind/-/function-bind-1.1.2.tgz} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/get-intrinsic/-/get-intrinsic-1.3.0.tgz} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/get-proto/-/get-proto-1.0.1.tgz} + engines: {node: '>= 0.4'} + get-tsconfig@4.13.6: resolution: {integrity: sha512-shZT/QMiSHc/YBLxxOkMtgSid5HFoauqCE3/exfsEcwg1WkeqjG+V40yBbBrsD+jW2HDXcs28xOfcbm2jI8Ddw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/get-tsconfig/-/get-tsconfig-4.13.6.tgz} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/gopd/-/gopd-1.2.0.tgz} + engines: {node: '>= 0.4'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/has-symbols/-/has-symbols-1.1.0.tgz} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/hasown/-/hasown-2.0.2.tgz} + engines: {node: '>= 0.4'} + http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz} engines: {node: '>= 14'} @@ -572,18 +919,42 @@ packages: resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz} engines: {node: '>= 14'} + ipaddr.js@2.3.0: + resolution: {integrity: sha512-Zv/pA+ciVFbCSBBjGfaKUya/CcGmUHzTydLMaTwrUUEM2DIEO3iZvueGxmacvmN50fGpGVKeTXpb2LcYQxeVdg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/ipaddr.js/-/ipaddr.js-2.3.0.tgz} + engines: {node: '>= 10'} + jose@6.1.3: resolution: {integrity: sha512-0TpaTfihd4QMNwrz/ob2Bp7X04yuxJkjRGi4aKmOqwhov54i6u79oCv7T+C7lo70MKH6BesI3vscD1yb/yzKXQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/jose/-/jose-6.1.3.tgz} js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/js-tokens/-/js-tokens-9.0.1.tgz} + json-schema-ref-resolver@3.0.0: + resolution: {integrity: sha512-hOrZIVL5jyYFjzk7+y7n5JDzGlU8rfWDuYyHwGa2WA8/pcmMHezp2xsVwxrebD/Q9t8Nc5DboieySDpCp4WG4A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/json-schema-ref-resolver/-/json-schema-ref-resolver-3.0.0.tgz} + + json-schema-resolver@3.0.0: + resolution: {integrity: sha512-HqMnbz0tz2DaEJ3ntsqtx3ezzZyDE7G56A/pPY/NGmrPu76UzsWquOpHFRAf5beTNXoH2LU5cQePVvRli1nchA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/json-schema-resolver/-/json-schema-resolver-3.0.0.tgz} + engines: {node: '>=20'} + + json-schema-traverse@1.0.0: + resolution: {integrity: sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz} + + light-my-request@6.6.0: + resolution: {integrity: sha512-CHYbu8RtboSIoVsHZ6Ye4cj4Aw/yg2oAFimlF7mNvfDV192LR7nDiKtSIfCuLT7KokPSTn/9kfVLm5OGN0A28A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/light-my-request/-/light-my-request-6.6.0.tgz} + loupe@3.2.1: resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/loupe/-/loupe-3.2.1.tgz} magic-string@0.30.21: resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/magic-string/-/magic-string-0.30.21.tgz} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/math-intrinsics/-/math-intrinsics-1.1.0.tgz} + engines: {node: '>= 0.4'} + + mnemonist@0.40.0: + resolution: {integrity: sha512-kdd8AFNig2AD5Rkih7EPCXhu/iMvwevQFX/uEiGhZyPZi7fHqOoF4V4kHLpCfysxXMgQ4B52kdPMCwARshKvEg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/mnemonist/-/mnemonist-0.40.0.tgz} + ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/ms/-/ms-2.1.3.tgz} @@ -592,6 +963,20 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + object-inspect@1.13.4: + resolution: {integrity: sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/object-inspect/-/object-inspect-1.13.4.tgz} + engines: {node: '>= 0.4'} + + obliterator@2.0.5: + resolution: {integrity: sha512-42CPE9AhahZRsMNslczq0ctAEtqk8Eka26QofnqC346BZdHDySk3LWka23LI7ULIw11NmltpiLagIq8gBozxTw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/obliterator/-/obliterator-2.0.5.tgz} + + on-exit-leak-free@2.1.2: + resolution: {integrity: sha512-0eJJY6hXLGf1udHwfNftBqH+g73EU4B504nZeKpz1sYRKafAghwxEJunB2O7rDZkL4PGfsMVnTXZ2EjibbqcsA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/on-exit-leak-free/-/on-exit-leak-free-2.1.2.tgz} + engines: {node: '>=14.0.0'} + + openapi-types@12.1.3: + resolution: {integrity: sha512-N4YtSYJqghVu4iek2ZUvcN/0aqH1kRDuNqzcycDxhOUpg7GdvLa2F3DgS6yBNhInhv2r/6I0Flkn7CqL8+nIcw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/openapi-types/-/openapi-types-12.1.3.tgz} + pathe@2.0.3: resolution: {integrity: sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/pathe/-/pathe-2.0.3.tgz} @@ -606,6 +991,16 @@ packages: resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/picomatch/-/picomatch-4.0.3.tgz} engines: {node: '>=12'} + pino-abstract-transport@3.0.0: + resolution: {integrity: sha512-wlfUczU+n7Hy/Ha5j9a/gZNy7We5+cXp8YL+X+PG8S0KXxw7n/JXA3c46Y0zQznIJ83URJiwy7Lh56WLokNuxg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/pino-abstract-transport/-/pino-abstract-transport-3.0.0.tgz} + + pino-std-serializers@7.1.0: + resolution: {integrity: sha512-BndPH67/JxGExRgiX1dX0w1FvZck5Wa4aal9198SrRhZjH3GxKQUKIBnYJTdj2HDN3UQAS06HlfcSbQj2OHmaw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/pino-std-serializers/-/pino-std-serializers-7.1.0.tgz} + + pino@10.3.1: + resolution: {integrity: sha512-r34yH/GlQpKZbU1BvFFqOjhISRo1MNx1tWYsYvmj6KIRHSPMT2+yHOEb1SG6NMvRoHRF0a07kCOox/9yakl1vg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/pino/-/pino-10.3.1.tgz} + hasBin: true + postcss@8.5.6: resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/postcss/-/postcss-8.5.6.tgz} engines: {node: ^10 || ^12 || >=14} @@ -613,29 +1008,106 @@ packages: priorityqueuejs@2.0.0: resolution: {integrity: sha512-19BMarhgpq3x4ccvVi8k2QpJZcymo/iFUcrhPd4V96kYGovOdTsWwy7fxChYi4QY+m2EnGBWSX9Buakz+tWNQQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/priorityqueuejs/-/priorityqueuejs-2.0.0.tgz} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/process-warning/-/process-warning-4.0.1.tgz} + + process-warning@5.0.0: + resolution: {integrity: sha512-a39t9ApHNx2L4+HBnQKqxxHNs1r7KF+Intd8Q/g1bUh6q0WIp9voPXJ/x0j+ZL45KF1pJd9+q2jLIRMfvEshkA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/process-warning/-/process-warning-5.0.0.tgz} + + prom-client@14.2.0: + resolution: {integrity: sha512-sF308EhTenb/pDRPakm+WgiN+VdM/T1RaHj1x+MvAuT8UiQP8JmOEbxVqtkbfR4LrvOg5n7ic01kRBDGXjYikA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/prom-client/-/prom-client-14.2.0.tgz} + engines: {node: '>=10'} + + qs@6.14.2: + resolution: {integrity: sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/qs/-/qs-6.14.2.tgz} + engines: {node: '>=0.6'} + + quick-format-unescaped@4.0.4: + resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz} + react@19.2.4: resolution: {integrity: sha512-9nfp2hYpCwOjAN+8TZFGhtWEwgvWHXqESH8qT89AT/lWklpLON22Lc8pEtnpsZz7VmawabSU0gCjnj8aC0euHQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/react/-/react-19.2.4.tgz} engines: {node: '>=0.10.0'} + real-require@0.2.0: + resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/real-require/-/real-require-0.2.0.tgz} + engines: {node: '>= 12.13.0'} + + require-from-string@2.0.2: + resolution: {integrity: sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/require-from-string/-/require-from-string-2.0.2.tgz} + engines: {node: '>=0.10.0'} + resolve-pkg-maps@1.0.0: resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz} + ret@0.5.0: + resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/ret/-/ret-0.5.0.tgz} + engines: {node: '>=10'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/reusify/-/reusify-1.1.0.tgz} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rfdc@1.4.1: + resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/rfdc/-/rfdc-1.4.1.tgz} + rollup@4.57.1: resolution: {integrity: sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/rollup/-/rollup-4.57.1.tgz} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true + safe-regex2@5.0.0: + resolution: {integrity: sha512-YwJwe5a51WlK7KbOJREPdjNrpViQBI3p4T50lfwPuDhZnE3XGVTlGvi+aolc5+RvxDD6bnUmjVsU9n1eboLUYw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/safe-regex2/-/safe-regex2-5.0.0.tgz} + + safe-stable-stringify@2.5.0: + resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/safe-stable-stringify/-/safe-stable-stringify-2.5.0.tgz} + engines: {node: '>=10'} + + secure-json-parse@4.1.0: + resolution: {integrity: sha512-l4KnYfEyqYJxDwlNVyRfO2E4NTHfMKAWdUuA8J0yve2Dz/E/PdBepY03RvyJpssIpRFwJoCD55wA+mEDs6ByWA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/secure-json-parse/-/secure-json-parse-4.1.0.tgz} + semaphore@1.1.0: resolution: {integrity: sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/semaphore/-/semaphore-1.1.0.tgz} engines: {node: '>=0.8.0'} + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/semver/-/semver-7.7.4.tgz} + engines: {node: '>=10'} + hasBin: true + + set-cookie-parser@2.7.2: + resolution: {integrity: sha512-oeM1lpU/UvhTxw+g3cIfxXHyJRc/uidd3yK1P242gzHds0udQBYzs3y8j4gCCW+ZJ7ad0yctld8RYO+bdurlvw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/set-cookie-parser/-/set-cookie-parser-2.7.2.tgz} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/side-channel-list/-/side-channel-list-1.0.0.tgz} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/side-channel-map/-/side-channel-map-1.0.1.tgz} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/side-channel/-/side-channel-1.1.0.tgz} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/siginfo/-/siginfo-2.0.0.tgz} + sonic-boom@4.2.1: + resolution: {integrity: sha512-w6AxtubXa2wTXAUsZMMWERrsIRAdrK0Sc+FUytWvYAhBJLyuI4llrMIC1DtlNSdI99EI86KZum2MMq3EAZlF9Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/sonic-boom/-/sonic-boom-4.2.1.tgz} + source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/source-map-js/-/source-map-js-1.2.1.tgz} engines: {node: '>=0.10.0'} + split2@4.2.0: + resolution: {integrity: sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/split2/-/split2-4.2.0.tgz} + engines: {node: '>= 10.x'} + stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/stackback/-/stackback-0.0.2.tgz} @@ -645,6 +1117,20 @@ packages: strip-literal@3.1.0: resolution: {integrity: sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/strip-literal/-/strip-literal-3.1.0.tgz} + stripe@17.7.0: + resolution: {integrity: sha512-aT2BU9KkizY9SATf14WhhYVv2uOapBWX0OFWF4xvcj1mPaNotlSc2CsxpS4DS46ZueSppmCF5BX1sNYBtwBvfw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/stripe/-/stripe-17.7.0.tgz} + engines: {node: '>=12.*'} + + strnum@2.1.2: + resolution: {integrity: sha512-l63NF9y/cLROq/yqKXSLtcMeeyOfnSQlfMSlzFt/K73oIaD8DGaQWd7Z34X9GPiKqP5rbSh84Hl4bOlLcjiSrQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/strnum/-/strnum-2.1.2.tgz} + + tdigest@0.1.2: + resolution: {integrity: sha512-+G0LLgjjo9BZX2MfdvPfH+MKLCrxlXSYec5DaPYP1fe6Iyhf0/fSmJ0bFiZ1F8BT6cGXl2LpltQptzjXKWEkKA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/tdigest/-/tdigest-0.1.2.tgz} + + thread-stream@4.0.0: + resolution: {integrity: sha512-4iMVL6HAINXWf1ZKZjIPcz5wYaOdPhtO8ATvZ+Xqp3BTdaqtAwQkNmKORqcIo5YkQqGXq5cwfswDwMqqQNrpJA==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/thread-stream/-/thread-stream-4.0.0.tgz} + engines: {node: '>=20'} + tinybench@2.9.0: resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/tinybench/-/tinybench-2.9.0.tgz} @@ -667,6 +1153,10 @@ packages: resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/tinyspy/-/tinyspy-4.0.4.tgz} engines: {node: '>=14.0.0'} + toad-cache@3.7.0: + resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/toad-cache/-/toad-cache-3.7.0.tgz} + engines: {node: '>=12'} + tslib@2.8.1: resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/tslib/-/tslib-2.8.1.tgz} @@ -761,6 +1251,14 @@ packages: engines: {node: '>=8'} hasBin: true + yaml@2.8.2: + resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/yaml/-/yaml-2.8.2.tgz} + engines: {node: '>= 14.6'} + hasBin: true + + zod@3.25.76: + resolution: {integrity: sha512-gzUt/qt81nXsFGKIFcC3YnfEAx5NkunCfnDlvuBSSFS02bcXu4Lmea0AFIUwbLWxWPx3d9p8S5QoaujKcNQxcQ==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/zod/-/zod-3.25.76.tgz} + zod@4.3.6: resolution: {integrity: sha512-rftlrkhHZOcjDwkGlnUtZZkvaPHCsDATp4pGpuOOMDaTdDDXF91wuVDJoWoPsKX/3YPQ5fHuF3STjcYyKr+Qhg==, tarball: https://jfrog-pkg-proxy.it.att.com/artifactory/api/npm/att-npm-proxy-group/zod/-/zod-4.3.6.tgz} @@ -844,6 +1342,11 @@ snapshots: transitivePeerDependencies: - supports-color + '@azure/core-xml@1.5.0': + dependencies: + fast-xml-parser: 5.3.5 + tslib: 2.8.1 + '@azure/cosmos@4.9.1(@azure/core-client@1.10.1)': dependencies: '@azure/abort-controller': 2.1.2 @@ -899,6 +1402,40 @@ snapshots: transitivePeerDependencies: - supports-color + '@azure/storage-blob@12.31.0': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-client': 1.10.1 + '@azure/core-http-compat': 2.3.2(@azure/core-client@1.10.1)(@azure/core-rest-pipeline@1.22.2) + '@azure/core-lro': 2.7.2 + '@azure/core-paging': 1.6.2 + '@azure/core-rest-pipeline': 1.22.2 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/core-xml': 1.5.0 + '@azure/logger': 1.3.0 + '@azure/storage-common': 12.3.0(@azure/core-client@1.10.1) + events: 3.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - supports-color + + '@azure/storage-common@12.3.0(@azure/core-client@1.10.1)': + dependencies: + '@azure/abort-controller': 2.1.2 + '@azure/core-auth': 1.10.1 + '@azure/core-http-compat': 2.3.2(@azure/core-client@1.10.1)(@azure/core-rest-pipeline@1.22.2) + '@azure/core-rest-pipeline': 1.22.2 + '@azure/core-tracing': 1.3.1 + '@azure/core-util': 1.13.1 + '@azure/logger': 1.3.0 + events: 3.3.0 + tslib: 2.8.1 + transitivePeerDependencies: + - '@azure/core-client' + - supports-color + '@esbuild/aix-ppc64@0.27.3': optional: true @@ -977,8 +1514,56 @@ snapshots: '@esbuild/win32-x64@0.27.3': optional: true + '@fastify/ajv-compiler@4.0.5': + dependencies: + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.1.0 + + '@fastify/cors@10.1.0': + dependencies: + fastify-plugin: 5.1.0 + mnemonist: 0.40.0 + + '@fastify/error@4.2.0': {} + + '@fastify/fast-json-stringify-compiler@5.0.3': + dependencies: + fast-json-stringify: 6.3.0 + + '@fastify/forwarded@3.0.1': {} + + '@fastify/merge-json-schemas@0.2.1': + dependencies: + dequal: 2.0.3 + + '@fastify/proxy-addr@5.1.0': + dependencies: + '@fastify/forwarded': 3.0.1 + ipaddr.js: 2.3.0 + + '@fastify/rate-limit@10.3.0': + dependencies: + '@lukeed/ms': 2.0.2 + fastify-plugin: 5.1.0 + toad-cache: 3.7.0 + + '@fastify/swagger@9.7.0': + dependencies: + fastify-plugin: 5.1.0 + json-schema-resolver: 3.0.0 + openapi-types: 12.1.3 + rfdc: 1.4.1 + yaml: 2.8.2 + transitivePeerDependencies: + - supports-color + '@jridgewell/sourcemap-codec@1.5.5': {} + '@lukeed/ms@2.0.2': {} + + '@pinojs/redact@0.4.0': {} + '@rollup/rollup-android-arm-eabi@4.57.1': optional: true @@ -1069,6 +1654,10 @@ snapshots: dependencies: undici-types: 6.21.0 + '@types/node@22.19.11': + dependencies: + undici-types: 6.21.0 + '@types/react@19.2.14': dependencies: csstype: 3.2.3 @@ -1089,13 +1678,13 @@ snapshots: chai: 5.3.3 tinyrainbow: 2.0.0 - '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0))': + '@vitest/mocker@3.2.4(vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2))': dependencies: '@vitest/spy': 3.2.4 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0) + vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2) '@vitest/pretty-format@3.2.4': dependencies: @@ -1123,14 +1712,48 @@ snapshots: loupe: 3.2.1 tinyrainbow: 2.0.0 + abstract-logging@2.0.1: {} + agent-base@7.1.4: {} + ajv-formats@3.0.1(ajv@8.17.1): + optionalDependencies: + ajv: 8.17.1 + + ajv@8.17.1: + dependencies: + fast-deep-equal: 3.1.3 + fast-uri: 3.1.0 + json-schema-traverse: 1.0.0 + require-from-string: 2.0.2 + assertion-error@2.0.1: {} + atomic-sleep@1.0.0: {} + + avvio@9.1.0: + dependencies: + '@fastify/error': 4.2.0 + fastq: 1.20.1 + + bcryptjs@2.4.3: {} + bcryptjs@3.0.3: {} + bintrees@1.0.2: {} + cac@6.7.14: {} + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + call-bound@1.0.4: + dependencies: + call-bind-apply-helpers: 1.0.2 + get-intrinsic: 1.3.0 + chai@5.3.3: dependencies: assertion-error: 2.0.1 @@ -1141,6 +1764,8 @@ snapshots: check-error@2.1.3: {} + cookie@1.1.1: {} + csstype@3.2.3: {} debug@4.4.3: @@ -1149,8 +1774,24 @@ snapshots: deep-eql@5.0.2: {} + dequal@2.0.3: {} + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + es-module-lexer@1.7.0: {} + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + esbuild@0.27.3: optionalDependencies: '@esbuild/aix-ppc64': 0.27.3 @@ -1184,21 +1825,112 @@ snapshots: dependencies: '@types/estree': 1.0.8 + events@3.3.0: {} + expect-type@1.3.0: {} + fast-decode-uri-component@1.0.1: {} + + fast-deep-equal@3.1.3: {} + fast-json-stable-stringify@2.1.0: {} + fast-json-stringify@6.3.0: + dependencies: + '@fastify/merge-json-schemas': 0.2.1 + ajv: 8.17.1 + ajv-formats: 3.0.1(ajv@8.17.1) + fast-uri: 3.1.0 + json-schema-ref-resolver: 3.0.0 + rfdc: 1.4.1 + + fast-querystring@1.1.2: + dependencies: + fast-decode-uri-component: 1.0.1 + + fast-uri@3.1.0: {} + + fast-xml-parser@5.3.5: + dependencies: + strnum: 2.1.2 + + fastify-metrics@10.6.0(fastify@5.7.4): + dependencies: + fastify: 5.7.4 + fastify-plugin: 4.5.1 + prom-client: 14.2.0 + + fastify-plugin@4.5.1: {} + + fastify-plugin@5.1.0: {} + + fastify@5.7.4: + dependencies: + '@fastify/ajv-compiler': 4.0.5 + '@fastify/error': 4.2.0 + '@fastify/fast-json-stringify-compiler': 5.0.3 + '@fastify/proxy-addr': 5.1.0 + abstract-logging: 2.0.1 + avvio: 9.1.0 + fast-json-stringify: 6.3.0 + find-my-way: 9.4.0 + light-my-request: 6.6.0 + pino: 10.3.1 + process-warning: 5.0.0 + rfdc: 1.4.1 + secure-json-parse: 4.1.0 + semver: 7.7.4 + toad-cache: 3.7.0 + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + fdir@6.5.0(picomatch@4.0.3): optionalDependencies: picomatch: 4.0.3 + find-my-way@9.4.0: + dependencies: + fast-deep-equal: 3.1.3 + fast-querystring: 1.1.2 + safe-regex2: 5.0.0 + fsevents@2.3.3: optional: true + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + function-bind: 1.1.2 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 + math-intrinsics: 1.1.0 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + get-tsconfig@4.13.6: dependencies: resolve-pkg-maps: 1.0.0 + gopd@1.2.0: {} + + has-symbols@1.1.0: {} + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + http-proxy-agent@7.0.2: dependencies: agent-base: 7.1.4 @@ -1213,20 +1945,56 @@ snapshots: transitivePeerDependencies: - supports-color + ipaddr.js@2.3.0: {} + jose@6.1.3: {} js-tokens@9.0.1: {} + json-schema-ref-resolver@3.0.0: + dependencies: + dequal: 2.0.3 + + json-schema-resolver@3.0.0: + dependencies: + debug: 4.4.3 + fast-uri: 3.1.0 + rfdc: 1.4.1 + transitivePeerDependencies: + - supports-color + + json-schema-traverse@1.0.0: {} + + light-my-request@6.6.0: + dependencies: + cookie: 1.1.1 + process-warning: 4.0.1 + set-cookie-parser: 2.7.2 + loupe@3.2.1: {} magic-string@0.30.21: dependencies: '@jridgewell/sourcemap-codec': 1.5.5 + math-intrinsics@1.1.0: {} + + mnemonist@0.40.0: + dependencies: + obliterator: 2.0.5 + ms@2.1.3: {} nanoid@3.3.11: {} + object-inspect@1.13.4: {} + + obliterator@2.0.5: {} + + on-exit-leak-free@2.1.2: {} + + openapi-types@12.1.3: {} + pathe@2.0.3: {} pathval@2.0.1: {} @@ -1235,6 +2003,26 @@ snapshots: picomatch@4.0.3: {} + pino-abstract-transport@3.0.0: + dependencies: + split2: 4.2.0 + + pino-std-serializers@7.1.0: {} + + pino@10.3.1: + dependencies: + '@pinojs/redact': 0.4.0 + atomic-sleep: 1.0.0 + on-exit-leak-free: 2.1.2 + pino-abstract-transport: 3.0.0 + pino-std-serializers: 7.1.0 + process-warning: 5.0.0 + quick-format-unescaped: 4.0.4 + real-require: 0.2.0 + safe-stable-stringify: 2.5.0 + sonic-boom: 4.2.1 + thread-stream: 4.0.0 + postcss@8.5.6: dependencies: nanoid: 3.3.11 @@ -1243,10 +2031,34 @@ snapshots: priorityqueuejs@2.0.0: {} + process-warning@4.0.1: {} + + process-warning@5.0.0: {} + + prom-client@14.2.0: + dependencies: + tdigest: 0.1.2 + + qs@6.14.2: + dependencies: + side-channel: 1.1.0 + + quick-format-unescaped@4.0.4: {} + react@19.2.4: {} + real-require@0.2.0: {} + + require-from-string@2.0.2: {} + resolve-pkg-maps@1.0.0: {} + ret@0.5.0: {} + + reusify@1.1.0: {} + + rfdc@1.4.1: {} + rollup@4.57.1: dependencies: '@types/estree': 1.0.8 @@ -1278,12 +2090,58 @@ snapshots: '@rollup/rollup-win32-x64-msvc': 4.57.1 fsevents: 2.3.3 + safe-regex2@5.0.0: + dependencies: + ret: 0.5.0 + + safe-stable-stringify@2.5.0: {} + + secure-json-parse@4.1.0: {} + semaphore@1.1.0: {} + semver@7.7.4: {} + + set-cookie-parser@2.7.2: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.4 + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + object-inspect: 1.13.4 + side-channel-map: 1.0.1 + + side-channel@1.1.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.4 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 + siginfo@2.0.0: {} + sonic-boom@4.2.1: + dependencies: + atomic-sleep: 1.0.0 + source-map-js@1.2.1: {} + split2@4.2.0: {} + stackback@0.0.2: {} std-env@3.10.0: {} @@ -1292,6 +2150,21 @@ snapshots: dependencies: js-tokens: 9.0.1 + stripe@17.7.0: + dependencies: + '@types/node': 22.19.11 + qs: 6.14.2 + + strnum@2.1.2: {} + + tdigest@0.1.2: + dependencies: + bintrees: 1.0.2 + + thread-stream@4.0.0: + dependencies: + real-require: 0.2.0 + tinybench@2.9.0: {} tinyexec@0.3.2: {} @@ -1307,6 +2180,8 @@ snapshots: tinyspy@4.0.4: {} + toad-cache@3.7.0: {} + tslib@2.8.1: {} tsx@4.21.0: @@ -1320,13 +2195,13 @@ snapshots: undici-types@6.21.0: {} - vite-node@3.2.4(@types/node@20.19.33)(tsx@4.21.0): + vite-node@3.2.4(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2): dependencies: cac: 6.7.14 debug: 4.4.3 es-module-lexer: 1.7.0 pathe: 2.0.3 - vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0) + vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2) transitivePeerDependencies: - '@types/node' - jiti @@ -1341,7 +2216,28 @@ snapshots: - tsx - yaml - vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0): + vite-node@3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + cac: 6.7.14 + debug: 4.4.3 + es-module-lexer: 1.7.0 + pathe: 2.0.3 + vite: 7.3.1(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + transitivePeerDependencies: + - '@types/node' + - jiti + - less + - lightningcss + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + + vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2): dependencies: esbuild: 0.27.3 fdir: 6.5.0(picomatch@4.0.3) @@ -1353,12 +2249,27 @@ snapshots: '@types/node': 20.19.33 fsevents: 2.3.3 tsx: 4.21.0 + yaml: 2.8.2 - vitest@3.2.4(@types/node@20.19.33)(tsx@4.21.0): + vite@7.3.1(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + esbuild: 0.27.3 + fdir: 6.5.0(picomatch@4.0.3) + picomatch: 4.0.3 + postcss: 8.5.6 + rollup: 4.57.1 + tinyglobby: 0.2.15 + optionalDependencies: + '@types/node': 22.19.11 + fsevents: 2.3.3 + tsx: 4.21.0 + yaml: 2.8.2 + + vitest@3.2.4(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2): dependencies: '@types/chai': 5.2.3 '@vitest/expect': 3.2.4 - '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0)) + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2)) '@vitest/pretty-format': 3.2.4 '@vitest/runner': 3.2.4 '@vitest/snapshot': 3.2.4 @@ -1376,8 +2287,8 @@ snapshots: tinyglobby: 0.2.15 tinypool: 1.1.1 tinyrainbow: 2.0.0 - vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0) - vite-node: 3.2.4(@types/node@20.19.33)(tsx@4.21.0) + vite: 7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 20.19.33 @@ -1395,9 +2306,54 @@ snapshots: - tsx - yaml + vitest@3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2): + dependencies: + '@types/chai': 5.2.3 + '@vitest/expect': 3.2.4 + '@vitest/mocker': 3.2.4(vite@7.3.1(@types/node@20.19.33)(tsx@4.21.0)(yaml@2.8.2)) + '@vitest/pretty-format': 3.2.4 + '@vitest/runner': 3.2.4 + '@vitest/snapshot': 3.2.4 + '@vitest/spy': 3.2.4 + '@vitest/utils': 3.2.4 + chai: 5.3.3 + debug: 4.4.3 + expect-type: 1.3.0 + magic-string: 0.30.21 + pathe: 2.0.3 + picomatch: 4.0.3 + std-env: 3.10.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinyglobby: 0.2.15 + tinypool: 1.1.1 + tinyrainbow: 2.0.0 + vite: 7.3.1(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + vite-node: 3.2.4(@types/node@22.19.11)(tsx@4.21.0)(yaml@2.8.2) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 22.19.11 + transitivePeerDependencies: + - jiti + - less + - lightningcss + - msw + - sass + - sass-embedded + - stylus + - sugarss + - supports-color + - terser + - tsx + - yaml + why-is-node-running@2.3.0: dependencies: siginfo: 2.0.0 stackback: 0.0.2 + yaml@2.8.2: {} + + zod@3.25.76: {} + zod@4.3.6: {} diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index dee51e92..22373e72 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -1,2 +1,3 @@ packages: - "packages/*" + - "services/*" diff --git a/services/monitoring/grafana/dashboards/lysnrai-services.json b/services/monitoring/grafana/dashboards/lysnrai-services.json new file mode 100644 index 00000000..50619017 --- /dev/null +++ b/services/monitoring/grafana/dashboards/lysnrai-services.json @@ -0,0 +1,128 @@ +{ + "annotations": { "list": [] }, + "editable": true, + "fiscalYearStartMonth": 0, + "graphTooltip": 1, + "id": null, + "links": [], + "panels": [ + { + "title": "All Service Logs", + "type": "logs", + "gridPos": { "h": 12, "w": 24, "x": 0, "y": 0 }, + "datasource": { "type": "loki", "uid": "loki" }, + "targets": [ + { + "expr": "{compose_service=~\".+\"}", + "refId": "A" + } + ], + "options": { + "showTime": true, + "showLabels": true, + "showCommonLabels": false, + "wrapLogMessage": true, + "prettifyLogMessage": false, + "enableLogDetails": true, + "sortOrder": "Descending", + "dedupStrategy": "none" + } + }, + { + "title": "Logs by Service", + "type": "logs", + "gridPos": { "h": 10, "w": 12, "x": 0, "y": 12 }, + "datasource": { "type": "loki", "uid": "loki" }, + "targets": [ + { + "expr": "{compose_service=\"backend\"}", + "refId": "A", + "legendFormat": "backend" + } + ], + "options": { + "showTime": true, + "showLabels": true, + "wrapLogMessage": true, + "enableLogDetails": true, + "sortOrder": "Descending" + } + }, + { + "title": "Billing Service Logs", + "type": "logs", + "gridPos": { "h": 10, "w": 12, "x": 12, "y": 12 }, + "datasource": { "type": "loki", "uid": "loki" }, + "targets": [ + { + "expr": "{compose_service=\"billing-service\"}", + "refId": "A" + } + ], + "options": { + "showTime": true, + "showLabels": true, + "wrapLogMessage": true, + "enableLogDetails": true, + "sortOrder": "Descending" + } + }, + { + "title": "Error Rate (all services)", + "type": "timeseries", + "gridPos": { "h": 8, "w": 24, "x": 0, "y": 22 }, + "datasource": { "type": "loki", "uid": "loki" }, + "targets": [ + { + "expr": "sum by (compose_service) (rate({compose_service=~\".+\"} |= \"error\" [5m]))", + "refId": "A", + "legendFormat": "{{compose_service}}" + } + ], + "fieldConfig": { + "defaults": { + "custom": { + "drawStyle": "line", + "lineWidth": 2, + "fillOpacity": 15, + "pointSize": 5 + }, + "unit": "reqps" + } + } + }, + { + "title": "Log Volume by Service", + "type": "timeseries", + "gridPos": { "h": 8, "w": 24, "x": 0, "y": 30 }, + "datasource": { "type": "loki", "uid": "loki" }, + "targets": [ + { + "expr": "sum by (compose_service) (rate({compose_service=~\".+\"} [5m]))", + "refId": "A", + "legendFormat": "{{compose_service}}" + } + ], + "fieldConfig": { + "defaults": { + "custom": { + "drawStyle": "bars", + "lineWidth": 1, + "fillOpacity": 50, + "stacking": { "mode": "normal" } + }, + "unit": "reqps" + } + } + } + ], + "schemaVersion": 39, + "tags": ["lysnrai", "logs", "monitoring"], + "templating": { "list": [] }, + "time": { "from": "now-1h", "to": "now" }, + "timepicker": {}, + "timezone": "browser", + "title": "LysnrAI — Service Logs", + "uid": "lysnrai-service-logs", + "version": 1 +} diff --git a/services/monitoring/grafana/provisioning/dashboards/dashboards.yml b/services/monitoring/grafana/provisioning/dashboards/dashboards.yml new file mode 100644 index 00000000..aa5f7c1d --- /dev/null +++ b/services/monitoring/grafana/provisioning/dashboards/dashboards.yml @@ -0,0 +1,12 @@ +apiVersion: 1 + +providers: + - name: default + orgId: 1 + folder: "" + type: file + disableDeletion: false + editable: true + options: + path: /var/lib/grafana/dashboards + foldersFromFilesStructure: false diff --git a/services/monitoring/grafana/provisioning/datasources/loki.yml b/services/monitoring/grafana/provisioning/datasources/loki.yml new file mode 100644 index 00000000..050b3c4a --- /dev/null +++ b/services/monitoring/grafana/provisioning/datasources/loki.yml @@ -0,0 +1,9 @@ +apiVersion: 1 + +datasources: + - name: Loki + type: loki + access: proxy + url: http://loki:3100 + isDefault: true + editable: false diff --git a/services/monitoring/health-check.ts b/services/monitoring/health-check.ts new file mode 100644 index 00000000..92902f49 --- /dev/null +++ b/services/monitoring/health-check.ts @@ -0,0 +1,119 @@ +/** + * Monitoring & Health Check — aggregates health from all services. + * + * Standalone script that polls each service's /health endpoint and + * reports combined status. Can be run as a cron job, GitHub Action, + * or standalone HTTP endpoint. + * + * Usage: + * npx tsx services/monitoring/health-check.ts # one-shot check + * npx tsx services/monitoring/health-check.ts --serve # HTTP server on :4004 + * + * Environment: + * BACKEND_URL (default: http://localhost:8000) + * GROWTH_SERVICE_URL (default: http://localhost:4001) + * BILLING_SERVICE_URL (default: http://localhost:4002) + * PLATFORM_SERVICE_URL (default: http://localhost:4003) + * ADMIN_DASHBOARD_URL (default: http://localhost:3001) + * USER_DASHBOARD_URL (default: http://localhost:3002) + */ + +export {}; + +interface ServiceCheck { + name: string; + url: string; + status: "healthy" | "unhealthy" | "unreachable"; + responseTimeMs: number; + details?: Record; + error?: string; +} + +interface HealthReport { + overall: "healthy" | "degraded" | "down"; + timestamp: string; + services: ServiceCheck[]; + summary: { healthy: number; unhealthy: number; unreachable: number; total: number }; +} + +const SERVICES = [ + { name: "Backend API", url: process.env.BACKEND_URL || "http://localhost:8000", path: "/health" }, + { name: "Growth Service", url: process.env.GROWTH_SERVICE_URL || "http://localhost:4001", path: "/health" }, + { name: "Billing Service", url: process.env.BILLING_SERVICE_URL || "http://localhost:4002", path: "/health" }, + { name: "Platform Service", url: process.env.PLATFORM_SERVICE_URL || "http://localhost:4003", path: "/health" }, + { name: "Admin Dashboard", url: process.env.ADMIN_DASHBOARD_URL || "http://localhost:3001", path: "/api/health" }, + { name: "User Dashboard", url: process.env.USER_DASHBOARD_URL || "http://localhost:3002", path: "/api/health" }, +]; + +async function checkService(svc: { name: string; url: string; path: string }): Promise { + const fullUrl = `${svc.url}${svc.path}`; + const start = performance.now(); + + try { + const res = await fetch(fullUrl, { signal: AbortSignal.timeout(5_000) }); + const elapsed = Math.round(performance.now() - start); + + if (res.ok) { + let details: Record | undefined; + try { details = await res.json() as Record; } catch { /* ignore */ } + return { name: svc.name, url: svc.url, status: "healthy", responseTimeMs: elapsed, details }; + } + return { name: svc.name, url: svc.url, status: "unhealthy", responseTimeMs: elapsed, error: `HTTP ${res.status}` }; + } catch (err) { + const elapsed = Math.round(performance.now() - start); + return { name: svc.name, url: svc.url, status: "unreachable", responseTimeMs: elapsed, error: String(err) }; + } +} + +async function generateReport(): Promise { + const checks = await Promise.all(SERVICES.map(checkService)); + + const healthy = checks.filter((c) => c.status === "healthy").length; + const unhealthy = checks.filter((c) => c.status === "unhealthy").length; + const unreachable = checks.filter((c) => c.status === "unreachable").length; + + let overall: HealthReport["overall"] = "healthy"; + if (unreachable === checks.length) overall = "down"; + else if (unhealthy > 0 || unreachable > 0) overall = "degraded"; + + return { + overall, + timestamp: new Date().toISOString(), + services: checks, + summary: { healthy, unhealthy, unreachable, total: checks.length }, + }; +} + +// ── CLI / HTTP server mode ── + +const args = process.argv.slice(2); + +if (args.includes("--serve")) { + // Run as HTTP server for continuous monitoring + const { createServer } = await import("http"); + const PORT = Number(process.env.MONITOR_PORT || 4004); + + const server = createServer(async (_req, res) => { + const report = await generateReport(); + res.writeHead(report.overall === "healthy" ? 200 : 503, { "Content-Type": "application/json" }); + res.end(JSON.stringify(report, null, 2)); + }); + + server.listen(PORT, () => { + console.log(`🩺 Monitoring dashboard running on http://localhost:${PORT}`); + console.log(` Checking ${SERVICES.length} services every request`); + }); +} else { + // One-shot check + const report = await generateReport(); + const icon = { healthy: "✅", degraded: "⚠️", down: "❌" }; + console.log(`\n${icon[report.overall]} Overall: ${report.overall.toUpperCase()}\n`); + + for (const svc of report.services) { + const sIcon = { healthy: "✅", unhealthy: "⚠️", unreachable: "❌" }; + console.log(` ${sIcon[svc.status]} ${svc.name.padEnd(20)} ${svc.responseTimeMs}ms${svc.error ? ` — ${svc.error}` : ""}`); + } + + console.log(`\nHealthy: ${report.summary.healthy}/${report.summary.total}`); + process.exit(report.overall === "healthy" ? 0 : 1); +} diff --git a/services/monitoring/loki/loki-config.yml b/services/monitoring/loki/loki-config.yml new file mode 100644 index 00000000..4eb85507 --- /dev/null +++ b/services/monitoring/loki/loki-config.yml @@ -0,0 +1,34 @@ +auth_enabled: false + +server: + http_listen_port: 3100 + +common: + path_prefix: /loki + storage: + filesystem: + chunks_directory: /loki/chunks + rules_directory: /loki/rules + replication_factor: 1 + ring: + kvstore: + store: inmemory + +schema_config: + configs: + - from: "2024-01-01" + store: tsdb + object_store: filesystem + schema: v13 + index: + prefix: index_ + period: 24h + +limits_config: + reject_old_samples: true + reject_old_samples_max_age: 168h # 7 days + ingestion_rate_mb: 10 + ingestion_burst_size_mb: 20 + +analytics: + reporting_enabled: false diff --git a/services/monitoring/package.json b/services/monitoring/package.json new file mode 100644 index 00000000..d6b6edb0 --- /dev/null +++ b/services/monitoring/package.json @@ -0,0 +1,16 @@ +{ + "name": "@lysnrai/monitoring", + "version": "0.1.0", + "private": true, + "description": "Health check and monitoring for all LysnrAI services", + "type": "module", + "scripts": { + "check": "tsx health-check.ts", + "serve": "tsx health-check.ts --serve" + }, + "devDependencies": { + "@types/node": "^22.12.0", + "tsx": "^4.19.2", + "typescript": "^5.7.3" + } +} diff --git a/services/monitoring/tsconfig.json b/services/monitoring/tsconfig.json new file mode 100644 index 00000000..68d75763 --- /dev/null +++ b/services/monitoring/tsconfig.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "target": "ES2022", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "esModuleInterop": true, + "types": ["node"] + }, + "include": ["*.ts"] +}