From 8df4baf89ba65bc30668559771a9ac5c63df405b Mon Sep 17 00:00:00 2001 From: Eduarda de Castro Guterres <86486666+eduardacastro@users.noreply.github.com> Date: Mon, 9 Jan 2023 16:28:25 -0300 Subject: [PATCH 1/7] feat/added-jaeger-tracing --- docker-compose.yml | 28 +- package.json | 5 + src/main.ts | 3 + src/tracer.ts | 40 ++ yarn.lock | 1149 +++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 1197 insertions(+), 28 deletions(-) create mode 100644 src/tracer.ts diff --git a/docker-compose.yml b/docker-compose.yml index f2f73c9..c0deec5 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,14 +1,20 @@ version: '3.6' services: - db: - image: mysql:8-debian - restart: always - ports: - - 3307:3306 - volumes: - - ./data/mysql:/var/lib/mysql + jaeger: + image: jaegertracing/all-in-one:1.41 environment: - MYSQL_ROOT_PASSWORD: 'root' - MYSQL_DATABASE: 'api' - MYSQL_USER: 'api' - MYSQL_PASSWORD: 'api' + COLLECTOR_ZIPKIN_HOST_PORT: :9411 + COLLECTOR_OTLP_ENABLED: true + ports: + - 14250:14250 + - 14268:14268 + - 14269:14269 + - 16686:16686 + - 4317:4317 + - 4318:4318 + - 5778:5778 + - 6831:6831 + - 6832:6832 + - 9411:9411 + + \ No newline at end of file diff --git a/package.json b/package.json index df252d4..a77f482 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,11 @@ "@nestjs/graphql": "^10.1.7", "@nestjs/platform-express": "^9.0.0", "@nestjs/typeorm": "^9.0.1", + "@opentelemetry/auto-instrumentations-node": "^0.36.0", + "@opentelemetry/exporter-trace-otlp-http": "^0.34.0", + "@opentelemetry/resources": "^1.8.0", + "@opentelemetry/sdk-node": "^0.34.0", + "@opentelemetry/semantic-conventions": "^1.8.0", "apollo-server-express": "^3.11.1", "graphql": "^16.6.0", "mysql2": "^2.3.3", diff --git a/src/main.ts b/src/main.ts index 13cad38..9a3db9e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,7 +1,10 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; +import tracer from './tracer'; async function bootstrap() { + await tracer.start(); + const app = await NestFactory.create(AppModule); await app.listen(3000); } diff --git a/src/tracer.ts b/src/tracer.ts new file mode 100644 index 0000000..c25c599 --- /dev/null +++ b/src/tracer.ts @@ -0,0 +1,40 @@ +'use strict'; + +import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node'; +import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http'; +import { Resource } from '@opentelemetry/resources'; +import * as opentelemetry from '@opentelemetry/sdk-node'; +import { SemanticResourceAttributes } from '@opentelemetry/semantic-conventions'; + +// Configure the SDK to export telemetry data to the console +// Enable all auto-instrumentations from the meta package +const exporterOptions = { + url: 'http://localhost:9411', +}; + +const traceExporter = new OTLPTraceExporter(exporterOptions); +const sdk = new opentelemetry.NodeSDK({ + traceExporter, + instrumentations: [getNodeAutoInstrumentations()], + resource: new Resource({ + [SemanticResourceAttributes.SERVICE_NAME]: "NestJSExempleCars", + }), +}); + +// initialize the SDK and register with the OpenTelemetry API +// this enables the API to record telemetry +sdk + .start() + .then(() => console.log('Tracing initialized')) + .catch((error) => console.log('Error initializing tracing', error)); + +// gracefully shut down the SDK on process exit +process.on('SIGTERM', () => { + sdk + .shutdown() + .then(() => console.log('Tracing terminated')) + .catch((error) => console.log('Error terminating tracing', error)) + .finally(() => process.exit(0)); +}); + +export default sdk; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index b02a5e9..eb85a85 100644 --- a/yarn.lock +++ b/yarn.lock @@ -566,6 +566,96 @@ dependencies: tslib "^2.4.0" +"@grpc/grpc-js@^1.7.1": + version "1.8.1" + resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.8.1.tgz#71f809c148e52ac9c15da4b8d4a65ecd7063dff7" + integrity sha512-mdqYADWl/9Kb75XLstt6pvBnS1DpxSDFRKrbadkY1ymUd29hq49nP6tLcL7a7qLydgqFCpjNwa2RsyrqB3MsXA== + dependencies: + "@grpc/proto-loader" "^0.7.0" + "@types/node" ">=12.12.47" + +"@grpc/proto-loader@^0.7.0", "@grpc/proto-loader@^0.7.3": + version "0.7.4" + resolved "https://registry.yarnpkg.com/@grpc/proto-loader/-/proto-loader-0.7.4.tgz#4946a84fbf47c3ddd4e6a97acb79d69a9f47ebf2" + integrity sha512-MnWjkGwqQ3W8fx94/c1CwqLsNmHHv2t0CFn+9++6+cDphC1lolpg9M2OU0iebIjK//pBNX9e94ho+gjx6vz39w== + dependencies: + "@types/long" "^4.0.1" + lodash.camelcase "^4.3.0" + long "^4.0.0" + protobufjs "^7.0.0" + yargs "^16.2.0" + +"@hapi/b64@5.x.x": + version "5.0.0" + resolved "https://registry.yarnpkg.com/@hapi/b64/-/b64-5.0.0.tgz#b8210cbd72f4774985e78569b77e97498d24277d" + integrity sha512-ngu0tSEmrezoiIaNGG6rRvKOUkUuDdf4XTPnONHGYfSGRmDqPZX5oJL6HAdKTo1UQHECbdB4OzhWrfgVppjHUw== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/boom@9.x.x", "@hapi/boom@^9.0.0": + version "9.1.4" + resolved "https://registry.yarnpkg.com/@hapi/boom/-/boom-9.1.4.tgz#1f9dad367c6a7da9f8def24b4a986fc5a7bd9db6" + integrity sha512-Ls1oH8jaN1vNsqcaHVYJrKmgMcKsC1wcp8bujvXrHaAqD2iDYq3HoOwsxwo09Cuda5R5nC0o0IxlrlTuvPuzSw== + dependencies: + "@hapi/hoek" "9.x.x" + +"@hapi/bourne@2.x.x": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-2.1.0.tgz#66aff77094dc3080bd5df44ec63881f2676eb020" + integrity sha512-i1BpaNDVLJdRBEKeJWkVO6tYX6DMFBuwMhSuWqLsY4ufeTKGVuV5rBsUhxPayXqnnWHgXUAmWK16H/ykO5Wj4Q== + +"@hapi/cryptiles@5.x.x": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/cryptiles/-/cryptiles-5.1.0.tgz#655de4cbbc052c947f696148c83b187fc2be8f43" + integrity sha512-fo9+d1Ba5/FIoMySfMqPBR/7Pa29J2RsiPrl7bkwo5W5o+AN1dAYQRi4SPrPwwVxVGKjgLOEWrsvt1BonJSfLA== + dependencies: + "@hapi/boom" "9.x.x" + +"@hapi/hoek@9.x.x", "@hapi/hoek@^9.0.0": + version "9.3.0" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-9.3.0.tgz#8368869dcb735be2e7f5cb7647de78e167a251fb" + integrity sha512-/c6rf4UJlmHlC9b5BaNvzAcFv7HZ2QHaV0D4/HNlBdvFnvQq8RI4kYdhyPCl7Xj+oWvTWQ8ujhqS53LIgAe6KQ== + +"@hapi/iron@^6.0.0": + version "6.0.0" + resolved "https://registry.yarnpkg.com/@hapi/iron/-/iron-6.0.0.tgz#ca3f9136cda655bdd6028de0045da0de3d14436f" + integrity sha512-zvGvWDufiTGpTJPG1Y/McN8UqWBu0k/xs/7l++HVU535NLHXsHhy54cfEMdW7EjwKfbBfM9Xy25FmTiobb7Hvw== + dependencies: + "@hapi/b64" "5.x.x" + "@hapi/boom" "9.x.x" + "@hapi/bourne" "2.x.x" + "@hapi/cryptiles" "5.x.x" + "@hapi/hoek" "9.x.x" + +"@hapi/podium@^4.1.3": + version "4.1.3" + resolved "https://registry.yarnpkg.com/@hapi/podium/-/podium-4.1.3.tgz#91e20838fc2b5437f511d664aabebbb393578a26" + integrity sha512-ljsKGQzLkFqnQxE7qeanvgGj4dejnciErYd30dbrYzUOF/FyS/DOF97qcrT3bhoVwCYmxa6PEMhxfCPlnUcD2g== + dependencies: + "@hapi/hoek" "9.x.x" + "@hapi/teamwork" "5.x.x" + "@hapi/validate" "1.x.x" + +"@hapi/teamwork@5.x.x": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@hapi/teamwork/-/teamwork-5.1.1.tgz#4d2ba3cac19118a36c44bf49a3a47674de52e4e4" + integrity sha512-1oPx9AE5TIv+V6Ih54RP9lTZBso3rP8j4Xhb6iSVwPXtAM+sDopl5TFMv5Paw73UnpZJ9gjcrTE1BXrWt9eQrg== + +"@hapi/topo@^5.0.0": + version "5.1.0" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-5.1.0.tgz#dc448e332c6c6e37a4dc02fd84ba8d44b9afb012" + integrity sha512-foQZKJig7Ob0BMAYBfcJk8d77QtOe7Wo4ox7ff1lQYoNNAb6jwcY1ncdoy2e9wQZzvNy7ODZCYJkK8kzmcAnAg== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@hapi/validate@1.x.x": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@hapi/validate/-/validate-1.1.3.tgz#f750a07283929e09b51aa16be34affb44e1931ad" + integrity sha512-/XMR0N0wjw0Twzq2pQOzPBZlDzkekGcoCtzO314BpIEsbXdYGthQUbxgkGDf4nhk1+IPDAsXqWjMohRQYO06UA== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@humanwhocodes/config-array@^0.11.8": version "0.11.8" resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9" @@ -1015,6 +1105,593 @@ consola "^2.15.0" node-fetch "^2.6.1" +"@opentelemetry/api-metrics@0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api-metrics/-/api-metrics-0.32.0.tgz#0f09f78491a4b301ddf54a8b8a38ffa99981f645" + integrity sha512-g1WLhpG8B6iuDyZJFRGsR+JKyZ94m5LEmY2f+duEJ9Xb4XRlLHrZvh6G34OH6GJ8iDHxfHb/sWjJ1ZpkI9yGMQ== + dependencies: + "@opentelemetry/api" "^1.0.0" + +"@opentelemetry/api@^1.0.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.3.0.tgz#27c6f776ac3c1c616651e506a89f438a0ed6a055" + integrity sha512-YveTnGNsFFixTKJz09Oi4zYkiLT5af3WpZDu4aIUM7xX+2bHAkOJayFTVQd6zB8kkWPpbua4Ha6Ql00grdLlJQ== + +"@opentelemetry/auto-instrumentations-node@^0.36.0": + version "0.36.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/auto-instrumentations-node/-/auto-instrumentations-node-0.36.0.tgz#43e4cb18ec5040d37ca7064cd12d43fd3a45bd82" + integrity sha512-NB6vf7enV+2ZRyPW/9CUhcZ3bqR8i5vcx7ZQ7eOXm+r31ld/Q/OQB+V8ZYaKWH8W+JHofIDN+M6+Ht/M7Ejq6Q== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/instrumentation-amqplib" "^0.32.0" + "@opentelemetry/instrumentation-aws-lambda" "^0.34.0" + "@opentelemetry/instrumentation-aws-sdk" "^0.10.0" + "@opentelemetry/instrumentation-bunyan" "^0.31.0" + "@opentelemetry/instrumentation-cassandra-driver" "^0.32.0" + "@opentelemetry/instrumentation-connect" "^0.31.0" + "@opentelemetry/instrumentation-dataloader" "^0.3.0" + "@opentelemetry/instrumentation-dns" "^0.31.0" + "@opentelemetry/instrumentation-express" "^0.32.0" + "@opentelemetry/instrumentation-fastify" "^0.31.0" + "@opentelemetry/instrumentation-fs" "^0.6.0" + "@opentelemetry/instrumentation-generic-pool" "^0.31.0" + "@opentelemetry/instrumentation-graphql" "^0.33.0" + "@opentelemetry/instrumentation-grpc" "^0.34.0" + "@opentelemetry/instrumentation-hapi" "^0.31.0" + "@opentelemetry/instrumentation-http" "^0.34.0" + "@opentelemetry/instrumentation-ioredis" "^0.33.1" + "@opentelemetry/instrumentation-knex" "^0.31.0" + "@opentelemetry/instrumentation-koa" "^0.34.0" + "@opentelemetry/instrumentation-lru-memoizer" "^0.32.0" + "@opentelemetry/instrumentation-memcached" "^0.31.0" + "@opentelemetry/instrumentation-mongodb" "^0.34.0" + "@opentelemetry/instrumentation-mongoose" "^0.32.0" + "@opentelemetry/instrumentation-mysql" "^0.32.0" + "@opentelemetry/instrumentation-mysql2" "^0.33.0" + "@opentelemetry/instrumentation-nestjs-core" "^0.32.0" + "@opentelemetry/instrumentation-net" "^0.31.0" + "@opentelemetry/instrumentation-pg" "^0.34.0" + "@opentelemetry/instrumentation-pino" "^0.33.0" + "@opentelemetry/instrumentation-redis" "^0.34.1" + "@opentelemetry/instrumentation-redis-4" "^0.34.1" + "@opentelemetry/instrumentation-restify" "^0.32.0" + "@opentelemetry/instrumentation-router" "^0.32.0" + "@opentelemetry/instrumentation-socket.io" "^0.33.0" + "@opentelemetry/instrumentation-tedious" "^0.5.0" + "@opentelemetry/instrumentation-winston" "^0.31.0" + +"@opentelemetry/context-async-hooks@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/context-async-hooks/-/context-async-hooks-1.8.0.tgz#6141ff59f7c07fac8eda3f9f208b6aaf06893471" + integrity sha512-ueLmocbWDi1aoU4IPdOQyt4qz/Dx+NYyU4qoa3d683usbnkDLUXYXJFfKIMPFV2BbrI5qtnpTtzErCKewoM8aw== + +"@opentelemetry/core@1.8.0", "@opentelemetry/core@^1.0.0", "@opentelemetry/core@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/core/-/core-1.8.0.tgz#cca18594dd48ded6dc0d08c7e789c79af0315934" + integrity sha512-6SDjwBML4Am0AQmy7z1j6HGrWDgeK8awBRUvl1PGw6HayViMk4QpnUXvv4HTHisecgVBy43NE/cstWprm8tIfw== + dependencies: + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/exporter-jaeger@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-jaeger/-/exporter-jaeger-1.8.0.tgz#b86dca82bbd9ce518d5bf84058ac409cbdde710e" + integrity sha512-3h16Sb1T/G33S+RM3yjt1t2xRuu/mi9iB172faS6qFQEclTTJru1pTK4wuWG+9GyI7uyBLfbQoXVA5/BA6gvHw== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + "@opentelemetry/semantic-conventions" "1.8.0" + jaeger-client "^3.15.0" + +"@opentelemetry/exporter-trace-otlp-grpc@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-grpc/-/exporter-trace-otlp-grpc-0.34.0.tgz#6ec4a897f263e371f4ce8e3b1aa83167fe6aedc2" + integrity sha512-x1V0daRLS6k0dhBPNNLMOP+OSrh8M60Xs9/YkuZS0+/zdbcIjNvPzo/8+dK3zOJx+j1KF0oBX9zxK0SX3PSnZw== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@opentelemetry/core" "1.8.0" + "@opentelemetry/otlp-grpc-exporter-base" "0.34.0" + "@opentelemetry/otlp-transformer" "0.34.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + +"@opentelemetry/exporter-trace-otlp-http@0.34.0", "@opentelemetry/exporter-trace-otlp-http@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-http/-/exporter-trace-otlp-http-0.34.0.tgz#baca4cebb1666ed801288e24215d96a65f2e8ae5" + integrity sha512-MBtUwMvgpdoRo9iqK2eDJ8SP2xKYWeBCSu99s4cc1kg4HKKOpenXLE/6daGsSZ+QTPwd8j+9xMSd+hhBg+Bvzw== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/otlp-exporter-base" "0.34.0" + "@opentelemetry/otlp-transformer" "0.34.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + +"@opentelemetry/exporter-trace-otlp-proto@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-trace-otlp-proto/-/exporter-trace-otlp-proto-0.34.0.tgz#526a2749007f35f7a70cf7d08406fcd421a03d8b" + integrity sha512-Ump/OyKxq1b4I01aBWSHJw8PCquZAHZh6ykplcmFBs9BZ8DIM7Jl3+zqrS8Vb7YcZ7DZTYORl8Xv/JQoQ+cFlw== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/otlp-exporter-base" "0.34.0" + "@opentelemetry/otlp-proto-exporter-base" "0.34.0" + "@opentelemetry/otlp-transformer" "0.34.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + +"@opentelemetry/exporter-zipkin@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/exporter-zipkin/-/exporter-zipkin-1.8.0.tgz#6ff352c0313586f94730320d4f99ba9b713a9473" + integrity sha512-Y3WqNCZjfWKnHiRzb35sXpDfGL4Gx2qajFAv059s/VFayIPytLHUOrZMiQqrpfzU/TSIKPG4OHJaypFtUtNlQQ== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/instrumentation-amqplib@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-amqplib/-/instrumentation-amqplib-0.32.0.tgz#d0815b4c35e3c6a015e7b438c112072978feeca6" + integrity sha512-/JkDnNNXHBrmesXS826E2z8c/EZoClO4S8ckQzbqdLd+m+n4u9Q9q/9ZV7WWlSAd7BSt3GJNbcjwdxeA7FobKw== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/amqplib" "^0.5.17" + +"@opentelemetry/instrumentation-aws-lambda@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-lambda/-/instrumentation-aws-lambda-0.34.0.tgz#72319596397ab223a9a5db83094e57d4a1173be6" + integrity sha512-y/Tn+sFTssJaEb9cJOU3BTxR7ZrVg+6v0cgCO46SIPahhNrDq1kbQ2fYIdG/EVfwbfJyn80bfOQvfE3hNflmeA== + dependencies: + "@opentelemetry/instrumentation" "^0.32.0" + "@opentelemetry/propagator-aws-xray" "^1.1.1" + "@opentelemetry/resources" "^1.8.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/aws-lambda" "8.10.81" + +"@opentelemetry/instrumentation-aws-sdk@^0.10.0": + version "0.10.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-aws-sdk/-/instrumentation-aws-sdk-0.10.0.tgz#5af9c7ac7ff8651f4d52cdc2e50810680f75c183" + integrity sha512-8LJfZjoca9Dn+U19mPGjtKGstUrCj5/cRithJCJxrab24Cyry4DnNqltTrXUGIE5Y6XNxX4VXQHiJC/EYyl/CQ== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/propagation-utils" "^0.29.1" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-bunyan@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-bunyan/-/instrumentation-bunyan-0.31.0.tgz#7898a428713553443dec2c6607d6d90e0c947c4a" + integrity sha512-yehA39p7olnrfBp4VDmOrK/vvMIvmT/8euimRRpQNa/bAPE7vQnbHokfOxsIXIKYqJdhEc9Rxc5pJ7StTrS7wA== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@types/bunyan" "1.8.7" + +"@opentelemetry/instrumentation-cassandra-driver@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-cassandra-driver/-/instrumentation-cassandra-driver-0.32.0.tgz#e29804092f54f8171c0e17d016fc19c3017a102a" + integrity sha512-5b68tqZDCRBFp8oQf7vN9RJY+UAfQyAxsrGiJBgGGK159nOIoHHBLjfM02A4rkmkPdJUNz3G02jkFbHFUN/vnw== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-connect@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-connect/-/instrumentation-connect-0.31.0.tgz#1e52b23285c475598c5b54683cd1c0893d3bb787" + integrity sha512-7vzK3KQWjxY5yeTy+uqgclSxcS8qM8fnc2yO67EouHt6YNciJbL0pPKw1tGG6Yem/q5vr4qmFTFuYqjnD9Jq1Q== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/connect" "3.4.35" + +"@opentelemetry/instrumentation-dataloader@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dataloader/-/instrumentation-dataloader-0.3.0.tgz#3f81d3d5cdd6b6cb2d40e10e383a3fd02d39d396" + integrity sha512-dV/EXnFrztisi3GXmv9WoweCiw5j02fPZwUKP5VzwqlJFHOy1x4U8qxzhkOYZF4nJFI4X70F2oHXDE1Ah0TRkg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + +"@opentelemetry/instrumentation-dns@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-dns/-/instrumentation-dns-0.31.0.tgz#94909e143550f1882fd786d02f196a05e6165166" + integrity sha512-enaXHCdKPOm8eaRddw3ZA1DDU+7E7fGJs2EuhFi2xlzdyWs6luoycVZaJ2cPvJlNWJLrhBPtyGH6qbxoVi/5FQ== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + semver "^7.3.2" + +"@opentelemetry/instrumentation-express@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-express/-/instrumentation-express-0.32.0.tgz#fa78a15fe5f5903f72528a157d47d8ef66cc17c0" + integrity sha512-t2QOKwaZXUXQSJn4G90THpOyxyNBUyK0B059PUQpOqc/uybUo0SI8edfVlYRlcfHadG+S0fnU8QvnldmZ8AJqA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/express" "4.17.13" + +"@opentelemetry/instrumentation-fastify@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fastify/-/instrumentation-fastify-0.31.0.tgz#a42d894e5f8f41a2352b7340e27fa2601f1f071a" + integrity sha512-HLKoG3ZY8hgK/xHwTy4CD/ybAc+cRkjal4AEE978vVeV8ArUfiN7SwQu5P97kW03lIpzJ8IDtk8UewpNe8VWyA== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-fs@^0.6.0": + version "0.6.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-fs/-/instrumentation-fs-0.6.0.tgz#57a309d0a45d68ca5e40af1b227c4a5944cb8386" + integrity sha512-TBnEW1wthnfcYA65VJqbFtDpKqDnwTqqJ9R1tQ4qU3qrxhRhN6mMOok6XaCbT+ddCerI7fvWHtm5jYBJ00XQmw== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-generic-pool@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-generic-pool/-/instrumentation-generic-pool-0.31.0.tgz#a228180f2e718a61b33bc1018adb3c73fd37aa48" + integrity sha512-XbF07I0uSfGbPHqjx86LIQWllY0lfIXM0yIpFMxqiW6OY7xRdk6GWcvKmUq/eU+3ZYrLb2nn9EqUpWDMWDnejg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/generic-pool" "^3.1.9" + +"@opentelemetry/instrumentation-graphql@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-graphql/-/instrumentation-graphql-0.33.0.tgz#75d54c9429d712b21addd1d4d40c93e6d1ad195d" + integrity sha512-d3Qv847LI5JLJF3iR9+86V7K/+nUqVkNu2XJ1L1/4Ze5sih1R+722tx7IrS7UEDkkoNI0E0m74Yg9pJ0kwXMTQ== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + +"@opentelemetry/instrumentation-grpc@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-grpc/-/instrumentation-grpc-0.34.0.tgz#cba4f992beeee695fbed4ec9d9f47c94bddcce4f" + integrity sha512-IqwWq5d3Jiah0eSm1IH6K32rYKe4nnMKkm7qV6ISwWhFFtUPfuOatUKAttmuvipvPCuxiiIS2P/zbmytkwmFVg== + dependencies: + "@opentelemetry/instrumentation" "0.34.0" + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/instrumentation-hapi@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-hapi/-/instrumentation-hapi-0.31.0.tgz#799bb6ab468bf1ace2578e35488df76e5a952ae3" + integrity sha512-+VPnZFRfXeZpF0WuaCym9mPkjQyJa8t0S/qw7v5OWs6w64VLyT7mFLh6dChYoivwx8N0p+TaO/l/Bb+e4y/neg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/hapi__hapi" "20.0.9" + +"@opentelemetry/instrumentation-http@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-http/-/instrumentation-http-0.34.0.tgz#cafa7f2797280f471589c7fc8bac65050dcf6e7e" + integrity sha512-sZxpYOggRIFwdcdy1wWBGG8fwiuWWK4j3qv/rdqTwcPvrVT4iSCoPNDMZYxOcxSEP1fybq28SK43e+IKwxVElQ== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/instrumentation" "0.34.0" + "@opentelemetry/semantic-conventions" "1.8.0" + semver "^7.3.5" + +"@opentelemetry/instrumentation-ioredis@^0.33.1": + version "0.33.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-ioredis/-/instrumentation-ioredis-0.33.1.tgz#0bd74d4d744e11c79794dfa7d9a8502f763a63c9" + integrity sha512-nqYd99FjeJQ+kab4IXeIhYd6TM8dHmXccuCfe4ZMHse0I8sVtzWdyVpmDroPIxKJ6Pum4VPYuSIPy2CT2j6GEw== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/redis-common" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/ioredis" "4.26.6" + +"@opentelemetry/instrumentation-knex@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-knex/-/instrumentation-knex-0.31.0.tgz#f45d32771166fbcfc4771c744ec254935e62860c" + integrity sha512-BqEFTckHDYgD9sPNhdkoL5BHbGevFoPK2XTKBTZah2DR4rD48G8ntsE8K6kt17lA1Q1jgdqe4U690UxGC6/m3g== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-koa@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-koa/-/instrumentation-koa-0.34.0.tgz#64e607cd6eaac0912c2ec4d0afb5692f0b5ac48a" + integrity sha512-+ZLABLbe08U6Xg8Eyu0AJCjchk9Kpah8lUEAUhaNdY2M5RdEqlm4LkvlCdmq425KzsrTX0AeWaCfcvGqFr4+lw== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/koa" "2.13.4" + "@types/koa__router" "8.0.7" + +"@opentelemetry/instrumentation-lru-memoizer@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-lru-memoizer/-/instrumentation-lru-memoizer-0.32.0.tgz#299fbddcab5581e169c555533a23348ef329f83d" + integrity sha512-wXTfawB+RBnPH2xF5S9vOEMXYHY15oRKhV94dWb61k/dMqlGgfcFug6/qY4vkZgm58GhNbFoF5RWNNUpU4LOAQ== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + +"@opentelemetry/instrumentation-memcached@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-memcached/-/instrumentation-memcached-0.31.0.tgz#cd4cb4f6b956dd774afffafbc01458fbed6f9a28" + integrity sha512-wkoZQ6TyHWuaHTmV/MSIqJzFyEnjWj6hdRftX6eJUv1xalYjrxDZW6gFiByRdlVKupuksIW3/ntvozyLhzbJqQ== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/memcached" "^2.2.6" + +"@opentelemetry/instrumentation-mongodb@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongodb/-/instrumentation-mongodb-0.34.0.tgz#36dfac4d0bd076d4a3fe29d75304f48b40e49474" + integrity sha512-SfRvJx4tmJH2EerTAMyMdMuo1bQRvgsOPiv/UsjS1pjFMqOYIEYijem/q8FT2CBMmEZJPUUSUbOwAsRMG7wD/g== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-mongoose@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mongoose/-/instrumentation-mongoose-0.32.0.tgz#a147192d41d3219f54911c37c0d0a8eae4cadbe5" + integrity sha512-Br8x76u1xsMiU4nwioYX8NwIBxl4Kt0dTDrZvqtwLkmr7gmHoxApN17QquQcEcuTfonQ4NXIB3A/k1BiPAaq/g== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-mysql2@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql2/-/instrumentation-mysql2-0.33.0.tgz#95527ed63e25f1eed2b369abcaca7ab44c4de840" + integrity sha512-DVWkr/WkALmIdtLoiVp/vgZVOXUCFvnlKOEz+LOQMHOktm0FLhdHRjX7jJhtVtEO7DdZQRnfpUYv8zP37gMawQ== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-mysql@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-mysql/-/instrumentation-mysql-0.32.0.tgz#c91bb7ad3900eee85382f71a7dd2c54952660bbf" + integrity sha512-9BGbc0wiNokflUKmI3WEOnmCqp9QffcnrIoIs2cjqQekZGAzSmL7tyyL3SoW/qXWOUP8FM+OuEomklujNOZYbg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/mysql" "2.15.19" + +"@opentelemetry/instrumentation-nestjs-core@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-nestjs-core/-/instrumentation-nestjs-core-0.32.0.tgz#ac75122fa295a90c4758a63bdb3685d499bf441b" + integrity sha512-kpzegHf1tNqtZhC+BCM/B9n3/e+vBYYYGZK+HUgiL/lHUoUf3Lsj6869eckSgucrScLjDGNBuo5j8JAkdNJ5zw== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-net@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-net/-/instrumentation-net-0.31.0.tgz#555da37c3d4bcccec5129c678c775d5d55e15e08" + integrity sha512-uzgI0AMZWYqN/w8oQ3EwSpFKnZ+yMVbzoRczh8pVZgWR8Xw35/h9GfgrOO2Sb9/4nf75bwO83hjRkW4KfsEE7w== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-pg@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pg/-/instrumentation-pg-0.34.0.tgz#6936143a4f1579e2d8db10715046371ba91612f8" + integrity sha512-YNpInHhfLezFKcCjFO5XnnHDUiMMbecq35ps10RWuF7M+pticQ8RO0x20cB7J4UcoePKZWY/2iDd7U9Fk8A/Gg== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/pg" "8.6.1" + "@types/pg-pool" "2.0.3" + +"@opentelemetry/instrumentation-pino@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-pino/-/instrumentation-pino-0.33.0.tgz#17452ac2b6fbd9c1ae966b3e72fd0fff3bc50206" + integrity sha512-2ZU6ri1/90UpLIZGIeF48BG58mZEtHBUgxYPj08J+HbatHkLg5RQtIy0Q9P9UbAAq+2+Izh2RDm5K1T5OVGkMg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + +"@opentelemetry/instrumentation-redis-4@^0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis-4/-/instrumentation-redis-4-0.34.1.tgz#e00dc41a548614d9f68e3656888d9809fe0e1181" + integrity sha512-RWRo4btOdYvIWYV9/dej1RMogTF8TiUCzC/zHAI3oCohsUVipbyoDi792sEPcpGchp/2wh1NLtZZ7SXz7kRjjg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/redis-common" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-redis@^0.34.1": + version "0.34.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-redis/-/instrumentation-redis-0.34.1.tgz#3758ad1ceb1e6cdcc912edbf8a6eef76bea94d88" + integrity sha512-r99/Qeliyo5Xl8zYDqDthj21HIoCO7IAcVg6pv4CEK/6S33UQ5lbFAqUjZ6jtb7S3PrjFurODgSXBTRPdvY01g== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/redis-common" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/redis" "2.8.31" + +"@opentelemetry/instrumentation-restify@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-restify/-/instrumentation-restify-0.32.0.tgz#f70fe4ce8ec8d98d846bb5d56be1b11e35f9c5f0" + integrity sha512-Jyt6WVr5LGfQDYoAlavgNJLLkIUABiqKi/5C0eucrbc9XGn+BeEDo0nrzo/4yaW37VAbA0rn4c271OMHp7W5iw== + dependencies: + "@opentelemetry/core" "^1.8.0" + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-router@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-router/-/instrumentation-router-0.32.0.tgz#774f0686f179fcca82c722df23ae2b3331408d2b" + integrity sha512-s7RywETzH4FW+8yzPqbBYh5BdtILjM9cjhofucVXDcKY3tNSJA1gGBTCDOK49+ec9zyo1e+nchiYaeS9IW8U/A== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-socket.io@^0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-socket.io/-/instrumentation-socket.io-0.33.0.tgz#c8a164c439ec1412afb60f0da3e072fd94d8c4a7" + integrity sha512-meBQGwUOJ29K/kTeZi+EX5EjXpys1gvxtCBdH+9uxDxJncvahfINvOilGGG5YpKYx5jlga9TQsX+dUMBjEiJPA== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + +"@opentelemetry/instrumentation-tedious@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-tedious/-/instrumentation-tedious-0.5.0.tgz#78e1a3e6d1886ab3b66cc086b7a545017d203bd2" + integrity sha512-PaaB56cggwg69JPTi3CYR0JnXV+hjBFAnkhKKwIKeaiHew7txOfPZo8S1cEW058jOPFySV+Qg8ZkGApXkvp5zg== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + "@opentelemetry/semantic-conventions" "^1.0.0" + "@types/tedious" "^4.0.6" + +"@opentelemetry/instrumentation-winston@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation-winston/-/instrumentation-winston-0.31.0.tgz#844de072380d253be54abfd4f5234bd48a1d1114" + integrity sha512-+19vD2v9wWuUP4Hz0dHcpeT5/5Ke0dtIeZ+zCFXJA4lLLR9QeKMN0ORFlbpAOBwKjjuaBHXnMAwuoMSdOUxCKw== + dependencies: + "@opentelemetry/instrumentation" "^0.34.0" + +"@opentelemetry/instrumentation@0.34.0", "@opentelemetry/instrumentation@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.34.0.tgz#bae86da46ea4466594689975cd10f0c3720b4071" + integrity sha512-VET/bOh4StOQV4vf1sAvn2JD67BhW2vPZ/ynl2gHXyafme2yB8Hs9+tr1TLzFwNGo7jwMFviFQkZjCYxMuK0AA== + dependencies: + require-in-the-middle "^5.0.3" + semver "^7.3.2" + shimmer "^1.2.1" + +"@opentelemetry/instrumentation@^0.32.0": + version "0.32.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/instrumentation/-/instrumentation-0.32.0.tgz#27c5975a323a2ba83d9bf2ea8b11faaab37c5827" + integrity sha512-y6ADjHpkUz/v1nkyyYjsQa/zorhX+0qVGpFvXMcbjU4sHnBnC02c6wcc93sIgZfiQClIWo45TGku1KQxJ5UUbQ== + dependencies: + "@opentelemetry/api-metrics" "0.32.0" + require-in-the-middle "^5.0.3" + semver "^7.3.2" + shimmer "^1.2.1" + +"@opentelemetry/otlp-exporter-base@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-exporter-base/-/otlp-exporter-base-0.34.0.tgz#c6020b63590d4b8ac3833eda345a6f582fa014b1" + integrity sha512-xVNvQm7oXeQogeI21iTZRnBrBYS0OVekPutEJgb7jQtHg7x2GWuCBQK9sDo84FRWNXBpNOgSYqsf8/+PxIJ2vA== + dependencies: + "@opentelemetry/core" "1.8.0" + +"@opentelemetry/otlp-grpc-exporter-base@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-grpc-exporter-base/-/otlp-grpc-exporter-base-0.34.0.tgz#edc3a9d8449f48e47c63c2f73e2c63c5a2f25102" + integrity sha512-8k3CIVjf2+/kmnQNKIR8GtPIfRsQ5ZxBVh3uKof54stVXH/nX5ArceuQaoEfFoFQ8S8wayBZ1QsBwdab65UK0g== + dependencies: + "@grpc/grpc-js" "^1.7.1" + "@grpc/proto-loader" "^0.7.3" + "@opentelemetry/core" "1.8.0" + "@opentelemetry/otlp-exporter-base" "0.34.0" + +"@opentelemetry/otlp-proto-exporter-base@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-proto-exporter-base/-/otlp-proto-exporter-base-0.34.0.tgz#7d1561b9e97e02448da2eb790e443cfe745083b3" + integrity sha512-qHnwcAafW8OKeM2a1YQNoL9/sgWVE+JxvMgxf2CtYBqsccIakGPoQ43hLCFLAL3I2Af4BNb5t4KnW8lrtnyUjg== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/otlp-exporter-base" "0.34.0" + protobufjs "7.1.1" + +"@opentelemetry/otlp-transformer@0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/otlp-transformer/-/otlp-transformer-0.34.0.tgz#71023706233c7bc6c3cdcf954c749fea9338084c" + integrity sha512-NghPJvn3pVoWBuhWyBe1n/nWIrj1D1EFUH/bIkWEp0CMVWFLux6R+BkRPZQo5klTcj8xFhCZZIZsL/ubkYPryg== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-metrics" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + +"@opentelemetry/propagation-utils@^0.29.1": + version "0.29.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagation-utils/-/propagation-utils-0.29.1.tgz#9a926e5ec81ebea40a5f97df89cc567f643e1d61" + integrity sha512-sSlkke2RrUuWcbhsRUxbwn6G9XtPa1b8zUoudvxxwvs7nCPE2pQRy32JyqT7CbuWf6gQPK/R1u54T79c93oyGQ== + +"@opentelemetry/propagator-aws-xray@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-aws-xray/-/propagator-aws-xray-1.1.1.tgz#03084f3ec3aa818a3f4ea9606dea1c82f8707477" + integrity sha512-RExCA3v2/xZcGN//JaGIs/WXm2bs2z1YhvC07NG6SBF7Vyt5IGrDoHIQXb5raSP7RjYGbaJ7Qg7ND8qkWTXP6A== + dependencies: + "@opentelemetry/core" "^1.0.0" + +"@opentelemetry/propagator-b3@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-b3/-/propagator-b3-1.8.0.tgz#aecff9f1350a4fee8a7a47f70a26adbb1c74266a" + integrity sha512-ffP6AVHyISqK1kiUY1MoVKt43Wp3FJXI8NOePqxBrAU7bRDJ13276VbSl4ugCZbZLTPrPhhSmvQh1WqlfUgcAg== + dependencies: + "@opentelemetry/core" "1.8.0" + +"@opentelemetry/propagator-jaeger@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/propagator-jaeger/-/propagator-jaeger-1.8.0.tgz#5a62a734847100d695d8be2f4c2bf6f624c06fb9" + integrity sha512-v6GA38k2cqeGAh3368prLW5MsuG2/KxpfWI/PxTPjCa9tThDPq0cvhKpk7cEma3y+F6rieMhwmzZhKQL5QVBzQ== + dependencies: + "@opentelemetry/core" "1.8.0" + +"@opentelemetry/redis-common@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/redis-common/-/redis-common-0.34.0.tgz#91454ead61b53dbd1a5e1acf7454e7175ab9ed56" + integrity sha512-Y+WXnW2Z+ywqzC8l2Hv6FC7surPFYITLgjVTvErnycEiAZpA3JtboeHGZ66Bi7LJKPFCkWaQKnQkpG3RgohxMg== + +"@opentelemetry/resources@1.8.0", "@opentelemetry/resources@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/resources/-/resources-1.8.0.tgz#260be9742cf7bceccc0db928d8ca8d64391acfe3" + integrity sha512-KSyMH6Jvss/PFDy16z5qkCK0ERlpyqixb1xwb73wLMvVq+j7i89lobDjw3JkpCcd1Ws0J6jAI4fw28Zufj2ssg== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/sdk-metrics@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-metrics/-/sdk-metrics-1.8.0.tgz#d061060f03861ab3f345d0f924922bc1a6396157" + integrity sha512-+KYb+uj0vHhl8xzJO+oChS4oP1e+/2Wl3SXoHoIdcEjd1TQfDV+lxOm4oqxWq6wykXvI35/JHyejxSoT+qxGmg== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/resources" "1.8.0" + lodash.merge "4.6.2" + +"@opentelemetry/sdk-node@^0.34.0": + version "0.34.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-node/-/sdk-node-0.34.0.tgz#5016da44ef3947af8b7e70a8725bab9a79374f3c" + integrity sha512-4OX2qvOPoK3De2e600Gim46I3PahI6UkD8uZ9hEgSg40egHXKw3keIaFnz1CWkYwa5hhVVIBsoobI41cHfulHA== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/exporter-jaeger" "1.8.0" + "@opentelemetry/exporter-trace-otlp-grpc" "0.34.0" + "@opentelemetry/exporter-trace-otlp-http" "0.34.0" + "@opentelemetry/exporter-trace-otlp-proto" "0.34.0" + "@opentelemetry/exporter-zipkin" "1.8.0" + "@opentelemetry/instrumentation" "0.34.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/sdk-metrics" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + "@opentelemetry/sdk-trace-node" "1.8.0" + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/sdk-trace-base@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-base/-/sdk-trace-base-1.8.0.tgz#70713aab90978a16dea188c8335209f857be7384" + integrity sha512-iH41m0UTddnCKJzZx3M85vlhKzRcmT48pUeBbnzsGrq4nIay1oWVHKM5nhB5r8qRDGvd/n7f/YLCXClxwM0tvA== + dependencies: + "@opentelemetry/core" "1.8.0" + "@opentelemetry/resources" "1.8.0" + "@opentelemetry/semantic-conventions" "1.8.0" + +"@opentelemetry/sdk-trace-node@1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/sdk-trace-node/-/sdk-trace-node-1.8.0.tgz#fc3988bd3444a359600bdbec52a470f151e81d80" + integrity sha512-6FqhJEgW9Nke5SO4Ul9+5EWOfms/JeLg5LRqILMPMK4UMBWcOtk7jldvGGyfVpraJ16/WPo/R5NSnMwlupN5zQ== + dependencies: + "@opentelemetry/context-async-hooks" "1.8.0" + "@opentelemetry/core" "1.8.0" + "@opentelemetry/propagator-b3" "1.8.0" + "@opentelemetry/propagator-jaeger" "1.8.0" + "@opentelemetry/sdk-trace-base" "1.8.0" + semver "^7.3.5" + +"@opentelemetry/semantic-conventions@1.8.0", "@opentelemetry/semantic-conventions@^1.0.0", "@opentelemetry/semantic-conventions@^1.8.0": + version "1.8.0" + resolved "https://registry.yarnpkg.com/@opentelemetry/semantic-conventions/-/semantic-conventions-1.8.0.tgz#fe2aa90e6df050a11cd57f5c0f47b0641fd2cad3" + integrity sha512-TYh1MRcm4JnvpqtqOwT9WYaBYY4KERHdToxs/suDTLviGRsQkIjS5yYROTYTSJQUnYLOn/TuOh5GoMwfLSU+Ew== + "@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": version "1.1.2" resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" @@ -1068,6 +1745,23 @@ resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== +"@sideway/address@^4.1.3": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@sideway/address/-/address-4.1.4.tgz#03dccebc6ea47fdc226f7d3d1ad512955d4783f0" + integrity sha512-7vwq+rOHVWjyXxVlR76Agnvhy8I9rpzjosTESvmhNeXOXdZZB15Fl+TI9x1SiHZH5Jv2wTGduSxFDIaq0m3DUw== + dependencies: + "@hapi/hoek" "^9.0.0" + +"@sideway/formula@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@sideway/formula/-/formula-3.0.1.tgz#80fcbcbaf7ce031e0ef2dd29b1bfc7c3f583611f" + integrity sha512-/poHZJJVjx3L+zVD6g9KgHfYnb443oi7wLu/XKojDviHy6HOEOA6z1Trk5aR1dGcmPenJEgb2sK2I80LeS3MIg== + +"@sideway/pinpoint@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df" + integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ== + "@sinclair/typebox@^0.24.1": version "0.24.51" resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f" @@ -1112,13 +1806,26 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== -"@types/accepts@^1.3.5": +"@types/accepts@*", "@types/accepts@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/accepts/-/accepts-1.3.5.tgz#c34bec115cfc746e04fe5a059df4ce7e7b391575" integrity sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ== dependencies: "@types/node" "*" +"@types/amqplib@^0.5.17": + version "0.5.17" + resolved "https://registry.yarnpkg.com/@types/amqplib/-/amqplib-0.5.17.tgz#1211f5e01b62006e8a380af258d147de0b3b22e0" + integrity sha512-RImqiLP1swDqWBW8UX9iBXVEOw6MYzNmxdXqfemDfdwtUvdTM/W0s2RlSuMVIGkRhaWvpkC9O/N81VzzQwfAbw== + dependencies: + "@types/bluebird" "*" + "@types/node" "*" + +"@types/aws-lambda@8.10.81": + version "8.10.81" + resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.81.tgz#6d405269aad82e05a348687631aa9a587cdbe158" + integrity sha512-C1rFKGVZ8KwqhwBOYlpoybTSRtxu2433ea6JaO3amc6ubEe08yQoFsPa9aU9YqvX7ppeZ25CnCtC4AH9mhtxsQ== + "@types/babel__core@^7.1.14": version "7.1.20" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.20.tgz#e168cdd612c92a2d335029ed62ac94c95b362359" @@ -1152,6 +1859,11 @@ dependencies: "@babel/types" "^7.3.0" +"@types/bluebird@*": + version "3.5.38" + resolved "https://registry.yarnpkg.com/@types/bluebird/-/bluebird-3.5.38.tgz#7a671e66750ccd21c9fc9d264d0e1e5330bc9908" + integrity sha512-yR/Kxc0dd4FfwtEoLZMoqJbM/VE/W7hXn/MIjb+axcwag0iFmSPK7OBUZq1YWLynJUoWQkfUrI7T0HDqGApNSg== + "@types/body-parser@*", "@types/body-parser@1.19.2": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1160,18 +1872,40 @@ "@types/connect" "*" "@types/node" "*" -"@types/connect@*": +"@types/bunyan@1.8.7": + version "1.8.7" + resolved "https://registry.yarnpkg.com/@types/bunyan/-/bunyan-1.8.7.tgz#63cc65b5ecff6217d1509409a575e7b991f80831" + integrity sha512-jaNt6xX5poSmXuDAkQrSqx2zkR66OrdRDuVnU8ldvn3k/Ci/7Sf5nooKspQWimDnw337Bzt/yirqSThTjvrHkg== + dependencies: + "@types/node" "*" + +"@types/connect@*", "@types/connect@3.4.35": version "3.4.35" resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== dependencies: "@types/node" "*" +"@types/content-disposition@*": + version "0.5.5" + resolved "https://registry.yarnpkg.com/@types/content-disposition/-/content-disposition-0.5.5.tgz#650820e95de346e1f84e30667d168c8fd25aa6e3" + integrity sha512-v6LCdKfK6BwcqMo+wYW05rLS12S0ZO0Fl4w1h4aaZMD7bqT3gVUns6FvLJKGZHQmYn3SX55JWGpziwJRwVgutA== + "@types/cookiejar@*": version "2.1.2" resolved "https://registry.yarnpkg.com/@types/cookiejar/-/cookiejar-2.1.2.tgz#66ad9331f63fe8a3d3d9d8c6e3906dd10f6446e8" integrity sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog== +"@types/cookies@*": + version "0.7.7" + resolved "https://registry.yarnpkg.com/@types/cookies/-/cookies-0.7.7.tgz#7a92453d1d16389c05a5301eef566f34946cfd81" + integrity sha512-h7BcvPUogWbKCzBR2lY4oqaZbO3jXZksexYJVFvkrFeLgbZjQkU4x8pRq6eg2MHXQhY0McQdqmmsxRWlVAHooA== + dependencies: + "@types/connect" "*" + "@types/express" "*" + "@types/keygrip" "*" + "@types/node" "*" + "@types/cors@2.8.12": version "2.8.12" resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.12.tgz#6b2c510a7ad7039e98e7b8d3d6598f4359e5c080" @@ -1212,6 +1946,26 @@ "@types/qs" "*" "@types/range-parser" "*" +"@types/express@*", "@types/express@^4.17.13": + version "4.17.15" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" + integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.31" + "@types/qs" "*" + "@types/serve-static" "*" + +"@types/express@4.17.13": + version "4.17.13" + resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.13.tgz#a76e2995728999bab51a33fabce1d705a3709034" + integrity sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA== + dependencies: + "@types/body-parser" "*" + "@types/express-serve-static-core" "^4.17.18" + "@types/qs" "*" + "@types/serve-static" "*" + "@types/express@4.17.14": version "4.17.14" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" @@ -1222,15 +1976,12 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@^4.17.13": - version "4.17.15" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.15.tgz#9290e983ec8b054b65a5abccb610411953d417ff" - integrity sha512-Yv0k4bXGOH+8a+7bELd2PqHQsuiANB+A8a4gnQrkRWzrkKlb6KHaVvyXhqs04sVW/OWlbPyYxRgYlIXLfrufMQ== +"@types/generic-pool@^3.1.9": + version "3.1.11" + resolved "https://registry.yarnpkg.com/@types/generic-pool/-/generic-pool-3.1.11.tgz#853f7c6f939fd7d782452999cafac791f70c1cf1" + integrity sha512-3mcD3ewmaKPbiAZglGj8We4ohlSMfw/xS+bbYUhTv/ALgqrrtJjyL4Ju9IgapXooBCTFEew5LAKQqzZV6/43xg== dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.31" - "@types/qs" "*" - "@types/serve-static" "*" + "@types/node" "*" "@types/graceful-fs@^4.1.3": version "4.1.5" @@ -1239,6 +1990,56 @@ dependencies: "@types/node" "*" +"@types/hapi__catbox@*": + version "10.2.4" + resolved "https://registry.yarnpkg.com/@types/hapi__catbox/-/hapi__catbox-10.2.4.tgz#4d0531a6c2d0e45024f724020d536041ef8ffe30" + integrity sha512-A6ivRrXD5glmnJna1UAGw87QNZRp/vdFO9U4GS+WhOMWzHnw+oTGkMvg0g6y1930CbeheGOCm7A1qHsqH7AXqg== + +"@types/hapi__hapi@20.0.9": + version "20.0.9" + resolved "https://registry.yarnpkg.com/@types/hapi__hapi/-/hapi__hapi-20.0.9.tgz#9d570846c96268266a14c970c13aeeaccfc8e172" + integrity sha512-fGpKScknCKZityRXdZgpCLGbm41R1ppFgnKHerfZlqOOlCX/jI129S6ghgBqkqCE8m9A0CIu1h7Ch04lD9KOoA== + dependencies: + "@hapi/boom" "^9.0.0" + "@hapi/iron" "^6.0.0" + "@hapi/podium" "^4.1.3" + "@types/hapi__catbox" "*" + "@types/hapi__mimos" "*" + "@types/hapi__shot" "*" + "@types/node" "*" + joi "^17.3.0" + +"@types/hapi__mimos@*": + version "4.1.4" + resolved "https://registry.yarnpkg.com/@types/hapi__mimos/-/hapi__mimos-4.1.4.tgz#4f8a1c58345fc468553708d3cb508724aa081bd9" + integrity sha512-i9hvJpFYTT/qzB5xKWvDYaSXrIiNqi4ephi+5Lo6+DoQdwqPXQgmVVOZR+s3MBiHoFqsCZCX9TmVWG3HczmTEQ== + dependencies: + "@types/mime-db" "*" + +"@types/hapi__shot@*": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@types/hapi__shot/-/hapi__shot-4.1.2.tgz#d4011999a91e8101030fece1462fe99769455855" + integrity sha512-8wWgLVP1TeGqgzZtCdt+F+k15DWQvLG1Yv6ZzPfb3D5WIo5/S+GGKtJBVo2uNEcqabP5Ifc71QnJTDnTmw1axA== + dependencies: + "@types/node" "*" + +"@types/http-assert@*": + version "1.5.3" + resolved "https://registry.yarnpkg.com/@types/http-assert/-/http-assert-1.5.3.tgz#ef8e3d1a8d46c387f04ab0f2e8ab8cb0c5078661" + integrity sha512-FyAOrDuQmBi8/or3ns4rwPno7/9tJTijVW6aQQjK02+kOQ8zmoNg2XJtAuQhvQcy1ASJq38wirX5//9J1EqoUA== + +"@types/http-errors@*": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-2.0.1.tgz#20172f9578b225f6c7da63446f56d4ce108d5a65" + integrity sha512-/K3ds8TRAfBvi5vfjuz8y6+GiAYBZ0x4tXv1Av6CWBWn0IlADc+ZX9pMq7oU0fNQPnBwIZl3rmeLp6SBApbxSQ== + +"@types/ioredis@4.26.6": + version "4.26.6" + resolved "https://registry.yarnpkg.com/@types/ioredis/-/ioredis-4.26.6.tgz#7e332d6d24f12d79a1099834ccfa0c169ef667ed" + integrity sha512-Q9ydXL/5Mot751i7WLCm9OGTj5jlW3XBdkdEW21SkXZ8Y03srbkluFGbM3q8c+vzPW30JOLJ+NsZWHoly0+13A== + dependencies: + "@types/node" "*" + "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": version "2.0.4" resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" @@ -1271,21 +2072,92 @@ resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.11.tgz#d421b6c527a3037f7c84433fd2c4229e016863d3" integrity sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ== -"@types/long@^4.0.0": +"@types/keygrip@*": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@types/keygrip/-/keygrip-1.0.2.tgz#513abfd256d7ad0bf1ee1873606317b33b1b2a72" + integrity sha512-GJhpTepz2udxGexqos8wgaBx4I/zWIDPh/KOGEwAqtuGDkOUJu5eFvwmdBX4AmB8Odsr+9pHCQqiAqDL/yKMKw== + +"@types/koa-compose@*": + version "3.2.5" + resolved "https://registry.yarnpkg.com/@types/koa-compose/-/koa-compose-3.2.5.tgz#85eb2e80ac50be95f37ccf8c407c09bbe3468e9d" + integrity sha512-B8nG/OoE1ORZqCkBVsup/AKcvjdgoHnfi4pZMn5UwAPCbhk/96xyv284eBYW8JlQbQ7zDmnpFr68I/40mFoIBQ== + dependencies: + "@types/koa" "*" + +"@types/koa@*": + version "2.13.5" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.5.tgz#64b3ca4d54e08c0062e89ec666c9f45443b21a61" + integrity sha512-HSUOdzKz3by4fnqagwthW/1w/yJspTgppyyalPVbgZf8jQWvdIXcVW5h2DGtw4zYntOaeRGx49r1hxoPWrD4aA== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa@2.13.4": + version "2.13.4" + resolved "https://registry.yarnpkg.com/@types/koa/-/koa-2.13.4.tgz#10620b3f24a8027ef5cbae88b393d1b31205726b" + integrity sha512-dfHYMfU+z/vKtQB7NUrthdAEiSvnLebvBjwHtfFmpZmB7em2N3WVQdHgnFq+xvyVgxW5jKDmjWfLD3lw4g4uTw== + dependencies: + "@types/accepts" "*" + "@types/content-disposition" "*" + "@types/cookies" "*" + "@types/http-assert" "*" + "@types/http-errors" "*" + "@types/keygrip" "*" + "@types/koa-compose" "*" + "@types/node" "*" + +"@types/koa__router@8.0.7": + version "8.0.7" + resolved "https://registry.yarnpkg.com/@types/koa__router/-/koa__router-8.0.7.tgz#663d69d5ddebff5aaca27c0594430b3ba6ea20be" + integrity sha512-OB3Ax75nmTP+WR9AgdzA42DI7YmBtiNKN2g1Wxl+d5Dyek9SWt740t+ukwXSmv/jMBCUPyV3YEI93vZHgdP7UQ== + dependencies: + "@types/koa" "*" + +"@types/long@^4.0.0", "@types/long@^4.0.1": version "4.0.2" resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== +"@types/memcached@^2.2.6": + version "2.2.7" + resolved "https://registry.yarnpkg.com/@types/memcached/-/memcached-2.2.7.tgz#b3de026a11a4c0a18fb079cfeeaea10a41da20f9" + integrity sha512-ImJbz1i8pl+OnyhYdIDnHe8jAuM8TOwM/7VsciqhYX3IL0jPPUToAtVxklfcWFGYckahEYZxhd9FS0z3MM1dpA== + dependencies: + "@types/node" "*" + +"@types/mime-db@*": + version "1.43.1" + resolved "https://registry.yarnpkg.com/@types/mime-db/-/mime-db-1.43.1.tgz#c2a0522453bb9b6e84ee48b7eef765d19bcd519e" + integrity sha512-kGZJY+R+WnR5Rk+RPHUMERtb2qBRViIHCBdtUrY+NmwuGb8pQdfTqQiCKPrxpdoycl8KWm2DLdkpoSdt479XoQ== + "@types/mime@*": version "3.0.1" resolved "https://registry.yarnpkg.com/@types/mime/-/mime-3.0.1.tgz#5f8f2bca0a5863cb69bc0b0acd88c96cb1d4ae10" integrity sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA== +"@types/mysql@2.15.19": + version "2.15.19" + resolved "https://registry.yarnpkg.com/@types/mysql/-/mysql-2.15.19.tgz#d158927bb7c1a78f77e56de861a3b15cae0e7aed" + integrity sha512-wSRg2QZv14CWcZXkgdvHbbV2ACufNy5EgI8mBBxnJIptchv7DBy/h53VMa2jDhyo0C9MO4iowE6z9vF8Ja1DkQ== + dependencies: + "@types/node" "*" + "@types/node@*": version "18.11.17" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.17.tgz#5c009e1d9c38f4a2a9d45c0b0c493fe6cdb4bcb5" integrity sha512-HJSUJmni4BeDHhfzn6nF0sVmd1SMezP7/4F0Lq+aXzmp2xm9O7WXrUtHW/CHlYVtZUbByEvWidHqRtcJXGF2Ng== +"@types/node@>=12.12.47", "@types/node@>=13.7.0": + version "18.11.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f" + integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA== + "@types/node@^10.1.0": version "10.17.60" resolved "https://registry.yarnpkg.com/@types/node/-/node-10.17.60.tgz#35f3d6213daed95da7f0f73e75bcc6980e90597b" @@ -1301,6 +2173,31 @@ resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== +"@types/pg-pool@2.0.3": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/pg-pool/-/pg-pool-2.0.3.tgz#3eb8df2933f617f219a53091ad4080c94ba1c959" + integrity sha512-fwK5WtG42Yb5RxAwxm3Cc2dJ39FlgcaNiXKvtTLAwtCn642X7dgel+w1+cLWwpSOFImR3YjsZtbkfjxbHtFAeg== + dependencies: + "@types/pg" "*" + +"@types/pg@*": + version "8.6.6" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.6.tgz#21cdf873a3e345a6e78f394677e3b3b1b543cb80" + integrity sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^2.2.0" + +"@types/pg@8.6.1": + version "8.6.1" + resolved "https://registry.yarnpkg.com/@types/pg/-/pg-8.6.1.tgz#099450b8dc977e8197a44f5229cedef95c8747f9" + integrity sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w== + dependencies: + "@types/node" "*" + pg-protocol "*" + pg-types "^2.2.0" + "@types/prettier@^2.1.5": version "2.7.2" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.7.2.tgz#6c2324641cc4ba050a8c710b2b251b377581fbf0" @@ -1316,6 +2213,13 @@ resolved "https://registry.yarnpkg.com/@types/range-parser/-/range-parser-1.2.4.tgz#cd667bcfdd025213aafb7ca5915a932590acdcdc" integrity sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw== +"@types/redis@2.8.31": + version "2.8.31" + resolved "https://registry.yarnpkg.com/@types/redis/-/redis-2.8.31.tgz#c11c1b269fec132ac2ec9eb891edf72fc549149e" + integrity sha512-daWrrTDYaa5iSDFbgzZ9gOOzyp2AJmYK59OlG/2KGBgYWF3lfs8GDKm1c//tik5Uc93hDD36O+qLPvzDolChbA== + dependencies: + "@types/node" "*" + "@types/semver@^7.3.12": version "7.3.13" resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.13.tgz#da4bfd73f49bd541d28920ab0e2bf0ee80f71c91" @@ -1349,6 +2253,13 @@ dependencies: "@types/superagent" "*" +"@types/tedious@^4.0.6": + version "4.0.9" + resolved "https://registry.yarnpkg.com/@types/tedious/-/tedious-4.0.9.tgz#baa3892e45c63d7aac54d7bf5b01385d210ff19e" + integrity sha512-ipwFvfy9b2m0gjHsIX0D6NAAwGCKokzf5zJqUZHUGt+7uWVlBIy6n2eyMgiKQ8ChLFVxic/zwQUhjLYNzbHDRA== + dependencies: + "@types/node" "*" + "@types/yargs-parser@*": version "21.0.0" resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-21.0.0.tgz#0c60e537fa790f5f9472ed2776c2b71ec117351b" @@ -1645,6 +2556,11 @@ ajv@^8.0.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ansi-color@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/ansi-color/-/ansi-color-0.2.1.tgz#3e75c037475217544ed763a8db5709fa9ae5bf9a" + integrity sha512-bF6xLaZBLpOQzgYUtYEhJx090nPSZk1BQ/q2oyBK9aMMcJHzx9uXGCjI2Y+LebsN4Jwoykr0V9whbPiogdyHoQ== + ansi-colors@4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" @@ -2005,6 +2921,16 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" +bufrw@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/bufrw/-/bufrw-1.3.0.tgz#28d6cfdaf34300376836310f5c31d57eeb40c8fa" + integrity sha512-jzQnSbdJqhIltU9O5KUiTtljP9ccw2u5ix59McQy4pV2xGhVLhRZIndY8GIrgh5HjXa6+QJ9AQhOd2QWQizJFQ== + dependencies: + ansi-color "^0.2.1" + error "^7.0.0" + hexer "^1.5.0" + xtend "^4.0.0" + busboy@^1.0.0: version "1.6.0" resolved "https://registry.yarnpkg.com/busboy/-/busboy-1.6.0.tgz#966ea36a9502e43cdb9146962523b92f531f6893" @@ -2482,6 +3408,21 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" +error@7.0.2: + version "7.0.2" + resolved "https://registry.yarnpkg.com/error/-/error-7.0.2.tgz#a5f75fff4d9926126ddac0ea5dc38e689153cb02" + integrity sha512-UtVv4l5MhijsYUxPJo4390gzfZvAnTHreNnDjnTZaKIiZ/SemXxAhBkYSKtWa5RtBXbLP8tMgn/n0RUa/H7jXw== + dependencies: + string-template "~0.2.1" + xtend "~4.0.0" + +error@^7.0.0: + version "7.2.1" + resolved "https://registry.yarnpkg.com/error/-/error-7.2.1.tgz#eab21a4689b5f684fc83da84a0e390de82d94894" + integrity sha512-fo9HBvWnx3NGUKMvMwB/CBCMMrfEJgbDTVDEkPygA3Bdd3lM1OyCd+rbQ8BwnpF6GdVeOLDNmyL4N5Bg80ZvdA== + dependencies: + string-template "~0.2.1" + es-module-lexer@^0.9.0: version "0.9.3" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.3.tgz#6f13db00cc38417137daf74366f535c8eb438f19" @@ -3088,6 +4029,16 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" +hexer@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/hexer/-/hexer-1.5.0.tgz#b86ce808598e8a9d1892c571f3cedd86fc9f0653" + integrity sha512-dyrPC8KzBzUJ19QTIo1gXNqIISRXQ0NwteW6OeQHRN4ZuZeHkdODfj0zHBdOlHbRY8GqbqK57C9oWSvQZizFsg== + dependencies: + ansi-color "^0.2.1" + minimist "^1.1.0" + process "^0.10.0" + xtend "^4.0.0" + hexoid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/hexoid/-/hexoid-1.0.0.tgz#ad10c6573fb907de23d9ec63a711267d9dc9bc18" @@ -3365,6 +4316,17 @@ iterare@1.2.1: resolved "https://registry.yarnpkg.com/iterare/-/iterare-1.2.1.tgz#139c400ff7363690e33abffa33cbba8920f00042" integrity sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q== +jaeger-client@^3.15.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/jaeger-client/-/jaeger-client-3.19.0.tgz#9b5bd818ebd24e818616ee0f5cffe1722a53ae6e" + integrity sha512-M0c7cKHmdyEUtjemnJyx/y9uX16XHocL46yQvyqDlPdvAcwPDbHrIbKjQdBqtiE4apQ/9dmr+ZLJYYPGnurgpw== + dependencies: + node-int64 "^0.4.0" + opentracing "^0.14.4" + thriftrw "^3.5.0" + uuid "^8.3.2" + xorshift "^1.1.1" + jest-changed-files@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" @@ -3732,6 +4694,17 @@ jest@28.1.3: import-local "^3.0.2" jest-cli "^28.1.3" +joi@^17.3.0: + version "17.7.0" + resolved "https://registry.yarnpkg.com/joi/-/joi-17.7.0.tgz#591a33b1fe1aca2bc27f290bcad9b9c1c570a6b3" + integrity sha512-1/ugc8djfn93rTE3WRKdCzGGt/EtiYKxITMO4Wiv6q5JL1gl9ePt4kBsl1S499nbosspfctIQTpYIhSmHA3WAg== + dependencies: + "@hapi/hoek" "^9.0.0" + "@hapi/topo" "^5.0.0" + "@sideway/address" "^4.1.3" + "@sideway/formula" "^3.0.0" + "@sideway/pinpoint" "^2.0.0" + js-sdsl@^4.1.4: version "4.2.0" resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.2.0.tgz#278e98b7bea589b8baaf048c20aeb19eb7ad09d0" @@ -3848,12 +4821,17 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" +lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== + lodash.memoize@4.x: version "4.1.2" resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== -lodash.merge@^4.6.2: +lodash.merge@4.6.2, lodash.merge@^4.6.2: version "4.6.2" resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== @@ -3886,11 +4864,21 @@ loglevel@^1.6.8: resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.8.1.tgz#5c621f83d5b48c54ae93b6156353f555963377b4" integrity sha512-tCRIJM51SHjAayKwC+QAg8hT8vg6z7GSgLJKGvzuPb1Wc+hLzqtuVLxp6/HzSPOozuK+8ErAhy7U/sVzw8Dgfg== +long@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/long/-/long-2.4.0.tgz#9fa180bb1d9500cdc29c4156766a1995e1f4524f" + integrity sha512-ijUtjmO/n2A5PaosNG9ZGDsQ3vxJg7ZW8vsY8Kp0f2yIZWhSJvjmegV7t+9RPQKxKrvj8yKGehhS+po14hPLGQ== + long@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== +long@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.1.tgz#e27595d0083d103d2fa2c20c7699f8e0c92b897f" + integrity sha512-GKSNGeNAtw8IryjjkhZxuKB3JzlcLTwjtiQCHKvqQet81I93kXslhDQruGI/QsddO83mcDToBVy7GqGS/zYf/A== + "lru-cache@7.10.1 - 7.13.1": version "7.13.1" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.13.1.tgz#267a81fbd0881327c46a81c5922606a2cfe336c4" @@ -4016,7 +5004,7 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimist@^1.2.6: +minimist@^1.1.0, minimist@^1.2.6: version "1.2.7" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.7.tgz#daa1c4d91f507390437c6a8bc01078e7000c4d18" integrity sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g== @@ -4033,6 +5021,11 @@ mkdirp@^1.0.4: resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== +module-details-from-path@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/module-details-from-path/-/module-details-from-path-1.0.3.tgz#114c949673e2a8a35e9d35788527aa37b679da2b" + integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== + ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" @@ -4193,6 +5186,11 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" +opentracing@^0.14.4: + version "0.14.7" + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.7.tgz#25d472bd0296dc0b64d7b94cbc995219031428f5" + integrity sha512-vz9iS7MJ5+Bp1URw8Khvdyw1H/hGvzHWlKQ7eRrQojSCDL1/SrWfrY9QebLw97n2deyRtzHRC3MkQfVNUCo91Q== + optionator@^0.9.1: version "0.9.1" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz#4f236a6373dae0566a6d43e1326674f50c291499" @@ -4340,6 +5338,27 @@ path-type@^4.0.0: resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== +pg-int8@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/pg-int8/-/pg-int8-1.0.1.tgz#943bd463bf5b71b4170115f80f8efc9a0c0eb78c" + integrity sha512-WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw== + +pg-protocol@*: + version "1.5.0" + resolved "https://registry.yarnpkg.com/pg-protocol/-/pg-protocol-1.5.0.tgz#b5dd452257314565e2d54ab3c132adc46565a6a0" + integrity sha512-muRttij7H8TqRNu/DxrAJQITO4Ac7RmX3Klyr/9mJEOBeIpgnF8f9jAfRz5d3XwQZl5qBjF9gLsUtMPJE0vezQ== + +pg-types@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/pg-types/-/pg-types-2.2.0.tgz#2d0250d636454f7cfa3b6ae0382fdfa8063254a3" + integrity sha512-qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA== + dependencies: + pg-int8 "1.0.1" + postgres-array "~2.0.0" + postgres-bytea "~1.0.0" + postgres-date "~1.0.4" + postgres-interval "^1.1.0" + picocolors@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" @@ -4367,6 +5386,28 @@ pluralize@8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== +postgres-array@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postgres-array/-/postgres-array-2.0.0.tgz#48f8fce054fbc69671999329b8834b772652d82e" + integrity sha512-VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA== + +postgres-bytea@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/postgres-bytea/-/postgres-bytea-1.0.0.tgz#027b533c0aa890e26d172d47cf9ccecc521acd35" + integrity sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w== + +postgres-date@~1.0.4: + version "1.0.7" + resolved "https://registry.yarnpkg.com/postgres-date/-/postgres-date-1.0.7.tgz#51bc086006005e5061c591cee727f2531bf641a8" + integrity sha512-suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q== + +postgres-interval@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postgres-interval/-/postgres-interval-1.2.0.tgz#b460c82cb1587507788819a06aa0fffdb3544695" + integrity sha512-9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ== + dependencies: + xtend "^4.0.0" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -4399,6 +5440,11 @@ process-nextick-args@~2.0.0: resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/process/-/process-0.10.1.tgz#842457cc51cfed72dc775afeeafb8c6034372725" + integrity sha512-dyIett8dgGIZ/TXKUzeYExt7WA6ldDzys9vTDU/cCA9L17Ypme+KzS+NjQCjpn9xsvi/shbMC+yP/BcFMBz0NA== + prompts@^2.0.1: version "2.4.2" resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.2.tgz#7b57e73b3a48029ad10ebd44f74b01722a4cb069" @@ -4407,6 +5453,42 @@ prompts@^2.0.1: kleur "^3.0.3" sisteransi "^1.0.5" +protobufjs@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.1.tgz#0117befb4b0f5a49d028e93f2ca62c3c1f5e7c65" + integrity sha512-d0nMQqS/aT3lfV8bKi9Gbg73vPd2LcDdTDOu6RE/M+h9DY8g1EmDzk3ADPccthEWfTBjkR2oxNdx9Gs8YubT+g== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +protobufjs@^7.0.0: + version "7.1.2" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.1.2.tgz#a0cf6aeaf82f5625bffcf5a38b7cd2a7de05890c" + integrity sha512-4ZPTPkXCdel3+L81yw3dG6+Kq3umdWKh7Dc7GW/CpNk4SX3hK58iPCWeCyhVTDrbkNeKrYNZ7EojM5WDaEWTLQ== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + proxy-addr@~2.0.7: version "2.0.7" resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.7.tgz#f19fe69ceab311eeb94b42e70e8c2070f9ba1025" @@ -4528,6 +5610,15 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== +require-in-the-middle@^5.0.3: + version "5.2.0" + resolved "https://registry.yarnpkg.com/require-in-the-middle/-/require-in-the-middle-5.2.0.tgz#4b71e3cc7f59977100af9beb76bf2d056a5a6de2" + integrity sha512-efCx3b+0Z69/LGJmm9Yvi4cqEdxnoGnxYxGxBghkkTTFeXRtTCmmhO0AnAfHz59k957uTSuy8WaHqOs8wbYUWg== + dependencies: + debug "^4.1.1" + module-details-from-path "^1.0.3" + resolve "^1.22.1" + resolve-cwd@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-3.0.0.tgz#0f0075f1bb2544766cf73ba6a6e2adfebcb13f2d" @@ -4550,7 +5641,7 @@ resolve.exports@^1.1.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" integrity sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ== -resolve@^1.1.6, resolve@^1.20.0: +resolve@^1.1.6, resolve@^1.20.0, resolve@^1.22.1: version "1.22.1" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177" integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== @@ -4639,7 +5730,7 @@ schema-utils@^3.1.0, schema-utils@^3.1.1: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver@7.x, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: +semver@7.x, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8: version "7.3.8" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== @@ -4726,6 +5817,11 @@ shelljs@0.8.5: interpret "^1.0.0" rechoir "^0.6.2" +shimmer@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337" + integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw== + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -4816,6 +5912,11 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" +string-template@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" + integrity sha512-Yptehjogou2xm4UJbxJ4CxgZx12HBfeystp0y3x7s4Dj32ltVVG1Gg8YhKjHZkHicuKpZX/ffilA8505VbUbpw== + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" @@ -5007,6 +6108,15 @@ thenify-all@^1.0.0: dependencies: any-promise "^1.0.0" +thriftrw@^3.5.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/thriftrw/-/thriftrw-3.12.0.tgz#30857847755e7f036b2e0a79d11c9f55075539d9" + integrity sha512-4YZvR4DPEI41n4Opwr4jmrLGG4hndxr7387kzRFIIzxHQjarPusH4lGXrugvgb7TtPrfZVTpZCVe44/xUxowEw== + dependencies: + bufrw "^1.3.0" + error "7.0.2" + long "^2.4.0" + through@^2.3.6: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5424,6 +6534,11 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== +xorshift@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/xorshift/-/xorshift-1.2.0.tgz#30a4cdd8e9f8d09d959ed2a88c42a09c660e8148" + integrity sha512-iYgNnGyeeJ4t6U11NpA/QiKy+PXn5Aa3Azg5qkwIFz1tBLllQrjjsk9yzD7IAK0naNU4JxdeDgqW9ov4u/hc4g== + xss@^1.0.8: version "1.0.14" resolved "https://registry.yarnpkg.com/xss/-/xss-1.0.14.tgz#4f3efbde75ad0d82e9921cc3c95e6590dd336694" @@ -5432,7 +6547,7 @@ xss@^1.0.8: commander "^2.20.3" cssfilter "0.0.10" -xtend@^4.0.0: +xtend@^4.0.0, xtend@~4.0.0: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== @@ -5467,7 +6582,7 @@ yargs-parser@^20.2.2: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs@^16.0.0: +yargs@^16.0.0, yargs@^16.2.0: version "16.2.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== From 543ab46ea58236e02f2c1cde60958905199d9d0d Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 09:27:00 -0300 Subject: [PATCH 2/7] Update docker-compose.yml --- docker-compose.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index c0deec5..c0d5994 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,17 @@ version: '3.6' services: + db: + image: mysql:8-debian + restart: always + ports: + - 3307:3306 + volumes: + - ./data/mysql:/var/lib/mysql + environment: + MYSQL_ROOT_PASSWORD: 'root' + MYSQL_DATABASE: 'api' + MYSQL_USER: 'api' + MYSQL_PASSWORD: 'api' jaeger: image: jaegertracing/all-in-one:1.41 environment: @@ -17,4 +29,4 @@ services: - 6832:6832 - 9411:9411 - \ No newline at end of file + From 730b1296ae7ff9edd6475c3bd6abe881813bcc8d Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 10:49:39 -0300 Subject: [PATCH 3/7] feat: crud --- .gitignore | 1 + src/menu-items/dto/create-menu-item.input.ts | 17 -------- src/menu-items/dto/menu-item.input.ts | 32 +++++++++++++++ src/menu-items/dto/update-menu-item.input.ts | 8 ---- src/menu-items/entities/menu-item.entity.ts | 12 +++--- src/menu-items/menu-items.module.ts | 3 ++ src/menu-items/menu-items.service.ts | 43 +++++++++++++++++--- src/menus/dto/create-menu.input.ts | 6 ++- src/menus/dto/update-menu.input.ts | 2 +- src/menus/entities/menu.entity.ts | 4 +- src/menus/menus.module.ts | 4 +- src/menus/menus.resolver.ts | 25 ++++++------ src/menus/menus.service.spec.ts | 5 +++ src/menus/menus.service.ts | 39 +++++++++++++++--- src/schema.gql | 26 ++++++++---- 15 files changed, 161 insertions(+), 66 deletions(-) delete mode 100644 src/menu-items/dto/create-menu-item.input.ts create mode 100644 src/menu-items/dto/menu-item.input.ts delete mode 100644 src/menu-items/dto/update-menu-item.input.ts diff --git a/.gitignore b/.gitignore index a79d657..a6b9f82 100644 --- a/.gitignore +++ b/.gitignore @@ -31,6 +31,7 @@ lerna-debug.log* *.launch .settings/ *.sublime-workspace +/.vscode # IDE - VSCode .vscode/* diff --git a/src/menu-items/dto/create-menu-item.input.ts b/src/menu-items/dto/create-menu-item.input.ts deleted file mode 100644 index 196e868..0000000 --- a/src/menu-items/dto/create-menu-item.input.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { InputType, Field, Int } from '@nestjs/graphql'; -import { GraphQLJSONObject } from 'src/common/graphql/types/json.type'; - -@InputType() -export class CreateMenuItemInput { - @Field() - label: string; - - @Field(() => Int) - order: number; - - @Field(() => [CreateMenuItemInput], { nullable: true }) - children?: CreateMenuItemInput[]; - - @Field(() => GraphQLJSONObject, { nullable: true }) - meta?: object; -} diff --git a/src/menu-items/dto/menu-item.input.ts b/src/menu-items/dto/menu-item.input.ts new file mode 100644 index 0000000..958ad88 --- /dev/null +++ b/src/menu-items/dto/menu-item.input.ts @@ -0,0 +1,32 @@ +import { Field, InputType, Int } from '@nestjs/graphql'; +import { GraphQLJSONObject } from 'src/common/graphql/types/json.type'; + +export enum MenuItemAction { + CREATE = 'create', + UPDATE = 'update', + DELETE = 'delete', +} + +@InputType() +export class MenuItemInput { + @Field(() => Int, { nullable: true }) + id?: number; + + @Field() + label: string; + + @Field() + action: MenuItemAction; + + @Field(() => Int) + order: number; + + @Field(() => Int, { nullable: true }) + parentId?: number; + + @Field(() => [MenuItemInput], { nullable: true }) + children?: MenuItemInput[]; + + @Field(() => GraphQLJSONObject, { nullable: true }) + meta?: object; +} diff --git a/src/menu-items/dto/update-menu-item.input.ts b/src/menu-items/dto/update-menu-item.input.ts deleted file mode 100644 index 997cc0f..0000000 --- a/src/menu-items/dto/update-menu-item.input.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { CreateMenuItemInput } from './create-menu-item.input'; -import { InputType, Field, Int, PartialType } from '@nestjs/graphql'; - -@InputType() -export class UpdateMenuItemInput extends PartialType(CreateMenuItemInput) { - @Field(() => Int) - id: number; -} diff --git a/src/menu-items/entities/menu-item.entity.ts b/src/menu-items/entities/menu-item.entity.ts index 6fada7b..4431ecc 100644 --- a/src/menu-items/entities/menu-item.entity.ts +++ b/src/menu-items/entities/menu-item.entity.ts @@ -29,18 +29,18 @@ export class MenuItem { meta?: object; @Field(() => MenuItem, { nullable: true }) - @OneToMany(() => MenuItem, (menuItem) => menuItem.parent) - children?: MenuItem[]; + @OneToMany(() => MenuItem, (menuItem) => menuItem.parent, { lazy: true }) + children?: Promise; - @ManyToOne(() => MenuItem, (menuItem) => menuItem.children) + @ManyToOne(() => MenuItem, (menuItem) => menuItem.children, { lazy: true }) @JoinColumn() - parent?: MenuItem; + parent?: Promise; @Field(() => Int, { nullable: true }) @Column({ nullable: true }) parentId?: number; - @ManyToOne(() => Menu, (menu) => menu.items) + @ManyToOne(() => Menu, (menu) => menu.items, { lazy: true }) @JoinColumn() - menu?: Menu; + menu?: Promise; } diff --git a/src/menu-items/menu-items.module.ts b/src/menu-items/menu-items.module.ts index 858e8c8..147ada4 100644 --- a/src/menu-items/menu-items.module.ts +++ b/src/menu-items/menu-items.module.ts @@ -1,7 +1,10 @@ import { Module } from '@nestjs/common'; +import { TypeOrmModule } from '@nestjs/typeorm'; +import { MenuItem } from './entities/menu-item.entity'; import { MenuItemsService } from './menu-items.service'; @Module({ + imports: [TypeOrmModule.forFeature([MenuItem])], providers: [MenuItemsService], exports: [MenuItemsService], }) diff --git a/src/menu-items/menu-items.service.ts b/src/menu-items/menu-items.service.ts index add9ade..0fe17c2 100644 --- a/src/menu-items/menu-items.service.ts +++ b/src/menu-items/menu-items.service.ts @@ -1,26 +1,59 @@ import { Injectable } from '@nestjs/common'; -import { CreateMenuItemInput } from './dto/create-menu-item.input'; -import { UpdateMenuItemInput } from './dto/update-menu-item.input'; +import { InjectRepository } from '@nestjs/typeorm'; +import { Menu } from 'src/menus/entities/menu.entity'; +import { Repository } from 'typeorm'; +import { MenuItemAction, MenuItemInput } from './dto/menu-item.input'; +import { MenuItem } from './entities/menu-item.entity'; @Injectable() export class MenuItemsService { - create(createMenuInput: CreateMenuItemInput) { + constructor( + @InjectRepository(MenuItem) + private menuItemRepository: Repository, + ) {} + create(createMenuInput: MenuItemInput) { return 'This action adds a new menu item'; } findAll(query: any) { - return `This action returns all menu items`; + // return `This action returns all menu items`; + return this.menuItemRepository.find({ + where: [{ menu: { id: query.menuId } }], + }); } findOne(id: number) { return `This action returns a #${id} menu item`; } - update(id: number, updateMenuInput: UpdateMenuItemInput) { + update(id: number, updateMenuInput: MenuItemInput) { return `This action updates a #${id} menu item`; } remove(id: number) { return `This action removes a #${id} menu item`; } + + handle(menu: Menu, input: MenuItemInput) { + if ( + input.action == MenuItemAction.CREATE || + input.action == MenuItemAction.UPDATE + ) { + const item = new MenuItem(); + + item.id = input.id; + item.label = input.label; + item.order = input.order; + item.menu = Promise.resolve(menu); + + return this.menuItemRepository.save(item); + } + + if (input.action == MenuItemAction.DELETE) { + this.menuItemRepository.delete(input.id); + return; + } + + throw new Error('unexpected action'); + } } diff --git a/src/menus/dto/create-menu.input.ts b/src/menus/dto/create-menu.input.ts index cdb985c..8820123 100644 --- a/src/menus/dto/create-menu.input.ts +++ b/src/menus/dto/create-menu.input.ts @@ -1,7 +1,11 @@ -import { InputType, Field } from '@nestjs/graphql'; +import { Field, InputType } from '@nestjs/graphql'; +import { MenuItemInput } from 'src/menu-items/dto/menu-item.input'; @InputType() export class CreateMenuInput { @Field() name: string; + + @Field(() => [MenuItemInput], { nullable: true }) + items?: MenuItemInput[]; } diff --git a/src/menus/dto/update-menu.input.ts b/src/menus/dto/update-menu.input.ts index a6acb99..e087745 100644 --- a/src/menus/dto/update-menu.input.ts +++ b/src/menus/dto/update-menu.input.ts @@ -1,5 +1,5 @@ +import { Field, InputType, Int, PartialType } from '@nestjs/graphql'; import { CreateMenuInput } from './create-menu.input'; -import { InputType, Field, Int, PartialType } from '@nestjs/graphql'; @InputType() export class UpdateMenuInput extends PartialType(CreateMenuInput) { diff --git a/src/menus/entities/menu.entity.ts b/src/menus/entities/menu.entity.ts index 361d3ca..a3efeaf 100644 --- a/src/menus/entities/menu.entity.ts +++ b/src/menus/entities/menu.entity.ts @@ -14,6 +14,6 @@ export class Menu { name: string; @Field(() => [MenuItem], { nullable: true }) - @OneToMany(() => MenuItem, (menuItem) => menuItem.menu) - items?: MenuItem[]; + @OneToMany(() => MenuItem, (menuItem) => menuItem.menu, { lazy: true }) + items?: Promise; } diff --git a/src/menus/menus.module.ts b/src/menus/menus.module.ts index 19aef71..2aa95e5 100644 --- a/src/menus/menus.module.ts +++ b/src/menus/menus.module.ts @@ -2,9 +2,11 @@ import { Module } from '@nestjs/common'; import { MenusService } from './menus.service'; import { MenusResolver } from './menus.resolver'; import { MenuItemsModule } from 'src/menu-items/menu-items.module'; +import { Menu } from './entities/menu.entity'; +import { TypeOrmModule } from '@nestjs/typeorm'; @Module({ - imports: [MenuItemsModule], + imports: [TypeOrmModule.forFeature([Menu]), MenuItemsModule], providers: [MenusResolver, MenusService], }) export class MenusModule {} diff --git a/src/menus/menus.resolver.ts b/src/menus/menus.resolver.ts index 3b2e459..b03a588 100644 --- a/src/menus/menus.resolver.ts +++ b/src/menus/menus.resolver.ts @@ -16,10 +16,7 @@ import { MenuItem } from 'src/menu-items/entities/menu-item.entity'; @Resolver(() => Menu) export class MenusResolver { - constructor( - private readonly menusService: MenusService, - private readonly menuItemsService: MenuItemsService, - ) {} + constructor(private readonly menusService: MenusService) {} @Mutation(() => Menu) createMenu(@Args('createMenuInput') createMenuInput: CreateMenuInput) { @@ -41,14 +38,18 @@ export class MenusResolver { return this.menusService.update(updateMenuInput.id, updateMenuInput); } - @Mutation(() => Menu) - removeMenu(@Args('id', { type: () => Int }) id: number) { - return this.menusService.remove(id); - } + @Mutation(() => Boolean) + async removeMenu(@Args('id', { type: () => Int }) id: number) { + //return this.menusService.remove(id); + await this.menusService.remove(id); - @ResolveField('items', () => [MenuItem]) - getItems(@Parent() menu: Menu) { - const { id } = menu; - return this.menuItemsService.findAll({ menuId: id }); + return true; } + + // @ResolveField('items', () => [MenuItem]) + // getItems(@Parent() menu: Menu) { + // //const { id } = menu; + // //return this.menuItemsService.findAll({ menuId: id }); + // return menu.items; + // } } diff --git a/src/menus/menus.service.spec.ts b/src/menus/menus.service.spec.ts index 88d0501..7a47ec4 100644 --- a/src/menus/menus.service.spec.ts +++ b/src/menus/menus.service.spec.ts @@ -1,8 +1,12 @@ import { Test, TestingModule } from '@nestjs/testing'; +import { getRepositoryToken } from '@nestjs/typeorm'; +import { Repository } from 'typeorm'; +import { Menu } from './entities/menu.entity'; import { MenusService } from './menus.service'; describe('MenusService', () => { let service: MenusService; + let repository: Repository; beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ @@ -10,6 +14,7 @@ describe('MenusService', () => { }).compile(); service = module.get(MenusService); + repository = module.get>(getRepositoryToken(Menu)); }); it('should be defined', () => { diff --git a/src/menus/menus.service.ts b/src/menus/menus.service.ts index 638b938..e77f86e 100644 --- a/src/menus/menus.service.ts +++ b/src/menus/menus.service.ts @@ -1,26 +1,53 @@ import { Injectable } from '@nestjs/common'; +import { InjectRepository } from '@nestjs/typeorm'; +import { MenuItem } from 'src/menu-items/entities/menu-item.entity'; +import { MenuItemsService } from 'src/menu-items/menu-items.service'; +import { Repository } from 'typeorm'; import { CreateMenuInput } from './dto/create-menu.input'; import { UpdateMenuInput } from './dto/update-menu.input'; +import { Menu } from './entities/menu.entity'; @Injectable() export class MenusService { - create(createMenuInput: CreateMenuInput) { - return 'This action adds a new menu'; + constructor( + @InjectRepository(Menu) + private menuRepository: Repository, + private readonly menuItemsService: MenuItemsService, + ) {} + + async create(createMenuInput: CreateMenuInput) { + const menu = new Menu(); + menu.name = createMenuInput.name; + + const saved = await this.menuRepository.save(menu); + + if (createMenuInput.items) { + menu.items = Promise.all( + createMenuInput.items.map((mii) => + this.menuItemsService.handle(saved, mii), + ), + ); + } + + return saved; } findAll() { - return `This action returns all menus`; + return this.menuRepository.find(); } findOne(id: number) { - return `This action returns a #${id} menu`; + return this.menuRepository.findOneBy({ id: id }); } update(id: number, updateMenuInput: UpdateMenuInput) { - return `This action updates a #${id} menu`; + const menu = new Menu(); + menu.id = id; + menu.name = updateMenuInput.name; + return this.menuRepository.save(menu); } remove(id: number) { - return `This action removes a #${id} menu`; + return this.menuRepository.delete(id); } } diff --git a/src/schema.gql b/src/schema.gql index abe3b7f..b3e3f0d 100644 --- a/src/schema.gql +++ b/src/schema.gql @@ -2,6 +2,12 @@ # THIS FILE WAS AUTOMATICALLY GENERATED (DO NOT MODIFY) # ------------------------------------------------------ +type Menu { + id: Int! + name: String! + items: [MenuItem!] +} + type MenuItem { id: Int! label: String! @@ -16,12 +22,6 @@ The `JSONObject` scalar type represents JSON objects as specified by [ECMA-404]( """ scalar JSONObject -type Menu { - id: Int! - name: String! - items: [MenuItem!]! -} - type Query { menus: [Menu!]! menu(id: Int!): Menu! @@ -30,14 +30,26 @@ type Query { type Mutation { createMenu(createMenuInput: CreateMenuInput!): Menu! updateMenu(updateMenuInput: UpdateMenuInput!): Menu! - removeMenu(id: Int!): Menu! + removeMenu(id: Int!): Boolean! } input CreateMenuInput { name: String! + items: [MenuItemInput!] +} + +input MenuItemInput { + id: Int + label: String! + action: String! + order: Int! + parentId: Int + children: [MenuItemInput!] + meta: JSONObject } input UpdateMenuInput { name: String + items: [MenuItemInput!] id: Int! } \ No newline at end of file From 8f9b00cb86ac0a81513a16e457cb952b4f470ed5 Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 10:54:32 -0300 Subject: [PATCH 4/7] feat: dockerfile --- .dockerignore | 5 +++++ .vscode/launch.json | 23 +++++++++++++++++++++++ Dockerfile | 20 ++++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 .dockerignore create mode 100644 .vscode/launch.json create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..1d7d55f --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +Dockerfile +.dockerignore +node_modules +npm-debug.log +dist \ No newline at end of file diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..9acdc47 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,23 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "name": "Launch via NPM", + "cwd": "${workspaceFolder}", + "request": "launch", + "runtimeArgs": [ + "run", + "start:dev", + ], + "runtimeVersion": "16.16.0", + "runtimeExecutable": "npm", + "skipFiles": [ + "/**" + ], + "type": "node" + } + ] +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..0b272d0 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +# Base image +FROM node:18 + +# Create app directory +WORKDIR /usr/src/app + +# A wildcard is used to ensure both package.json AND package-lock.json are copied +COPY package*.json ./ + +# Install app dependencies +RUN npm install + +# Bundle app source +COPY . . + +# Creates a "dist" folder with the production build +RUN npm run build + +# Start the server using the production build +CMD [ "node", "dist/main.js" ] \ No newline at end of file From 08de576db11a9f136f6ec2c7091169e156a4c0b0 Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 10:55:15 -0300 Subject: [PATCH 5/7] Delete launch.json --- .vscode/launch.json | 23 ----------------------- 1 file changed, 23 deletions(-) delete mode 100644 .vscode/launch.json diff --git a/.vscode/launch.json b/.vscode/launch.json deleted file mode 100644 index 9acdc47..0000000 --- a/.vscode/launch.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch via NPM", - "cwd": "${workspaceFolder}", - "request": "launch", - "runtimeArgs": [ - "run", - "start:dev", - ], - "runtimeVersion": "16.16.0", - "runtimeExecutable": "npm", - "skipFiles": [ - "/**" - ], - "type": "node" - } - ] -} \ No newline at end of file From ed1b73677c96e04da145981d1514c5362fbab8a7 Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 11:04:43 -0300 Subject: [PATCH 6/7] fix: docker --- Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile b/Dockerfile index 0b272d0..1a22750 100644 --- a/Dockerfile +++ b/Dockerfile @@ -17,4 +17,4 @@ COPY . . RUN npm run build # Start the server using the production build -CMD [ "node", "dist/main.js" ] \ No newline at end of file +CMD [ "node", "dist/src/main.js" ] \ No newline at end of file From 43ad39659a5acdf1d0f6635dc8b092ddc16ee43b Mon Sep 17 00:00:00 2001 From: Raphael Pinto Date: Tue, 17 Jan 2023 11:20:57 -0300 Subject: [PATCH 7/7] fix: port --- src/main.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main.ts b/src/main.ts index 9a3db9e..1a5bed1 100644 --- a/src/main.ts +++ b/src/main.ts @@ -2,10 +2,12 @@ import { NestFactory } from '@nestjs/core'; import { AppModule } from './app.module'; import tracer from './tracer'; +const { PORT = 5000 } = process.env; + async function bootstrap() { await tracer.start(); const app = await NestFactory.create(AppModule); - await app.listen(3000); + await app.listen(PORT); } bootstrap();