diff --git a/.github/workflows/homologacao.yml b/.github/workflows/homologacao.yml
index ec2c65b..7cf369d 100644
--- a/.github/workflows/homologacao.yml
+++ b/.github/workflows/homologacao.yml
@@ -34,9 +34,9 @@ on:
- major
default: none
+# FIX: removido security-events: write — não há mais upload SARIF
permissions:
contents: write
- security-events: write
jobs:
ambiente-para-homologacao:
@@ -46,13 +46,13 @@ jobs:
versao: [20, 22]
plataforma: ["ubuntu"]
runs-on: ${{ matrix.plataforma }}-latest
-
+
steps:
- name: Instalação do Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.versao }}
-
+
- name: Exibição da versão e da plataforma
run: |
node --version
@@ -65,21 +65,21 @@ jobs:
environment: homologacao
outputs:
version: ${{ steps.version.outputs.version }}
-
+
steps:
- name: Checkout do código
uses: actions/checkout@v4
with:
fetch-depth: 0
-
+
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
-
+
- name: Ativar pnpm
run: corepack enable
-
+
- name: Cache de dependências
uses: actions/cache@v4
with:
@@ -89,16 +89,16 @@ jobs:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
-
+
- name: Limpar instalação anterior
working-directory: ./api
run: |
rm -rf node_modules .turbo dist
-
+
- name: Instalar dependências
working-directory: ./api
run: pnpm install --frozen-lockfile
-
+
- name: Determinar versão
id: version
working-directory: ./api
@@ -106,12 +106,12 @@ jobs:
bump_version() {
local version=$1
local bump_type=$2
-
+
IFS='.' read -ra VERSION_PARTS <<< "$version"
MAJOR="${VERSION_PARTS[0]}"
MINOR="${VERSION_PARTS[1]}"
PATCH="${VERSION_PARTS[2]}"
-
+
case $bump_type in
major)
MAJOR=$((MAJOR + 1))
@@ -126,13 +126,13 @@ jobs:
PATCH=$((PATCH + 1))
;;
esac
-
+
echo "$MAJOR.$MINOR.$PATCH"
}
-
+
PACKAGE_VERSION=$(node -p "require('./package.json').version")
echo "Versão do package.json: $PACKAGE_VERSION"
-
+
if [ -n "${{ inputs.version-override }}" ]; then
VERSION="${{ inputs.version-override }}"
echo "Usando versão manual: $VERSION"
@@ -143,17 +143,17 @@ jobs:
VERSION="$PACKAGE_VERSION"
echo "Usando versão do package.json: $VERSION"
fi
-
+
if ! [[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then
echo "Versão inválida: $VERSION"
echo "Formato esperado: X.Y.Z (ex: 1.0.0, 2.3.4)"
exit 1
fi
-
+
echo "Versão final: $VERSION"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "VERSION=$VERSION" >> $GITHUB_ENV
-
+
- name: Atualizar package.json
if: ${{ inputs.version-override != '' || inputs.bump-type != 'none' }}
working-directory: ./api
@@ -164,13 +164,13 @@ jobs:
git config user.email "actions@github.com"
git add package.json
git commit -m "chore: bump version to ${{ steps.version.outputs.version }} [skip ci]" || echo "Nenhuma alteração"
-
+
- name: Gerar Prisma Client (sem banco)
working-directory: ./api
env:
DATABASE_URL: postgresql://user:pass@localhost:5432/db?schema=public
run: pnpm run generate
-
+
- name: Verificar TypeScript
continue-on-error: true
working-directory: ./api
@@ -179,18 +179,18 @@ jobs:
pnpm tsc --version
echo "Executando type check:"
pnpm tsc --noEmit --pretty
-
+
- name: Build do projeto
working-directory: ./api
run: pnpm build
-
+
- name: Verificar build gerado
working-directory: ./api
run: |
echo "Conteúdo do diretório dist:"
ls -lah dist/
test -f dist/server.js && echo "[SUCESSO] server.js encontrado" || (echo "[ERROR] server.js NÃO encontrado" && exit 1)
-
+
- name: Upload do build
uses: actions/upload-artifact@v4
with:
@@ -205,19 +205,19 @@ jobs:
needs: [build]
runs-on: ubuntu-latest
environment: homologacao
-
+
steps:
- name: Checkout do código
uses: actions/checkout@v4
-
+
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
-
+
- name: Ativar pnpm
run: corepack enable
-
+
- name: Cache de dependências
uses: actions/cache@v4
with:
@@ -227,21 +227,21 @@ jobs:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
-
+
- name: Instalar dependências
working-directory: ./api
run: pnpm install --frozen-lockfile
-
+
- name: Gerar Prisma Client (sem banco)
working-directory: ./api
env:
DATABASE_URL: postgresql://user:pass@localhost:5432/db?schema=public
run: pnpm run generate
-
+
- name: Executar testes unitários
working-directory: ./api
run: pnpm run test:unit
-
+
- name: Upload de coverage
if: always()
uses: actions/upload-artifact@v4
@@ -257,19 +257,19 @@ jobs:
runs-on: ubuntu-latest
environment: homologacao
timeout-minutes: 30
-
+
steps:
- name: Checkout do código
uses: actions/checkout@v4
-
+
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
-
+
- name: Ativar pnpm
run: corepack enable
-
+
- name: Cache de dependências
uses: actions/cache@v4
with:
@@ -279,7 +279,7 @@ jobs:
key: ${{ runner.os }}-pnpm-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-
-
+
- name: Instalar dependências
working-directory: ./api
run: pnpm install --frozen-lockfile
@@ -336,10 +336,7 @@ jobs:
working-directory: ./api
run: |
cat > .env.test << 'EOF'
- # ==================== AMBIENTE DE TESTE ====================
NODE_ENV=test
-
- # ==================== BANCO DE DADOS (PRINCIPAL) ====================
DB_USER=teste
DB_PASSWORD=senha_teste
DB_NAME=helpme_database_teste
@@ -350,22 +347,16 @@ jobs:
DB_EFFECTIVE_CACHE_SIZE=512MB
POSTGRESQL_WORK_MEM=8MB
DATABASE_URL=postgresql://teste:senha_teste@localhost:5433/helpme_database_teste?schema=public&connection_limit=10&pool_timeout=60&connect_timeout=30&statement_timeout=60000
-
- # ==================== BANCO DE DADOS (HISTÓRICO) ====================
MONGO_INITDB_ROOT_USERNAME_TESTE=teste
MONGO_INITDB_ROOT_PASSWORD_TESTE=senha
MONGO_INITDB_DATABASE_TESTE=helpme_mongo_teste
MONGO_HOST_TESTE=localhost
MONGO_PORT_TESTE=27018
MONGO_INITDB_URI_TESTE=mongodb://teste:senha@localhost:27018/helpme_mongo_teste?authSource=admin
-
- # ==================== JWT ====================
JWT_SECRET=chavesecretadeteste123
JWT_REFRESH_SECRET=refreshsegredodeteste456
JWT_EXPIRATION=8h
JWT_REFRESH_EXPIRATION=7d
-
- # ==================== REDIS ====================
REDIS_PASSWORD_TESTE=
REDIS_HOST_TESTE=localhost
REDIS_PORT_TESTE=6380
@@ -374,19 +365,13 @@ jobs:
REDIS_HOST=localhost
REDIS_PORT=6380
REDIS_PASSWORD=
-
- # ==================== KAFKA ====================
KAFKA_HOST_TESTE=localhost
KAFKA_PORT_TESTE=9095
KAFKA_BROKER_URL_TESTE=localhost:9095
KAFKAJS_NO_PARTITIONER_WARNING_TESTE=1
-
- # ==================== ZOOKEEPER ====================
ZOOKEEPER_HOST_TESTE=localhost
ZOOKEEPER_CLIENT_PORT_TESTE=2182
ZOOKEEPER_TICK_TIME_TESTE=2000
-
- # ==================== INFLUXDB ====================
INFLUX_USERNAME_TESTE=teste
INFLUX_PASSWORD_TESTE=senha_teste
INFLUX_ORG_TESTE=org_teste
@@ -396,41 +381,29 @@ jobs:
INFLUX_HOST_TESTE=localhost
INFLUX_PORT_TESTE=8087
INFLUX_URL_TESTE=http://localhost:8087
-
- # ==================== EMAIL SMTP ====================
SMTP_HOST_TESTE=sandbox.smtp.mailtrap.io
SMTP_PORT_TESTE=2525
SMTP_USER_TESTE=e0f224ffc3cf93
SMTP_PASS_TESTE=3263bb9ce3c328
SMTP_FROM_TESTE=test@helpme.com
-
- # Aliases lidos diretamente pelo código
SMTP_HOST=sandbox.smtp.mailtrap.io
SMTP_PORT=2525
SMTP_USER=e0f224ffc3cf93
SMTP_PASS=3263bb9ce3c328
SMTP_FROM=test@helpme.com
-
- # ==================== URL BASE ====================
API_BASE_URL_TESTE=http://localhost:3333
API_HOST_TESTE=0.0.0.0
API_PORT_TESTE=3333
-
- # ==================== DADOS PARA TESTES ====================
ADMIN_EMAIL_TESTE=admin@helpme.com
ADMIN_PASSWORD_TESTE=Admin123!
USER_EMAIL_TESTE=user@helpme.com
USER_PASSWORD_TESTE=User123!
TECNICO_EMAIL_TESTE=tecnico@helpme.com
TECNICO_PASSWORD_TESTE=Tecnico123!
-
- # ==================== CONFIGURAÇÕES DE TESTE ====================
TEST_TIMEOUT=30000
TEST_CONCURRENCY=1
SKIP_SEED=false
SKIP_MIGRATIONS=false
-
- # ==================== LOGGING ====================
LOG_LEVEL=debug
LOG_DIR=./logs
LOG_FILE=test.log
@@ -460,7 +433,7 @@ jobs:
path: ./api/coverage/
retention-days: 7
continue-on-error: true
-
+
- name: Logs dos serviços (em caso de falha)
working-directory: ./api
if: failure()
@@ -487,13 +460,13 @@ jobs:
outputs:
version: ${{ needs.build.outputs.version }}
tags: ${{ steps.meta.outputs.tags }}
-
+
steps:
- name: Checkout do código
uses: actions/checkout@v4
with:
fetch-depth: 0
-
+
- name: Extrair metadados Docker
id: meta
uses: docker/metadata-action@v5
@@ -507,22 +480,22 @@ jobs:
type=raw,value=build-${{ github.run_number }}
flavor: |
latest=auto
-
+
- name: Análise do Dockerfile com Hadolint
uses: hadolint/hadolint-action@v3.1.0
with:
dockerfile: ./api/Dockerfile
continue-on-error: true
-
+
- name: Login no Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
+
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3
-
+
- name: Build e Push da imagem
uses: docker/build-push-action@v6
with:
@@ -537,25 +510,26 @@ jobs:
VERSION=${{ needs.build.outputs.version }}
BUILD_DATE=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
GIT_COMMIT=${{ github.sha }}
-
+
- name: Scan de vulnerabilidades com Trivy
uses: aquasecurity/trivy-action@0.32.0
with:
scan-type: 'image'
image-ref: ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:${{ needs.build.outputs.version }}
- format: sarif
- output: trivy-results.sarif
- severity: "UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL"
+ format: json
+ output: trivy-results.json
+ severity: "HIGH,CRITICAL"
continue-on-error: true
-
+
- name: Upload resultados do Trivy
- uses: github/codeql-action/upload-sarif@v3
+ uses: actions/upload-artifact@v4
if: always()
with:
- category: trivy-docker-scan
- sarif_file: trivy-results.sarif
+ name: trivy-results
+ path: trivy-results.json
+ retention-days: 30
continue-on-error: true
-
+
- name: Determinar badge e label do tipo de branch
id: branch-meta
run: |
@@ -586,10 +560,7 @@ jobs:
- name: Resumo
run: |
BRANCH_TYPE="${{ inputs.branch-type }}"
- BRANCH_ICON="${{ steps.branch-meta.outputs.branch_icon }}"
BRANCH_DESC="${{ steps.branch-meta.outputs.branch_desc }}"
- BADGE_COLOR="${{ steps.branch-meta.outputs.badge_color }}"
- BADGE_LABEL="${{ steps.branch-meta.outputs.badge_label }}"
cat >> $GITHUB_STEP_SUMMARY << END_SUMMARY
# Versão ${{ needs.build.outputs.version }}
@@ -631,106 +602,34 @@ jobs:
---
- ## Docker Images
-
- ### Imagens Publicadas
-
- ```bash
- # Versão específica (recomendado para produção)
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:${{ needs.build.outputs.version }}
-
- # Latest (desenvolvimento)
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:latest
-
- # Homologação
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:homolog
-
- # SHA específico
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:sha-${GITHUB_SHA:0:7}
-
- # Build number
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:build-${{ github.run_number }}
- ```
-
- ### Tags Disponíveis
-
- | Tag | Uso Recomendado | Estabilidade |
- |-----|----------------|--------------|
- | `${{ needs.build.outputs.version }}` | Produção | Stable |
- | `latest` | Desenvolvimento | Rolling |
- | `homolog` | Homologação | Testing |
- | `sha-${GITHUB_SHA:0:7}` | Debug | Immutable |
- | `build-${{ github.run_number }}` | Rastreamento | Immutable |
-
- ---
-
## Quality Gates
| Gate | Status | Detalhes |
|------|--------|----------|
- | **Build** | ? Passed | TypeScript compilation successful |
- | **Unit Tests** | ? Passed | All unit tests passed |
- | **E2E Tests** | ? Passed | Integration tests validated |
- | **Security Scan** | ? Passed | Trivy vulnerability scan completed |
- | **Lint** | ? Passed | Hadolint Docker analysis |
+ | **Build** | ✅ Passed | TypeScript compilation successful |
+ | **Unit Tests** | ✅ Passed | All unit tests passed |
+ | **E2E Tests** | ✅ Passed | Integration tests validated |
+ | **Security Scan** | ✅ Passed | Trivy vulnerability scan completed |
+ | **Lint** | ✅ Passed | Hadolint Docker analysis |
---
## Test Results
### Testes Unitários
- - [X] Executados com sucesso
- - [X] Coverage disponível nos artifacts
+ - ✅ Executados com sucesso
+ - ✅ Coverage disponível nos artifacts
### Testes E2E
- - [X] Todos os cenários validados
- - [X] Infraestrutura Docker provisionada automaticamente
- - [X] Testes gerenciam seus próprios dados (sem overhead de seed)
+ - ✅ Todos os cenários validados
+ - ✅ Infraestrutura Docker provisionada automaticamente
---
## Security & Compliance
- - Trivy vulnerability scan: **Completed**
- - SARIF report uploaded to GitHub Security
+ - Trivy vulnerability scan: **Completed** (results in artifacts)
- Docker image signed and verified
- - No critical vulnerabilities detected
-
- ---
-
- ## Deployment
-
- ### Docker Compose
-
- ```yaml
- version: '3.8'
- services:
- api:
- image: ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:${{ needs.build.outputs.version }}
- ports:
- - "3000:3000"
- environment:
- NODE_ENV: production
- DATABASE_URL: postgresql://...
- MONGO_INITDB_URI: mongodb://...
- REDIS_URL: redis://...
- ```
-
- ### Kubernetes
-
- ```bash
- kubectl set image deployment/helpme-api \
- api=${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:${{ needs.build.outputs.version }}
- ```
-
- ---
-
- ## Resources
-
- - [Documentação da API](https://github.com/${{ github.repository }})
- - [Docker Hub](https://hub.docker.com/r/${{ secrets.DOCKERHUB_USERNAME }}/helpme-api)
- - [Swagger/OpenAPI](http://localhost:3000/api-docs)
- - [Grafana Dashboards](https://github.com/${{ github.repository }}/tree/main/api/painel-analitico/grafana/dashboards)
---
@@ -739,225 +638,161 @@ jobs:
1. **Produção**: Deploy da imagem `${{ needs.build.outputs.version }}` no ambiente de produção
2. **Monitoramento**: Verificar métricas no Grafana após deploy
3. **Rollback**: Manter imagem anterior disponível para rollback rápido
- 4. **Documentação**: Atualizar changelog com as mudanças desta versão
-
- ---
END_SUMMARY
-
+
+ # FIX: tag criada explicitamente antes da release para evitar falha quando
+ # a tag ainda não existe no remote no momento da criação da release
+ - name: Criar tag Git
+ run: |
+ git config user.name "GitHub Actions"
+ git config user.email "actions@github.com"
+ git tag -fa "v${{ needs.build.outputs.version }}" \
+ -m "Release v${{ needs.build.outputs.version }}" || true
+ git push origin "v${{ needs.build.outputs.version }}" --force || true
+
- name: Gerar Notes
id: notes
+ env:
+ VERSION: ${{ needs.build.outputs.version }}
+ BRANCH_TYPE: ${{ inputs.branch-type }}
+ REPO: ${{ github.repository }}
+ RUN_NUMBER: ${{ github.run_number }}
+ SHA: ${{ github.sha }}
+ SERVER_URL: ${{ github.server_url }}
+ REF_NAME: ${{ github.ref_name }}
+ DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
run: |
- VERSION="${{ needs.build.outputs.version }}"
- BRANCH_TYPE="${{ inputs.branch-type }}"
-
- case "$BRANCH_TYPE" in
- develop) BRANCH_ICON="??" ;;
- feature) BRANCH_ICON="??" ;;
- release) BRANCH_ICON="??" ;;
- hotfix) BRANCH_ICON="??" ;;
- *) BRANCH_ICON="?" ;;
- esac
-
PREVIOUS_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
-
- if [ -n "$PREVIOUS_TAG" ]; then
- COMMITS=$(git log ${PREVIOUS_TAG}..HEAD --pretty=format:"- %s ([%h](https://github.com/${{ github.repository }}/commit/%H))" --no-merges)
- else
- COMMITS=$(git log --pretty=format:"- %s ([%h](https://github.com/${{ github.repository }}/commit/%H))" --no-merges -n 20)
- fi
-
- cat > notes.md << 'NOTES_END'
- ## Help-Me API vVERSION_PLACEHOLDER
-
- Today, we are excited to share the **vVERSION_PLACEHOLDER** stable release
-
- **Star this repo** for notifications about new releases, bug fixes & features!
-
- ---
-
- ## Branch Information
-
- | Campo | Valor |
- |-------|-------|
- | **Tipo de Branch** | BRANCH_ICON_PLACEHOLDER `BRANCH_TYPE_PLACEHOLDER` |
- | **Branch Origem** | `${{ github.ref_name }}` |
-
- ---
-
- ## Installation
-
- ### Docker (Recommended)
-
- ```bash
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:VERSION_PLACEHOLDER
-
- docker run -d -p 3000:3000 \
- -e DATABASE_URL="postgresql://user:pass@localhost:5432/helpme" \
- -e MONGO_INITDB_URI="mongodb://user:pass@localhost:27017/helpme-mongo" \
- -e REDIS_URL="redis://localhost:6379" \
- -e JWT_SECRET="your-secret-here" \
- -e JWT_REFRESH_SECRET="your-refresh-secret-here" \
- ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:VERSION_PLACEHOLDER
- ```
-
- ### Docker Compose
-
- ```yaml
- version: '3.8'
- services:
- api:
- image: ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:VERSION_PLACEHOLDER
- ports:
- - "3000:3000"
- environment:
- NODE_ENV: production
- DATABASE_URL: postgresql://user:pass@postgres:5432/helpme
- MONGO_INITDB_URI: mongodb://user:pass@mongodb:27017/helpme-mongo
- REDIS_URL: redis://redis:6379
- KAFKA_BROKER_URL: kafka:9093
- JWT_SECRET: your-secret-here
- JWT_REFRESH_SECRET: your-refresh-secret-here
- ```
-
- ### Kubernetes
-
- ```bash
- kubectl set image deployment/helpme-api \
- api=${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:VERSION_PLACEHOLDER
- ```
-
- ---
-
- ## What's New
-
- NOTES_END
-
- echo "" >> notes.md
- echo "$COMMITS" >> notes.md
- echo "" >> notes.md
-
- cat >> notes.md << 'NOTES_END'
-
- ---
-
- ## Technical Details
-
- | Attribute | Value |
- |-----------|-------|
- | **Version** | `VERSION_PLACEHOLDER` |
- | **Build** | #${{ github.run_number }} |
- | **Commit** | [`COMMIT_PLACEHOLDER`](${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}) |
- | **Node.js** | 22.x |
- | **TypeScript** | 5.9.x |
- | **Prisma** | 7.x |
- | **Docker Base** | node:22-alpine |
-
- ---
-
- ## Quality Metrics
-
- - [X] **Build**: Passed
- - [X] **Unit Tests**: All tests passed
- - [X] **E2E Tests**: Integration validated
- - [X] **Security Scan**: No critical vulnerabilities
- - [X] **Docker Build**: Multi-stage optimized
-
- ---
-
- ## Docker Images
-
- ### Available Tags
-
- | Tag | Purpose | Stability |
- |-----|---------|-----------|
- | `VERSION_PLACEHOLDER` | Production | Stable |
- | `latest` | Development | Rolling |
- | `homolog` | Staging | Testing |
- | `sha-COMMIT_PLACEHOLDER` | Debug | Immutable |
-
- ```bash
- # Production (recommended)
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:VERSION_PLACEHOLDER
-
- # Latest
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:latest
-
- # Specific commit
- docker pull ${{ secrets.DOCKERHUB_USERNAME }}/helpme-api:sha-COMMIT_PLACEHOLDER
- ```
-
- ---
-
- ## Documentation
-
- - [API Documentation](https://github.com/${{ github.repository }})
- - [Swagger/OpenAPI](http://localhost:3000/api-docs)
- - [Docker Hub](https://hub.docker.com/r/${{ secrets.DOCKERHUB_USERNAME }}/helpme-api)
- - [Grafana Dashboards](https://github.com/${{ github.repository }}/tree/main/api/painel-analitico/grafana/dashboards)
- - [Kubernetes Manifests](https://github.com/${{ github.repository }}/tree/main/api/k8s)
-
- ---
-
- ## Support
-
- - [Report a Bug](https://github.com/${{ github.repository }}/issues/new?labels=bug)
- - [Request a Feature](https://github.com/${{ github.repository }}/issues/new?labels=enhancement)
- - [Discussions](https://github.com/${{ github.repository }}/discussions)
-
- ---
-
- ## Full Changelog
-
- NOTES_END
if [ -n "$PREVIOUS_TAG" ]; then
- echo "**[$PREVIOUS_TAG...v$VERSION](${{ github.server_url }}/${{ github.repository }}/compare/$PREVIOUS_TAG...v$VERSION)**" >> notes.md
+ COMMITS=$(git log ${PREVIOUS_TAG}..HEAD \
+ --pretty=format:"- %s ([%h](${SERVER_URL}/${REPO}/commit/%H))" \
+ --no-merges)
else
- echo "**[Initial Release](https://github.com/${{ github.repository }}/commits/v$VERSION)**" >> notes.md
+ COMMITS=$(git log \
+ --pretty=format:"- %s ([%h](${SERVER_URL}/${REPO}/commit/%H))" \
+ --no-merges -n 20)
fi
- cat >> notes.md << 'NOTES_END'
-
- ---
-
-
-
- **Made with by the Help-Me Team**
-
- [](https://hub.docker.com/r/${{ secrets.DOCKERHUB_USERNAME }}/helpme-api)
- [](https://github.com/${{ github.repository }}/stargazers)
- [](https://github.com/${{ github.repository }}/blob/main/LICENSE)
-
-
- NOTES_END
-
- sed -i "s/VERSION_PLACEHOLDER/$VERSION/g" notes.md
- sed -i "s/COMMIT_PLACEHOLDER/${GITHUB_SHA:0:7}/g" notes.md
- sed -i "s/BRANCH_TYPE_PLACEHOLDER/$BRANCH_TYPE/g" notes.md
- sed -i "s/BRANCH_ICON_PLACEHOLDER/$BRANCH_ICON/g" notes.md
-
- echo "Notes geradas!"
-
- - name: Create GitHub
- uses: softprops/action-gh-release@v2
- with:
- tag_name: v${{ needs.build.outputs.version }}
- name: v${{ needs.build.outputs.version }}
- body_path: notes.md
- draft: false
- prerelease: false
- generate_notes: false
- make_latest: true
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
-
- - name: Upload Assets
- uses: softprops/action-gh-release@v2
- with:
- tag_name: v${{ needs.build.outputs.version }}
- files: |
- ./api/docker-compose.yaml
- ./api/package.json
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
+ SHORT_SHA="${SHA:0:7}"
+
+ {
+ echo "## Help-Me API v${VERSION}"
+ echo ""
+ echo "Today, we are excited to share the **v${VERSION}** stable release."
+ echo ""
+ echo "**Star this repo** for notifications about new releases, bug fixes & features!"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Branch Information"
+ echo ""
+ echo "| Campo | Valor |"
+ echo "|-------|-------|"
+ echo "| **Tipo de Branch** | \`${BRANCH_TYPE}\` |"
+ echo "| **Branch Origem** | \`${REF_NAME}\` |"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Installation"
+ echo ""
+ echo "### Docker (Recommended)"
+ echo ""
+ echo '```bash'
+ echo "docker pull ${DOCKERHUB_USERNAME}/helpme-api:${VERSION}"
+ echo ""
+ echo "docker run -d -p 3000:3000 \\"
+ echo " -e DATABASE_URL=\"postgresql://user:pass@localhost:5432/helpme\" \\"
+ echo " -e MONGO_INITDB_URI=\"mongodb://user:pass@localhost:27017/helpme-mongo\" \\"
+ echo " -e REDIS_URL=\"redis://localhost:6379\" \\"
+ echo " -e JWT_SECRET=\"your-secret-here\" \\"
+ echo " -e JWT_REFRESH_SECRET=\"your-refresh-secret-here\" \\"
+ echo " ${DOCKERHUB_USERNAME}/helpme-api:${VERSION}"
+ echo '```'
+ echo ""
+ echo "### Docker Compose"
+ echo ""
+ echo '```yaml'
+ echo "services:"
+ echo " api:"
+ echo " image: ${DOCKERHUB_USERNAME}/helpme-api:${VERSION}"
+ echo " ports:"
+ echo " - \"3000:3000\""
+ echo " environment:"
+ echo " NODE_ENV: production"
+ echo " DATABASE_URL: postgresql://user:pass@postgres:5432/helpme"
+ echo " MONGO_INITDB_URI: mongodb://user:pass@mongodb:27017/helpme-mongo"
+ echo " REDIS_URL: redis://redis:6379"
+ echo " KAFKA_BROKER_URL: kafka:9093"
+ echo " JWT_SECRET: your-secret-here"
+ echo " JWT_REFRESH_SECRET: your-refresh-secret-here"
+ echo '```'
+ echo ""
+ echo "---"
+ echo ""
+ echo "## What's New"
+ echo ""
+ echo "$COMMITS"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Technical Details"
+ echo ""
+ echo "| Attribute | Value |"
+ echo "|-----------|-------|"
+ echo "| **Version** | \`${VERSION}\` |"
+ echo "| **Build** | #${RUN_NUMBER} |"
+ echo "| **Commit** | [\`${SHORT_SHA}\`](${SERVER_URL}/${REPO}/commit/${SHA}) |"
+ echo "| **Node.js** | 22.x |"
+ echo "| **TypeScript** | 5.9.x |"
+ echo "| **Prisma** | 7.x |"
+ echo "| **Docker Base** | node:20-alpine |"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Quality Metrics"
+ echo ""
+ echo "- [x] Build: Passed"
+ echo "- [x] Unit Tests: All tests passed"
+ echo "- [x] E2E Tests: Integration validated"
+ echo "- [x] Security Scan: No critical vulnerabilities"
+ echo "- [x] Docker Build: Multi-stage optimized"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Docker Images"
+ echo ""
+ echo "| Tag | Purpose | Stability |"
+ echo "|-----|---------|-----------|"
+ echo "| \`${VERSION}\` | Production | Stable |"
+ echo "| \`latest\` | Development | Rolling |"
+ echo "| \`homolog\` | Staging | Testing |"
+ echo "| \`sha-${SHORT_SHA}\` | Debug | Immutable |"
+ echo ""
+ echo '```bash'
+ echo "docker pull ${DOCKERHUB_USERNAME}/helpme-api:${VERSION}"
+ echo "docker pull ${DOCKERHUB_USERNAME}/helpme-api:latest"
+ echo "docker pull ${DOCKERHUB_USERNAME}/helpme-api:sha-${SHORT_SHA}"
+ echo '```'
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Support"
+ echo ""
+ echo "- [Report a Bug](${SERVER_URL}/${REPO}/issues/new?labels=bug)"
+ echo "- [Request a Feature](${SERVER_URL}/${REPO}/issues/new?labels=enhancement)"
+ echo "- [Discussions](${SERVER_URL}/${REPO}/discussions)"
+ echo ""
+ echo "---"
+ echo ""
+ echo "## Full Changelog"
+ echo ""
+ if [ -n "$PREVIOUS_TAG" ]; then
+ echo "**[${PREVIOUS_TAG}...v${VERSION}](${SERVER_URL}/${REPO}/compare/${PREVIOUS_TAG}...v${VERSION})**"
+ else
+ echo "**[Initial Release](${SERVER_URL}/${REPO}/commits/v${VERSION})**"
+ fi
+ } > notes.md
+
+ echo "Notes geradas com sucesso!"
\ No newline at end of file
diff --git a/api/Dockerfile b/api/Dockerfile
index 64b8787..58e184b 100644
--- a/api/Dockerfile
+++ b/api/Dockerfile
@@ -66,12 +66,14 @@ LABEL org.opencontainers.image.created="${BUILD_DATE}"
LABEL org.opencontainers.image.revision="${GIT_COMMIT}"
LABEL org.opencontainers.image.vendor="Help-Me Team"
-# Instalar dependências do sistema
+# hadolint ignore=DL3018
+# DL3018: Pinar versões de pacotes Alpine quebra builds quando o repositório
+# atualiza por patches de segurança. A imagem base node:20-alpine já é
+# atualizada regularmente com correções de segurança.
RUN apk add --no-cache \
dumb-init \
openssl \
- curl \
- && rm -rf /var/cache/apk/*
+ curl
# Habilitar pnpm via corepack no stage de produção
RUN corepack enable && corepack prepare pnpm@latest --activate
@@ -122,4 +124,4 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=40s --retries=3 \
ENTRYPOINT ["dumb-init", "--"]
# Comando para iniciar a aplicação
-CMD ["node", "dist/server.cjs"]
+CMD ["node", "dist/server.cjs"]
\ No newline at end of file
diff --git a/api/docker-compose.yaml b/api/docker-compose.yaml
index 59f524b..608cbc3 100644
--- a/api/docker-compose.yaml
+++ b/api/docker-compose.yaml
@@ -446,6 +446,49 @@ services:
- "com.helpme.service=monitoring"
- "com.helpme.monitoring.type=log-collector"
+ # ============================================
+ # MONITORAMENTO - Tempo (Tracing)
+ # ============================================
+ tempo_helpme:
+ image: grafana/tempo:2.4.0
+ container_name: tempo_helpme
+ hostname: tempo_helpme
+ environment:
+ TZ: America/Sao_Paulo
+ command: ["-config.file=/etc/tempo.yaml"]
+ ports:
+ - "${TEMPO_PORT:-3200}:3200" # HTTP API
+ - "4317:4317" # OTLP gRPC
+ - "4318:4318" # OTLP HTTP
+ volumes:
+ - ./painel-analitico/monitoring/tempo.yaml:/etc/tempo.yaml:ro
+ - tempo_data:/tmp/tempo
+ networks:
+ - helpme_network
+ restart: unless-stopped
+ deploy:
+ resources:
+ limits:
+ cpus: '1'
+ memory: 1G
+ reservations:
+ cpus: '0.25'
+ memory: 256M
+ healthcheck:
+ test: ["CMD-SHELL", "wget --no-verbose --tries=1 --spider http://localhost:3200/ready || exit 1"]
+ interval: 10s
+ timeout: 5s
+ retries: 5
+ start_period: 20s
+ logging:
+ driver: "json-file"
+ options:
+ max-size: "10m"
+ max-file: "3"
+ labels:
+ - "com.helpme.service=monitoring"
+ - "com.helpme.monitoring.type=tracing"
+
# ============================================
# MONITORAMENTO - Grafana
# ============================================
@@ -476,6 +519,7 @@ services:
- influxdb_helpme
- postgresql_helpme
- loki_helpme
+ - tempo_helpme
deploy:
resources:
limits:
@@ -1027,8 +1071,8 @@ services:
KAFKA_BROKER_ID: 2
KAFKA_ZOOKEEPER_CONNECT: 'zookeeper_helpme_teste:2182'
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT
+ KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka_helpme_teste:9092,PLAINTEXT_HOST://localhost:9094
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092,PLAINTEXT_HOST://0.0.0.0:9093
- KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka_helpme_teste:9092,PLAINTEXT_HOST://localhost:9095
KAFKA_INTER_BROKER_LISTENER_NAME: PLAINTEXT
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'true'
@@ -1167,6 +1211,10 @@ volumes:
driver: local
name: prometheus_helpme_data
+ tempo_data:
+ driver: local
+ name: tempo_helpme_data
+
postgresql_data_teste:
driver: local
name: postgresql_helpme_data_teste
diff --git a/api/package.json b/api/package.json
index dc26cf5..12f2a7a 100644
--- a/api/package.json
+++ b/api/package.json
@@ -1,6 +1,6 @@
{
"name": "help-me-api",
- "version": "1.2.1",
+ "version": "1.2.5",
"description": "API para help desk",
"main": "index.js",
"type": "module",
@@ -11,7 +11,7 @@
"url": "https://github.com/diego64/help-me.git"
},
"scripts": {
- "dev": "tsx watch --env-file=.env src/server.ts",
+ "dev": "tsx watch --env-file=.env --import src/server.ts",
"build": "tsup",
"start": "node --env-file=.env dist/server.js",
"generate": "dotenv -e .env -- prisma generate",
@@ -43,6 +43,14 @@
"packageManager": "pnpm@10.28.1",
"dependencies": {
"@influxdata/influxdb-client": "^1.35.0",
+ "@opentelemetry/api": "1.9.0",
+ "@opentelemetry/auto-instrumentations-node": "0.57.0",
+ "@opentelemetry/core": "^2.6.0",
+ "@opentelemetry/exporter-trace-otlp-http": "0.57.0",
+ "@opentelemetry/resources": "1.30.0",
+ "@opentelemetry/sdk-node": "0.57.0",
+ "@opentelemetry/sdk-trace-base": "1.30.0",
+ "@opentelemetry/semantic-conventions": "1.30.0",
"@prisma/adapter-pg": "^7.4.1",
"@prisma/client": "7.3.0",
"compression": "^1.8.1",
diff --git a/api/painel-analitico/grafana/dashboards/logs-api/logs-dashboard.json b/api/painel-analitico/grafana/dashboards/logs/logs-dashboard.json
similarity index 99%
rename from api/painel-analitico/grafana/dashboards/logs-api/logs-dashboard.json
rename to api/painel-analitico/grafana/dashboards/logs/logs-dashboard.json
index dd3d339..d8e1c77 100644
--- a/api/painel-analitico/grafana/dashboards/logs-api/logs-dashboard.json
+++ b/api/painel-analitico/grafana/dashboards/logs/logs-dashboard.json
@@ -524,7 +524,7 @@
"refresh": "5s",
"schemaVersion": 39,
"tags": [
- "logs"
+
],
"templating": {
"list": [
@@ -599,7 +599,7 @@
},
"timepicker": {},
"timezone": "America/Sao_Paulo",
- "title": "logs-aplicacao",
+ "title": "aplicacao",
"uid": "logs-v1",
"version": 3,
"weekStart": ""
diff --git a/api/painel-analitico/grafana/dashboards/logs/requisicoes.json b/api/painel-analitico/grafana/dashboards/logs/requisicoes.json
new file mode 100644
index 0000000..48ed7ec
--- /dev/null
+++ b/api/painel-analitico/grafana/dashboards/logs/requisicoes.json
@@ -0,0 +1,1414 @@
+{
+ "annotations": {
+ "list": [
+ {
+ "builtIn": 1,
+ "datasource": {
+ "type": "grafana",
+ "uid": "-- Grafana --"
+ },
+ "enable": true,
+ "hide": true,
+ "iconColor": "rgba(0, 211, 255, 1)",
+ "name": "Annotations & Alerts",
+ "type": "dashboard"
+ }
+ ]
+ },
+ "editable": true,
+ "fiscalYearStartMonth": 0,
+ "graphTooltip": 1,
+ "id": 3,
+ "links": [],
+ "liveNow": false,
+ "panels": [
+ {
+ "gridPos": {
+ "h": 1,
+ "w": 24,
+ "x": 0,
+ "y": 0
+ },
+ "id": 100,
+ "title": "⚡ Status Geral",
+ "type": "row"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "green",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 0,
+ "y": 1
+ },
+ "id": 1,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method != \"\" [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Total Requisições",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "blue",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "blue",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 3,
+ "y": 1
+ },
+ "id": 2,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"GET\" [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Requisições GET",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "purple",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "purple",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 6,
+ "y": 1
+ },
+ "id": 3,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"POST\" [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Requisições POST",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "cyan",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "cyan",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 9,
+ "y": 1
+ },
+ "id": 4,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method =~ \"PUT|PATCH\" [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Requisições PUT/PATCH",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "fixedColor": "red",
+ "mode": "fixed"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "red",
+ "value": null
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 12,
+ "y": 1
+ },
+ "id": 5,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"DELETE\" [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Requisições DELETE",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "orange",
+ "value": 1
+ },
+ {
+ "color": "red",
+ "value": 10
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 15,
+ "y": 1
+ },
+ "id": 6,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | statusCode >= 400 and statusCode < 500 [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Erros 4xx",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 1
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 18,
+ "y": 1
+ },
+ "id": 7,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "sum"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | statusCode >= 500 [$__range]))",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Erros 5xx",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "yellow",
+ "value": 500
+ },
+ {
+ "color": "red",
+ "value": 2000
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 3,
+ "w": 3,
+ "x": 21,
+ "y": 1
+ },
+ "id": 8,
+ "options": {
+ "colorMode": "background",
+ "graphMode": "none",
+ "justifyMode": "center",
+ "orientation": "auto",
+ "reduceOptions": {
+ "calcs": [
+ "mean"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "textMode": "auto",
+ "wideLayout": true
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "avg_over_time({container=\"helpme-api\"} | json | unwrap duration [$__range])",
+ "instant": true,
+ "refId": "A"
+ }
+ ],
+ "title": "Latência Média",
+ "type": "stat"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 15,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "smooth",
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "reqps"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 16,
+ "x": 0,
+ "y": 4
+ },
+ "id": 9,
+ "options": {
+ "legend": {
+ "calcs": [
+ "mean",
+ "max",
+ "sum"
+ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "tooltip": {
+ "mode": "multi",
+ "sort": "desc"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | method = \"GET\" [1m]))",
+ "legendFormat": "GET",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | method = \"POST\" [1m]))",
+ "legendFormat": "POST",
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | method = \"PUT\" [1m]))",
+ "legendFormat": "PUT",
+ "refId": "C"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | method = \"PATCH\" [1m]))",
+ "legendFormat": "PATCH",
+ "refId": "D"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | method = \"DELETE\" [1m]))",
+ "legendFormat": "DELETE",
+ "refId": "E"
+ }
+ ],
+ "title": "Taxa de Requisições por Método",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ }
+ },
+ "mappings": [],
+ "unit": "short"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byFrameRefID",
+ "options": "A"
+ },
+ "properties": [
+ {
+ "id": "displayName",
+ "value": "GET"
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byFrameRefID",
+ "options": "B"
+ },
+ "properties": [
+ {
+ "id": "displayName",
+ "value": "POST"
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byFrameRefID",
+ "options": "C"
+ },
+ "properties": [
+ {
+ "id": "displayName",
+ "value": "PUT"
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byFrameRefID",
+ "options": "D"
+ },
+ "properties": [
+ {
+ "id": "displayName",
+ "value": "PATCH"
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byFrameRefID",
+ "options": "E"
+ },
+ "properties": [
+ {
+ "id": "displayName",
+ "value": "DELETE"
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 8,
+ "x": 16,
+ "y": 4
+ },
+ "id": 10,
+ "options": {
+ "displayLabels": [
+ "percent"
+ ],
+ "legend": {
+ "displayMode": "table",
+ "placement": "right",
+ "showLegend": true,
+ "values": [
+ "value",
+ "percent"
+ ]
+ },
+ "pieType": "donut",
+ "reduceOptions": {
+ "calcs": [
+ "lastNotNull"
+ ],
+ "fields": "",
+ "values": false
+ },
+ "tooltip": {
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"GET\" [$__range]))",
+ "instant": true,
+ "legendFormat": "GET",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"POST\" [$__range]))",
+ "instant": true,
+ "legendFormat": "POST",
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"PUT\" [$__range]))",
+ "instant": true,
+ "legendFormat": "PUT",
+ "refId": "C"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"PATCH\" [$__range]))",
+ "instant": true,
+ "legendFormat": "PATCH",
+ "refId": "D"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(count_over_time({container=\"helpme-api\"} | json | method = \"DELETE\" [$__range]))",
+ "instant": true,
+ "legendFormat": "DELETE",
+ "refId": "E"
+ }
+ ],
+ "title": "Distribuição por Método",
+ "type": "piechart"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 10,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "smooth",
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": []
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 12
+ },
+ "id": 11,
+ "options": {
+ "legend": {
+ "calcs": [
+ "mean",
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "tooltip": {
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "quantile_over_time(0.50, {container=\"helpme-api\"} | json | unwrap duration [5m])",
+ "legendFormat": "p50",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "quantile_over_time(0.95, {container=\"helpme-api\"} | json | unwrap duration [5m])",
+ "legendFormat": "p95",
+ "refId": "B"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "quantile_over_time(0.99, {container=\"helpme-api\"} | json | unwrap duration [5m])",
+ "legendFormat": "p99",
+ "refId": "C"
+ }
+ ],
+ "title": "Latência P50 / P95 / P99",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "align": "auto",
+ "cellOptions": {
+ "type": "auto"
+ },
+ "filterable": true,
+ "inspect": false
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "yellow",
+ "value": 500
+ },
+ {
+ "color": "red",
+ "value": 2000
+ }
+ ]
+ },
+ "unit": "ms"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "url"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 300
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 12
+ },
+ "id": 12,
+ "options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
+ },
+ "showHeader": true,
+ "sortBy": [
+ {
+ "desc": true,
+ "displayName": "Latência Média"
+ }
+ ]
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "avg by (url) (avg_over_time({container=\"helpme-api\"} | json | unwrap duration [$__range]))",
+ "instant": true,
+ "legendFormat": "{{url}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Latência Média por Rota",
+ "transformations": [
+ {
+ "id": "labelsToFields",
+ "options": {
+ "mode": "columns"
+ }
+ },
+ {
+ "id": "organize",
+ "options": {
+ "renameByName": {
+ "Value": "Latência Média",
+ "url": "Rota"
+ }
+ }
+ }
+ ],
+ "type": "table"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "palette-classic"
+ },
+ "custom": {
+ "axisBorderShow": false,
+ "axisCenteredZero": false,
+ "axisColorMode": "text",
+ "axisLabel": "",
+ "axisPlacement": "auto",
+ "barAlignment": 0,
+ "drawStyle": "line",
+ "fillOpacity": 20,
+ "gradientMode": "none",
+ "hideFrom": {
+ "legend": false,
+ "tooltip": false,
+ "viz": false
+ },
+ "insertNulls": false,
+ "lineInterpolation": "smooth",
+ "lineWidth": 2,
+ "pointSize": 5,
+ "scaleDistribution": {
+ "type": "linear"
+ },
+ "showPoints": "never",
+ "spanNulls": false,
+ "stacking": {
+ "group": "A",
+ "mode": "none"
+ },
+ "thresholdsStyle": {
+ "mode": "off"
+ }
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "red",
+ "value": 80
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "5xx"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "dark-red",
+ "mode": "fixed"
+ }
+ }
+ ]
+ },
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "4xx"
+ },
+ "properties": [
+ {
+ "id": "color",
+ "value": {
+ "fixedColor": "orange",
+ "mode": "fixed"
+ }
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 0,
+ "y": 20
+ },
+ "id": 13,
+ "options": {
+ "legend": {
+ "calcs": [
+ "sum",
+ "max"
+ ],
+ "displayMode": "table",
+ "placement": "bottom",
+ "showLegend": false
+ },
+ "tooltip": {
+ "mode": "multi",
+ "sort": "none"
+ }
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | statusCode >= 400 and statusCode < 500 [1m]))",
+ "legendFormat": "4xx",
+ "refId": "A"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum(rate({container=\"helpme-api\"} | json | statusCode >= 500 [1m]))",
+ "legendFormat": "5xx",
+ "refId": "B"
+ }
+ ],
+ "title": "Taxa de Erros 4xx vs 5xx",
+ "type": "timeseries"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "fieldConfig": {
+ "defaults": {
+ "color": {
+ "mode": "thresholds"
+ },
+ "custom": {
+ "align": "auto",
+ "cellOptions": {
+ "type": "auto"
+ },
+ "filterable": true,
+ "inspect": false
+ },
+ "mappings": [],
+ "thresholds": {
+ "mode": "absolute",
+ "steps": [
+ {
+ "color": "green",
+ "value": null
+ },
+ {
+ "color": "orange",
+ "value": 1
+ },
+ {
+ "color": "red",
+ "value": 10
+ }
+ ]
+ },
+ "unit": "short"
+ },
+ "overrides": [
+ {
+ "matcher": {
+ "id": "byName",
+ "options": "Rota"
+ },
+ "properties": [
+ {
+ "id": "custom.width",
+ "value": 300
+ }
+ ]
+ }
+ ]
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 12,
+ "x": 12,
+ "y": 20
+ },
+ "id": 14,
+ "options": {
+ "cellHeight": "sm",
+ "footer": {
+ "countRows": false,
+ "fields": "",
+ "reducer": [
+ "sum"
+ ],
+ "show": false
+ },
+ "showHeader": true,
+ "sortBy": [
+ {
+ "desc": true,
+ "displayName": "Total Erros"
+ }
+ ]
+ },
+ "pluginVersion": "10.2.3",
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "sum by (url) (count_over_time({container=\"helpme-api\"} | json | statusCode >= 400 [$__range]))",
+ "instant": true,
+ "legendFormat": "{{url}}",
+ "refId": "A"
+ }
+ ],
+ "title": "Erros por Rota",
+ "transformations": [
+ {
+ "id": "labelsToFields",
+ "options": {
+ "mode": "columns"
+ }
+ },
+ {
+ "id": "organize",
+ "options": {
+ "renameByName": {
+ "Value": "Total Erros",
+ "url": "Rota"
+ }
+ }
+ }
+ ],
+ "type": "table"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "gridPos": {
+ "h": 10,
+ "w": 24,
+ "x": 0,
+ "y": 28
+ },
+ "id": 15,
+ "options": {
+ "dedupStrategy": "none",
+ "enableLogDetails": true,
+ "prettifyLogMessage": true,
+ "showCommonLabels": false,
+ "showLabels": true,
+ "showTime": true,
+ "sortOrder": "Descending",
+ "wrapLogMessage": false
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "{container=\"helpme-api\"} | json",
+ "refId": "A"
+ }
+ ],
+ "title": "Logs em Tempo Real",
+ "type": "logs"
+ },
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "gridPos": {
+ "h": 8,
+ "w": 24,
+ "x": 0,
+ "y": 38
+ },
+ "id": 16,
+ "options": {
+ "dedupStrategy": "none",
+ "enableLogDetails": true,
+ "prettifyLogMessage": true,
+ "showCommonLabels": false,
+ "showLabels": true,
+ "showTime": true,
+ "sortOrder": "Descending",
+ "wrapLogMessage": false
+ },
+ "targets": [
+ {
+ "datasource": {
+ "type": "loki",
+ "uid": "loki"
+ },
+ "expr": "{container=\"helpme-api\"} | json | statusCode >= 400",
+ "refId": "A"
+ }
+ ],
+ "title": "Erros Recentes",
+ "type": "logs"
+ }
+ ],
+ "refresh": "10s",
+ "schemaVersion": 39,
+ "tags": [
+
+ ],
+ "templating": {
+ "list": []
+ },
+ "time": {
+ "from": "now-1h",
+ "to": "now"
+ },
+ "timepicker": {},
+ "timezone": "America/Sao_Paulo",
+ "title": "requisicoes",
+ "uid": "helpme-api-v2",
+ "version": 1,
+ "weekStart": ""
+}
\ No newline at end of file
diff --git a/api/painel-analitico/grafana/provisioning/datasources/loki.yml b/api/painel-analitico/grafana/provisioning/datasources/loki.yml
index 391e510..06ab838 100644
--- a/api/painel-analitico/grafana/provisioning/datasources/loki.yml
+++ b/api/painel-analitico/grafana/provisioning/datasources/loki.yml
@@ -3,6 +3,7 @@ apiVersion: 1
datasources:
- name: Loki
type: loki
+ uid: loki
access: proxy
url: http://loki_helpme:3100
isDefault: false
@@ -14,4 +15,8 @@ datasources:
matcherRegex: "requestId=([\\w-]+)"
name: RequestID
url: "$${__value.raw}"
+ - datasourceUid: tempo
+ matcherRegex: '"traceId":"([a-f0-9]+)"'
+ name: TraceID
+ url: "$${__value.raw}"
version: 1
\ No newline at end of file
diff --git a/api/painel-analitico/grafana/provisioning/datasources/tempo.yaml b/api/painel-analitico/grafana/provisioning/datasources/tempo.yaml
new file mode 100644
index 0000000..6a64105
--- /dev/null
+++ b/api/painel-analitico/grafana/provisioning/datasources/tempo.yaml
@@ -0,0 +1,23 @@
+apiVersion: 1
+
+datasources:
+ - name: Tempo
+ type: tempo
+ uid: tempo
+ url: http://tempo_helpme:3200
+ access: proxy
+ jsonData:
+ httpMethod: GET
+ serviceMap:
+ datasourceUid: prometheus
+ nodeGraph:
+ enabled: true
+ tracesToLogsV2:
+ datasourceUid: loki
+ tags: [{ key: 'service.name', value: 'service' }]
+ filterByTraceID: true
+ filterBySpanID: false
+ lokiSearch:
+ datasourceUid: loki
+ traceToMetrics:
+ datasourceUid: prometheus
\ No newline at end of file
diff --git a/api/painel-analitico/monitoring/tempo.yaml b/api/painel-analitico/monitoring/tempo.yaml
new file mode 100644
index 0000000..7cf50de
--- /dev/null
+++ b/api/painel-analitico/monitoring/tempo.yaml
@@ -0,0 +1,40 @@
+server:
+ http_listen_port: 3200
+
+distributor:
+ receivers:
+ otlp:
+ protocols:
+ http:
+ grpc:
+
+ingester:
+ max_block_duration: 5m
+
+compactor:
+ compaction:
+ block_retention: 1h
+
+storage:
+ trace:
+ backend: local
+ local:
+ path: /tmp/tempo/blocks
+ wal:
+ path: /tmp/tempo/wal
+
+metrics_generator:
+ registry:
+ external_labels:
+ source: tempo
+ cluster: helpme
+ storage:
+ path: /tmp/tempo/generator/wal
+ remote_write:
+ - url: http://prometheus_helpme:9090/api/v1/write
+ send_exemplars: true
+
+overrides:
+ defaults:
+ metrics_generator:
+ processors: [service-graphs, span-metrics]
\ No newline at end of file
diff --git a/api/pnpm-lock.yaml b/api/pnpm-lock.yaml
index aa35957..6e87a21 100644
--- a/api/pnpm-lock.yaml
+++ b/api/pnpm-lock.yaml
@@ -24,6 +24,30 @@ importers:
'@influxdata/influxdb-client':
specifier: ^1.35.0
version: 1.35.0
+ '@opentelemetry/api':
+ specifier: 1.9.0
+ version: 1.9.0
+ '@opentelemetry/auto-instrumentations-node':
+ specifier: 0.57.0
+ version: 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core':
+ specifier: ^2.6.0
+ version: 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-http':
+ specifier: 0.57.0
+ version: 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources':
+ specifier: 1.30.0
+ version: 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-node':
+ specifier: 0.57.0
+ version: 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base':
+ specifier: 1.30.0
+ version: 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions':
+ specifier: 1.30.0
+ version: 1.30.0
'@prisma/adapter-pg':
specifier: ^7.4.1
version: 7.4.1
@@ -165,7 +189,7 @@ importers:
version: 4.2.0
tsup:
specifier: ^8.5.1
- version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)
+ version: 8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2)
tsx:
specifier: ^4.21.0
version: 4.21.0
@@ -174,7 +198,7 @@ importers:
version: 5.9.3
vitest:
specifier: ^4.0.18
- version: 4.0.18(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)
+ version: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
packages:
@@ -396,6 +420,15 @@ packages:
cpu: [x64]
os: [win32]
+ '@grpc/grpc-js@1.14.3':
+ resolution: {integrity: sha512-Iq8QQQ/7X3Sac15oB6p0FmUg/klxQvXLeileoqrTRGJYLV+/9tubbr9ipz0GKHjmXVsgFPo/+W+2cA8eNcR+XA==}
+ engines: {node: '>=12.10.0'}
+
+ '@grpc/proto-loader@0.8.0':
+ resolution: {integrity: sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==}
+ engines: {node: '>=6'}
+ hasBin: true
+
'@hono/node-server@1.19.9':
resolution: {integrity: sha512-vHL6w3ecZsky+8P5MD+eFfaGTyCeOHUIFYMGpQGbrBTSmNNoxv0if69rEZ5giu36weC5saFuznL411gRX7bJDw==}
engines: {node: '>=18.14.1'}
@@ -418,6 +451,9 @@ packages:
'@jridgewell/trace-mapping@0.3.31':
resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==}
+ '@js-sdsl/ordered-map@4.4.2':
+ resolution: {integrity: sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==}
+
'@jsdevtools/ono@7.1.3':
resolution: {integrity: sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==}
@@ -432,6 +468,624 @@ packages:
resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==}
engines: {node: ^14.21.3 || >=16}
+ '@opentelemetry/api-logs@0.200.0':
+ resolution: {integrity: sha512-IKJBQxh91qJ+3ssRly5hYEJ8NDHu9oY/B1PXVSCWf7zytmYO9RNLB0Ox9XQ/fJ8m6gY6Q6NtBWlmXfaXt5Uc4Q==}
+ engines: {node: '>=8.0.0'}
+
+ '@opentelemetry/api-logs@0.57.0':
+ resolution: {integrity: sha512-l1aJ30CXeauVYaI+btiynHpw341LthkMTv3omi1VJDX14werY2Wmv9n1yudMsq9HuY0m8PvXEVX4d8zxEb+WRg==}
+ engines: {node: '>=14'}
+
+ '@opentelemetry/api@1.9.0':
+ resolution: {integrity: sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg==}
+ engines: {node: '>=8.0.0'}
+
+ '@opentelemetry/auto-instrumentations-node@0.57.0':
+ resolution: {integrity: sha512-UgkNOO0jCBPjbsvN4PpHMZthEDoamZpYwFA63ooPgmhbRXhoOvEwmLLIYEaXI9ZEEgyAi5CA1Viw2VTnzECMIg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.4.1
+
+ '@opentelemetry/context-async-hooks@1.30.0':
+ resolution: {integrity: sha512-roCetrG/cz0r/gugQm/jFo75UxblVvHaNSRoR0kSSRSzXFAiIBqFCZuH458BHBNRtRe+0yJdIJ21L9t94bw7+g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/context-async-hooks@2.0.0':
+ resolution: {integrity: sha512-IEkJGzK1A9v3/EHjXh3s2IiFc6L4jfK+lNgKVgUjeUJQRRhnVFMIO3TAvKwonm9O1HebCuoOt98v8bZW7oVQHA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/core@1.30.0':
+ resolution: {integrity: sha512-Q/3u/K73KUjTCnFUP97ZY+pBjQ1kPEgjOfXj/bJl8zW7GbXdkw6cwuyZk6ZTXkVgCBsYRYUzx4fvYK1jxdb9MA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/core@2.0.0':
+ resolution: {integrity: sha512-SLX36allrcnVaPYG3R78F/UZZsBsvbc7lMCLx37LyH5MJ1KAAZ2E3mW9OAD3zGz0G8q/BtoS5VUrjzDydhD6LQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/core@2.6.0':
+ resolution: {integrity: sha512-HLM1v2cbZ4TgYN6KEOj+Bbj8rAKriOdkF9Ed3tG25FoprSiQl7kYc+RRT6fUZGOvx0oMi5U67GoFdT+XUn8zEg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/exporter-logs-otlp-grpc@0.200.0':
+ resolution: {integrity: sha512-+3MDfa5YQPGM3WXxW9kqGD85Q7s9wlEMVNhXXG7tYFLnIeaseUt9YtCeFhEDFzfEktacdFpOtXmJuNW8cHbU5A==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-logs-otlp-grpc@0.57.0':
+ resolution: {integrity: sha512-KRg87nmpQzHV4nYvoYLT52UvoSP0JCRILfrenFElxHak0lcP7ubCs1kpodMs912qsTNOFvINBB6Pxz5AdE6S6A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-logs-otlp-http@0.200.0':
+ resolution: {integrity: sha512-KfWw49htbGGp9s8N4KI8EQ9XuqKJ0VG+yVYVYFiCYSjEV32qpQ5qZ9UZBzOZ6xRb+E16SXOSCT3RkqBVSABZ+g==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-logs-otlp-http@0.57.0':
+ resolution: {integrity: sha512-F3KfPwDheOWpwjwIZJNg9J6ULSRcw39FtQ+c/fUv5xiKE7hu96udTSUoWRmHRJDQ2x9kZLLOOUMd5U/NyP25jw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-logs-otlp-proto@0.200.0':
+ resolution: {integrity: sha512-GmahpUU/55hxfH4TP77ChOfftADsCq/nuri73I/AVLe2s4NIglvTsaACkFVZAVmnXXyPS00Fk3x27WS3yO07zA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-logs-otlp-proto@0.57.0':
+ resolution: {integrity: sha512-ovRmTPJCfXsHATJh5MyCgNbWxpGq1TvIi1sRWDtB25ewQvx+v7JiPNYQSWUgrqpsIwM3fJ0n9bf58gXeDtM2Zg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-grpc@0.200.0':
+ resolution: {integrity: sha512-uHawPRvKIrhqH09GloTuYeq2BjyieYHIpiklOvxm9zhrCL2eRsnI/6g9v2BZTVtGp8tEgIa7rCQ6Ltxw6NBgew==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-grpc@0.57.0':
+ resolution: {integrity: sha512-/x7gkqNlvm+4UZ3c9lZw3zbySE3MUVEwobLNA6QBIDldxuvIqGLL5quLE8B9iSAtdBMAXs9lDh4rYS+EBGAdfg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-http@0.200.0':
+ resolution: {integrity: sha512-5BiR6i8yHc9+qW7F6LqkuUnIzVNA7lt0qRxIKcKT+gq3eGUPHZ3DY29sfxI3tkvnwMgtnHDMNze5DdxW39HsAw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-http@0.57.0':
+ resolution: {integrity: sha512-uxCiTVFAQ1kLy8SS0vyNNXRqH69htbtTxk4EEB2H4CvBFt3pA2N22k6SFF5fOdvDwUvM7Mi9mUfW48rS4Y0F8g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-proto@0.200.0':
+ resolution: {integrity: sha512-E+uPj0yyvz81U9pvLZp3oHtFrEzNSqKGVkIViTQY1rH3TOobeJPSpLnTVXACnCwkPR5XeTvPnK3pZ2Kni8AFMg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-metrics-otlp-proto@0.57.0':
+ resolution: {integrity: sha512-aEYrzZPFxQwefNNwHd69pixKXWphiCwpVD1Y6BQuDM3TuAmGHC+InIi4e+7yRnxJiHuiiUoPOXZV5u5stTSBFw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-prometheus@0.200.0':
+ resolution: {integrity: sha512-ZYdlU9r0USuuYppiDyU2VFRA0kFl855ylnb3N/2aOlXrbA4PMCznen7gmPbetGQu7pz8Jbaf4fwvrDnVdQQXSw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-prometheus@0.57.0':
+ resolution: {integrity: sha512-yjAfXoHcR+Ik03+eZMrrS5ErL7RcNkNScZc2o5dLnZyoEj5A0cCaQLHX5RJxldck8gg5Utmm0I5iItPqnve21w==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-grpc@0.200.0':
+ resolution: {integrity: sha512-hmeZrUkFl1YMsgukSuHCFPYeF9df0hHoKeHUthRKFCxiURs+GwF1VuabuHmBMZnjTbsuvNjOB+JSs37Csem/5Q==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-grpc@0.57.0':
+ resolution: {integrity: sha512-QqN+d8IFyu7HUkzAROSRZGB/gfFZ0DM06YAP2J4IvObhk8paTgg1wP+nW+hl0jgSDD/p8cOj7xg5dgPI8m1LnQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-http@0.200.0':
+ resolution: {integrity: sha512-Goi//m/7ZHeUedxTGVmEzH19NgqJY+Bzr6zXo1Rni1+hwqaksEyJ44gdlEMREu6dzX1DlAaH/qSykSVzdrdafA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-http@0.57.0':
+ resolution: {integrity: sha512-BJl35PSkwoMlGEOrzjCG1ih6zqZoAZJIR4xyqSKC2BqPtwuRjID0vWBaEdP9xrxxJTEIEQw+gEY/0pUgicX0ew==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-proto@0.200.0':
+ resolution: {integrity: sha512-V9TDSD3PjK1OREw2iT9TUTzNYEVWJk4Nhodzhp9eiz4onDMYmPy3LaGbPv81yIR6dUb/hNp/SIhpiCHwFUq2Vg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-trace-otlp-proto@0.57.0':
+ resolution: {integrity: sha512-M21nhl6JSAq8FTvs52/ISIvneRPg1uHNYk6q4YNNaEDGxz3GZZ6I6svYPZuQyL0O1c+mLkYNxzJ6p0rdS9/RUA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/exporter-zipkin@1.30.0':
+ resolution: {integrity: sha512-HQUBmXYuuHIIoB1YFukNq7QtWQPqwQh5SN28coUXmN8nCOxaqnEBKIAN+7RQU7BX7NDcNSXpL2shctH/roKL3A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/exporter-zipkin@2.0.0':
+ resolution: {integrity: sha512-icxaKZ+jZL/NHXX8Aru4HGsrdhK0MLcuRXkX5G5IRmCgoRLw+Br6I/nMVozX2xjGGwV7hw2g+4Slj8K7s4HbVg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/instrumentation-amqplib@0.47.0':
+ resolution: {integrity: sha512-bQboBxolOVDcD4l5QAwqKYpJVKQ8BW82+8tiD5uheu0hDuYgdmDziSAByc8yKS7xpkJw4AYocVP7JwSpQ1hgjg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-aws-lambda@0.51.1':
+ resolution: {integrity: sha512-DxUihz1ZcJtkCKFMnsr5IpQtU1TFnz/QhTEkcb95yfVvmdWx97ezbcxE4lGFjvQYMT8q2NsZjor8s8W/jrMU2w==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-aws-sdk@0.50.0':
+ resolution: {integrity: sha512-qhpGjkOJmY5Vmo3TABL+TD1Nd1z3DUd6CyB3fT5xzfaAbrQhAkETqbJSGWjnWnD1/GpCPqAkQ0Okm7NwJnyxqw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-bunyan@0.46.0':
+ resolution: {integrity: sha512-7ERXBAMIVi1rtFG5odsLTLVy6IJZnLLB74fFlPstV7/ZZG04UZ8YFOYVS14jXArcPohY8HFYLbm56dIFCXYI9w==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-cassandra-driver@0.46.0':
+ resolution: {integrity: sha512-ItT2C32afignjHQosleI/iBjzlHhF+F7tJIK9ty47/CceVNlA9oK39ss9f7o9jmnKvQfhNWffvkXdjc0afwnSQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-connect@0.44.0':
+ resolution: {integrity: sha512-eChFPViU/nkHsCYSp2PCnHnxt/ZmI/N5reHcwmjXbKhEj6TRNJcjLpI+OQksP8lLu0CS9DlDosHEhknCsxLdjQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-cucumber@0.15.0':
+ resolution: {integrity: sha512-MOHDzttn5TSBqt4j3/XjBhYNH0iLQP7oX2pumIzXP7dJFTcUtaq6PVakKPtIaqBTTabOKqCJhrF240XGwWefPQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/instrumentation-dataloader@0.17.0':
+ resolution: {integrity: sha512-JqovxOo7a65+3A/W+eiqUv7DrDsSvsY0NemHJ4uyVrzD4bpDYofVRdnz/ehYcNerlxVIKU+HcybDmiaoj41DPw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-dns@0.44.0':
+ resolution: {integrity: sha512-+tAFXkFPldOpIba2akqKQ1ukqHET1pZ4pqhrr5x0p+RJ+1a1pPmTt1vCyvSSr634WOY8qMSmzZps++16yxnMbA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-express@0.48.1':
+ resolution: {integrity: sha512-j8NYOf9DRWtchbWor/zA0poI42TpZG9tViIKA0e1lC+6MshTqSJYtgNv8Fn1sx1Wn/TRyp+5OgSXiE4LDfvpEg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-fastify@0.45.0':
+ resolution: {integrity: sha512-m94anTFZ6jpvK0G5fXIiq1sB0gCgY2rAL7Cg7svuOh9Roya2RIQz2E5KfCsO1kWCmnHNeTo7wIofoGN7WLPvsA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-fs@0.20.0':
+ resolution: {integrity: sha512-30l45ovjwHb16ImCGVjKCvw5U7X1zKuYY26ii5S+goV8BZ4a/TCpBf2kQxteQjWD05Gl3fzPMZI5aScfPI6Rjw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-generic-pool@0.44.0':
+ resolution: {integrity: sha512-bY7locZDqmQLEtY2fIJbSnAbHilxfhflaEQHjevFGkaiXc9UMtOvITOy5JKHhYQISpgrvY2WGXKG7YlVyI7uMg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-graphql@0.48.0':
+ resolution: {integrity: sha512-w1sbf9F9bQTpIWGnKWhH1A+9N9rKxS4eM+AzczgMWp272ZM9lQv4zLTrH5NRST2ltY3nmZ72wkfFrSR0rECi0g==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-grpc@0.200.0':
+ resolution: {integrity: sha512-iaPHlO1qb1WlGUq0oTx0rJND/BtBeTAtyEfflu2VwKDe8XZeia7UEOfiSQxnGqVSTwW5F0P1S5UzqeDJotreWQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-hapi@0.46.0':
+ resolution: {integrity: sha512-573y+ZxywEcq+3+Z3KqcbV45lrVwUKvQiP9OhABVFNX8wHbtM6DPRBmYfqiUkSbIBcOEihm5qH6Gs73Xq0RBEA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-http@0.200.0':
+ resolution: {integrity: sha512-9tqGbCJikhYU68y3k9mi6yWsMyMeCcwoQuHvIXan5VvvPPQ5WIZaV6Mxu/MCVe4swRNoFs8Th+qyj0TZV5ELvw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-ioredis@0.48.0':
+ resolution: {integrity: sha512-kQhdrn/CAfJIObqbyyGtagWNxPvglJ9FwnWmsfXKodaGskJv/nyvdC9yIcgwzjbkG1pokVUROrvJ0mizqm29Tg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-kafkajs@0.8.0':
+ resolution: {integrity: sha512-aMd3RupViVtjS/FGVG7AqMyOtOhB3qqUUYzXfq7xhYMERPSDYeRqHUn8203R7zNqcnWYIJRfWQf5eI6EejxIFA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-knex@0.45.0':
+ resolution: {integrity: sha512-2kkyTDUzK/3G3jxTc+NqHSdgi1Mjw2irZ98T/cSyNdlbsnDOMSTHjbm0AxJCV4QYQ4cKW7a8W/BBgxDGlu+mXQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-koa@0.48.0':
+ resolution: {integrity: sha512-LV63v3pxFpjKC0IJO+y5nsGdcH+9Y8Wnn0fhu673XZ5auxqJk2t4nIHuSmls08oRKaX+5q1e+h70XmP/45NJsw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-lru-memoizer@0.45.0':
+ resolution: {integrity: sha512-W2MNx7hPtvSIgEFxFrqdBykdfN0UrShCbJxvMU9fwgqbOdxIrcubPt0i1vmy3Ap6QwSi+HmsRNQD2w3ucbLG3A==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-memcached@0.44.0':
+ resolution: {integrity: sha512-1zABdJlF9Tk0yUv2ELpF6Mk2kw81k+bnB3Sw+D/ssRDcGGCnCNbz+fKJE8dwAPkDP+OcTmiKm6ySREbcyRFzCg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-mongodb@0.53.0':
+ resolution: {integrity: sha512-zS2gQJQuG7RZw5yaNG/TnxsOtv1fFkn3ypuDrVLJtJLZtcOr4GYn31jbIA8od+QW/ChZLVcH364iDs+z/xS9wA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-mongoose@0.47.1':
+ resolution: {integrity: sha512-0OcL5YpZX9PtF55Oi1RtWUdjElJscR9u6NzAdww81EQc3wFfQWmdREUEBeWaDH5jpiomdFp6zDXms622ofEOjg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-mysql2@0.46.0':
+ resolution: {integrity: sha512-JsmIA+aTfHqy2tahjnVWChRipYpYrTy+XFAuUPia9CTaspCx8ZrirPUqYnbnaPEtnzYff2a4LX0B2LT1hKlOiA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-mysql@0.46.0':
+ resolution: {integrity: sha512-Z1NDAv07suIukgL7kxk9cAQX1t/smRMLNOU+q5Aqnhnf/0FIF/N4cX2wg+25IWy0m2PoaPbAVYCKB0aOt5vzAw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-nestjs-core@0.45.0':
+ resolution: {integrity: sha512-qcFMFYn6fqtpCLJZxO+Oh6yOmko81xGejmGzAdg+Vlj3+WiN849PcBpeZAtYy7QaaqXe3U/8AUw8thcNeszd/A==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-net@0.44.0':
+ resolution: {integrity: sha512-SmAbOKTi0lgdTN9XMXOaf+4jw670MpiK3pw9/to/kRlTvNWwWA4RD34trCcoL7Gf2IYoXuj56Oo4Z5C7N98ukw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-pg@0.52.0':
+ resolution: {integrity: sha512-OBpqlxTqmFkZGHaHV4Pzd95HkyKVS+vf0N5wVX3BSb8uqsvOrW62I1qt+2jNsZ13dtG5eOzvcsQTMGND76wizA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-pino@0.47.0':
+ resolution: {integrity: sha512-OFOy/TGtGXMYWrF4xPKhLN1evdqUpbuoKODzeh3GSjFkcooZZf4m/Hpzu12FV+s0wDBf43oAjXbNJWeCJQMrug==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-redis-4@0.47.0':
+ resolution: {integrity: sha512-9LywJGp1fmmLj6g1+Rv91pVE3ATle1C/qIya9ZLwPywXTOdFIARI/gvvvlI7uFABoLojj2dSaI/5JQrq4C1HSg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-redis@0.47.0':
+ resolution: {integrity: sha512-T2YvuX/LaJEQKgKvIQJlbSMSzxp6oBm+9PMgfn7QcBXzSY9tyeyDF6QjLAKNvxs+BJeQzFmDlahjoEyatzxRWA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-restify@0.46.0':
+ resolution: {integrity: sha512-du1FjKsTGQH6q8QjG0Bxlg0L79Co/Ey0btKKb2sg7fvg0YX6LKdR2N1fzfne/A9k+WjQ5v28JuUXOk2cEPYU/Q==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-router@0.45.0':
+ resolution: {integrity: sha512-CGEeT73Wy/nLQw+obG/mBCIgMbZQKrGG6hzbEdtQ4G2jqI97w7pLWdM4DvkpWVBNcxMpO13dX1nn2OiyZXND3Q==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-socket.io@0.47.0':
+ resolution: {integrity: sha512-qAc+XCcRmZYjs8KJIPv+MMR2wPPPOppwoarzKRR4G+yvOBs1xMwbbkqNHifKga0XcfFX4KVr7Z5QQ6ZZzWyLtg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-tedious@0.19.0':
+ resolution: {integrity: sha512-hNC/Bz+g4RvwaKsbA1VD+9x8X2Ml+fN2uba4dniIdQIrAItLdet4xx/7TEoWYtyVJQozphvpnIsUp52Rw4djCA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation-undici@0.11.0':
+ resolution: {integrity: sha512-H6ijJnKVZBB0Lhm6NsaBt0rUz+i52LriLhrpGAE8SazB0jCIVY4MrL2dNib/4w8zA+Fw9zFwERJvKXUIbSD1ew==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.7.0
+
+ '@opentelemetry/instrumentation-winston@0.45.0':
+ resolution: {integrity: sha512-LZz3/6QvzoneSqD/xnB8wq/g1fy8oe2PwfZ15zS2YA5mnjuSqlqgl+k3sib7wfIYHMP1D3ajfbDB6UOJBALj/w==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation@0.200.0':
+ resolution: {integrity: sha512-pmPlzfJd+vvgaZd/reMsC8RWgTXn2WY1OWT5RT42m3aOn5532TozwXNDhg1vzqJ+jnvmkREcdLr27ebJEQt0Jg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/instrumentation@0.57.0':
+ resolution: {integrity: sha512-qIKp+tSCLqofneUWRc5XHtr9jHIq0N0BJfaJamM9gjEFO8sthV4SDXDGNOSAx16PxkbrQJ5/AxMPAGCXl8W/Hg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-exporter-base@0.200.0':
+ resolution: {integrity: sha512-IxJgA3FD7q4V6gGq4bnmQM5nTIyMDkoGFGrBrrDjB6onEiq1pafma55V+bHvGYLWvcqbBbRfezr1GED88lacEQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-exporter-base@0.57.0':
+ resolution: {integrity: sha512-QQl4Ngm3D6H8SDO0EM642ncTxjRsf/HDq7+IWIA0eaEK/NTsJeQ3iYJiZj3F4jkALnvyeM1kkwd+DHtqxTBx9Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-grpc-exporter-base@0.200.0':
+ resolution: {integrity: sha512-CK2S+bFgOZ66Bsu5hlDeOX6cvW5FVtVjFFbWuaJP0ELxJKBB6HlbLZQ2phqz/uLj1cWap5xJr/PsR3iGoB7Vqw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-grpc-exporter-base@0.57.0':
+ resolution: {integrity: sha512-EKcVd4p7Jm6nir9Phg8dW7JgHhXg7MvtIn52NMx7qfJkY0ybqQozoGAVEZcM2zo28E0I6eSaenBmlko/cLHg9A==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-transformer@0.200.0':
+ resolution: {integrity: sha512-+9YDZbYybOnv7sWzebWOeK6gKyt2XE7iarSyBFkwwnP559pEevKOUD8NyDHhRjCSp13ybh9iVXlMfcj/DwF/yw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/otlp-transformer@0.57.0':
+ resolution: {integrity: sha512-yHX7sdwkdAmSa6Jbi3caSLDWy0PCHS1pKQeKz8AIWSyQqL7IojHKgdk9A+7eRd98Z1n9YTdwWSWLnObvIqhEhQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': ^1.3.0
+
+ '@opentelemetry/propagation-utils@0.31.16':
+ resolution: {integrity: sha512-UPpUe52VoKJFTudOsaOZBtx7QJzSuMGF08B257IQTCEnxi51o05ioBMY/G5ihUbfSsYKDsuSZdTS5s1j3d0bOA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/propagator-b3@1.30.0':
+ resolution: {integrity: sha512-lcobQQmd+hLdtxJJKu/i51lNXmF1PJJ7Y9B97ciHRVQuMI260vSZG7Uf4Zg0fqR8PB+fT/7rnlDwS0M7QldZQQ==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/propagator-b3@2.0.0':
+ resolution: {integrity: sha512-blx9S2EI49Ycuw6VZq+bkpaIoiJFhsDuvFGhBIoH3vJ5oYjJ2U0s3fAM5jYft99xVIAv6HqoPtlP9gpVA2IZtA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/propagator-jaeger@1.30.0':
+ resolution: {integrity: sha512-0hdP495V6HPRkVpowt54+Swn5NdesMIRof+rlp0mbnuIUOM986uF+eNxnPo9q5MmJegVBRTxgMHXXwvnXRnKRg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/propagator-jaeger@2.0.0':
+ resolution: {integrity: sha512-Mbm/LSFyAtQKP0AQah4AfGgsD+vsZcyreZoQ5okFBk33hU7AquU4TltgyL9dvaO8/Zkoud8/0gEvwfOZ5d7EPA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/redis-common@0.37.0':
+ resolution: {integrity: sha512-tJwgE6jt32bLs/9J6jhQRKU2EZnsD8qaO13aoFyXwF6s4LhpT7YFHf3Z03MqdILk6BA2BFUhoyh7k9fj9i032A==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+
+ '@opentelemetry/resource-detector-alibaba-cloud@0.31.11':
+ resolution: {integrity: sha512-R/asn6dAOWMfkLeEwqHCUz0cNbb9oiHVyd11iwlypeT/p9bR1lCX5juu5g/trOwxo62dbuFcDbBdKCJd3O2Edg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/resource-detector-aws@2.13.0':
+ resolution: {integrity: sha512-ZPCn7gZhGqUYUoD+RCHIlayoHBMaJaEjfqlgz2EPKoXJ4y7Ru7CUm+Tm3yJVMKF92cN9xUQR0j5KALyF0fg9aw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/resource-detector-azure@0.7.0':
+ resolution: {integrity: sha512-aR2ALsK+b/+5lLDhK9KTK8rcuKg7+sqa/Cg+QCeasqoy7qby70FRtAbQcZGljJ5BLBcVPYjl1hcTYIUyL3Laww==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/resource-detector-container@0.7.11':
+ resolution: {integrity: sha512-XUxnGuANa/EdxagipWMXKYFC7KURwed9/V0+NtYjFmwWHzV9/J4IYVGTK8cWDpyUvAQf/vE4sMa3rnS025ivXQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/resource-detector-gcp@0.34.0':
+ resolution: {integrity: sha512-Mug9Oing1nVQE8pYT33UKuPSEa/wjQTMk3feS9F84h4U7oZIx5Mz3yddj3OHOPgrW/7d1Ve/mG7jmYqBI9tpTg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.0.0
+
+ '@opentelemetry/resources@1.30.0':
+ resolution: {integrity: sha512-5mGMjL0Uld/99t7/pcd7CuVtJbkARckLVuiOX84nO8RtLtIz0/J6EOHM2TGvPZ6F4K+XjUq13gMx14w80SVCQg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/resources@2.0.0':
+ resolution: {integrity: sha512-rnZr6dML2z4IARI4zPGQV4arDikF/9OXZQzrC01dLmn0CZxU5U5OLd/m1T7YkGRj5UitjeoCtg/zorlgMQcdTg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/resources@2.6.0':
+ resolution: {integrity: sha512-D4y/+OGe3JSuYUCBxtH5T9DSAWNcvCb/nQWIga8HNtXTVPQn59j0nTBAgaAXxUVBDl40mG3Tc76b46wPlZaiJQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/sdk-logs@0.200.0':
+ resolution: {integrity: sha512-VZG870063NLfObmQQNtCVcdXXLzI3vOjjrRENmU37HYiPFa0ZXpXVDsTD02Nh3AT3xYJzQaWKl2X2lQ2l7TWJA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.4.0 <1.10.0'
+
+ '@opentelemetry/sdk-logs@0.57.0':
+ resolution: {integrity: sha512-6Kbxdu/QE9LWH7+WSLmYo3DjAq+c55TiCLXiXu6b/2m2muy5SyOG2m0MrGqetyRpfYSSbIqHmJoqNVTN3+2a9g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.4.0 <1.10.0'
+
+ '@opentelemetry/sdk-metrics@1.30.0':
+ resolution: {integrity: sha512-5kcj6APyRMvv6dEIP5plz2qfJAD4OMipBRT11u/pa1a68rHKI2Ln+iXVkAGKgx8o7CXbD7FdPypTUY88ZQgP4Q==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/sdk-metrics@2.0.0':
+ resolution: {integrity: sha512-Bvy8QDjO05umd0+j+gDeWcTaVa1/R2lDj/eOvjzpm8VQj1K1vVZJuyjThpV5/lSHyYW2JaHF2IQ7Z8twJFAhjA==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.9.0 <1.10.0'
+
+ '@opentelemetry/sdk-node@0.200.0':
+ resolution: {integrity: sha512-S/YSy9GIswnhYoDor1RusNkmRughipvTCOQrlF1dzI70yQaf68qgf5WMnzUxdlCl3/et/pvaO75xfPfuEmCK5A==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/sdk-node@0.57.0':
+ resolution: {integrity: sha512-zIeTu4m+zAPgziReQOf4jPq0J+V9Q/q1bQPTeB3Wo194SxY99uGkkCreJpH6ICDmR5e2ipSNkq6CNXyFmkWa9g==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/sdk-trace-base@1.30.0':
+ resolution: {integrity: sha512-RKQDaDIkV7PwizmHw+rE/FgfB2a6MBx+AEVVlAHXRG1YYxLiBpPX2KhmoB99R5vA4b72iJrjle68NDWnbrE9Dg==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/sdk-trace-base@2.0.0':
+ resolution: {integrity: sha512-qQnYdX+ZCkonM7tA5iU4fSRsVxbFGml8jbxOgipRGMFHKaXKHQ30js03rTobYjKjIfnOsZSbHKWF0/0v0OQGfw==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.3.0 <1.10.0'
+
+ '@opentelemetry/sdk-trace-node@1.30.0':
+ resolution: {integrity: sha512-MeXkXEdBs9xq1JSGTr/3P1lHBSUBaVmo1+UpoQhUpviPMzDXy0MNsdTC7KKI6/YcG74lTX6eqeNjlC1jV4Rstw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/sdk-trace-node@2.0.0':
+ resolution: {integrity: sha512-omdilCZozUjQwY3uZRBwbaRMJ3p09l4t187Lsdf0dGMye9WKD4NGcpgZRvqhI1dwcH6og+YXQEtoO9Wx3ykilg==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': '>=1.0.0 <1.10.0'
+
+ '@opentelemetry/semantic-conventions@1.28.0':
+ resolution: {integrity: sha512-lp4qAiMTD4sNWW4DbKLBkfiMZ4jbAboJIGOQr5DvciMRI494OapieI9qiODpOt0XBr1LjIDy1xAGAnVs5supTA==}
+ engines: {node: '>=14'}
+
+ '@opentelemetry/semantic-conventions@1.30.0':
+ resolution: {integrity: sha512-4VlGgo32k2EQ2wcCY3vEU28A0O13aOtHz3Xt2/2U5FAh9EfhD6t6DqL5Z6yAnRCntbTFDU4YfbpyzSlHNWycPw==}
+ engines: {node: '>=14'}
+
+ '@opentelemetry/sql-common@0.41.2':
+ resolution: {integrity: sha512-4mhWm3Z8z+i508zQJ7r6Xi7y4mmoJpdvH0fZPFRkWrdp5fq7hhZ2HhYokEOLkfqSMgPR4Z9EyB3DBkbKGOqZiQ==}
+ engines: {node: ^18.19.0 || >=20.6.0}
+ peerDependencies:
+ '@opentelemetry/api': ^1.1.0
+
'@paralleldrive/cuid2@2.3.1':
resolution: {integrity: sha512-XO7cAxhnTZl0Yggq6jOgjiOHhbgcO4NqFqwSmQpjK3b6TEE6Uj/jfSk6wzYyemh3+I0sHirKSetjQwn5cZktFw==}
@@ -502,6 +1156,36 @@ packages:
react: ^18.0.0 || ^19.0.0
react-dom: ^18.0.0 || ^19.0.0
+ '@protobufjs/aspromise@1.1.2':
+ resolution: {integrity: sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==}
+
+ '@protobufjs/base64@1.1.2':
+ resolution: {integrity: sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==}
+
+ '@protobufjs/codegen@2.0.4':
+ resolution: {integrity: sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==}
+
+ '@protobufjs/eventemitter@1.1.0':
+ resolution: {integrity: sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==}
+
+ '@protobufjs/fetch@1.1.0':
+ resolution: {integrity: sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==}
+
+ '@protobufjs/float@1.0.2':
+ resolution: {integrity: sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==}
+
+ '@protobufjs/inquire@1.1.0':
+ resolution: {integrity: sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==}
+
+ '@protobufjs/path@1.1.2':
+ resolution: {integrity: sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==}
+
+ '@protobufjs/pool@1.1.0':
+ resolution: {integrity: sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==}
+
+ '@protobufjs/utf8@1.1.0':
+ resolution: {integrity: sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==}
+
'@redis/bloom@5.11.0':
resolution: {integrity: sha512-KYiVilAhAFN3057afUb/tfYJpsEyTkQB+tQcn5gVVA7DgcNOAj8lLxe4j8ov8BF6I9C1Fe/kwlbuAICcTMX8Lw==}
engines: {node: '>= 18'}
@@ -669,9 +1353,15 @@ packages:
'@standard-schema/spec@1.1.0':
resolution: {integrity: sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==}
+ '@types/aws-lambda@8.10.147':
+ resolution: {integrity: sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==}
+
'@types/body-parser@1.19.6':
resolution: {integrity: sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==}
+ '@types/bunyan@1.8.11':
+ resolution: {integrity: sha512-758fRH7umIMk5qt5ELmRMff4mLDlN+xyYzC+dkPTdKwbSkJFvz6xwyScrytPU0QIBbRRwbiE8/BIg8bpajerNQ==}
+
'@types/chai@5.2.3':
resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==}
@@ -711,6 +1401,9 @@ packages:
'@types/jsonwebtoken@9.0.10':
resolution: {integrity: sha512-asx5hIG9Qmf/1oStypjanR7iKTv0gXQ1Ov/jfrX6kS/EO0OFni8orbmGCn0672NHR3kXHwpAwR+B368ZGN/2rA==}
+ '@types/memcached@2.2.10':
+ resolution: {integrity: sha512-AM9smvZN55Gzs2wRrqeMHVP7KE8KWgCJO/XL5yCly2xF6EKa4YlbpK+cLSAH4NG/Ah64HrlegmGqW8kYws7Vxg==}
+
'@types/methods@1.1.4':
resolution: {integrity: sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ==}
@@ -720,15 +1413,24 @@ packages:
'@types/multer@2.0.0':
resolution: {integrity: sha512-C3Z9v9Evij2yST3RSBktxP9STm6OdMc5uR1xF1SGr98uv8dUlAL2hqwrZ3GVB3uyMyiegnscEK6PGtYvNrjTjw==}
+ '@types/mysql@2.15.26':
+ resolution: {integrity: sha512-DSLCOXhkvfS5WNNPbfn2KdICAmk8lLc+/PNvnPnF7gOdMZCxopXduqv0OQ13y/yA/zXTSikZZqVgybUxOEg6YQ==}
+
'@types/node@25.3.0':
resolution: {integrity: sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==}
'@types/nodemailer@7.0.11':
resolution: {integrity: sha512-E+U4RzR2dKrx+u3N4DlsmLaDC6mMZOM/TPROxA0UAPiTgI0y4CEFBmZE+coGWTjakDriRsXG368lNk1u9Q0a2g==}
+ '@types/pg-pool@2.0.6':
+ resolution: {integrity: sha512-TaAUE5rq2VQYxab5Ts7WZhKNmuN78Q6PiFonTDdpbx8a1H0M1vhy3rhiMjl+e2iHmogyMw7jZF4FrE6eJUy5HQ==}
+
'@types/pg@8.16.0':
resolution: {integrity: sha512-RmhMd/wD+CF8Dfo+cVIy3RR5cl8CyfXQ0tGgW6XBL8L4LM/UTEbNXYRbLwU6w+CgrKBNbrQWt4FUtTfaU5jSYQ==}
+ '@types/pg@8.6.1':
+ resolution: {integrity: sha512-1Kc4oAGzAl7uqUStZCDvaLFqZrW9qWSjXOmBfdgyBP5La7Us6Mg4GBvRlSoaZMhQF/zSj1C8CtKMBkoiT8eL8w==}
+
'@types/qs@6.14.0':
resolution: {integrity: sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==}
@@ -744,6 +1446,9 @@ packages:
'@types/serve-static@2.2.0':
resolution: {integrity: sha512-8mam4H1NHLtu7nmtalF7eyBH14QyOASmcxHhSfEoRyr0nP/YdoesEtU+uSRvMe96TW/HPTtkoKqQLl53N7UXMQ==}
+ '@types/shimmer@1.2.0':
+ resolution: {integrity: sha512-UE7oxhQLLd9gub6JKIAhDq06T0F6FnztwMNRvYgjeQSBeMc1ZG/tA47EwfduvkuQS8apbkM/lpLpWsaCeYsXVg==}
+
'@types/superagent@8.1.9':
resolution: {integrity: sha512-pTVjI73witn+9ILmoJdajHGW2jkSaOzhiFYF1Rd3EQ94kymLqB9PjD9ISg7WaALC7+dCHT0FGe9T2LktLq/3GQ==}
@@ -756,6 +1461,9 @@ packages:
'@types/swagger-ui-express@4.1.8':
resolution: {integrity: sha512-AhZV8/EIreHFmBV5wAs0gzJUNq9JbbSXgJLQubCC0jtIo6prnI9MIRRxnU4MZX9RB9yXxF1V4R7jtLl/Wcj31g==}
+ '@types/tedious@4.0.14':
+ resolution: {integrity: sha512-KHPsfX/FoVbUGbyYvk1q9MMQHLPeRZhRJZdO45Q4YjvFkv4hMNghCWTvy7rdKessBsmtz4euWCWAB6/tVpI1Iw==}
+
'@types/uuid@11.0.0':
resolution: {integrity: sha512-HVyk8nj2m+jcFRNazzqyVKiZezyhDKrGUA3jlEcg/nZ6Ms+qHwocba1Y/AaVaznJTAM9xpdFSh+ptbNrhOGvZA==}
deprecated: This is a stub types definition. uuid provides its own type definitions, so you do not need this installed.
@@ -820,11 +1528,28 @@ packages:
resolution: {integrity: sha512-5cvg6CtKwfgdmVqY1WIiXKc3Q1bkRqGLi+2W/6ao+6Y7gu/RCwRuAhGEzh5B4KlszSuTLgZYuqFqo5bImjNKng==}
engines: {node: '>= 0.6'}
+ acorn-import-attributes@1.9.5:
+ resolution: {integrity: sha512-n02Vykv5uA3eHGM/Z2dQrcD56kL8TyDb2p1+0P83PClMnC/nc+anbQRhIOWnSq4Ke/KvDPrY3C9hDtC/A3eHnQ==}
+ peerDependencies:
+ acorn: ^8
+
acorn@8.16.0:
resolution: {integrity: sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==}
engines: {node: '>=0.4.0'}
hasBin: true
+ agent-base@7.1.4:
+ resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==}
+ engines: {node: '>= 14'}
+
+ ansi-regex@5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+
+ ansi-styles@4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+
any-promise@1.3.0:
resolution: {integrity: sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A==}
@@ -870,6 +1595,9 @@ packages:
resolution: {integrity: sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==}
engines: {node: ^4.5.0 || >= 5.9}
+ bignumber.js@9.3.1:
+ resolution: {integrity: sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==}
+
block-stream2@2.1.0:
resolution: {integrity: sha512-suhjmLI57Ewpmq00qaygS8UgEq2ly2PCItenIyhMqVjo4t4pGzqMvfgJuX8iWTeSDdfSSqS6j38fL4ToNL7Pfg==}
@@ -956,10 +1684,24 @@ packages:
citty@0.2.1:
resolution: {integrity: sha512-kEV95lFBhQgtogAPlQfJJ0WGVSokvLr/UEoFPiKKOXF7pl98HfUVUD0ejsuTCld/9xH9vogSywZ5KqHzXrZpqg==}
+ cjs-module-lexer@1.4.3:
+ resolution: {integrity: sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==}
+
+ cliui@8.0.1:
+ resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==}
+ engines: {node: '>=12'}
+
cluster-key-slot@1.1.2:
resolution: {integrity: sha512-RMr0FhtfXemyinomL4hrWcYJxmX6deFdCxpJzhDttxgO1+bcCnkk+9drydLVDmAMG7NE6aN/fl4F7ucU/90gAA==}
engines: {node: '>=0.10.0'}
+ color-convert@2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+
+ color-name@1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+
colorette@2.0.20:
resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
@@ -1130,6 +1872,9 @@ packages:
effect@3.18.4:
resolution: {integrity: sha512-b1LXQJLe9D11wfnOKAk3PKxuqYshQ0Heez+y5pnkd3jLj1yx9QhM72zZ9uUrOQyNvrs2GZZd/3maL0ZV18YuDA==}
+ emoji-regex@8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+
empathic@2.0.0:
resolution: {integrity: sha512-i6UzDscO/XfAcNYD75CfICkmfLedpyPDdozrLMmQc5ORaQcdMoc21OnlEylMIqI7U8eniKrPMxxtj8k0vhmJhA==}
engines: {node: '>=14'}
@@ -1173,6 +1918,10 @@ packages:
engines: {node: '>=18'}
hasBin: true
+ escalade@3.2.0:
+ resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==}
+ engines: {node: '>=6'}
+
escape-html@1.0.3:
resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
@@ -1211,6 +1960,9 @@ packages:
exsolve@1.0.8:
resolution: {integrity: sha512-LmDxfWXwcTArk8fUEnOfSZpHOJ6zOMUJKOtFLFqJLoKJetuQG874Uc7/Kki7zFLzYybmZhp1M7+98pfMqeX8yA==}
+ extend@3.0.2:
+ resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==}
+
fast-check@3.23.2:
resolution: {integrity: sha512-h5+1OzzfCC3Ef7VbtKdcv7zsstUQwUDlYpUTvjeUsJAssPgLn7QzbboPtL5ro04Mq0rPOsMzl7q5hIbRs2wD1A==}
engines: {node: '>=8.0.0'}
@@ -1267,6 +2019,9 @@ packages:
resolution: {integrity: sha512-YikH+7CUTOtP44ZTnUhR7Ic2UASBPOqmaRkRKxRbywPTe5VxF7RRCck4af9wutiZ/QKM5nME9Bie2fFaPz5Gug==}
engines: {node: '>=14.0.0'}
+ forwarded-parse@2.1.2:
+ resolution: {integrity: sha512-alTFZZQDKMporBH77856pXgzhEzaUVmLCDk+egLgIgHst3Tpndzz8MnKe+GzRJRfvVdn69HhpW7cmXzvtLvJAw==}
+
forwarded@0.2.0:
resolution: {integrity: sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==}
engines: {node: '>= 0.6'}
@@ -1283,6 +2038,14 @@ packages:
function-bind@1.1.2:
resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ gaxios@6.7.1:
+ resolution: {integrity: sha512-LDODD4TMYx7XXdpwxAVRAIAuB0bzv0s+ywFonY46k126qzQHT9ygyoa9tncmOiQmmDrik65UYsEkv3lbfqQ3yQ==}
+ engines: {node: '>=14'}
+
+ gcp-metadata@6.1.1:
+ resolution: {integrity: sha512-a4tiq7E0/5fTjxPAaH4jpjkSv/uCaU2p5KC6HVGrvl0cDjA8iBZv4vv1gyzlmK0ZUKqwpOyQMKzZQe3lTit77A==}
+ engines: {node: '>=14'}
+
generate-function@2.3.1:
resolution: {integrity: sha512-eeB5GfMNeevm/GRYq20ShmsaGcmI81kIX2K9XQx5miC8KdHaC6Jm0qQ8ZNeGOi7wYB8OsdxKs+Y2oVuTFuVwKQ==}
@@ -1316,6 +2079,10 @@ packages:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
engines: {node: 18 || 20 || >=22}
+ google-logging-utils@0.0.2:
+ resolution: {integrity: sha512-NEgUnEcBiP5HrPzufUkBzJOD/Sxsco3rLNo1F1TNf7ieU8ryUzBhqba8r756CjLX7rn3fHl6iLEwPYuqpoKgQQ==}
+ engines: {node: '>=14'}
+
gopd@1.2.0:
resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==}
engines: {node: '>= 0.4'}
@@ -1370,10 +2137,17 @@ packages:
http-status-codes@2.3.0:
resolution: {integrity: sha512-RJ8XvFvpPM/Dmc5SV+dC4y5PCeOhT3x1Hq0NU3rjGeg5a/CqlhZ7uudknPwZFz4aeAXDcbAyaeP7GAo9lvngtA==}
+ https-proxy-agent@7.0.6:
+ resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==}
+ engines: {node: '>= 14'}
+
iconv-lite@0.7.2:
resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==}
engines: {node: '>=0.10.0'}
+ import-in-the-middle@1.15.0:
+ resolution: {integrity: sha512-bpQy+CrsRmYmoPMAE/0G33iwRqwW4ouqdRg8jgbH3aKuCtOc8lxgmYXg2dMM92CRiGP660EtBcymH/eVUpCSaA==}
+
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
@@ -1397,6 +2171,14 @@ packages:
resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
engines: {node: '>= 0.4'}
+ is-core-module@2.16.1:
+ resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==}
+ engines: {node: '>= 0.4'}
+
+ is-fullwidth-code-point@3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+
is-generator-function@1.1.2:
resolution: {integrity: sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==}
engines: {node: '>= 0.4'}
@@ -1411,6 +2193,10 @@ packages:
resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==}
engines: {node: '>= 0.4'}
+ is-stream@2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+
is-typed-array@1.1.15:
resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==}
engines: {node: '>= 0.4'}
@@ -1445,6 +2231,9 @@ packages:
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
hasBin: true
+ json-bigint@1.0.0:
+ resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==}
+
json5@2.2.3:
resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
engines: {node: '>=6'}
@@ -1483,6 +2272,9 @@ packages:
resolution: {integrity: sha512-IXO6OCs9yg8tMKzfPZ1YmheJbZCiEsnBdcB03l0OcfK9prKnJb96siuHCr5Fl37/yo9DnKU+TLpxzTUspw9shg==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ lodash.camelcase@4.3.0:
+ resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==}
+
lodash.get@4.4.2:
resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==}
deprecated: This package is deprecated. Use the optional chaining (?.) operator instead.
@@ -1608,6 +2400,9 @@ packages:
mlly@1.8.0:
resolution: {integrity: sha512-l8D9ODSRWLe2KHJSifWGwBqpTZXIXTeo8mlKjY+E2HAakaTeNpqAyBZ8GSqLzHgw4XmHmC8whvpjJNMbFZN7/g==}
+ module-details-from-path@1.0.4:
+ resolution: {integrity: sha512-EGWKgxALGMgzvxYF1UyGTy0HXX/2vHLkw6+NvDKW2jypWbHpjQuj4UMcqQWXHERJhVGKikolT06G3bcKe4fi7w==}
+
mongodb-connection-string-url@7.0.1:
resolution: {integrity: sha512-h0AZ9A7IDVwwHyMxmdMXKy+9oNlF0zFoahHiX3vQ8e3KFcSP3VmsmfvtRSuLPxmyv2vjIDxqty8smTgie/SNRQ==}
engines: {node: '>=20.19.0'}
@@ -1726,6 +2521,15 @@ packages:
node-fetch-native@1.6.7:
resolution: {integrity: sha512-g9yhqoedzIUm0nTnTqAQvueMPVOuIY16bqgAJJC8XOOubYFNwz6IER9qs0Gq2Xd0+CecCKFjtdDTMA4u4xG06Q==}
+ node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+
nodemailer@7.0.13:
resolution: {integrity: sha512-PNDFSJdP+KFgdsG3ZzMXCgquO7I6McjY2vlqILjtJd0hy8wEvtugS9xKRF2NWlPNGxvLCXlTNIae4serI7dinw==}
engines: {node: '>=6.0.0'}
@@ -1775,6 +2579,9 @@ packages:
resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
engines: {node: '>=8'}
+ path-parse@1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+
path-scurry@2.0.2:
resolution: {integrity: sha512-3O/iVVsJAPsOnpwWIeD+d6z/7PmqApyQePUtCndjatj/9I5LylHvt5qluFaBT3I5h3r1ejfR056c+FCv+NnNXg==}
engines: {node: 18 || 20 || >=22}
@@ -1925,6 +2732,10 @@ packages:
proper-lockfile@4.1.2:
resolution: {integrity: sha512-TjNPblN4BwAWMXU8s9AEz4JmQxnD1NNL7bNOY/AKUzyamc379FWASUhc/K1pL2noVb+XmZKLL68cjzLsiOAMaA==}
+ protobufjs@7.5.4:
+ resolution: {integrity: sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==}
+ engines: {node: '>=12.0.0'}
+
proxy-addr@2.0.7:
resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==}
engines: {node: '>= 0.10'}
@@ -1996,6 +2807,14 @@ packages:
remeda@2.33.4:
resolution: {integrity: sha512-ygHswjlc/opg2VrtiYvUOPLjxjtdKvjGz1/plDhkG66hjNjFr1xmfrs2ClNFo/E6TyUFiwYNh53bKV26oBoMGQ==}
+ require-directory@2.1.1:
+ resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
+ engines: {node: '>=0.10.0'}
+
+ require-in-the-middle@7.5.2:
+ resolution: {integrity: sha512-gAZ+kLqBdHarXB64XpAe2VCjB7rIRv+mU8tfRWziHRJ5umKsIHN2tLLv6EtMw7WCdP19S0ERVMldNvxYCHnhSQ==}
+ engines: {node: '>=8.6.0'}
+
resolve-from@5.0.0:
resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==}
engines: {node: '>=8'}
@@ -2003,6 +2822,11 @@ packages:
resolve-pkg-maps@1.0.0:
resolution: {integrity: sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==}
+ resolve@1.22.11:
+ resolution: {integrity: sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==}
+ engines: {node: '>= 0.4'}
+ hasBin: true
+
retry@0.12.0:
resolution: {integrity: sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==}
engines: {node: '>= 4'}
@@ -2071,6 +2895,9 @@ packages:
resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
engines: {node: '>=8'}
+ shimmer@1.2.1:
+ resolution: {integrity: sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==}
+
side-channel-list@1.0.0:
resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==}
engines: {node: '>= 0.4'}
@@ -2169,9 +2996,17 @@ packages:
resolution: {integrity: sha512-QwiXZgpRcKkhTj2Scnn++4PKtWsH0kpzZ62L2R6c/LUVYv7hVnZqcg2+sMuT6R7Jusu1vviK/MFsu6kNJfWlEQ==}
engines: {node: '>=4'}
+ string-width@4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+
string_decoder@1.3.0:
resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ strip-ansi@6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+
strip-bom@3.0.0:
resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==}
engines: {node: '>=4'}
@@ -2200,6 +3035,10 @@ packages:
resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
engines: {node: '>=8'}
+ supports-preserve-symlinks-flag@1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+
swagger-jsdoc@6.2.8:
resolution: {integrity: sha512-VPvil1+JRpmJ55CgAtn8DIcpBs0bL5L3q5bVQvF4tAW/k/9JYSj7dCpaYCAv5rufe0vcCbBRQXGvzpkWjvLklQ==}
engines: {node: '>=12.0.0'}
@@ -2258,6 +3097,9 @@ packages:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
+ tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+
tr46@5.1.1:
resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==}
engines: {node: '>=18'}
@@ -2342,6 +3184,10 @@ packages:
resolution: {integrity: sha512-XQegIaBTVUjSHliKqcnFqYypAd4S+WCYt5NIeRs6w/UAry7z8Y9j5ZwRRL4kzq9U3sD6v+85er9FvkEaBpji2w==}
hasBin: true
+ uuid@9.0.1:
+ resolution: {integrity: sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==}
+ hasBin: true
+
valibot@1.2.0:
resolution: {integrity: sha512-mm1rxUsmOxzrwnX5arGS+U4T25RdvpPjPN4yR0u9pUBov9+zGVtO84tif1eY4r6zWxVxu3KzIyknJy3rxfRZZg==}
peerDependencies:
@@ -2435,6 +3281,9 @@ packages:
web-encoding@1.1.5:
resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
+ webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+
webidl-conversions@7.0.0:
resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==}
engines: {node: '>=12'}
@@ -2443,6 +3292,9 @@ packages:
resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==}
engines: {node: '>=18'}
+ whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+
which-typed-array@1.1.20:
resolution: {integrity: sha512-LYfpUkmqwl0h9A2HL09Mms427Q1RZWuOHsukfVcKRq9q95iQxdw0ix1JQrqbcDR9PH1QDwf5Qo8OZb5lksZ8Xg==}
engines: {node: '>= 0.4'}
@@ -2460,6 +3312,10 @@ packages:
wordwrap@1.0.0:
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
+ wrap-ansi@7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+
wrappy@1.0.2:
resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
@@ -2487,10 +3343,27 @@ packages:
resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==}
engines: {node: '>=0.4'}
+ y18n@5.0.8:
+ resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==}
+ engines: {node: '>=10'}
+
yaml@2.0.0-1:
resolution: {integrity: sha512-W7h5dEhywMKenDJh2iX/LABkbFnBxasD27oyXWDS/feDsxiw0dD5ncXdYXgkvAsXIY2MpW/ZKkr9IU30DBdMNQ==}
engines: {node: '>= 6'}
+ yaml@2.8.2:
+ resolution: {integrity: sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
+ yargs-parser@21.1.1:
+ resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==}
+ engines: {node: '>=12'}
+
+ yargs@17.7.2:
+ resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==}
+ engines: {node: '>=12'}
+
z-schema@5.0.5:
resolution: {integrity: sha512-D7eujBWkLa3p2sIpJA0d1pr7es+a7m0vFAnZLlCEKq/Ij2k0MLi9Br2UPxoxdYystm5K1yeBGzub0FlYUEWj2Q==}
engines: {node: '>=8.0.0'}
@@ -2552,126 +3425,1043 @@ snapshots:
'@chevrotain/utils@10.5.0': {}
- '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)':
+ '@electric-sql/pglite-socket@0.0.20(@electric-sql/pglite@0.3.15)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)':
+ dependencies:
+ '@electric-sql/pglite': 0.3.15
+
+ '@electric-sql/pglite@0.3.15': {}
+
+ '@esbuild/aix-ppc64@0.27.3':
+ optional: true
+
+ '@esbuild/android-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/android-arm@0.27.3':
+ optional: true
+
+ '@esbuild/android-x64@0.27.3':
+ optional: true
+
+ '@esbuild/darwin-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/darwin-x64@0.27.3':
+ optional: true
+
+ '@esbuild/freebsd-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/freebsd-x64@0.27.3':
+ optional: true
+
+ '@esbuild/linux-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/linux-arm@0.27.3':
+ optional: true
+
+ '@esbuild/linux-ia32@0.27.3':
+ optional: true
+
+ '@esbuild/linux-loong64@0.27.3':
+ optional: true
+
+ '@esbuild/linux-mips64el@0.27.3':
+ optional: true
+
+ '@esbuild/linux-ppc64@0.27.3':
+ optional: true
+
+ '@esbuild/linux-riscv64@0.27.3':
+ optional: true
+
+ '@esbuild/linux-s390x@0.27.3':
+ optional: true
+
+ '@esbuild/linux-x64@0.27.3':
+ optional: true
+
+ '@esbuild/netbsd-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/netbsd-x64@0.27.3':
+ optional: true
+
+ '@esbuild/openbsd-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/openbsd-x64@0.27.3':
+ optional: true
+
+ '@esbuild/openharmony-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/sunos-x64@0.27.3':
+ optional: true
+
+ '@esbuild/win32-arm64@0.27.3':
+ optional: true
+
+ '@esbuild/win32-ia32@0.27.3':
+ optional: true
+
+ '@esbuild/win32-x64@0.27.3':
+ optional: true
+
+ '@grpc/grpc-js@1.14.3':
+ dependencies:
+ '@grpc/proto-loader': 0.8.0
+ '@js-sdsl/ordered-map': 4.4.2
+
+ '@grpc/proto-loader@0.8.0':
+ dependencies:
+ lodash.camelcase: 4.3.0
+ long: 5.3.2
+ protobufjs: 7.5.4
+ yargs: 17.7.2
+
+ '@hono/node-server@1.19.9(hono@4.11.4)':
+ dependencies:
+ hono: 4.11.4
+
+ '@influxdata/influxdb-client@1.35.0': {}
+
+ '@jridgewell/gen-mapping@0.3.13':
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.5.5
+ '@jridgewell/trace-mapping': 0.3.31
+
+ '@jridgewell/resolve-uri@3.1.2': {}
+
+ '@jridgewell/sourcemap-codec@1.5.5': {}
+
+ '@jridgewell/trace-mapping@0.3.31':
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.2
+ '@jridgewell/sourcemap-codec': 1.5.5
+
+ '@js-sdsl/ordered-map@4.4.2': {}
+
+ '@jsdevtools/ono@7.1.3': {}
+
+ '@mongodb-js/saslprep@1.4.6':
+ dependencies:
+ sparse-bitfield: 3.0.3
+
+ '@mrleebo/prisma-ast@0.13.1':
+ dependencies:
+ chevrotain: 10.5.0
+ lilconfig: 2.1.0
+
+ '@noble/hashes@1.8.0': {}
+
+ '@opentelemetry/api-logs@0.200.0':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+
+ '@opentelemetry/api-logs@0.57.0':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+
+ '@opentelemetry/api@1.9.0': {}
+
+ '@opentelemetry/auto-instrumentations-node@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-amqplib': 0.47.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-aws-lambda': 0.51.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-aws-sdk': 0.50.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-bunyan': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-cassandra-driver': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-connect': 0.44.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-cucumber': 0.15.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-dataloader': 0.17.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-dns': 0.44.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-express': 0.48.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-fastify': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-fs': 0.20.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-generic-pool': 0.44.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-graphql': 0.48.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-grpc': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-hapi': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-ioredis': 0.48.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-kafkajs': 0.8.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-knex': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-koa': 0.48.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-lru-memoizer': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-memcached': 0.44.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongodb': 0.53.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mongoose': 0.47.1(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-mysql2': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-nestjs-core': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-net': 0.44.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-pg': 0.52.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-pino': 0.47.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-redis': 0.47.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-redis-4': 0.47.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-restify': 0.46.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-router': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-socket.io': 0.47.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-tedious': 0.19.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-undici': 0.11.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation-winston': 0.45.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-alibaba-cloud': 0.31.11(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-aws': 2.13.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-azure': 0.7.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-container': 0.7.11(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resource-detector-gcp': 0.34.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-node': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ '@opentelemetry/context-async-hooks@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+
+ '@opentelemetry/context-async-hooks@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+
+ '@opentelemetry/core@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/semantic-conventions': 1.28.0
+
+ '@opentelemetry/core@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/semantic-conventions': 1.30.0
+
+ '@opentelemetry/core@2.6.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/semantic-conventions': 1.30.0
+
+ '@opentelemetry/exporter-logs-otlp-grpc@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-logs-otlp-grpc@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-logs-otlp-http@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-logs-otlp-http@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-logs-otlp-proto@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-logs-otlp-proto@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-grpc@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-grpc@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-http@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-http@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-proto@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-metrics-otlp-proto@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-prometheus@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-prometheus@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-grpc@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-grpc@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-grpc-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-http@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-http@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-proto@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-trace-otlp-proto@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/exporter-zipkin@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.28.0
+
+ '@opentelemetry/exporter-zipkin@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+
+ '@opentelemetry/instrumentation-amqplib@0.47.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-aws-lambda@0.51.1(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@types/aws-lambda': 8.10.147
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-aws-sdk@0.50.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/propagation-utils': 0.31.16(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-bunyan@0.46.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@types/bunyan': 1.8.11
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-cassandra-driver@0.46.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-connect@0.44.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@types/connect': 3.4.38
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-cucumber@0.15.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-dataloader@0.17.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-dns@0.44.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-express@0.48.1(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-fastify@0.45.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-fs@0.20.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-generic-pool@0.44.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-graphql@0.48.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-grpc@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-hapi@0.46.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-http@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ forwarded-parse: 2.1.2
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-ioredis@0.48.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/redis-common': 0.37.0
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-kafkajs@0.8.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-knex@0.45.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-koa@0.48.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-lru-memoizer@0.45.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-memcached@0.44.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@types/memcached': 2.2.10
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-mongodb@0.53.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-mongoose@0.47.1(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-mysql2@0.46.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
+
+ '@opentelemetry/instrumentation-mysql@0.46.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@electric-sql/pglite': 0.3.15
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@types/mysql': 2.15.26
+ transitivePeerDependencies:
+ - supports-color
- '@electric-sql/pglite-tools@0.2.20(@electric-sql/pglite@0.3.15)':
+ '@opentelemetry/instrumentation-nestjs-core@0.45.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@electric-sql/pglite': 0.3.15
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@electric-sql/pglite@0.3.15': {}
+ '@opentelemetry/instrumentation-net@0.44.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/aix-ppc64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-pg@0.52.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@opentelemetry/sql-common': 0.41.2(@opentelemetry/api@1.9.0)
+ '@types/pg': 8.6.1
+ '@types/pg-pool': 2.0.6
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/android-arm64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-pino@0.47.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/android-arm@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-redis-4@0.47.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/redis-common': 0.37.0
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/android-x64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-redis@0.47.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/redis-common': 0.37.0
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/darwin-arm64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-restify@0.46.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/darwin-x64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-router@0.45.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/freebsd-arm64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-socket.io@0.47.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/freebsd-x64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-tedious@0.19.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ '@types/tedious': 4.0.14
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/linux-arm64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-undici@0.11.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/linux-arm@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation-winston@0.45.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/linux-ia32@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@types/shimmer': 1.2.0
+ import-in-the-middle: 1.15.0
+ require-in-the-middle: 7.5.2
+ shimmer: 1.2.1
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/linux-loong64@0.27.3':
- optional: true
+ '@opentelemetry/instrumentation@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@types/shimmer': 1.2.0
+ import-in-the-middle: 1.15.0
+ require-in-the-middle: 7.5.2
+ semver: 7.7.4
+ shimmer: 1.2.1
+ transitivePeerDependencies:
+ - supports-color
- '@esbuild/linux-mips64el@0.27.3':
- optional: true
+ '@opentelemetry/otlp-exporter-base@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
- '@esbuild/linux-ppc64@0.27.3':
- optional: true
+ '@opentelemetry/otlp-exporter-base@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
- '@esbuild/linux-riscv64@0.27.3':
- optional: true
+ '@opentelemetry/otlp-grpc-exporter-base@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.200.0(@opentelemetry/api@1.9.0)
- '@esbuild/linux-s390x@0.27.3':
- optional: true
+ '@opentelemetry/otlp-grpc-exporter-base@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@grpc/grpc-js': 1.14.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-exporter-base': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/otlp-transformer': 0.57.0(@opentelemetry/api@1.9.0)
- '@esbuild/linux-x64@0.27.3':
- optional: true
+ '@opentelemetry/otlp-transformer@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+ protobufjs: 7.5.4
- '@esbuild/netbsd-arm64@0.27.3':
- optional: true
+ '@opentelemetry/otlp-transformer@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+ protobufjs: 7.5.4
- '@esbuild/netbsd-x64@0.27.3':
- optional: true
+ '@opentelemetry/propagation-utils@0.31.16(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
- '@esbuild/openbsd-arm64@0.27.3':
- optional: true
+ '@opentelemetry/propagator-b3@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
- '@esbuild/openbsd-x64@0.27.3':
- optional: true
+ '@opentelemetry/propagator-b3@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
- '@esbuild/openharmony-arm64@0.27.3':
- optional: true
+ '@opentelemetry/propagator-jaeger@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
- '@esbuild/sunos-x64@0.27.3':
- optional: true
+ '@opentelemetry/propagator-jaeger@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
- '@esbuild/win32-arm64@0.27.3':
- optional: true
+ '@opentelemetry/redis-common@0.37.0': {}
- '@esbuild/win32-ia32@0.27.3':
- optional: true
+ '@opentelemetry/resource-detector-alibaba-cloud@0.31.11(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
- '@esbuild/win32-x64@0.27.3':
- optional: true
+ '@opentelemetry/resource-detector-aws@2.13.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
- '@hono/node-server@1.19.9(hono@4.11.4)':
+ '@opentelemetry/resource-detector-azure@0.7.0(@opentelemetry/api@1.9.0)':
dependencies:
- hono: 4.11.4
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
- '@influxdata/influxdb-client@1.35.0': {}
+ '@opentelemetry/resource-detector-container@0.7.11(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
- '@jridgewell/gen-mapping@0.3.13':
+ '@opentelemetry/resource-detector-gcp@0.34.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@jridgewell/sourcemap-codec': 1.5.5
- '@jridgewell/trace-mapping': 0.3.31
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ gcp-metadata: 6.1.1
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
- '@jridgewell/resolve-uri@3.1.2': {}
+ '@opentelemetry/resources@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.28.0
+
+ '@opentelemetry/resources@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+
+ '@opentelemetry/resources@2.6.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+
+ '@opentelemetry/sdk-logs@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/sdk-logs@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/sdk-metrics@1.30.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/sdk-metrics@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+
+ '@opentelemetry/sdk-node@0.200.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.200.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-grpc': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-proto': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-grpc': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-proto': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-prometheus': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-grpc': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-http': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-proto': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-zipkin': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/propagator-b3': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/propagator-jaeger': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.200.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-node': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
+ transitivePeerDependencies:
+ - supports-color
- '@jridgewell/sourcemap-codec@1.5.5': {}
+ '@opentelemetry/sdk-node@0.57.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/api-logs': 0.57.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-grpc': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-http': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-logs-otlp-proto': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-grpc': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-http': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-metrics-otlp-proto': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-prometheus': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-grpc': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-http': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-trace-otlp-proto': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/exporter-zipkin': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/instrumentation': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-logs': 0.57.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-metrics': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-node': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.28.0
+ transitivePeerDependencies:
+ - supports-color
- '@jridgewell/trace-mapping@0.3.31':
+ '@opentelemetry/sdk-trace-base@1.30.0(@opentelemetry/api@1.9.0)':
dependencies:
- '@jridgewell/resolve-uri': 3.1.2
- '@jridgewell/sourcemap-codec': 1.5.5
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.28.0
- '@jsdevtools/ono@7.1.3': {}
+ '@opentelemetry/sdk-trace-base@2.0.0(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/resources': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/semantic-conventions': 1.30.0
- '@mongodb-js/saslprep@1.4.6':
+ '@opentelemetry/sdk-trace-node@1.30.0(@opentelemetry/api@1.9.0)':
dependencies:
- sparse-bitfield: 3.0.3
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/context-async-hooks': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/propagator-b3': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/propagator-jaeger': 1.30.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 1.30.0(@opentelemetry/api@1.9.0)
+ semver: 7.7.4
- '@mrleebo/prisma-ast@0.13.1':
+ '@opentelemetry/sdk-trace-node@2.0.0(@opentelemetry/api@1.9.0)':
dependencies:
- chevrotain: 10.5.0
- lilconfig: 2.1.0
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/context-async-hooks': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/core': 2.0.0(@opentelemetry/api@1.9.0)
+ '@opentelemetry/sdk-trace-base': 2.0.0(@opentelemetry/api@1.9.0)
- '@noble/hashes@1.8.0': {}
+ '@opentelemetry/semantic-conventions@1.28.0': {}
+
+ '@opentelemetry/semantic-conventions@1.30.0': {}
+
+ '@opentelemetry/sql-common@0.41.2(@opentelemetry/api@1.9.0)':
+ dependencies:
+ '@opentelemetry/api': 1.9.0
+ '@opentelemetry/core': 2.6.0(@opentelemetry/api@1.9.0)
'@paralleldrive/cuid2@2.3.1':
dependencies:
@@ -2770,6 +4560,29 @@ snapshots:
react: 19.2.3
react-dom: 19.2.3(react@19.2.3)
+ '@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':
+ dependencies:
+ '@protobufjs/aspromise': 1.1.2
+ '@protobufjs/inquire': 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': {}
+
'@redis/bloom@5.11.0(@redis/client@5.11.0)':
dependencies:
'@redis/client': 5.11.0
@@ -2871,11 +4684,17 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
+ '@types/aws-lambda@8.10.147': {}
+
'@types/body-parser@1.19.6':
dependencies:
'@types/connect': 3.4.38
'@types/node': 25.3.0
+ '@types/bunyan@1.8.11':
+ dependencies:
+ '@types/node': 25.3.0
+
'@types/chai@5.2.3':
dependencies:
'@types/deep-eql': 4.0.2
@@ -2926,6 +4745,10 @@ snapshots:
'@types/ms': 2.1.0
'@types/node': 25.3.0
+ '@types/memcached@2.2.10':
+ dependencies:
+ '@types/node': 25.3.0
+
'@types/methods@1.1.4': {}
'@types/ms@2.1.0': {}
@@ -2934,6 +4757,10 @@ snapshots:
dependencies:
'@types/express': 5.0.6
+ '@types/mysql@2.15.26':
+ dependencies:
+ '@types/node': 25.3.0
+
'@types/node@25.3.0':
dependencies:
undici-types: 7.18.2
@@ -2942,12 +4769,22 @@ snapshots:
dependencies:
'@types/node': 25.3.0
+ '@types/pg-pool@2.0.6':
+ dependencies:
+ '@types/pg': 8.16.0
+
'@types/pg@8.16.0':
dependencies:
'@types/node': 25.3.0
pg-protocol: 1.11.0
pg-types: 2.2.0
+ '@types/pg@8.6.1':
+ dependencies:
+ '@types/node': 25.3.0
+ pg-protocol: 1.11.0
+ pg-types: 2.2.0
+
'@types/qs@6.14.0': {}
'@types/range-parser@1.2.7': {}
@@ -2965,6 +4802,8 @@ snapshots:
'@types/http-errors': 2.0.5
'@types/node': 25.3.0
+ '@types/shimmer@1.2.0': {}
+
'@types/superagent@8.1.9':
dependencies:
'@types/cookiejar': 2.1.5
@@ -2984,6 +4823,10 @@ snapshots:
'@types/express': 5.0.6
'@types/serve-static': 2.2.0
+ '@types/tedious@4.0.14':
+ dependencies:
+ '@types/node': 25.3.0
+
'@types/uuid@11.0.0':
dependencies:
uuid: 13.0.0
@@ -3006,7 +4849,7 @@ snapshots:
obug: 2.1.1
std-env: 3.10.0
tinyrainbow: 3.0.3
- vitest: 4.0.18(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/expect@4.0.18':
dependencies:
@@ -3017,13 +4860,13 @@ snapshots:
chai: 6.2.2
tinyrainbow: 3.0.3
- '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0))':
+ '@vitest/mocker@4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))':
dependencies:
'@vitest/spy': 4.0.18
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)
+ vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/pretty-format@4.0.18':
dependencies:
@@ -3051,7 +4894,7 @@ snapshots:
sirv: 3.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vitest: 4.0.18(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)
+ vitest: 4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
'@vitest/utils@4.0.18':
dependencies:
@@ -3071,8 +4914,20 @@ snapshots:
mime-types: 3.0.2
negotiator: 1.0.0
+ acorn-import-attributes@1.9.5(acorn@8.16.0):
+ dependencies:
+ acorn: 8.16.0
+
acorn@8.16.0: {}
+ agent-base@7.1.4: {}
+
+ ansi-regex@5.0.1: {}
+
+ ansi-styles@4.3.0:
+ dependencies:
+ color-convert: 2.0.1
+
any-promise@1.3.0: {}
append-field@1.0.0: {}
@@ -3105,6 +4960,8 @@ snapshots:
base64id@2.0.0: {}
+ bignumber.js@9.3.1: {}
+
block-stream2@2.1.0:
dependencies:
readable-stream: 3.6.2
@@ -3207,8 +5064,22 @@ snapshots:
citty@0.2.1: {}
+ cjs-module-lexer@1.4.3: {}
+
+ cliui@8.0.1:
+ dependencies:
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ wrap-ansi: 7.0.0
+
cluster-key-slot@1.1.2: {}
+ color-convert@2.0.1:
+ dependencies:
+ color-name: 1.1.4
+
+ color-name@1.1.4: {}
+
colorette@2.0.20: {}
combined-stream@1.0.8:
@@ -3354,6 +5225,8 @@ snapshots:
'@standard-schema/spec': 1.1.0
fast-check: 3.23.2
+ emoji-regex@8.0.0: {}
+
empathic@2.0.0: {}
encodeurl@2.0.0: {}
@@ -3426,6 +5299,8 @@ snapshots:
'@esbuild/win32-ia32': 0.27.3
'@esbuild/win32-x64': 0.27.3
+ escalade@3.2.0: {}
+
escape-html@1.0.3: {}
estree-walker@3.0.3:
@@ -3493,6 +5368,8 @@ snapshots:
exsolve@1.0.8: {}
+ extend@3.0.2: {}
+
fast-check@3.23.2:
dependencies:
pure-rand: 6.1.0
@@ -3555,6 +5432,8 @@ snapshots:
dezalgo: 1.0.4
once: 1.4.0
+ forwarded-parse@2.1.2: {}
+
forwarded@0.2.0: {}
fresh@2.0.0: {}
@@ -3564,6 +5443,26 @@ snapshots:
function-bind@1.1.2: {}
+ gaxios@6.7.1:
+ dependencies:
+ extend: 3.0.2
+ https-proxy-agent: 7.0.6
+ is-stream: 2.0.1
+ node-fetch: 2.7.0
+ uuid: 9.0.1
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
+ gcp-metadata@6.1.1:
+ dependencies:
+ gaxios: 6.7.1
+ google-logging-utils: 0.0.2
+ json-bigint: 1.0.0
+ transitivePeerDependencies:
+ - encoding
+ - supports-color
+
generate-function@2.3.1:
dependencies:
is-property: 1.0.2
@@ -3611,6 +5510,8 @@ snapshots:
minipass: 7.1.3
path-scurry: 2.0.2
+ google-logging-utils@0.0.2: {}
+
gopd@1.2.0: {}
graceful-fs@4.2.11: {}
@@ -3660,10 +5561,24 @@ snapshots:
http-status-codes@2.3.0: {}
+ https-proxy-agent@7.0.6:
+ dependencies:
+ agent-base: 7.1.4
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
+
iconv-lite@0.7.2:
dependencies:
safer-buffer: 2.1.2
+ import-in-the-middle@1.15.0:
+ dependencies:
+ acorn: 8.16.0
+ acorn-import-attributes: 1.9.5(acorn@8.16.0)
+ cjs-module-lexer: 1.4.3
+ module-details-from-path: 1.0.4
+
inherits@2.0.4: {}
ip-address@10.0.1: {}
@@ -3679,6 +5594,12 @@ snapshots:
is-callable@1.2.7: {}
+ is-core-module@2.16.1:
+ dependencies:
+ hasown: 2.0.2
+
+ is-fullwidth-code-point@3.0.0: {}
+
is-generator-function@1.1.2:
dependencies:
call-bound: 1.0.4
@@ -3698,6 +5619,8 @@ snapshots:
has-tostringtag: 1.0.2
hasown: 2.0.2
+ is-stream@2.0.1: {}
+
is-typed-array@1.1.15:
dependencies:
which-typed-array: 1.1.20
@@ -3727,6 +5650,10 @@ snapshots:
dependencies:
argparse: 2.0.1
+ json-bigint@1.0.0:
+ dependencies:
+ bignumber.js: 9.3.1
+
json5@2.2.3: {}
jsonwebtoken@9.0.3:
@@ -3765,6 +5692,8 @@ snapshots:
load-tsconfig@0.2.5: {}
+ lodash.camelcase@4.3.0: {}
+
lodash.get@4.4.2: {}
lodash.includes@4.3.0: {}
@@ -3876,6 +5805,8 @@ snapshots:
pkg-types: 1.3.1
ufo: 1.6.3
+ module-details-from-path@1.0.4: {}
+
mongodb-connection-string-url@7.0.1:
dependencies:
'@types/whatwg-url': 13.0.0
@@ -3964,6 +5895,10 @@ snapshots:
node-fetch-native@1.6.7: {}
+ node-fetch@2.7.0:
+ dependencies:
+ whatwg-url: 5.0.0
+
nodemailer@7.0.13: {}
nypm@0.6.5:
@@ -3998,6 +5933,8 @@ snapshots:
path-key@3.1.1: {}
+ path-parse@1.0.7: {}
+
path-scurry@2.0.2:
dependencies:
lru-cache: 11.2.6
@@ -4107,13 +6044,14 @@ snapshots:
possible-typed-array-names@1.1.0: {}
- postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0):
+ postcss-load-config@6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
lilconfig: 3.1.3
optionalDependencies:
jiti: 2.6.1
postcss: 8.5.6
tsx: 4.21.0
+ yaml: 2.8.2
postcss@8.5.6:
dependencies:
@@ -4159,6 +6097,21 @@ snapshots:
retry: 0.12.0
signal-exit: 3.0.7
+ protobufjs@7.5.4:
+ 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': 25.3.0
+ long: 5.3.2
+
proxy-addr@2.0.7:
dependencies:
forwarded: 0.2.0
@@ -4233,10 +6186,26 @@ snapshots:
remeda@2.33.4: {}
+ require-directory@2.1.1: {}
+
+ require-in-the-middle@7.5.2:
+ dependencies:
+ debug: 4.4.3
+ module-details-from-path: 1.0.4
+ resolve: 1.22.11
+ transitivePeerDependencies:
+ - supports-color
+
resolve-from@5.0.0: {}
resolve-pkg-maps@1.0.0: {}
+ resolve@1.22.11:
+ dependencies:
+ is-core-module: 2.16.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+
retry@0.12.0: {}
rollup@4.59.0:
@@ -4344,6 +6313,8 @@ snapshots:
shebang-regex@3.0.0: {}
+ shimmer@1.2.1: {}
+
side-channel-list@1.0.0:
dependencies:
es-errors: 1.3.0
@@ -4452,10 +6423,20 @@ snapshots:
strict-uri-encode@2.0.0: {}
+ string-width@4.2.3:
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+
string_decoder@1.3.0:
dependencies:
safe-buffer: 5.2.1
+ strip-ansi@6.0.1:
+ dependencies:
+ ansi-regex: 5.0.1
+
strip-bom@3.0.0: {}
strip-json-comments@5.0.3: {}
@@ -4498,6 +6479,8 @@ snapshots:
dependencies:
has-flag: 4.0.0
+ supports-preserve-symlinks-flag@1.0.0: {}
+
swagger-jsdoc@6.2.8(openapi-types@12.1.3):
dependencies:
commander: 6.2.0
@@ -4557,6 +6540,8 @@ snapshots:
totalist@3.0.1: {}
+ tr46@0.0.3: {}
+
tr46@5.1.1:
dependencies:
punycode: 2.3.1
@@ -4571,7 +6556,7 @@ snapshots:
minimist: 1.2.8
strip-bom: 3.0.0
- tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3):
+ tsup@8.5.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(typescript@5.9.3)(yaml@2.8.2):
dependencies:
bundle-require: 5.1.0(esbuild@0.27.3)
cac: 6.7.14
@@ -4582,7 +6567,7 @@ snapshots:
fix-dts-default-cjs-exports: 1.0.1
joycon: 3.1.1
picocolors: 1.1.1
- postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)
+ postcss-load-config: 6.0.1(jiti@2.6.1)(postcss@8.5.6)(tsx@4.21.0)(yaml@2.8.2)
resolve-from: 5.0.0
rollup: 4.59.0
source-map: 0.7.6
@@ -4646,6 +6631,8 @@ snapshots:
uuid@13.0.0: {}
+ uuid@9.0.1: {}
+
valibot@1.2.0(typescript@5.9.3):
optionalDependencies:
typescript: 5.9.3
@@ -4654,7 +6641,7 @@ snapshots:
vary@1.1.2: {}
- vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0):
+ vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
esbuild: 0.27.3
fdir: 6.5.0(picomatch@4.0.3)
@@ -4667,11 +6654,12 @@ snapshots:
fsevents: 2.3.3
jiti: 2.6.1
tsx: 4.21.0
+ yaml: 2.8.2
- vitest@4.0.18(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0):
+ vitest@4.0.18(@opentelemetry/api@1.9.0)(@types/node@25.3.0)(@vitest/ui@4.0.18)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2):
dependencies:
'@vitest/expect': 4.0.18
- '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0))
+ '@vitest/mocker': 4.0.18(vite@7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2))
'@vitest/pretty-format': 4.0.18
'@vitest/runner': 4.0.18
'@vitest/snapshot': 4.0.18
@@ -4688,9 +6676,10 @@ snapshots:
tinyexec: 1.0.2
tinyglobby: 0.2.15
tinyrainbow: 3.0.3
- vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)
+ vite: 7.3.1(@types/node@25.3.0)(jiti@2.6.1)(tsx@4.21.0)(yaml@2.8.2)
why-is-node-running: 2.3.0
optionalDependencies:
+ '@opentelemetry/api': 1.9.0
'@types/node': 25.3.0
'@vitest/ui': 4.0.18(vitest@4.0.18)
transitivePeerDependencies:
@@ -4712,6 +6701,8 @@ snapshots:
optionalDependencies:
'@zxing/text-encoding': 0.9.0
+ webidl-conversions@3.0.1: {}
+
webidl-conversions@7.0.0: {}
whatwg-url@14.2.0:
@@ -4719,6 +6710,11 @@ snapshots:
tr46: 5.1.1
webidl-conversions: 7.0.0
+ whatwg-url@5.0.0:
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+
which-typed-array@1.1.20:
dependencies:
available-typed-arrays: 1.0.7
@@ -4740,6 +6736,12 @@ snapshots:
wordwrap@1.0.0: {}
+ wrap-ansi@7.0.0:
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+
wrappy@1.0.2: {}
ws@8.18.3: {}
@@ -4753,8 +6755,25 @@ snapshots:
xtend@4.0.2: {}
+ y18n@5.0.8: {}
+
yaml@2.0.0-1: {}
+ yaml@2.8.2:
+ optional: true
+
+ yargs-parser@21.1.1: {}
+
+ yargs@17.7.2:
+ dependencies:
+ cliui: 8.0.1
+ escalade: 3.2.0
+ get-caller-file: 2.0.5
+ require-directory: 2.1.1
+ string-width: 4.2.3
+ y18n: 5.0.8
+ yargs-parser: 21.1.1
+
z-schema@5.0.5:
dependencies:
lodash.get: 4.4.2
diff --git a/api/src/__tests__/unit/infrastructure/messaging/consumers/chamado.consumer.test.ts b/api/src/__tests__/unit/infrastructure/messaging/consumers/chamado.consumer.test.ts
index 0f2a16a..40cf4d3 100644
--- a/api/src/__tests__/unit/infrastructure/messaging/consumers/chamado.consumer.test.ts
+++ b/api/src/__tests__/unit/infrastructure/messaging/consumers/chamado.consumer.test.ts
@@ -187,7 +187,6 @@ describe('renderTemplate', () => {
describe('Erros inesperados', () => {
it('deve embrulhar erro genérico do readFileSync em TemplateError com originalError', () => {
const erroIo = new Error('EACCES: permission denied');
- // Substitui diretamente sem depender do estado acumulado
fsMock.readFileSync = vi.fn().mockImplementation(() => { throw erroIo; }) as any;
try {
@@ -424,7 +423,10 @@ describe('startChamadoConsumer', () => {
it('deve conectar, subscrever e iniciar o consumer', async () => {
await startChamadoConsumer();
- expect(kafkaMock.consumer).toHaveBeenCalledWith({ groupId: 'chamado-group' });
+ // FIX: objectContaining para não quebrar com opções extras de tuning
+ expect(kafkaMock.consumer).toHaveBeenCalledWith(
+ expect.objectContaining({ groupId: 'chamado-group' })
+ );
expect(kafkaConsumerMock.connect).toHaveBeenCalledOnce();
expect(kafkaConsumerMock.subscribe).toHaveBeenCalledWith({
topic: 'chamado-status',
diff --git a/api/src/app.ts b/api/src/app.ts
index c03cb69..048bf72 100644
--- a/api/src/app.ts
+++ b/api/src/app.ts
@@ -8,10 +8,11 @@ import { swaggerSpec } from './shared/config/swagger';
import { redisClient } from './infrastructure/database/redis/client';
import { errorLoggerMiddleware } from './infrastructure/http/middlewares/error-logger.middleware';
import { requestLoggerMiddleware } from './infrastructure/http/middlewares/request-logger.middleware';
+import { tracingMiddleware } from '@infrastructure/http/middlewares/tracing.middleware';
import routes from './presentation/http/routes';
import { initSocketIO } from './infrastructure/websocket/socket';
-import { startNotificacaoConsumer, stopNotificacaoConsumer } from './infrastructure/messaging/kafka/consumers/notificacao.consumer';
-import { startSLAJob } from './infrastructure/jobs/sla.job';
+import { startNotificacaoConsumer } from '@infrastructure/messaging/kafka/consumers/notificacao.consumer';
+import { startSLAJob } from '@infrastructure/jobs/sla.job';
const JWT_SECRET = process.env.JWT_SECRET;
if (!JWT_SECRET) {
@@ -42,38 +43,29 @@ app.use(session({
secure: process.env.NODE_ENV === 'production',
httpOnly: true,
maxAge: 8 * 60 * 60 * 1000,
- sameSite: 'lax'
- }
+ sameSite: 'lax',
+ },
}));
-app.get('/', (req: Request, res: Response) => {
- res.json({
- message: 'Help-Me API',
- version: '1.2.1',
- docs: '/api-docs',
- health: '/health'
- });
+app.get('/', (_req: Request, res: Response) => {
+ res.json({ message: 'Help-Me API', version: '1.2.5', docs: '/api-docs', health: '/health' });
});
-app.get('/health', (req: Request, res: Response) => {
+app.get('/health', (_req: Request, res: Response) => {
res.status(200).json({
status: 'ok',
timestamp: new Date().toISOString(),
uptime: process.uptime(),
service: 'helpme-api',
- environment: process.env.NODE_ENV || 'development'
+ environment: process.env.NODE_ENV || 'development',
});
});
-app.use(
- '/api-docs',
- swaggerUi.serve,
- swaggerUi.setup(swaggerSpec, {
- swaggerOptions: {
- defaultModelsExpandDepth: -1,
- },
- }),
-);
+app.use('/api-docs', swaggerUi.serve, swaggerUi.setup(swaggerSpec, {
+ swaggerOptions: { defaultModelsExpandDepth: -1 },
+}));
+
+app.use(tracingMiddleware);
app.use('/api', routes);
@@ -90,45 +82,24 @@ app.use((req: Request, res: Response) => {
app.use(errorLoggerMiddleware);
-app.use((err: any, req: Request, res: Response, next: NextFunction) => {
+app.use((err: any, req: Request, res: Response, _next: NextFunction) => {
const statusCode = err.status || err.statusCode || 500;
res.status(statusCode).json({
success: false,
+ requestId: req.id,
error: {
message: err.message || 'Erro interno do servidor',
...(process.env.NODE_ENV === 'development' && { stack: err.stack }),
},
- requestId: req.id,
});
});
export const httpServer = http.createServer(app);
initSocketIO(httpServer);
-let slaJob: NodeJS.Timeout | null = null;
-
export async function startServices(): Promise {
await startNotificacaoConsumer();
- slaJob = startSLAJob();
+ startSLAJob();
}
-async function shutdown(signal: string): Promise {
- app.locals.logger?.info(`[SHUTDOWN] Sinal recebido: ${signal}`);
-
- if (slaJob) clearInterval(slaJob);
-
- await stopNotificacaoConsumer();
-
- httpServer.close(() => {
- app.locals.logger?.info('[SHUTDOWN] Servidor encerrado');
- process.exit(0);
- });
-
- // Força saída após 10s caso algo trave
- setTimeout(() => process.exit(1), 10_000).unref();
-}
-
-process.on('SIGTERM', () => shutdown('SIGTERM'));
-process.on('SIGINT', () => shutdown('SIGINT'));
-
export default app;
\ No newline at end of file
diff --git a/api/src/infrastructure/database/prisma/client.ts b/api/src/infrastructure/database/prisma/client.ts
index 10fea3b..e685a07 100644
--- a/api/src/infrastructure/database/prisma/client.ts
+++ b/api/src/infrastructure/database/prisma/client.ts
@@ -14,7 +14,9 @@ const pool = new Pool({
connectionString,
max: parseInt(process.env.DB_MAX_CONNECTIONS || '10', 10),
idleTimeoutMillis: 30000,
- connectionTimeoutMillis: 2000,
+ connectionTimeoutMillis: 10000, // 2s → 10s
+ keepAlive: true, // evita que o TCP caia silenciosamente
+ keepAliveInitialDelayMillis: 10000,
});
const adapter = new PrismaPg(pool);
diff --git a/api/src/infrastructure/http/middlewares/tracing.middleware.ts b/api/src/infrastructure/http/middlewares/tracing.middleware.ts
new file mode 100644
index 0000000..f853aca
--- /dev/null
+++ b/api/src/infrastructure/http/middlewares/tracing.middleware.ts
@@ -0,0 +1,16 @@
+import { trace, context } from '@opentelemetry/api';
+import { Request, Response, NextFunction } from 'express';
+
+export function tracingMiddleware(req: Request, res: Response, next: NextFunction) {
+ const span = trace.getActiveSpan();
+ const spanContext = span?.spanContext();
+
+ if (spanContext) {
+ req.log = req.log.child({
+ traceId: spanContext.traceId,
+ spanId: spanContext.spanId,
+ });
+ }
+
+ next();
+}
\ No newline at end of file
diff --git a/api/src/infrastructure/messaging/kafka/client.ts b/api/src/infrastructure/messaging/kafka/client.ts
index ccb1846..a71fb83 100644
--- a/api/src/infrastructure/messaging/kafka/client.ts
+++ b/api/src/infrastructure/messaging/kafka/client.ts
@@ -2,7 +2,9 @@ import { Kafka, Producer, logLevel, LogEntry } from 'kafkajs';
import { logger } from '@shared/config/logger';
const ignoreMessages = [
- 'The group is rebalancing, so a rejoin is needed'
+ 'The group is rebalancing, so a rejoin is needed',
+ 'Connection timeout',
+ 'Failed to connect to seed broker',
];
export const customLogCreator = () => (entry: LogEntry) => {
@@ -50,16 +52,16 @@ function getKafkaInstance(): Kafka {
};
kafkaInstance = new Kafka({
- clientId: kafkaConfig.clientId,
+ clientId: 'helpdesk-api',
brokers: kafkaConfig.brokers,
logLevel: logLevel.ERROR,
logCreator: customLogCreator,
retry: {
initialRetryTime: 300,
- retries: 3
+ retries: 3,
},
- connectionTimeout: 3000,
- requestTimeout: 25000
+ connectionTimeout: 10000,
+ requestTimeout: 90000, // precisa ser > rebalanceTimeoutMs (60000)
});
return kafkaInstance;
diff --git a/api/src/infrastructure/messaging/kafka/consumers/chamado.consumer.ts b/api/src/infrastructure/messaging/kafka/consumers/chamado.consumer.ts
index b1b906b..b125eb4 100644
--- a/api/src/infrastructure/messaging/kafka/consumers/chamado.consumer.ts
+++ b/api/src/infrastructure/messaging/kafka/consumers/chamado.consumer.ts
@@ -324,7 +324,12 @@ export async function startChamadoConsumer(): Promise {
// Criar consumer apenas se não existir
if (!consumerInstance) {
- consumerInstance = kafka.consumer({ groupId: 'chamado-group' });
+ consumerInstance = kafka.consumer({
+ groupId: 'chamado-group',
+ sessionTimeout: 60000, // padrão é 30000 — dobrar
+ heartbeatInterval: 5000, // padrão é 3000
+ maxWaitTimeInMs: 5000, // tempo máximo de espera por mensagens no Fetch
+ });
logger.debug('Consumer instance criada');
}
diff --git a/api/src/infrastructure/messaging/kafka/consumers/notificacao.consumer.ts b/api/src/infrastructure/messaging/kafka/consumers/notificacao.consumer.ts
index dbba70a..ddf53df 100644
--- a/api/src/infrastructure/messaging/kafka/consumers/notificacao.consumer.ts
+++ b/api/src/infrastructure/messaging/kafka/consumers/notificacao.consumer.ts
@@ -199,7 +199,12 @@ export async function startNotificacaoConsumer(): Promise {
}
try {
- consumerInstance = kafka.consumer({ groupId: 'helpme-notificacoes-group' });
+ consumerInstance = kafka.consumer({
+ groupId: 'helpme-notificacoes-group',
+ sessionTimeout: 60000,
+ heartbeatInterval: 5000,
+ maxWaitTimeInMs: 5000,
+ });
await consumerInstance.connect();
logger.info('Consumer de notificações conectado');
diff --git a/api/src/server.ts b/api/src/server.ts
index d5d9a74..68b1ade 100644
--- a/api/src/server.ts
+++ b/api/src/server.ts
@@ -1,3 +1,6 @@
+import 'dotenv/config';
+
+import './shared/config/tracing';
import mongoose from 'mongoose';
import { logger } from './shared/config/logger';
import { prisma } from './infrastructure/database/prisma/client';
diff --git a/api/src/shared/config/logger.ts b/api/src/shared/config/logger.ts
index 9828d6c..2e64b33 100644
--- a/api/src/shared/config/logger.ts
+++ b/api/src/shared/config/logger.ts
@@ -1,4 +1,6 @@
import pino from 'pino';
+import { trace } from '@opentelemetry/api';
+import { sendToLoki } from './loki-sender';
const isDevelopment = process.env.NODE_ENV !== 'production';
@@ -17,18 +19,26 @@ const transport = isDevelopment
export const logger = pino(
{
level: process.env.LOG_LEVEL || 'info',
-
+
formatters: {
- level: (label) => {
- return { level: label };
- },
- bindings: (bindings) => {
- return {
- pid: bindings.pid,
- hostname: bindings.hostname,
- service: 'helpme-api',
- environment: process.env.NODE_ENV || 'development',
- };
+ level: (label) => ({ level: label }),
+ bindings: (bindings) => ({
+ pid: bindings.pid,
+ hostname: bindings.hostname,
+ service: 'helpme-api',
+ environment: process.env.NODE_ENV || 'development',
+ }),
+ log: (object) => {
+ const span = trace.getActiveSpan();
+ const enriched = span ? {
+ ...object,
+ ...span.spanContext(),
+ } : object;
+
+ // Enviar para Loki no mesmo processo
+ sendToLoki(enriched as Record);
+
+ return enriched;
},
},
@@ -44,9 +54,7 @@ export const logger = pino(
remoteAddress: req.remoteAddress || req.ip,
remotePort: req.remotePort,
}),
- res: (res) => ({
- statusCode: res.statusCode,
- }),
+ res: (res) => ({ statusCode: res.statusCode }),
err: pino.stdSerializers.err,
error: pino.stdSerializers.err,
},
@@ -54,8 +62,6 @@ export const logger = pino(
transport
);
-export const testLogger = pino({
- level: 'silent',
-});
+export const testLogger = pino({ level: 'silent' });
export default logger;
\ No newline at end of file
diff --git a/api/src/shared/config/loki-sender.ts b/api/src/shared/config/loki-sender.ts
new file mode 100644
index 0000000..83b90ae
--- /dev/null
+++ b/api/src/shared/config/loki-sender.ts
@@ -0,0 +1,34 @@
+const LOKI_URL = process.env.LOKI_URL ?? 'http://localhost:3100';
+const buffer: [string, string][] = [];
+let timer: NodeJS.Timeout | null = null;
+
+const flush = async () => {
+ if (buffer.length === 0) return;
+ const values = buffer.splice(0, buffer.length);
+ try {
+ await fetch(`${LOKI_URL}/loki/api/v1/push`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({
+ streams: [{
+ stream: { job: 'helpme-api', container: 'helpme-api' },
+ values,
+ }],
+ }),
+ });
+ } catch {
+ // silencioso para não quebrar a aplicação
+ }
+};
+
+export const sendToLoki = (obj: Record) => {
+ const ts = obj.time
+ ? String(new Date(obj.time as string).getTime() * 1_000_000)
+ : String(Date.now() * 1_000_000);
+ buffer.push([ts, JSON.stringify(obj)]);
+
+ if (!timer) {
+ timer = setInterval(flush, 5000);
+ timer.unref();
+ }
+};
\ No newline at end of file
diff --git a/api/src/shared/config/loki-transport.mjs b/api/src/shared/config/loki-transport.mjs
new file mode 100644
index 0000000..1a99d1e
--- /dev/null
+++ b/api/src/shared/config/loki-transport.mjs
@@ -0,0 +1,42 @@
+import pkg from 'pino-abstract-transport';
+const { build } = pkg;
+import { fetch } from 'undici';
+
+export default async function lokiTransport(opts) {
+ const host = opts.host ?? 'http://localhost:3100';
+ const labels = opts.labels ?? {};
+ const interval = (opts.interval ?? 5) * 1000;
+ const buffer = [];
+
+ const flush = async () => {
+ if (buffer.length === 0) return;
+ const values = buffer.splice(0, buffer.length);
+ try {
+ await fetch(`${host}/loki/api/v1/push`, {
+ method: 'POST',
+ headers: { 'Content-Type': 'application/json' },
+ body: JSON.stringify({
+ streams: [{ stream: labels, values }],
+ }),
+ });
+ } catch (err) {
+ console.error('[LOKI] Erro ao enviar logs:', err.message);
+ }
+ };
+
+ const timer = setInterval(flush, interval);
+
+ return build(async function (source) {
+ for await (const obj of source) {
+ const ts = obj.time
+ ? String(new Date(obj.time).getTime() * 1_000_000)
+ : String(Date.now() * 1_000_000);
+ buffer.push([ts, JSON.stringify(obj)]);
+ }
+ }, {
+ async close() {
+ clearInterval(timer);
+ await flush();
+ },
+ });
+}
\ No newline at end of file
diff --git a/api/src/shared/config/swagger.ts b/api/src/shared/config/swagger.ts
index 9e20dbc..795c4a8 100644
--- a/api/src/shared/config/swagger.ts
+++ b/api/src/shared/config/swagger.ts
@@ -5,7 +5,7 @@ const options = {
openapi: '3.0.0',
info: {
title: 'Help-me API',
- version: '1.2.1',
+ version: '5',
description: 'API de Helpdesk',
},
servers: [
diff --git a/api/src/shared/config/tracing.ts b/api/src/shared/config/tracing.ts
new file mode 100644
index 0000000..452efec
--- /dev/null
+++ b/api/src/shared/config/tracing.ts
@@ -0,0 +1,36 @@
+import { NodeSDK } from '@opentelemetry/sdk-node';
+import { OTLPTraceExporter } from '@opentelemetry/exporter-trace-otlp-http';
+import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
+import { Resource } from '@opentelemetry/resources';
+import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
+import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
+
+console.log('[OTEL] Inicializando...');
+
+const exporter = new OTLPTraceExporter({
+ url: process.env.OTEL_EXPORTER_OTLP_ENDPOINT ?? 'http://localhost:4318/v1/traces',
+});
+
+const sdk = new NodeSDK({
+ resource: new Resource({
+ [ATTR_SERVICE_NAME]: process.env.OTEL_SERVICE_NAME ?? 'help-me-api',
+ [ATTR_SERVICE_VERSION]: process.env.npm_package_version ?? '1.0.0',
+ }),
+ spanProcessors: [new SimpleSpanProcessor(exporter)],
+ instrumentations: [
+ getNodeAutoInstrumentations({
+ '@opentelemetry/instrumentation-http': { enabled: true },
+ '@opentelemetry/instrumentation-express': { enabled: true },
+ '@opentelemetry/instrumentation-pg': { enabled: true },
+ '@opentelemetry/instrumentation-mongodb': { enabled: true },
+ '@opentelemetry/instrumentation-redis': { enabled: true },
+ '@opentelemetry/instrumentation-kafkajs': { enabled: true },
+ '@opentelemetry/instrumentation-fs': { enabled: false },
+ }),
+ ],
+});
+
+sdk.start();
+console.log('[OTEL] Tracing iniciado.');
+
+process.on('SIGTERM', () => sdk.shutdown().finally(() => process.exit(0)));
\ No newline at end of file
diff --git a/api/tsconfig.json b/api/tsconfig.json
index 1c59227..bc6c24f 100644
--- a/api/tsconfig.json
+++ b/api/tsconfig.json
@@ -11,6 +11,7 @@
},
"target": "ES2023",
"module": "ESNext",
+ //"module": "CommonJS",
"moduleResolution": "Node",
"esModuleInterop": true,
"strict": true,