diff --git a/.elasticbeanstalk/config.yml b/.elasticbeanstalk/config.yml
new file mode 100644
index 0000000..8353597
--- /dev/null
+++ b/.elasticbeanstalk/config.yml
@@ -0,0 +1,19 @@
+branch-defaults:
+ alpha:
+ environment: null
+global:
+ application_name: maestro
+ branch: null
+ default_ec2_keyname: null
+ default_platform: Docker running on 64bit Amazon Linux 2
+ default_region: us-east-1
+ include_git_submodules: true
+ instance_profile: null
+ platform_name: null
+ platform_version: null
+ profile: null
+ repository: null
+ sc: git
+ workspace_type: Application
+deploy:
+ artifact: deploy.zip
diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 87a14c3..e2496e9 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -10,102 +10,117 @@ jobs:
deploy:
runs-on: self-hosted
steps:
- - name: Checkout
- uses: actions/checkout@v2
+ - name: Checkout
+ uses: actions/checkout@v2
- - name: Semantic Release
- uses: cycjimmy/semantic-release-action@v2
- id: semantic
- with:
- semantic_version: 16
- extra_plugins: |
- @saithodev/semantic-release-backmerge
- conventional-changelog-eslint
- branches: |
- [
- 'main',
- {
- name: 'alpha',
- prerelease: true
- },
- {
- name: 'beta',
- prerelease: true
- }
- ]
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ # Because Semantic Realese deleted the .npmrc file, it was necessary to insert two steps to backup the file.
+ - name: BKP .npmrc Step 1
+ run: |
+ cp .npmrc .npmrcbkp
- - name: Update Pip
- if: steps.semantic.outputs.new_release_published == 'true'
- run: |
- python3 -m pip install --upgrade pip
+ - name: Semantic Release
+ uses: cycjimmy/semantic-release-action@v2
+ id: semantic
+ with:
+ semantic_version: 16
+ extra_plugins: |
+ @saithodev/semantic-release-backmerge
+ conventional-changelog-eslint
+ branches: |
+ [
+ 'main',
+ {
+ name: 'alpha',
+ prerelease: true
+ },
+ {
+ name: 'beta',
+ prerelease: true
+ }
+ ]
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
- - name: Install Docker Compose
- if: steps.semantic.outputs.new_release_published == 'true'
- run: |
- python3 -m pip install docker-compose --upgrade
+ # Because Semantic Realese deleted the .npmrc file, it was necessary to insert two steps to backup the file.
+ - name: BKP .npmrc Step 2
+ run: |
+ cp .npmrcbkp .npmrc
- - name: Install AWS CLI
- if: steps.semantic.outputs.new_release_published == 'true'
- run: |
- python3 -m pip install awscli --upgrade
+ - name: Update Pip
+ if: steps.semantic.outputs.new_release_published == 'true'
+ run: |
+ python3 -m pip install --upgrade pip
- - name: Install AWS Elastic Beanstalk CLI
- if: steps.semantic.outputs.new_release_published == 'true'
- run: |
- python3 -m pip install awsebcli --upgrade
+ - name: Install Docker Compose
+ if: steps.semantic.outputs.new_release_published == 'true'
+ run: |
+ python3 -m pip install docker-compose --upgrade
- - name: Configure AWS Region
- if: steps.semantic.outputs.new_release_published == 'true'
- uses: aws-actions/configure-aws-credentials@v1
- with:
- aws-region: us-east-1
+ - name: Install AWS CLI
+ if: steps.semantic.outputs.new_release_published == 'true'
+ run: |
+ python3 -m pip install awscli --upgrade
- - name: Extract Environment
- if: steps.semantic.outputs.new_release_published == 'true'
- shell: bash
- run: |
- if [ ${GITHUB_REF} == "refs/heads/main" ]; then
- echo "##[set-output name=result;]$(echo "production")"
- else
- echo "##[set-output name=result;]$(echo ${GITHUB_REF#refs/heads/})"
- fi
- id: extract_environment
+ - name: Install AWS Elastic Beanstalk CLI
+ if: steps.semantic.outputs.new_release_published == 'true'
+ run: |
+ python3 -m pip install awsebcli --upgrade
- - name: Login to AWS ECR
- if: steps.semantic.outputs.new_release_published == 'true'
- id: login_ecr
- uses: aws-actions/amazon-ecr-login@v1
+ - name: Configure AWS Region
+ if: steps.semantic.outputs.new_release_published == 'true'
+ uses: aws-actions/configure-aws-credentials@v1
+ with:
+ aws-region: us-east-1
- - name: Build, Tag, and Push Image to AWS ECR
- if: steps.semantic.outputs.new_release_published == 'true'
- env:
- ENV: ${{ steps.extract_environment.outputs.result }}
- IMAGE_TAG: ${{ steps.semantic.outputs.new_release_version }}
- run: |
- docker-compose -f build.docker-compose.yml build
- docker-compose -f build.docker-compose.yml push
+ - name: Extract Environment
+ if: steps.semantic.outputs.new_release_published == 'true'
+ shell: bash
+ run: |
+ if [ ${GITHUB_REF} == "refs/heads/main" ]; then
+ echo "##[set-output name=result;]$(echo "production")"
+ else
+ echo "##[set-output name=result;]$(echo ${GITHUB_REF#refs/heads/})"
+ fi
+ id: extract_environment
- - name: Create ZIP file to Deploy AWS Beanstalk
- if: steps.semantic.outputs.new_release_published == 'true'
- env:
- ENV: ${{ steps.extract_environment.outputs.result }}
- IMAGE_TAG: ${{ steps.semantic.outputs.new_release_version }}
- run: |
- sed -i -e "s/\${ENV}/$ENV/g" docker-compose.yml
- sed -i -e "s/\${IMAGE_TAG}/$IMAGE_TAG/g" docker-compose.yml
- zip deploy.zip docker-compose.yml
+ - name: Login to AWS ECR
+ if: steps.semantic.outputs.new_release_published == 'true'
+ id: login_ecr
+ uses: aws-actions/amazon-ecr-login@v1
- - name: Deploy AWS Beanstalk
- if: steps.semantic.outputs.new_release_published == 'true'
- env:
- ENV: ${{ steps.extract_environment.outputs.result }}
- AWS_REGION: us-east-1
- APP_NAME: maestro
- run: |
- [[ -d .elasticbeanstalk/ ]] && rm -R .elasticbeanstalk/
- printf "1\nn" | eb init $APP_NAME --region $AWS_REGION
- eb use $APP_NAME-$ENV
- echo -e "deploy:\n artifact: deploy.zip" >> .elasticbeanstalk/config.yml
- eb deploy
+ - name: Build, Tag, and Push Image to AWS ECR
+ if: steps.semantic.outputs.new_release_published == 'true'
+ env:
+ ENV: ${{ steps.extract_environment.outputs.result }}
+ IMAGE_TAG: ${{ steps.semantic.outputs.new_release_version }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
+ run: |
+ docker-compose -f build.docker-compose.yml build --build-arg NPM_TOKEN=${NPM_TOKEN}
+ docker-compose -f build.docker-compose.yml push
+
+ - name: Create ZIP file to Deploy AWS Beanstalk
+ if: steps.semantic.outputs.new_release_published == 'true'
+ env:
+ ENV: ${{ steps.extract_environment.outputs.result }}
+ IMAGE_TAG: ${{ steps.semantic.outputs.new_release_version }}
+ run: |
+ sed -i -e "s/\${ENV}/$ENV/g" docker-compose.yml
+ sed -i -e "s/\${IMAGE_TAG}/$IMAGE_TAG/g" docker-compose.yml
+ zip deploy.zip docker-compose.yml -r .ebextensions
+
+ - name: Deploy AWS Beanstalk
+ if: steps.semantic.outputs.new_release_published == 'true'
+ env:
+ ENV: ${{ steps.extract_environment.outputs.result }}
+ AWS_REGION: us-east-1
+ APP_NAME: maestro
+ run: |
+ eb use $APP_NAME-$ENV
+ eb deploy
+
+ - name: Remove Docker's Trash
+ continue-on-error: true
+ run: |
+ docker system prune
+ docker rmi -f $(docker images -aq)
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
index cc65444..1ec0dd7 100644
--- a/.github/workflows/test.yml
+++ b/.github/workflows/test.yml
@@ -16,19 +16,21 @@ jobs:
- name: Install Docker Compose
run: |
python3 -m pip install docker-compose --upgrade
-
- name: Build
env:
ENV: test
IMAGE_TAG: test
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
export ENV=test
- docker-compose -f build.docker-compose.yml build
-
+ export IMAGE_TAG=test
+ docker-compose -f build.docker-compose.yml build --build-arg NPM_TOKEN=${NPM_TOKEN}
- name: Run Test
env:
ENV: test
IMAGE_TAG: test
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
export ENV=test
- docker-compose run --rm --entrypoint="npm run test" maestro
+ export IMAGE_TAG=test
+ docker-compose -f build.docker-compose.yml run -e NPM_TOKEN=${NPM_TOKEN} --rm --entrypoint="npm run test" maestro
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 6851d1f..602e2e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -37,7 +37,4 @@ lerna-debug.log*
# Ignore .env files
*.env
-# Elastic Beanstalk Files
-.elasticbeanstalk/*
-!.elasticbeanstalk/*.cfg.yml
-!.elasticbeanstalk/*.global.yml
+.env
\ No newline at end of file
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..bd3327a
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+//registry.npmjs.org/:_authToken=${NPM_TOKEN}
\ No newline at end of file
diff --git a/.releaserc.json b/.releaserc.json
index 851a670..80c93d6 100644
--- a/.releaserc.json
+++ b/.releaserc.json
@@ -5,18 +5,18 @@
{
"preset": "eslint",
"releaseRules": [
- { "tag": "Fix", "release": "patch" },
- { "tag": "Feat", "release": "minor" },
- { "tag": "Update", "release": "minor" },
- { "tag": "Upgrade", "release": "minor" },
- { "tag": "Breaking", "release": "major" },
- { "tag": "Docs", "release": "patch" },
- { "tag": "Chore", "release": "minor" },
- { "tag": "Build", "release": "patch" },
- { "tag": "Refactor", "release": "minor" },
- { "tag": "Test", "release": "patch" },
+ { "tag": "FIX", "release": "patch" },
+ { "tag": "FEAT", "release": "minor" },
+ { "tag": "UPDATE", "release": "minor" },
+ { "tag": "UPGRADE", "release": "minor" },
+ { "tag": "BREAKING", "release": "major" },
+ { "tag": "DOCS", "release": "patch" },
+ { "tag": "CHORE", "release": "minor" },
+ { "tag": "BUILD", "release": "patch" },
+ { "tag": "REFACTOR", "release": "minor" },
+ { "tag": "TEST", "release": "patch" },
{ "tag": "CI", "release": "patch" },
- { "tag": "Perf", "release": "minor" }
+ { "tag": "PERF", "release": "minor" }
]
}
],
@@ -29,10 +29,14 @@
[
"@saithodev/semantic-release-backmerge",
{
- "branches": ["alpha", "beta"],
+ "branches": [
+ { "from": "main", "to": "alpha" },
+ { "from": "main", "to": "beta" }
+ ],
"backmergeStrategy": "merge"
}
],
+ "@semantic-release/npm",
"@semantic-release/github"
]
}
diff --git a/Dockerfile b/Dockerfile
index 3b435f3..f80c060 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -1,12 +1,16 @@
-FROM node:14 as packages
+FROM node:14.15.4-alpine3.12 as packages
WORKDIR /packages
+ARG NPM_TOKEN
COPY package.json .
+COPY .npmrc .
RUN npm install
+RUN rm -f ./.npmrc
-FROM node:alpine
+FROM node:14.15.4-alpine3.12
WORKDIR /app
COPY . /app/
+ARG NPM_TOKEN
COPY --from=packages /packages/node_modules /app/node_modules
RUN npm run build
EXPOSE 3333
-ENTRYPOINT npm run start
+ENTRYPOINT npm run start
\ No newline at end of file
diff --git a/README.md b/README.md
index 9fe8812..b226330 100644
--- a/README.md
+++ b/README.md
@@ -1,73 +1,6 @@
-
+
+ Maestro
-[circleci-image]: https://img.shields.io/circleci/build/github/nestjs/nest/master?token=abc123def456
-[circleci-url]: https://circleci.com/gh/nestjs/nest
-
- A progressive Node.js framework for building efficient and scalable server-side applications.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-## Description
-
-[Nest](https://github.com/nestjs/nest) framework TypeScript starter repository.
-
-## Installation
-
-```bash
-$ npm install
-```
-
-## Running the app
-
-```bash
-# development
-$ npm run start
-
-# watch mode
-$ npm run start:dev
-
-# production mode
-$ npm run start:prod
-```
-
-## Test
-
-```bash
-# unit tests
-$ npm run test
-
-# e2e tests
-$ npm run test:e2e
-
-# test coverage
-$ npm run test:cov
-```
-
-## Support
-
-Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
-
-## Stay in touch
-
-- Author - [Kamil MyĆliwiec](https://kamilmysliwiec.com)
-- Website - [https://nestjs.com](https://nestjs.com/)
-- Twitter - [@nestframework](https://twitter.com/nestframework)
-
-## License
-
-Nest is [MIT licensed](LICENSE).
+x
diff --git a/assets/maestro.svg b/assets/maestro.svg
new file mode 100644
index 0000000..73ad3cd
--- /dev/null
+++ b/assets/maestro.svg
@@ -0,0 +1,41 @@
+
diff --git a/docker-compose.yml b/docker-compose.yml
index 619f44f..fb0aad4 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -6,6 +6,8 @@ services:
restart: always
ports:
- 3333:3333
+ env_file:
+ - .env
node_exporter:
image: prom/node-exporter:v1.3.1
diff --git a/package-lock.json b/package-lock.json
index bb11934..3a1ef2f 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,26 +1,25 @@
{
"name": "grpc-server-and-client-nestjs-micro-pattern",
- "version": "0.0.1",
+ "version": "0.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@ampproject/remapping": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.0.2.tgz",
- "integrity": "sha512-sE8Gx+qSDMLoJvb3QarJJlDQK7SSY4rK3hxp4XsiANeFOmjU46ZI7Y9adAQRJrmbz8zbtZkp3mJTT+rGxtF0XA==",
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.1.2.tgz",
+ "integrity": "sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==",
"dev": true,
"requires": {
- "@jridgewell/trace-mapping": "^0.2.2",
- "sourcemap-codec": "1.4.8"
+ "@jridgewell/trace-mapping": "^0.3.0"
}
},
"@angular-devkit/core": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.1.2.tgz",
- "integrity": "sha512-uXVesIRiCL/Nv+RSV8JM4j8IoZiGCGnqV2FOJ1hvH7DPxIjhjPMdG/B54xMydZpeASW3ofuxeORyAXxFIBm8Zg==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.3.0.tgz",
+ "integrity": "sha512-8YrreVbWlJVZnk5zs4vfkRItrPEtWhUcxWOBfYT/Kwu4FwJVAnNuhJAxxXOAQ2Ckd7cv30Idh/RFVLbTZ5Gs9w==",
"dev": true,
"requires": {
- "ajv": "8.8.2",
+ "ajv": "8.9.0",
"ajv-formats": "2.1.1",
"fast-json-stable-stringify": "2.1.0",
"magic-string": "0.25.7",
@@ -46,12 +45,12 @@
}
},
"@angular-devkit/schematics": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.1.2.tgz",
- "integrity": "sha512-ayYbHGU8QpMGx8ZyhKOBupz+Zfv/2H1pNQErahYV3qg7hA9hfjTGmNmDQ4iw0fiT04NajjUxuomlKsCsg7oXDw==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.3.0.tgz",
+ "integrity": "sha512-hq7tqnB3uVT/iDgqWWZ4kvnijeAcgd4cfLzZiCPaYn1nuhZf0tWsho6exhJ/odMZHvVp7w8OibqWiUKxNY9zHA==",
"dev": true,
"requires": {
- "@angular-devkit/core": "13.1.2",
+ "@angular-devkit/core": "13.3.0",
"jsonc-parser": "3.0.0",
"magic-string": "0.25.7",
"ora": "5.4.1",
@@ -76,19 +75,29 @@
}
},
"@angular-devkit/schematics-cli": {
- "version": "13.1.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.1.2.tgz",
- "integrity": "sha512-XSkcVuaaajijQOWE8YerY/8DVuYQWvXxVukweEwkaHSftDQZhfCOZ83nGKbuWkdOdnuDbrc9ve5ZzekplkzVQw==",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics-cli/-/schematics-cli-13.3.0.tgz",
+ "integrity": "sha512-DXT+k4228Ke1zCoU9QxPhXm1xzeYBs5aqgMWhyjXdkfDokJcjQM79CSVLHdKX/OLgR51qhnQ5qVFEHHhVV40EQ==",
"dev": true,
"requires": {
- "@angular-devkit/core": "13.1.2",
- "@angular-devkit/schematics": "13.1.2",
+ "@angular-devkit/core": "13.3.0",
+ "@angular-devkit/schematics": "13.3.0",
"ansi-colors": "4.1.1",
"inquirer": "8.2.0",
"minimist": "1.2.5",
"symbol-observable": "4.0.0"
},
"dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
"inquirer": {
"version": "8.2.0",
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.0.tgz",
@@ -123,26 +132,26 @@
}
},
"@babel/compat-data": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.0.tgz",
- "integrity": "sha512-392byTlpGWXMv4FbyWw3sAZ/FrW/DrwqLGXpy0mbyNe9Taqv1mg9yON5/o0cnr8XYCkFTZbC1eV+c+LAROgrng==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.7.tgz",
+ "integrity": "sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==",
"dev": true
},
"@babel/core": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.0.tgz",
- "integrity": "sha512-x/5Ea+RO5MvF9ize5DeVICJoVrNv0Mi2RnIABrZEKYvPEpldXwauPkgvYA17cKa6WpU3LoYvYbuEMFtSNFsarA==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.7.tgz",
+ "integrity": "sha512-djHlEfFHnSnTAcPb7dATbiM5HxGOP98+3JLBZtjRb5I7RXrw7kFRoG2dXM8cm3H+o11A8IFH/uprmJpwFynRNQ==",
"dev": true,
"requires": {
- "@ampproject/remapping": "^2.0.0",
+ "@ampproject/remapping": "^2.1.0",
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.0",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helpers": "^7.17.0",
- "@babel/parser": "^7.17.0",
+ "@babel/generator": "^7.17.7",
+ "@babel/helper-compilation-targets": "^7.17.7",
+ "@babel/helper-module-transforms": "^7.17.7",
+ "@babel/helpers": "^7.17.7",
+ "@babel/parser": "^7.17.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.0",
+ "@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
@@ -151,30 +160,6 @@
"semver": "^6.3.0"
},
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "json5": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"semver": {
"version": "6.3.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
@@ -184,9 +169,9 @@
}
},
"@babel/generator": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.0.tgz",
- "integrity": "sha512-I3Omiv6FGOC29dtlZhkfXO6pgkmukJSlT26QjVvS1DGZe/NzSVCPG41X0tS21oZkJYlovfj9qDWgKP+Cn4bXxw==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.7.tgz",
+ "integrity": "sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==",
"dev": true,
"requires": {
"@babel/types": "^7.17.0",
@@ -203,12 +188,12 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz",
- "integrity": "sha512-mGojBwIWcwGD6rfqgRXVlVYmPAv7eOpIemUG3dGnDdCY4Pae70ROij3XmfrH6Fa1h1aiDylpglbZyktfzyo/hA==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz",
+ "integrity": "sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.16.4",
+ "@babel/compat-data": "^7.17.7",
"@babel/helper-validator-option": "^7.16.7",
"browserslist": "^4.17.5",
"semver": "^6.3.0"
@@ -270,19 +255,19 @@
}
},
"@babel/helper-module-transforms": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.16.7.tgz",
- "integrity": "sha512-gaqtLDxJEFCeQbYp9aLAefjhkKdjKcdh6DB7jniIGU3Pz52WAmP268zK0VgPz9hUNkMSYeH976K2/Y6yPadpng==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz",
+ "integrity": "sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==",
"dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.17.3",
+ "@babel/types": "^7.17.0"
}
},
"@babel/helper-plugin-utils": {
@@ -292,12 +277,12 @@
"dev": true
},
"@babel/helper-simple-access": {
- "version": "7.16.7",
- "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.16.7.tgz",
- "integrity": "sha512-ZIzHVyoeLMvXMN/vok/a4LWRy8G2v205mNP0XOuf9XRLyX5/u9CnVulUtDgUTama3lT+bf/UqucuZjqiGuTS1g==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz",
+ "integrity": "sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==",
"dev": true,
"requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
}
},
"@babel/helper-split-export-declaration": {
@@ -322,13 +307,13 @@
"dev": true
},
"@babel/helpers": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.0.tgz",
- "integrity": "sha512-Xe/9NFxjPwELUvW2dsukcMZIp6XwPSbI4ojFBJuX5ramHuVE22SVcZIwqzdWo5uCgeTXW8qV97lMvSOjq+1+nQ==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.17.7.tgz",
+ "integrity": "sha512-TKsj9NkjJfTBxM7Phfy7kv6yYc4ZcOo+AaWGqQOKTPDOmcGkIFb5xNA746eKisQkm4yavUYh4InYM9S+VnO01w==",
"dev": true,
"requires": {
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.17.0",
+ "@babel/traverse": "^7.17.3",
"@babel/types": "^7.17.0"
}
},
@@ -378,6 +363,12 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -396,9 +387,9 @@
}
},
"@babel/parser": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.0.tgz",
- "integrity": "sha512-VKXSCQx5D8S04ej+Dqsr1CzYvvWgf20jIw2D+YhQCrIlr2UZGaDds23Y0xg75/skOxpLCRpUZvk/1EAVkGoDOw==",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.17.7.tgz",
+ "integrity": "sha512-bm3AQf45vR4gKggRfvJdYJ0gFLoCbsPxiFLSH6hTVYABptNHY6l9NrhnucVjQ/X+SPtLANT9lc0fFhikj+VBRA==",
"dev": true
},
"@babel/plugin-syntax-async-generators": {
@@ -530,43 +521,28 @@
}
},
"@babel/traverse": {
- "version": "7.17.0",
- "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.0.tgz",
- "integrity": "sha512-fpFIXvqD6kC7c7PUNnZ0Z8cQXlarCLtCUpt2S1Dx7PjoRtCFffvOkHHSom+m5HIxMZn5bIBVb71lhabcmjEsqg==",
+ "version": "7.17.3",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.17.3.tgz",
+ "integrity": "sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.17.0",
+ "@babel/generator": "^7.17.3",
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-function-name": "^7.16.7",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.17.0",
+ "@babel/parser": "^7.17.3",
"@babel/types": "^7.17.0",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"globals": {
"version": "11.12.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
"integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
@@ -602,16 +578,16 @@
}
},
"@eslint/eslintrc": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.0.5.tgz",
- "integrity": "sha512-BLxsnmK3KyPunz5wmCCpqy0YelEoxxGmH73Is+Z74oOTMtExcjkr3dDR6quwrjh1YspA8DH9gnX1o069KiS9AQ==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.2.1.tgz",
+ "integrity": "sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
"debug": "^4.3.2",
- "espree": "^9.2.0",
+ "espree": "^9.3.1",
"globals": "^13.9.0",
- "ignore": "^4.0.6",
+ "ignore": "^5.2.0",
"import-fresh": "^3.2.1",
"js-yaml": "^4.1.0",
"minimatch": "^3.0.4",
@@ -630,49 +606,21 @@
"uri-js": "^4.2.2"
}
},
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ignore": {
- "version": "4.0.6",
- "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
- "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
- "dev": true
- },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
"@grpc/grpc-js": {
- "version": "1.5.4",
- "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.4.tgz",
- "integrity": "sha512-+nJTOsqpFAXnfFrMZ7Too4XXZ/J9O+8jYvSoaunupoC7I7b9H4iex1BRsbTdOmiowfPGJrWit7jUPmbENSUSpw==",
+ "version": "1.5.10",
+ "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.5.10.tgz",
+ "integrity": "sha512-++oAubX/7rJzlqH0ShyzDENNNDHYrlttdc3NM40KlaVQDcgGqQknuPoavmyTC+oNUDyxPCX5dHceKhfcgN3tiw==",
"requires": {
"@grpc/proto-loader": "^0.6.4",
"@types/node": ">=12.12.47"
- },
- "dependencies": {
- "@types/node": {
- "version": "17.0.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz",
- "integrity": "sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng=="
- }
}
},
"@grpc/proto-loader": {
@@ -688,31 +636,14 @@
}
},
"@humanwhocodes/config-array": {
- "version": "0.9.3",
- "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.3.tgz",
- "integrity": "sha512-3xSMlXHh03hCcCmFc0rbKp3Ivt2PFEJnQUJDDMTJQ2wkECZWdq4GePs2ctc5H8zV+cHPaq8k2vU8mrQjA6iHdQ==",
+ "version": "0.9.5",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz",
+ "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==",
"dev": true,
"requires": {
"@humanwhocodes/object-schema": "^1.2.1",
"debug": "^4.1.1",
"minimatch": "^3.0.4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@humanwhocodes/object-schema": {
@@ -743,12 +674,6 @@
"sprintf-js": "~1.0.2"
}
},
- "camelcase": {
- "version": "5.3.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
- "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
- "dev": true
- },
"js-yaml": {
"version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
@@ -774,118 +699,142 @@
"dev": true
},
"@jest/console": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.4.6.tgz",
- "integrity": "sha512-jauXyacQD33n47A44KrlOVeiXHEXDqapSdfb9kTekOchH/Pd18kBIO1+xxJQRLuG+LUuljFCwTG92ra4NW7SpA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-27.5.1.tgz",
+ "integrity": "sha512-kZ/tNpS3NXn0mlXXXPNuDZnb4c0oZ20r4K5eemM2k30ZC3G0T02nXUvyhf5YdbXWHPEJLc9qGLxEZ216MdL+Zg==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
- "jest-message-util": "^27.4.6",
- "jest-util": "^27.4.2",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
"slash": "^3.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"@jest/core": {
- "version": "27.4.7",
- "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.4.7.tgz",
- "integrity": "sha512-n181PurSJkVMS+kClIFSX/LLvw9ExSb+4IMtD6YnfxZVerw9ANYtW0bPrm0MJu2pfe9SY9FJ9FtQ+MdZkrZwjg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-27.5.1.tgz",
+ "integrity": "sha512-AK6/UTrvQD0Cd24NSqmIA6rKsu0tKIxfiCducZvqxYdmMisOYAsdItspT+fQDQYARPf8XgjAFZi0ogW2agH5nQ==",
"dev": true,
"requires": {
- "@jest/console": "^27.4.6",
- "@jest/reporters": "^27.4.6",
- "@jest/test-result": "^27.4.6",
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/console": "^27.5.1",
+ "@jest/reporters": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
"emittery": "^0.8.1",
"exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "jest-changed-files": "^27.4.2",
- "jest-config": "^27.4.7",
- "jest-haste-map": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.6",
- "jest-resolve-dependencies": "^27.4.6",
- "jest-runner": "^27.4.6",
- "jest-runtime": "^27.4.6",
- "jest-snapshot": "^27.4.6",
- "jest-util": "^27.4.2",
- "jest-validate": "^27.4.6",
- "jest-watcher": "^27.4.6",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^27.5.1",
+ "jest-config": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-resolve-dependencies": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "jest-watcher": "^27.5.1",
"micromatch": "^4.0.4",
"rimraf": "^3.0.0",
"slash": "^3.0.0",
"strip-ansi": "^6.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"@jest/environment": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.4.6.tgz",
- "integrity": "sha512-E6t+RXPfATEEGVidr84WngLNWZ8ffCPky8RqqRK6u1Bn0LK92INe0MDttyPl/JOzaq92BmDzOeuqk09TvM22Sg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-27.5.1.tgz",
+ "integrity": "sha512-/WQjhPJe3/ghaol/4Bq480JKXV/Rfw8nQdN7f41fM8VDHLcxKXou6QyXAh3EFr9/bVG3x74z1NWDkP87EiY8gA==",
"dev": true,
"requires": {
- "@jest/fake-timers": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
- "jest-mock": "^27.4.6"
+ "jest-mock": "^27.5.1"
}
},
"@jest/fake-timers": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.4.6.tgz",
- "integrity": "sha512-mfaethuYF8scV8ntPpiVGIHQgS0XIALbpY2jt2l7wb/bvq4Q5pDLk4EP4D7SAvYT1QrPOPVZAtbdGAOOyIgs7A==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
+ "integrity": "sha512-/aPowoolwa07k7/oM3aASneNeBGCmGQsc3ugN4u6s4C/+s5M64MFo/+djTdiwcbQlRfFElGuDXWzaWj6QgKObQ==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@sinonjs/fake-timers": "^8.0.1",
"@types/node": "*",
- "jest-message-util": "^27.4.6",
- "jest-mock": "^27.4.6",
- "jest-util": "^27.4.2"
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
}
},
"@jest/globals": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.4.6.tgz",
- "integrity": "sha512-kAiwMGZ7UxrgPzu8Yv9uvWmXXxsy0GciNejlHvfPIfWkSxChzv6bgTS3YqBkGuHcis+ouMFI2696n2t+XYIeFw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-27.5.1.tgz",
+ "integrity": "sha512-ZEJNB41OBQQgGzgyInAv0UUfDDj3upmHydjieSxFvTRuZElrx7tXg/uVQ5hYVEwiXs3+aMsAeEc9X7xiSKCm4Q==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/types": "^27.4.2",
- "expect": "^27.4.6"
+ "@jest/environment": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "expect": "^27.5.1"
}
},
"@jest/reporters": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.4.6.tgz",
- "integrity": "sha512-+Zo9gV81R14+PSq4wzee4GC2mhAN9i9a7qgJWL90Gpx7fHYkWpTBvwWNZUXvJByYR9tAVBdc8VxDWqfJyIUrIQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-27.5.1.tgz",
+ "integrity": "sha512-cPXh9hWIlVJMQkVk84aIvXuBB4uQQmFqZiacloFuGiP3ah1sbCxCosidXFDfqG8+6fO1oR2dTJTlsOy4VFmUfw==",
"dev": true,
"requires": {
"@bcoe/v8-coverage": "^0.2.3",
- "@jest/console": "^27.4.6",
- "@jest/test-result": "^27.4.6",
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/console": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
"collect-v8-coverage": "^1.0.0",
"exit": "^0.1.2",
"glob": "^7.1.2",
- "graceful-fs": "^4.2.4",
+ "graceful-fs": "^4.2.9",
"istanbul-lib-coverage": "^3.0.0",
"istanbul-lib-instrument": "^5.1.0",
"istanbul-lib-report": "^3.0.0",
"istanbul-lib-source-maps": "^4.0.0",
"istanbul-reports": "^3.1.3",
- "jest-haste-map": "^27.4.6",
- "jest-resolve": "^27.4.6",
- "jest-util": "^27.4.2",
- "jest-worker": "^27.4.6",
+ "jest-haste-map": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
"slash": "^3.0.0",
"source-map": "^0.6.0",
"string-length": "^4.0.1",
@@ -893,6 +842,16 @@
"v8-to-istanbul": "^8.1.0"
},
"dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -902,13 +861,13 @@
}
},
"@jest/source-map": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.4.0.tgz",
- "integrity": "sha512-Ntjx9jzP26Bvhbm93z/AKcPRj/9wrkI88/gK60glXDx1q+IeI0rf7Lw2c89Ch6ofonB0On/iRDreQuQ6te9pgQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-27.5.1.tgz",
+ "integrity": "sha512-y9NIHUYF3PJRlHk98NdC/N1gl88BL08aQQgu4k4ZopQkCw9t9cV8mtl3TV8b/YCB8XaVTFrmUTAJvjsntDireg==",
"dev": true,
"requires": {
"callsites": "^3.0.0",
- "graceful-fs": "^4.2.4",
+ "graceful-fs": "^4.2.9",
"source-map": "^0.6.0"
},
"dependencies": {
@@ -921,45 +880,45 @@
}
},
"@jest/test-result": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.4.6.tgz",
- "integrity": "sha512-fi9IGj3fkOrlMmhQqa/t9xum8jaJOOAi/lZlm6JXSc55rJMXKHxNDN1oCP39B0/DhNOa2OMupF9BcKZnNtXMOQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-27.5.1.tgz",
+ "integrity": "sha512-EW35l2RYFUcUQxFJz5Cv5MTOxlJIQs4I7gxzi2zVU7PJhOwfYq1MdC5nhSmYjX1gmMmLPvB3sIaC+BkcHRBfag==",
"dev": true,
"requires": {
- "@jest/console": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/console": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/istanbul-lib-coverage": "^2.0.0",
"collect-v8-coverage": "^1.0.0"
}
},
"@jest/test-sequencer": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.4.6.tgz",
- "integrity": "sha512-3GL+nsf6E1PsyNsJuvPyIz+DwFuCtBdtvPpm/LMXVkBJbdFvQYCDpccYT56qq5BGniXWlE81n2qk1sdXfZebnw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-27.5.1.tgz",
+ "integrity": "sha512-LCheJF7WB2+9JuCS7VB/EmGIdQuhtqjRNI9A43idHv3E4KltCTsPsLxvdaubFHSYwY/fNjMWjl6vNRhDiN7vpQ==",
"dev": true,
"requires": {
- "@jest/test-result": "^27.4.6",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.6",
- "jest-runtime": "^27.4.6"
+ "@jest/test-result": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-runtime": "^27.5.1"
}
},
"@jest/transform": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.4.6.tgz",
- "integrity": "sha512-9MsufmJC8t5JTpWEQJ0OcOOAXaH5ioaIX6uHVBLBMoCZPfKKQF+EqP8kACAvCZ0Y1h2Zr3uOccg8re+Dr5jxyw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-27.5.1.tgz",
+ "integrity": "sha512-ipON6WtYgl/1329g5AIJVbUuEh0wZVbdpGwC99Jw4LwuoBNS95MVphU6zOeD9pDkon+LLbFL7lOQRapbB8SCHw==",
"dev": true,
"requires": {
"@babel/core": "^7.1.0",
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"babel-plugin-istanbul": "^6.1.1",
"chalk": "^4.0.0",
"convert-source-map": "^1.4.0",
"fast-json-stable-stringify": "^2.0.0",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.6",
- "jest-regex-util": "^27.4.0",
- "jest-util": "^27.4.2",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-util": "^27.5.1",
"micromatch": "^4.0.4",
"pirates": "^4.0.4",
"slash": "^3.0.0",
@@ -967,6 +926,16 @@
"write-file-atomic": "^3.0.0"
},
"dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -976,9 +945,9 @@
}
},
"@jest/types": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.4.2.tgz",
- "integrity": "sha512-j35yw0PMTPpZsUoOBiuHzr1zTYoad1cVIE0ajEjcrJONxxrko/IRGKkXx3os0Nsi4Hu3+5VmDbVfq5WhG/pWAg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-27.5.1.tgz",
+ "integrity": "sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==",
"dev": true,
"requires": {
"@types/istanbul-lib-coverage": "^2.0.0",
@@ -986,22 +955,40 @@
"@types/node": "*",
"@types/yargs": "^16.0.0",
"chalk": "^4.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"@jridgewell/resolve-uri": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz",
- "integrity": "sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==",
+ "version": "3.0.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz",
+ "integrity": "sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==",
+ "dev": true
+ },
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.11",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
+ "integrity": "sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==",
"dev": true
},
"@jridgewell/trace-mapping": {
- "version": "0.2.5",
- "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.2.5.tgz",
- "integrity": "sha512-K+Eths78fXDFOvQ2hgJhCiI5s+g81r2yXmACBpbn+f2+Qt94PNoTgUcAXPT8DZkhXCsZRsHVWVtY5KIBMcpDqQ==",
+ "version": "0.3.4",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz",
+ "integrity": "sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==",
"dev": true,
"requires": {
"@jridgewell/resolve-uri": "^3.0.3",
- "sourcemap-codec": "1.4.8"
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
"@mapbox/node-pre-gyp": {
@@ -1021,20 +1008,20 @@
}
},
"@nestjs/cli": {
- "version": "8.2.0",
- "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-8.2.0.tgz",
- "integrity": "sha512-f5grQOgrRcfHfOUP94OWsMdVYy6bit0zRSxPZ5+tfsFWkiPWdcx5Ba2M2socTykkiNHruXBu07lYvcKh94do7Q==",
+ "version": "8.2.4",
+ "resolved": "https://registry.npmjs.org/@nestjs/cli/-/cli-8.2.4.tgz",
+ "integrity": "sha512-9zNV9oMtaz1vwLO3WXviD0wzRpyiaLWJZ7KCIZLk62U22RDNRsbtLLDS52Wkig5L8UU7Z1xRfrEv+s3f9keysQ==",
"dev": true,
"requires": {
- "@angular-devkit/core": "13.1.2",
- "@angular-devkit/schematics": "13.1.2",
- "@angular-devkit/schematics-cli": "13.1.2",
+ "@angular-devkit/core": "13.3.0",
+ "@angular-devkit/schematics": "13.3.0",
+ "@angular-devkit/schematics-cli": "13.3.0",
"@nestjs/schematics": "^8.0.3",
"chalk": "3.0.0",
- "chokidar": "3.5.2",
+ "chokidar": "3.5.3",
"cli-table3": "0.6.1",
"commander": "4.1.1",
- "fork-ts-checker-webpack-plugin": "6.5.0",
+ "fork-ts-checker-webpack-plugin": "7.2.1",
"inquirer": "7.3.3",
"node-emoji": "1.11.0",
"ora": "5.4.1",
@@ -1043,61 +1030,96 @@
"shelljs": "0.8.5",
"source-map-support": "0.5.21",
"tree-kill": "1.2.2",
- "tsconfig-paths": "3.12.0",
+ "tsconfig-paths": "3.14.0",
"tsconfig-paths-webpack-plugin": "3.5.2",
- "typescript": "4.5.4",
- "webpack": "5.66.0",
+ "typescript": "4.6.2",
+ "webpack": "5.70.0",
"webpack-node-externals": "3.0.0"
},
"dependencies": {
- "chalk": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
- "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
- "ansi-styles": "^4.1.0",
- "supports-color": "^7.1.0"
+ "minimist": "^1.2.0"
+ }
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ },
+ "tsconfig-paths": {
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.0.tgz",
+ "integrity": "sha512-cg/1jAZoL57R39+wiw4u/SCC6Ic9Q5NqjBOb+9xISedOYurfog9ZNmKJSxAnb2m/5Bq4lE9lhUcau33Ml8DM0g==",
+ "dev": true,
+ "requires": {
+ "@types/json5": "^0.0.29",
+ "json5": "^1.0.1",
+ "minimist": "^1.2.0",
+ "strip-bom": "^3.0.0"
}
},
"typescript": {
- "version": "4.5.4",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.4.tgz",
- "integrity": "sha512-VgYs2A2QIRuGphtzFV7aQJduJ2gyfTljngLzjpfW9FoYZF6xuw1W0vW9ghCKLfcWrCFxK81CSGRAvS1pn4fIUg==",
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.2.tgz",
+ "integrity": "sha512-HM/hFigTBHZhLXshn9sN37H085+hQGeJHJ/X7LpBWLID/fbc2acUMfU+lGD98X81sKP+pFa9f0DZmCwB9GnbAg==",
"dev": true
}
}
},
"@nestjs/common": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.2.6.tgz",
- "integrity": "sha512-flLYSXunxcKyjbYddrhwbc49uE705MxBt85rS3mHyhDbAIPSGGeZEqME44YyAzCg1NTfJSNe7ztmOce5kNkb9A==",
+ "version": "8.4.3",
+ "resolved": "https://registry.npmjs.org/@nestjs/common/-/common-8.4.3.tgz",
+ "integrity": "sha512-QIhWykB7IPOwHQB/K9wMwmQKibQ5dhg9dt8ySOoD36uFFwN3RJQelzMFF9Rtu7hrMPk6pSyismEUKQ8BZMUD9w==",
"requires": {
- "axios": "0.24.0",
+ "axios": "0.26.1",
"iterare": "1.2.1",
"tslib": "2.3.1",
"uuid": "8.3.2"
},
"dependencies": {
"axios": {
- "version": "0.24.0",
- "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz",
- "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==",
+ "version": "0.26.1",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz",
+ "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==",
"requires": {
- "follow-redirects": "^1.14.4"
+ "follow-redirects": "^1.14.8"
}
}
}
},
+ "@nestjs/config": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/config/-/config-1.2.1.tgz",
+ "integrity": "sha512-EgaGTXvG4unD5lGWmdSrUFrkGpX32lQGE/8qS60EnL82sIZV7HT1ZL7ib5S86P1nB+DnFDbDhDqTaZ3mivTyOg==",
+ "requires": {
+ "dotenv": "16.0.0",
+ "dotenv-expand": "5.1.0",
+ "lodash": "4.17.21",
+ "uuid": "8.3.2"
+ },
+ "dependencies": {
+ "dotenv": {
+ "version": "16.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.0.tgz",
+ "integrity": "sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q=="
+ }
+ }
+ },
"@nestjs/core": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.2.6.tgz",
- "integrity": "sha512-NwPcEIMmCsucs3QaDlQvkoU1FlFM2wm/WjaqLQhkSoIEmAR1gNtBo88f5io5cpMwCo1k5xYhqGlaSl6TfngwWQ==",
+ "version": "8.4.3",
+ "resolved": "https://registry.npmjs.org/@nestjs/core/-/core-8.4.3.tgz",
+ "integrity": "sha512-1etUwTR5jTCTcNh6MW1tFYrHMCvcdIzJ3Z9O9ETR8EYIsphhzsxxRCa0dfb9peKJEQpl6SkoGOILIFkxfokOPw==",
"requires": {
"@nuxtjs/opencollective": "0.3.2",
"fast-safe-stringify": "2.1.1",
"iterare": "1.2.1",
- "object-hash": "2.2.0",
+ "object-hash": "3.0.0",
"path-to-regexp": "3.2.0",
"tslib": "2.3.1",
"uuid": "8.3.2"
@@ -1109,9 +1131,9 @@
"integrity": "sha512-NFvofzSinp00j5rzUd4tf+xi9od6383iY0JP7o0Bnu1fuItAUkWBgc4EKuIQ3D+c2QI3i9pG1kDWAeY27EMGtg=="
},
"@nestjs/microservices": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-8.2.6.tgz",
- "integrity": "sha512-2RxUESoOKveqfs0k57a+EX5Yr3rdwsKXNr7KrO9oseqJvSJPYLyE8MoYUjEAsGHWIeymdLzZwag047kIVBX7eg==",
+ "version": "8.4.3",
+ "resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-8.4.3.tgz",
+ "integrity": "sha512-/ZT5wo1s65J9Cqp2g5eNrYO34VH7/qUkDu4jJyZCT61I9UqpO49J3+1YIAHfmJJzHcrenjgt1sBtlFhwPR3Lgg==",
"requires": {
"iterare": "1.2.1",
"json-socket": "0.3.0",
@@ -1119,37 +1141,37 @@
}
},
"@nestjs/platform-express": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-8.2.6.tgz",
- "integrity": "sha512-wbPqXrLdeokfMCHkWBHgFobCVL4OKRAOJIFGNlT/3u4JIJndoGBIuSDQohhY2o7Ue0JIYqKw+PyXiN4y/iUEng==",
+ "version": "8.4.3",
+ "resolved": "https://registry.npmjs.org/@nestjs/platform-express/-/platform-express-8.4.3.tgz",
+ "integrity": "sha512-MXXaShhWRChf7jKBrvRKjCFX84ii/4245TcB8Gei7UAGzDRHbM08lpLXDR+wUUUtC8rN2gWu8d8IGptAnqMGpA==",
"requires": {
- "body-parser": "1.19.1",
+ "body-parser": "1.19.2",
"cors": "2.8.5",
- "express": "4.17.2",
+ "express": "4.17.3",
"multer": "1.4.4",
"tslib": "2.3.1"
}
},
"@nestjs/schematics": {
- "version": "8.0.5",
- "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.5.tgz",
- "integrity": "sha512-nK1hWQeLNbdhsiJDX/XJXLqq7nC6/xxC8CN+seFTQmly+H3gG2xaFnl6JPHURumuQaYJX8JEpC8m0+4tz+wvOg==",
+ "version": "8.0.8",
+ "resolved": "https://registry.npmjs.org/@nestjs/schematics/-/schematics-8.0.8.tgz",
+ "integrity": "sha512-xIIb5YnMQN/OJQ68+MCapy2bXvTxSWgINoqQbyZWkLL/yTIuROvZCdtV850NPGyr7f7l93VBP0ZPitbFIexy3Q==",
"dev": true,
"requires": {
- "@angular-devkit/core": "13.0.2",
- "@angular-devkit/schematics": "13.0.2",
- "fs-extra": "10.0.0",
+ "@angular-devkit/core": "13.2.5",
+ "@angular-devkit/schematics": "13.2.5",
+ "fs-extra": "10.0.1",
"jsonc-parser": "3.0.0",
"pluralize": "8.0.0"
},
"dependencies": {
"@angular-devkit/core": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.0.2.tgz",
- "integrity": "sha512-I4co4GH+iu0tns+UXfMtjJISO+cLpaUuiEH6kf0wF5cqjaIeluA9UjIRnxuNbdTW8iE2xVj/UWhQfHe/Ncp76w==",
+ "version": "13.2.5",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-13.2.5.tgz",
+ "integrity": "sha512-WuWp/1R0FtCHPBcJLF13lTLHETtDGFUX0ULfGPRaYB5OVCSQcovVp5UbZTTy/Ss3ub3EOEmJlU8kMJfBrWuq+A==",
"dev": true,
"requires": {
- "ajv": "8.6.3",
+ "ajv": "8.9.0",
"ajv-formats": "2.1.1",
"fast-json-stable-stringify": "2.1.0",
"magic-string": "0.25.7",
@@ -1158,30 +1180,18 @@
}
},
"@angular-devkit/schematics": {
- "version": "13.0.2",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.0.2.tgz",
- "integrity": "sha512-qrTe1teQptgP8gmVy6QX0T4dNfnNipEv+cM2cr7JXOmkPpwF+6oBDrTRIJ55t6rziqrXHJ3rxjKm1aHAxFrIEQ==",
+ "version": "13.2.5",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-13.2.5.tgz",
+ "integrity": "sha512-kAye6VYiF9JQAoeO+BYhy8eT2QOmhB+WLziRjXoFCBxh5+yXTygTVfs9fD5jmIpHmeu4hd2ErSh69yT5xWcD9g==",
"dev": true,
"requires": {
- "@angular-devkit/core": "13.0.2",
+ "@angular-devkit/core": "13.2.5",
"jsonc-parser": "3.0.0",
"magic-string": "0.25.7",
"ora": "5.4.1",
"rxjs": "6.6.7"
}
},
- "ajv": {
- "version": "8.6.3",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.6.3.tgz",
- "integrity": "sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "json-schema-traverse": "^1.0.0",
- "require-from-string": "^2.0.2",
- "uri-js": "^4.2.2"
- }
- },
"rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
@@ -1200,9 +1210,9 @@
}
},
"@nestjs/swagger": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-5.2.0.tgz",
- "integrity": "sha512-wcW2KCe7irwBw0WKsb03uFk4gnjqNcAcJxXGZxi6ljFiDgyLrQtx5MpE95o703tnn4V/hZR8MqMNFOXuup7Pqw==",
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/@nestjs/swagger/-/swagger-5.2.1.tgz",
+ "integrity": "sha512-7dNa08WCnTsW/oAk3Ujde+z64JMfNm19DhpXasFR8oJp/9pggYAbYU927HpA+GJsSFJX6adjIRZsCKUqaGWznw==",
"requires": {
"@nestjs/mapped-types": "1.0.1",
"lodash": "4.17.21",
@@ -1210,9 +1220,9 @@
}
},
"@nestjs/testing": {
- "version": "8.2.6",
- "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-8.2.6.tgz",
- "integrity": "sha512-Cg8tM7yxlLDBO+CTNjk6X/UkxGRsprFc8gDHGEGesiE9wLErxNnslFugfUnYWJaSzmLZSqcFFig7mThc8VSxrw==",
+ "version": "8.4.3",
+ "resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-8.4.3.tgz",
+ "integrity": "sha512-6+b2UCObr5onv7TG398VUdkNeU9n+f+TeTvlzmZlp9LKIAS4ZxDxwpdLDl5m/AssdkaZpfb0u755BJfKP5wbNw==",
"dev": true,
"requires": {
"optional": "0.1.4",
@@ -1253,6 +1263,17 @@
"chalk": "^4.1.0",
"consola": "^2.15.0",
"node-fetch": "^2.6.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"@protobufjs/aspromise": {
@@ -1415,13 +1436,6 @@
"requires": {
"@types/long": "*",
"@types/node": "*"
- },
- "dependencies": {
- "@types/node": {
- "version": "17.0.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz",
- "integrity": "sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng=="
- }
}
},
"@types/connect": {
@@ -1460,9 +1474,9 @@
}
},
"@types/estree": {
- "version": "0.0.50",
- "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.50.tgz",
- "integrity": "sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw==",
+ "version": "0.0.51",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz",
+ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==",
"dev": true
},
"@types/express": {
@@ -1570,10 +1584,9 @@
"dev": true
},
"@types/node": {
- "version": "16.11.22",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.22.tgz",
- "integrity": "sha512-DYNtJWauMQ9RNpesl4aVothr97/tIJM8HbyOXJ0AYT1Z2bEjLHyfjOBPAQQVMLf8h3kSShYfNk8Wnto8B2zHUA==",
- "dev": true
+ "version": "16.11.26",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-16.11.26.tgz",
+ "integrity": "sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ=="
},
"@types/parse-json": {
"version": "4.0.0",
@@ -1582,9 +1595,9 @@
"dev": true
},
"@types/prettier": {
- "version": "2.4.3",
- "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.3.tgz",
- "integrity": "sha512-QzSuZMBuG5u8HqYz01qtMdg/Jfctlnvj1z/lYnIDXs/golxw0fxtRAHd9KrzjR7Yxz1qVeI00o0kiO3PmVdJ9w==",
+ "version": "2.4.4",
+ "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.4.4.tgz",
+ "integrity": "sha512-ReVR2rLTV1kvtlWFyuot+d1pkpG2Fw/XKE3PDAdj57rbM97ttSp9JZ2UsP+2EHTylra9cUf6JA7tGwW1INzUrA==",
"dev": true
},
"@types/qs": {
@@ -1626,9 +1639,9 @@
}
},
"@types/supertest": {
- "version": "2.0.11",
- "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.11.tgz",
- "integrity": "sha512-uci4Esokrw9qGb9bvhhSVEjd6rkny/dk5PK/Qz4yxKiyppEI+dOPlNrZBahE3i+PoKFYyDxChVXZ/ysS/nrm1Q==",
+ "version": "2.0.12",
+ "resolved": "https://registry.npmjs.org/@types/supertest/-/supertest-2.0.12.tgz",
+ "integrity": "sha512-X3HPWTwXRerBZS7Mo1k6vMVR1Z6zmJcDVn5O/31whe0tnjE4te6ZJSJGq1RiqHPjzPdMTfjCFogDJmwng9xHaQ==",
"dev": true,
"requires": {
"@types/superagent": "*"
@@ -1644,174 +1657,114 @@
}
},
"@types/yargs-parser": {
- "version": "20.2.1",
- "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.1.tgz",
- "integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
+ "version": "21.0.0",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.0.tgz",
+ "integrity": "sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==",
"dev": true
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.10.2.tgz",
- "integrity": "sha512-4W/9lLuE+v27O/oe7hXJKjNtBLnZE8tQAFpapdxwSVHqtmIoPB1gph3+ahNwVuNL37BX7YQHyGF9Xv6XCnIX2Q==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.17.0.tgz",
+ "integrity": "sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.10.2",
- "@typescript-eslint/type-utils": "5.10.2",
- "@typescript-eslint/utils": "5.10.2",
+ "@typescript-eslint/scope-manager": "5.17.0",
+ "@typescript-eslint/type-utils": "5.17.0",
+ "@typescript-eslint/utils": "5.17.0",
"debug": "^4.3.2",
"functional-red-black-tree": "^1.0.1",
"ignore": "^5.1.8",
"regexpp": "^3.2.0",
"semver": "^7.3.5",
"tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@typescript-eslint/parser": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.10.2.tgz",
- "integrity": "sha512-JaNYGkaQVhP6HNF+lkdOr2cAs2wdSZBoalE22uYWq8IEv/OVH0RksSGydk+sW8cLoSeYmC+OHvRyv2i4AQ7Czg==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.17.0.tgz",
+ "integrity": "sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.10.2",
- "@typescript-eslint/types": "5.10.2",
- "@typescript-eslint/typescript-estree": "5.10.2",
+ "@typescript-eslint/scope-manager": "5.17.0",
+ "@typescript-eslint/types": "5.17.0",
+ "@typescript-eslint/typescript-estree": "5.17.0",
"debug": "^4.3.2"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.10.2.tgz",
- "integrity": "sha512-39Tm6f4RoZoVUWBYr3ekS75TYgpr5Y+X0xLZxXqcZNDWZdJdYbKd3q2IR4V9y5NxxiPu/jxJ8XP7EgHiEQtFnw==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.17.0.tgz",
+ "integrity": "sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.10.2",
- "@typescript-eslint/visitor-keys": "5.10.2"
+ "@typescript-eslint/types": "5.17.0",
+ "@typescript-eslint/visitor-keys": "5.17.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.10.2.tgz",
- "integrity": "sha512-uRKSvw/Ccs5FYEoXW04Z5VfzF2iiZcx8Fu7DGIB7RHozuP0VbKNzP1KfZkHBTM75pCpsWxIthEH1B33dmGBKHw==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.17.0.tgz",
+ "integrity": "sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==",
"dev": true,
"requires": {
- "@typescript-eslint/utils": "5.10.2",
+ "@typescript-eslint/utils": "5.17.0",
"debug": "^4.3.2",
"tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@typescript-eslint/types": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.10.2.tgz",
- "integrity": "sha512-Qfp0qk/5j2Rz3p3/WhWgu4S1JtMcPgFLnmAKAW061uXxKSa7VWKZsDXVaMXh2N60CX9h6YLaBoy9PJAfCOjk3w==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.17.0.tgz",
+ "integrity": "sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.10.2.tgz",
- "integrity": "sha512-WHHw6a9vvZls6JkTgGljwCsMkv8wu8XU8WaYKeYhxhWXH/atZeiMW6uDFPLZOvzNOGmuSMvHtZKd6AuC8PrwKQ==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.17.0.tgz",
+ "integrity": "sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.10.2",
- "@typescript-eslint/visitor-keys": "5.10.2",
+ "@typescript-eslint/types": "5.17.0",
+ "@typescript-eslint/visitor-keys": "5.17.0",
"debug": "^4.3.2",
"globby": "^11.0.4",
"is-glob": "^4.0.3",
"semver": "^7.3.5",
"tsutils": "^3.21.0"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"@typescript-eslint/utils": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.10.2.tgz",
- "integrity": "sha512-vuJaBeig1NnBRkf7q9tgMLREiYD7zsMrsN1DA3wcoMDvr3BTFiIpKjGiYZoKPllfEwN7spUjv7ZqD+JhbVjEPg==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.17.0.tgz",
+ "integrity": "sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.10.2",
- "@typescript-eslint/types": "5.10.2",
- "@typescript-eslint/typescript-estree": "5.10.2",
+ "@typescript-eslint/scope-manager": "5.17.0",
+ "@typescript-eslint/types": "5.17.0",
+ "@typescript-eslint/typescript-estree": "5.17.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.10.2",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.10.2.tgz",
- "integrity": "sha512-zHIhYGGGrFJvvyfwHk5M08C5B5K4bewkm+rrvNTKk1/S15YHR+SA/QUF8ZWscXSfEaB8Nn2puZj+iHcoxVOD/Q==",
+ "version": "5.17.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.17.0.tgz",
+ "integrity": "sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.10.2",
+ "@typescript-eslint/types": "5.17.0",
"eslint-visitor-keys": "^3.0.0"
}
},
+ "@victorradael/protospack": {
+ "version": "1.3.9",
+ "resolved": "https://registry.npmjs.org/@victorradael/protospack/-/protospack-1.3.9.tgz",
+ "integrity": "sha512-UDhTCw7UY1MjFTYB739zj2fzXnk9bR9K+703dTwetAk+tOkIOr+28C4QctZ8R+wve1dESkki7j76rlEM2qmAuA==",
+ "requires": {
+ "rxjs": "^7.5.5"
+ }
+ },
"@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@@ -2038,27 +1991,12 @@
"integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"requires": {
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"ajv": {
- "version": "8.8.2",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.8.2.tgz",
- "integrity": "sha512-x9VuX+R/jcFj1DHo/fCp99esgGDWiHENrKxaCENuCxpoMCmAt/COCGVDwA7kleEpEzJjDnvh3yGoOuLu0Dtllw==",
+ "version": "8.9.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.9.0.tgz",
+ "integrity": "sha512-qOKJyNj/h+OWx7s5DePL6Zu1KeM9jPZhwBqs+7DzP6bGOvqzVCSf0xueYmVuaC/oQ/VtS2zLMLHdQFbkka+XDQ==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -2077,10 +2015,13 @@
}
},
"ajv-keywords": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
- "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
- "dev": true
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz",
+ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^3.1.3"
+ }
},
"ansi-colors": {
"version": "4.1.1",
@@ -2095,6 +2036,14 @@
"dev": true,
"requires": {
"type-fest": "^0.21.3"
+ },
+ "dependencies": {
+ "type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "dev": true
+ }
}
},
"ansi-regex": {
@@ -2214,12 +2163,6 @@
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
"dev": true
},
- "at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
- },
"axios": {
"version": "0.25.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.25.0.tgz",
@@ -2229,19 +2172,31 @@
}
},
"babel-jest": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.4.6.tgz",
- "integrity": "sha512-qZL0JT0HS1L+lOuH+xC2DVASR3nunZi/ozGhpgauJHgmI7f8rudxf6hUjEHympdQ/J64CdKmPkgfJ+A3U6QCrg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-27.5.1.tgz",
+ "integrity": "sha512-cdQ5dXjGRd0IBRATiQ4mZGlGlRE8kJpjPOixdNRdT+m3UcNqmYWN6rK6nvtXYfY3D76cb8s/O1Ss8ea24PIwcg==",
"dev": true,
"requires": {
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/babel__core": "^7.1.14",
"babel-plugin-istanbul": "^6.1.1",
- "babel-preset-jest": "^27.4.0",
+ "babel-preset-jest": "^27.5.1",
"chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
+ "graceful-fs": "^4.2.9",
"slash": "^3.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"babel-plugin-istanbul": {
@@ -2258,9 +2213,9 @@
}
},
"babel-plugin-jest-hoist": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.4.0.tgz",
- "integrity": "sha512-Jcu7qS4OX5kTWBc45Hz7BMmgXuJqRnhatqpUhnzGC3OBYpOmf2tv6jFNwZpwM7wU7MUuv2r9IPS/ZlYOuburVw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.5.1.tgz",
+ "integrity": "sha512-50wCwD5EMNW4aRpOwtqzyZHIewTYNxLA4nhB+09d8BIssfNfzBRhkBIHiaPv1Si226TQSvp8gxAJm2iY2qs2hQ==",
"dev": true,
"requires": {
"@babel/template": "^7.3.3",
@@ -2290,12 +2245,12 @@
}
},
"babel-preset-jest": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.4.0.tgz",
- "integrity": "sha512-NK4jGYpnBvNxcGo7/ZpZJr51jCGT+3bwwpVIDY2oNfTxJJldRtB4VAcYdgp1loDE50ODuTu+yBjpMAswv5tlpg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-27.5.1.tgz",
+ "integrity": "sha512-Nptf2FzlPCWYuJg41HBqXVT8ym6bXOevuCTbhxlUpjwtysGaIWFvDEjp4y+G7fl13FgOdjs7P/DmErqH7da0Ag==",
"dev": true,
"requires": {
- "babel-plugin-jest-hoist": "^27.4.0",
+ "babel-plugin-jest-hoist": "^27.5.1",
"babel-preset-current-node-syntax": "^1.0.0"
}
},
@@ -2355,20 +2310,35 @@
"integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
},
"body-parser": {
- "version": "1.19.1",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.1.tgz",
- "integrity": "sha512-8ljfQi5eBk8EJfECMrgqNGWPEY5jWP+1IzkzkGdFFEwFQZZyaZ21UqdaHktgiMlH0xLHqIFtE/u2OYE5dOtViA==",
+ "version": "1.19.2",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.2.tgz",
+ "integrity": "sha512-SAAwOxgoCKMGs9uUAUFHygfLAyaniaoun6I8mFY9pRAJL9+Kec34aU+oIjDhTycub1jozEfEwx1W1IuOYxVSFw==",
"requires": {
- "bytes": "3.1.1",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
- "qs": "6.9.6",
- "raw-body": "2.4.2",
+ "qs": "6.9.7",
+ "raw-body": "2.4.3",
"type-is": "~1.6.18"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
}
},
"brace-expansion": {
@@ -2401,15 +2371,15 @@
"dev": true
},
"browserslist": {
- "version": "4.19.1",
- "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.19.1.tgz",
- "integrity": "sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==",
+ "version": "4.20.2",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.2.tgz",
+ "integrity": "sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==",
"dev": true,
"requires": {
- "caniuse-lite": "^1.0.30001286",
- "electron-to-chromium": "^1.4.17",
+ "caniuse-lite": "^1.0.30001317",
+ "electron-to-chromium": "^1.4.84",
"escalade": "^3.1.1",
- "node-releases": "^2.0.1",
+ "node-releases": "^2.0.2",
"picocolors": "^1.0.0"
}
},
@@ -2476,9 +2446,9 @@
}
},
"bytes": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.1.tgz",
- "integrity": "sha512-dWe4nWO/ruEOY7HkUJ5gFt1DCFV9zPRoJr8pV0/ASQermOZjtq8jMjOprC0Kd10GLN+l7xaUPvxzJFWtxGu8Fg=="
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"call-bind": {
"version": "1.0.2",
@@ -2497,20 +2467,22 @@
"dev": true
},
"camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
},
"caniuse-lite": {
- "version": "1.0.30001306",
- "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001306.tgz",
- "integrity": "sha512-Wd1OuggRzg1rbnM5hv1wXs2VkxJH/AA+LuudlIqvZiCvivF+wJJe2mgBZC8gPMgI7D76PP5CTx8Luvaqc1V6OQ==",
+ "version": "1.0.30001317",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz",
+ "integrity": "sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==",
"dev": true
},
"chalk": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
- "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
+ "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
+ "dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -2529,9 +2501,9 @@
"dev": true
},
"chokidar": {
- "version": "3.5.2",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.2.tgz",
- "integrity": "sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ==",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true,
"requires": {
"anymatch": "~3.1.2",
@@ -2773,9 +2745,9 @@
}
},
"cookie": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz",
- "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA=="
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz",
+ "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA=="
},
"cookie-signature": {
"version": "1.0.6",
@@ -2803,16 +2775,16 @@
}
},
"cosmiconfig": {
- "version": "6.0.0",
- "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
- "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
- "import-fresh": "^3.1.0",
+ "import-fresh": "^3.2.1",
"parse-json": "^5.0.0",
"path-type": "^4.0.0",
- "yaml": "^1.7.2"
+ "yaml": "^1.10.0"
}
},
"create-require": {
@@ -2864,42 +2836,14 @@
"abab": "^2.0.3",
"whatwg-mimetype": "^2.3.0",
"whatwg-url": "^8.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "webidl-conversions": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
- "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
- "dev": true
- },
- "whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
- "dev": true,
- "requires": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
- }
- }
}
},
"debug": {
- "version": "2.6.9",
- "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
- "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
"requires": {
- "ms": "2.0.0"
+ "ms": "2.1.2"
}
},
"decamelize": {
@@ -2998,9 +2942,9 @@
"dev": true
},
"diff-sequences": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.4.0.tgz",
- "integrity": "sha512-YqiQzkrsmHMH5uuh8OdQFU9/ZpADnwzml8z0O5HvRNda+5UZsaX/xN+AAxfR2hWq1Y7HZnAzO9J5lJXOuDz2Ww==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-27.5.1.tgz",
+ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==",
"dev": true
},
"dir-glob": {
@@ -3043,6 +2987,11 @@
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-14.3.2.tgz",
"integrity": "sha512-vwEppIphpFdvaMCaHfCEv9IgwcxMljMw2TnAQBB4VWPvzXQLTb82jwmdOKzlEVUL3gNFT4l4TPKO+Bn+sqcrVQ=="
},
+ "dotenv-expand": {
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
+ "integrity": "sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA=="
+ },
"ecdsa-sig-formatter": {
"version": "1.0.11",
"resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz",
@@ -3057,9 +3006,9 @@
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"electron-to-chromium": {
- "version": "1.4.63",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.63.tgz",
- "integrity": "sha512-e0PX/LRJPFRU4kzJKLvTobxyFdnANCvcoDCe8XcyTqP58nTWIwdsHvXLIl1RkB39X5yaosLaroMASWB0oIsgCA==",
+ "version": "1.4.84",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.84.tgz",
+ "integrity": "sha512-b+DdcyOiZtLXHdgEG8lncYJdxbdJWJvclPNMg0eLUDcSOSO876WA/pYjdSblUTd7eJdIs4YdIxHWGazx7UPSJw==",
"dev": true
},
"elliptic": {
@@ -3102,21 +3051,13 @@
}
},
"enhanced-resolve": {
- "version": "5.8.3",
- "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz",
- "integrity": "sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA==",
+ "version": "5.9.2",
+ "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz",
+ "integrity": "sha512-GIm3fQfwLJ8YZx2smuHpBKkXC1yOk+OBEmKckVyL0i/ea8mqDEykK3ld5dgH1QYPNyT/lIllxV2LULnxCHaHkA==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.4",
"tapable": "^2.2.0"
- },
- "dependencies": {
- "tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true
- }
}
},
"error-ex": {
@@ -3145,9 +3086,9 @@
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true
},
"escodegen": {
@@ -3218,12 +3159,12 @@
}
},
"eslint": {
- "version": "8.8.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.8.0.tgz",
- "integrity": "sha512-H3KXAzQGBH1plhYS3okDix2ZthuYJlQQEGE5k0IKuEqUSiyu4AmxxlJ2MtTYeJ3xB4jDhcYCwGOg2TXYdnDXlQ==",
+ "version": "8.12.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.12.0.tgz",
+ "integrity": "sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==",
"dev": true,
"requires": {
- "@eslint/eslintrc": "^1.0.5",
+ "@eslint/eslintrc": "^1.2.1",
"@humanwhocodes/config-array": "^0.9.2",
"ajv": "^6.10.0",
"chalk": "^4.0.0",
@@ -3231,10 +3172,10 @@
"debug": "^4.3.2",
"doctrine": "^3.0.0",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^7.1.0",
+ "eslint-scope": "^7.1.1",
"eslint-utils": "^3.0.0",
- "eslint-visitor-keys": "^3.2.0",
- "espree": "^9.3.0",
+ "eslint-visitor-keys": "^3.3.0",
+ "espree": "^9.3.1",
"esquery": "^1.4.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -3272,25 +3213,20 @@
"uri-js": "^4.2.2"
}
},
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
- "ms": "2.1.2"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
},
- "escape-string-regexp": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
- "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
- "dev": true
- },
"eslint-scope": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.0.tgz",
- "integrity": "sha512-aWwkhnS0qAXqNOgKOK0dJ2nvzEbhEvpy8OlJ9kZ0FeZnA6zpjv1/Vei+puGFFX7zkPCkHHXb7IDX3A+7yPrRWg==",
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz",
+ "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -3317,19 +3253,13 @@
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
"integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
}
}
},
"eslint-config-prettier": {
- "version": "8.3.0",
- "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.3.0.tgz",
- "integrity": "sha512-BgZuLUSeKzvlL/VUjx/Yb787VQ26RU3gGjA3iiFvdsp/2bMfVIWUVP7tjxtjS0e+HP409cPlPvNkQloz8C91ew==",
+ "version": "8.5.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
+ "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true
},
"eslint-plugin-prettier": {
@@ -3369,20 +3299,20 @@
}
},
"eslint-visitor-keys": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.2.0.tgz",
- "integrity": "sha512-IOzT0X126zn7ALX0dwFiUQEdsfzrm4+ISsQS8nukaJXwEyYKRSnEIIDULYg1mCtGp7UUXgfGl7BIolXREQK+XQ==",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz",
+ "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==",
"dev": true
},
"espree": {
- "version": "9.3.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.0.tgz",
- "integrity": "sha512-d/5nCsb0JcqsSEeQzFZ8DH1RmxPcglRWh24EFTlUEmCKoehXGdpsx0RkHDubqUI8LSAIKMQp4r9SzQ3n+sm4HQ==",
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.1.tgz",
+ "integrity": "sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==",
"dev": true,
"requires": {
"acorn": "^8.7.0",
"acorn-jsx": "^5.3.1",
- "eslint-visitor-keys": "^3.1.0"
+ "eslint-visitor-keys": "^3.3.0"
}
},
"esprima": {
@@ -3449,19 +3379,19 @@
"dev": true
},
"execa": {
- "version": "4.1.0",
- "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
- "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
"dev": true,
"requires": {
- "cross-spawn": "^7.0.0",
- "get-stream": "^5.0.0",
- "human-signals": "^1.1.1",
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
"is-stream": "^2.0.0",
"merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.0",
- "onetime": "^5.1.0",
- "signal-exit": "^3.0.2",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
"strip-final-newline": "^2.0.0"
}
},
@@ -3472,28 +3402,28 @@
"dev": true
},
"expect": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/expect/-/expect-27.4.6.tgz",
- "integrity": "sha512-1M/0kAALIaj5LaG66sFJTbRsWTADnylly82cu4bspI0nl+pgP4E6Bh/aqdHlTUjul06K7xQnnrAoqfxVU0+/ag==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-27.5.1.tgz",
+ "integrity": "sha512-E1q5hSUG2AmYQwQJ041nvgpkODHQvB+RKlB4IYdru6uJsyFTRyZAP463M+1lINorwbqAmUggi6+WwkD8lCS/Dw==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
- "jest-get-type": "^27.4.0",
- "jest-matcher-utils": "^27.4.6",
- "jest-message-util": "^27.4.6"
+ "@jest/types": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1"
}
},
"express": {
- "version": "4.17.2",
- "resolved": "https://registry.npmjs.org/express/-/express-4.17.2.tgz",
- "integrity": "sha512-oxlxJxcQlYwqPWKVJJtvQiwHgosH/LrLSPA+H4UxpyvSS6jC5aH+5MoHFM+KABgTOt0APue4w66Ha8jCUo9QGg==",
+ "version": "4.17.3",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.17.3.tgz",
+ "integrity": "sha512-yuSQpz5I+Ch7gFrPCk4/c+dIBKlQUxtgwqzph132bsT6qhuzss6I8cLJQz7B3rFblzd6wtcI0ZbGltH/C4LjUg==",
"requires": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.1",
+ "body-parser": "1.19.2",
"content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.1",
+ "cookie": "0.4.2",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
@@ -3508,7 +3438,7 @@
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.7",
- "qs": "6.9.6",
+ "qs": "6.9.7",
"range-parser": "~1.2.1",
"safe-buffer": "5.2.1",
"send": "0.17.2",
@@ -3520,6 +3450,19 @@
"vary": "~1.1.2"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ },
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
@@ -3605,6 +3548,14 @@
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.5"
+ },
+ "dependencies": {
+ "escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
+ "dev": true
+ }
}
},
"file-entry-cache": {
@@ -3637,6 +3588,21 @@
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ }
+ },
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
}
},
"find-up": {
@@ -3666,41 +3632,37 @@
"dev": true
},
"follow-redirects": {
- "version": "1.14.7",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.7.tgz",
- "integrity": "sha512-+hbxoLbFMbRKDwohX8GkTataGqO6Jb7jGwpAlwgy2bIz25XtRm7KEzJM76R1WiNT5SwZkX4Y75SwBolkpmE7iQ=="
+ "version": "1.14.9",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.14.9.tgz",
+ "integrity": "sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w=="
},
"fork-ts-checker-webpack-plugin": {
- "version": "6.5.0",
- "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-6.5.0.tgz",
- "integrity": "sha512-cS178Y+xxtIjEUorcHddKS7yCMlrDPV31mt47blKKRfMd70Kxu5xruAFE2o9sDY6wVC5deuob/u/alD04YYHnw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-7.2.1.tgz",
+ "integrity": "sha512-uOfQdg/iQ8iokQ64qcbu8iZb114rOmaKLQFu7hU14/eJaKgsP91cQ7ts7v2iiDld6TzDe84Meksha8/MkWiCyw==",
"dev": true,
"requires": {
- "@babel/code-frame": "^7.8.3",
- "@types/json-schema": "^7.0.5",
- "chalk": "^4.1.0",
- "chokidar": "^3.4.2",
- "cosmiconfig": "^6.0.0",
+ "@babel/code-frame": "^7.16.7",
+ "chalk": "^4.1.2",
+ "chokidar": "^3.5.3",
+ "cosmiconfig": "^7.0.1",
"deepmerge": "^4.2.2",
- "fs-extra": "^9.0.0",
- "glob": "^7.1.6",
- "memfs": "^3.1.2",
+ "fs-extra": "^10.0.0",
+ "memfs": "^3.4.1",
"minimatch": "^3.0.4",
- "schema-utils": "2.7.0",
- "semver": "^7.3.2",
- "tapable": "^1.0.0"
+ "schema-utils": "4.0.0",
+ "semver": "^7.3.5",
+ "tapable": "^2.2.1"
},
"dependencies": {
- "fs-extra": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
- "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
}
}
@@ -3747,9 +3709,9 @@
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"fs-extra": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.0.tgz",
- "integrity": "sha512-C5owb14u9eJwizKGdchcDUQeFtlSHHthBk8pbX9Vc1PFZrLombudjDnNns88aYslCyF6IY5SUw3Roz6xShcEIQ==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.0.1.tgz",
+ "integrity": "sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.0",
@@ -3840,13 +3802,10 @@
"dev": true
},
"get-stream": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
- "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
- "dev": true,
- "requires": {
- "pump": "^3.0.0"
- }
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "dev": true
},
"glob": {
"version": "7.2.0",
@@ -3877,20 +3836,12 @@
"dev": true
},
"globals": {
- "version": "13.12.1",
- "resolved": "https://registry.npmjs.org/globals/-/globals-13.12.1.tgz",
- "integrity": "sha512-317dFlgY2pdJZ9rspXDks7073GpDmXdfbM3vYYp0HAMKGDh1FfWPleI2ljVNLQX5M5lXcAslTcPTrOrMEFOjyw==",
+ "version": "13.13.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.13.0.tgz",
+ "integrity": "sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
- },
- "dependencies": {
- "type-fest": {
- "version": "0.20.2",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
- "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
- "dev": true
- }
}
},
"globby": {
@@ -3931,6 +3882,11 @@
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
+ "camelcase": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
+ "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
+ },
"cliui": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
@@ -4023,9 +3979,9 @@
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"has-symbols": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.2.tgz",
- "integrity": "sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw==",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"dev": true
},
"has-unicode": {
@@ -4094,23 +4050,6 @@
"@tootallnate/once": "1",
"agent-base": "6",
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- }
}
},
"https-proxy-agent": {
@@ -4120,27 +4059,12 @@
"requires": {
"agent-base": "6",
"debug": "4"
- },
- "dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- }
}
},
"human-signals": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
- "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
"dev": true
},
"iconv-lite": {
@@ -4224,6 +4148,16 @@
"through": "^2.3.6"
},
"dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ },
"rxjs": {
"version": "6.6.7",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
@@ -4403,21 +4337,6 @@
"source-map": "^0.6.1"
},
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"source-map": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
@@ -4427,9 +4346,9 @@
}
},
"istanbul-reports": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.3.tgz",
- "integrity": "sha512-x9LtDVtfm/t1GFiLl3NffC7hz+I1ragvgX1P/Lg1NlIagifZDKUkuuaAxH/qpwj2IuEfD8G2Bs/UKp+sZ/pKkg==",
+ "version": "3.1.4",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz",
+ "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==",
"dev": true,
"requires": {
"html-escaper": "^2.0.0",
@@ -4442,298 +4361,363 @@
"integrity": "sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q=="
},
"jest": {
- "version": "27.4.7",
- "resolved": "https://registry.npmjs.org/jest/-/jest-27.4.7.tgz",
- "integrity": "sha512-8heYvsx7nV/m8m24Vk26Y87g73Ba6ueUd0MWed/NXMhSZIm62U/llVbS0PJe1SHunbyXjJ/BqG1z9bFjGUIvTg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-27.5.1.tgz",
+ "integrity": "sha512-Yn0mADZB89zTtjkPJEXwrac3LHudkQMR+Paqa8uxJHCBr9agxztUifWCyiYrjhMPBoUVBjyny0I7XH6ozDr7QQ==",
"dev": true,
"requires": {
- "@jest/core": "^27.4.7",
+ "@jest/core": "^27.5.1",
"import-local": "^3.0.2",
- "jest-cli": "^27.4.7"
- },
- "dependencies": {
- "jest-cli": {
- "version": "27.4.7",
- "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.4.7.tgz",
- "integrity": "sha512-zREYhvjjqe1KsGV15mdnxjThKNDgza1fhDT+iUsXWLCq3sxe9w5xnvyctcYVT5PcdLSjv7Y5dCwTS3FCF1tiuw==",
- "dev": true,
- "requires": {
- "@jest/core": "^27.4.7",
- "@jest/test-result": "^27.4.6",
- "@jest/types": "^27.4.2",
- "chalk": "^4.0.0",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "import-local": "^3.0.2",
- "jest-config": "^27.4.7",
- "jest-util": "^27.4.2",
- "jest-validate": "^27.4.6",
- "prompts": "^2.0.1",
- "yargs": "^16.2.0"
- }
- }
+ "jest-cli": "^27.5.1"
}
},
"jest-changed-files": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.4.2.tgz",
- "integrity": "sha512-/9x8MjekuzUQoPjDHbBiXbNEBauhrPU2ct7m8TfCg69ywt1y/N+yYwGh3gCpnqUS3klYWDU/lSNgv+JhoD2k1A==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-27.5.1.tgz",
+ "integrity": "sha512-buBLMiByfWGCoMsLLzGUUSpAmIAGnbR2KJoMN10ziLhOLvP4e0SlypHnAel8iqQXTrcbmfEY9sSqae5sgUsTvw==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"execa": "^5.0.0",
"throat": "^6.0.1"
- },
- "dependencies": {
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
- "dev": true,
- "requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
- }
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true
- }
}
},
"jest-circus": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.4.6.tgz",
- "integrity": "sha512-UA7AI5HZrW4wRM72Ro80uRR2Fg+7nR0GESbSI/2M+ambbzVuA63mn5T1p3Z/wlhntzGpIG1xx78GP2YIkf6PhQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-27.5.1.tgz",
+ "integrity": "sha512-D95R7x5UtlMA5iBYsOHFFbMD/GVA4R/Kdq15f7xYWUfWHBto9NYRsOvnSauTgdF+ogCpJ4tyKOXhUifxS65gdw==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/test-result": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
"co": "^4.6.0",
"dedent": "^0.7.0",
- "expect": "^27.4.6",
+ "expect": "^27.5.1",
"is-generator-fn": "^2.0.0",
- "jest-each": "^27.4.6",
- "jest-matcher-utils": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-runtime": "^27.4.6",
- "jest-snapshot": "^27.4.6",
- "jest-util": "^27.4.2",
- "pretty-format": "^27.4.6",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.3",
"throat": "^6.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
+ }
+ },
+ "jest-cli": {
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-27.5.1.tgz",
+ "integrity": "sha512-Hc6HOOwYq4/74/c62dEE3r5elx8wjYqxY0r0G/nFrLDPMFRu6RA/u8qINOIkvhxG7mMQ5EJsOGfRpI8L6eFUVw==",
+ "dev": true,
+ "requires": {
+ "@jest/core": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "import-local": "^3.0.2",
+ "jest-config": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
+ "prompts": "^2.0.1",
+ "yargs": "^16.2.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-config": {
- "version": "27.4.7",
- "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.4.7.tgz",
- "integrity": "sha512-xz/o/KJJEedHMrIY9v2ParIoYSrSVY6IVeE4z5Z3i101GoA5XgfbJz+1C8EYPsv7u7f39dS8F9v46BHDhn0vlw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-27.5.1.tgz",
+ "integrity": "sha512-5sAsjm6tGdsVbW9ahcChPAFCk4IlkQUknH5AvKjuLTSlcO/wCZKyFdn7Rg0EkC+OGgWODEy2hDpWB1PgzH0JNA==",
"dev": true,
"requires": {
"@babel/core": "^7.8.0",
- "@jest/test-sequencer": "^27.4.6",
- "@jest/types": "^27.4.2",
- "babel-jest": "^27.4.6",
+ "@jest/test-sequencer": "^27.5.1",
+ "@jest/types": "^27.5.1",
+ "babel-jest": "^27.5.1",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"deepmerge": "^4.2.2",
"glob": "^7.1.1",
- "graceful-fs": "^4.2.4",
- "jest-circus": "^27.4.6",
- "jest-environment-jsdom": "^27.4.6",
- "jest-environment-node": "^27.4.6",
- "jest-get-type": "^27.4.0",
- "jest-jasmine2": "^27.4.6",
- "jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.6",
- "jest-runner": "^27.4.6",
- "jest-util": "^27.4.2",
- "jest-validate": "^27.4.6",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-jasmine2": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runner": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
"micromatch": "^4.0.4",
- "pretty-format": "^27.4.6",
- "slash": "^3.0.0"
+ "parse-json": "^5.2.0",
+ "pretty-format": "^27.5.1",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-diff": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.4.6.tgz",
- "integrity": "sha512-zjaB0sh0Lb13VyPsd92V7HkqF6yKRH9vm33rwBt7rPYrpQvS1nCvlIy2pICbKta+ZjWngYLNn4cCK4nyZkjS/w==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-27.5.1.tgz",
+ "integrity": "sha512-m0NvkX55LDt9T4mctTEgnZk3fmEg3NRYutvMPWM/0iPnkFj2wIeF45O1718cMSOFO1vINkqmxqD8vE37uTEbqw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
- "diff-sequences": "^27.4.0",
- "jest-get-type": "^27.4.0",
- "pretty-format": "^27.4.6"
+ "diff-sequences": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-docblock": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.4.0.tgz",
- "integrity": "sha512-7TBazUdCKGV7svZ+gh7C8esAnweJoG+SvcF6Cjqj4l17zA2q1cMwx2JObSioubk317H+cjcHgP+7fTs60paulg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-27.5.1.tgz",
+ "integrity": "sha512-rl7hlABeTsRYxKiUfpHrQrG4e2obOiTQWfMEH3PxPjOtdsfLQO4ReWSZaQ7DETm4xu07rl4q/h4zcKXyU0/OzQ==",
"dev": true,
"requires": {
"detect-newline": "^3.0.0"
}
},
"jest-each": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.4.6.tgz",
- "integrity": "sha512-n6QDq8y2Hsmn22tRkgAk+z6MCX7MeVlAzxmZDshfS2jLcaBlyhpF3tZSJLR+kXmh23GEvS0ojMR8i6ZeRvpQcA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-27.5.1.tgz",
+ "integrity": "sha512-1Ff6p+FbhT/bXQnEouYy00bkNSY7OUpfIcmdl8vZ31A1UUaurOLPA8a8BbJOF2RDUElwJhmeaV7LnagI+5UwNQ==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"chalk": "^4.0.0",
- "jest-get-type": "^27.4.0",
- "jest-util": "^27.4.2",
- "pretty-format": "^27.4.6"
+ "jest-get-type": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-environment-jsdom": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.4.6.tgz",
- "integrity": "sha512-o3dx5p/kHPbUlRvSNjypEcEtgs6LmvESMzgRFQE6c+Prwl2JLA4RZ7qAnxc5VM8kutsGRTB15jXeeSbJsKN9iA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-27.5.1.tgz",
+ "integrity": "sha512-TFBvkTC1Hnnnrka/fUb56atfDtJ9VMZ94JkjTbggl1PEpwrYtUBKMezB3inLmWqQsXYLcMwNoDQwoBTAvFfsfw==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/fake-timers": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
- "jest-mock": "^27.4.6",
- "jest-util": "^27.4.2",
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1",
"jsdom": "^16.6.0"
}
},
"jest-environment-node": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.4.6.tgz",
- "integrity": "sha512-yfHlZ9m+kzTKZV0hVfhVu6GuDxKAYeFHrfulmy7Jxwsq4V7+ZK7f+c0XP/tbVDMQW7E4neG2u147hFkuVz0MlQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-27.5.1.tgz",
+ "integrity": "sha512-Jt4ZUnxdOsTGwSRAfKEnE6BcwsSPNOijjwifq5sDFSA2kesnXTvNqKHYgM0hDq3549Uf/KzdXNYn4wMZJPlFLw==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/fake-timers": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
- "jest-mock": "^27.4.6",
- "jest-util": "^27.4.2"
+ "jest-mock": "^27.5.1",
+ "jest-util": "^27.5.1"
}
},
"jest-get-type": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.4.0.tgz",
- "integrity": "sha512-tk9o+ld5TWq41DkK14L4wox4s2D9MtTpKaAVzXfr5CUKm5ZK2ExcaFE0qls2W71zE/6R2TxxrK9w2r6svAFDBQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-27.5.1.tgz",
+ "integrity": "sha512-2KY95ksYSaK7DMBWQn6dQz3kqAf3BB64y2udeG+hv4KfSOb9qwcYQstTJc1KCbsix+wLZWZYN8t7nwX3GOBLRw==",
"dev": true
},
"jest-haste-map": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.4.6.tgz",
- "integrity": "sha512-0tNpgxg7BKurZeFkIOvGCkbmOHbLFf4LUQOxrQSMjvrQaQe3l6E8x6jYC1NuWkGo5WDdbr8FEzUxV2+LWNawKQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-27.5.1.tgz",
+ "integrity": "sha512-7GgkZ4Fw4NFbMSDSpZwXeBiIbx+t/46nJ2QitkOjvwPYyZmqttu2TDSimMHP1EkPOi4xUZAN1doE5Vd25H4Jng==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@types/graceful-fs": "^4.1.2",
"@types/node": "*",
"anymatch": "^3.0.3",
"fb-watchman": "^2.0.0",
"fsevents": "^2.3.2",
- "graceful-fs": "^4.2.4",
- "jest-regex-util": "^27.4.0",
- "jest-serializer": "^27.4.0",
- "jest-util": "^27.4.2",
- "jest-worker": "^27.4.6",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^27.5.1",
+ "jest-serializer": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
"micromatch": "^4.0.4",
"walker": "^1.0.7"
}
},
"jest-jasmine2": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.4.6.tgz",
- "integrity": "sha512-uAGNXF644I/whzhsf7/qf74gqy9OuhvJ0XYp8SDecX2ooGeaPnmJMjXjKt0mqh1Rl5dtRGxJgNrHlBQIBfS5Nw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-27.5.1.tgz",
+ "integrity": "sha512-jtq7VVyG8SqAorDpApwiJJImd0V2wv1xzdheGHRGyuT7gZm6gG47QEskOlzsN1PG/6WNaCo5pmwMHDf3AkG2pQ==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/source-map": "^27.4.0",
- "@jest/test-result": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/environment": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
"co": "^4.6.0",
- "expect": "^27.4.6",
+ "expect": "^27.5.1",
"is-generator-fn": "^2.0.0",
- "jest-each": "^27.4.6",
- "jest-matcher-utils": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-runtime": "^27.4.6",
- "jest-snapshot": "^27.4.6",
- "jest-util": "^27.4.2",
- "pretty-format": "^27.4.6",
+ "jest-each": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "pretty-format": "^27.5.1",
"throat": "^6.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-leak-detector": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.4.6.tgz",
- "integrity": "sha512-kkaGixDf9R7CjHm2pOzfTxZTQQQ2gHTIWKY/JZSiYTc90bZp8kSZnUMS3uLAfwTZwc0tcMRoEX74e14LG1WapA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-27.5.1.tgz",
+ "integrity": "sha512-POXfWAMvfU6WMUXftV4HolnJfnPOGEu10fscNCA76KBpRRhcMN2c8d3iT2pxQS3HLbA+5X4sOUPzYO2NUyIlHQ==",
"dev": true,
"requires": {
- "jest-get-type": "^27.4.0",
- "pretty-format": "^27.4.6"
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
}
},
"jest-matcher-utils": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.4.6.tgz",
- "integrity": "sha512-XD4PKT3Wn1LQnRAq7ZsTI0VRuEc9OrCPFiO1XL7bftTGmfNF0DcEwMHRgqiu7NGf8ZoZDREpGrCniDkjt79WbA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-27.5.1.tgz",
+ "integrity": "sha512-z2uTx/T6LBaCoNWNFWwChLBKYxTMcGBRjAt+2SbP929/Fflb9aa5LGma654Rz8z9HLxsrUaYzxE9T/EFIL/PAw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
- "jest-diff": "^27.4.6",
- "jest-get-type": "^27.4.0",
- "pretty-format": "^27.4.6"
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "pretty-format": "^27.5.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-message-util": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.4.6.tgz",
- "integrity": "sha512-0p5szriFU0U74czRSFjH6RyS7UYIAkn/ntwMuOwTGWrQIOh5NzXXrq72LOqIkJKKvFbPq+byZKuBz78fjBERBA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-27.5.1.tgz",
+ "integrity": "sha512-rMyFe1+jnyAAf+NHwTclDz0eAaLkVDdKVHHBFWsBWHnnh5YeJMNWWsv7AbFYXfK3oTqvL7VTWkhNLu1jX24D+g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.12.13",
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
+ "graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
- "pretty-format": "^27.4.6",
+ "pretty-format": "^27.5.1",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-mock": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.4.6.tgz",
- "integrity": "sha512-kvojdYRkst8iVSZ1EJ+vc1RRD9llueBjKzXzeCytH3dMM7zvPV/ULcfI2nr0v0VUgm3Bjt3hBCQvOeaBz+ZTHw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-27.5.1.tgz",
+ "integrity": "sha512-K4jKbY1d4ENhbrG2zuPWaQBvDly+iZ2yAW+T1fATN78hc0sInwn7wZB8XtlNnvHug5RMwV897Xm4LqmPM4e2Og==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@types/node": "*"
}
},
@@ -4744,151 +4728,149 @@
"dev": true
},
"jest-regex-util": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.4.0.tgz",
- "integrity": "sha512-WeCpMpNnqJYMQoOjm1nTtsgbR4XHAk1u00qDoNBQoykM280+/TmgA5Qh5giC1ecy6a5d4hbSsHzpBtu5yvlbEg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-27.5.1.tgz",
+ "integrity": "sha512-4bfKq2zie+x16okqDXjXn9ql2B0dScQu+vcwe4TvFVhkVyuWLqpZrZtXxLLWoXYgn0E87I6r6GRYHF7wFZBUvg==",
"dev": true
},
"jest-resolve": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.4.6.tgz",
- "integrity": "sha512-SFfITVApqtirbITKFAO7jOVN45UgFzcRdQanOFzjnbd+CACDoyeX7206JyU92l4cRr73+Qy/TlW51+4vHGt+zw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-27.5.1.tgz",
+ "integrity": "sha512-FFDy8/9E6CV83IMbDpcjOhumAQPDyETnU2KZ1O98DwTnz8AOBsW/Xv3GySr1mOZdItLR+zDZ7I/UdTFbgSOVCw==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"chalk": "^4.0.0",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.6",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
"jest-pnp-resolver": "^1.2.2",
- "jest-util": "^27.4.2",
- "jest-validate": "^27.4.6",
+ "jest-util": "^27.5.1",
+ "jest-validate": "^27.5.1",
"resolve": "^1.20.0",
"resolve.exports": "^1.1.0",
"slash": "^3.0.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-resolve-dependencies": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.4.6.tgz",
- "integrity": "sha512-W85uJZcFXEVZ7+MZqIPCscdjuctruNGXUZ3OHSXOfXR9ITgbUKeHj+uGcies+0SsvI5GtUfTw4dY7u9qjTvQOw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-27.5.1.tgz",
+ "integrity": "sha512-QQOOdY4PE39iawDn5rzbIePNigfe5B9Z91GDD1ae/xNDlu9kaat8QQ5EKnNmVWPV54hUdxCVwwj6YMgR2O7IOg==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
- "jest-regex-util": "^27.4.0",
- "jest-snapshot": "^27.4.6"
+ "@jest/types": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-snapshot": "^27.5.1"
}
},
"jest-runner": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.4.6.tgz",
- "integrity": "sha512-IDeFt2SG4DzqalYBZRgbbPmpwV3X0DcntjezPBERvnhwKGWTW7C5pbbA5lVkmvgteeNfdd/23gwqv3aiilpYPg==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-27.5.1.tgz",
+ "integrity": "sha512-g4NPsM4mFCOwFKXO4p/H/kWGdJp9V8kURY2lX8Me2drgXqG7rrZAx5kv+5H7wtt/cdFIjhqYx1HrlqWHaOvDaQ==",
"dev": true,
"requires": {
- "@jest/console": "^27.4.6",
- "@jest/environment": "^27.4.6",
- "@jest/test-result": "^27.4.6",
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/console": "^27.5.1",
+ "@jest/environment": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
"emittery": "^0.8.1",
- "exit": "^0.1.2",
- "graceful-fs": "^4.2.4",
- "jest-docblock": "^27.4.0",
- "jest-environment-jsdom": "^27.4.6",
- "jest-environment-node": "^27.4.6",
- "jest-haste-map": "^27.4.6",
- "jest-leak-detector": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-resolve": "^27.4.6",
- "jest-runtime": "^27.4.6",
- "jest-util": "^27.4.2",
- "jest-worker": "^27.4.6",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^27.5.1",
+ "jest-environment-jsdom": "^27.5.1",
+ "jest-environment-node": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-leak-detector": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-runtime": "^27.5.1",
+ "jest-util": "^27.5.1",
+ "jest-worker": "^27.5.1",
"source-map-support": "^0.5.6",
"throat": "^6.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-runtime": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.4.6.tgz",
- "integrity": "sha512-eXYeoR/MbIpVDrjqy5d6cGCFOYBFFDeKaNWqTp0h6E74dK0zLHzASQXJpl5a2/40euBmKnprNLJ0Kh0LCndnWQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-27.5.1.tgz",
+ "integrity": "sha512-o7gxw3Gf+H2IGt8fv0RiyE1+r83FJBRruoA+FXrlHw6xEyBsU8ugA6IPfTdVyA0w8HClpbK+DGJxH59UrNMx8A==",
"dev": true,
"requires": {
- "@jest/environment": "^27.4.6",
- "@jest/fake-timers": "^27.4.6",
- "@jest/globals": "^27.4.6",
- "@jest/source-map": "^27.4.0",
- "@jest/test-result": "^27.4.6",
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/environment": "^27.5.1",
+ "@jest/fake-timers": "^27.5.1",
+ "@jest/globals": "^27.5.1",
+ "@jest/source-map": "^27.5.1",
+ "@jest/test-result": "^27.5.1",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"chalk": "^4.0.0",
"cjs-module-lexer": "^1.0.0",
"collect-v8-coverage": "^1.0.0",
"execa": "^5.0.0",
"glob": "^7.1.3",
- "graceful-fs": "^4.2.4",
- "jest-haste-map": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-mock": "^27.4.6",
- "jest-regex-util": "^27.4.0",
- "jest-resolve": "^27.4.6",
- "jest-snapshot": "^27.4.6",
- "jest-util": "^27.4.2",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-mock": "^27.5.1",
+ "jest-regex-util": "^27.5.1",
+ "jest-resolve": "^27.5.1",
+ "jest-snapshot": "^27.5.1",
+ "jest-util": "^27.5.1",
"slash": "^3.0.0",
"strip-bom": "^4.0.0"
},
"dependencies": {
- "execa": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
- "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
- "cross-spawn": "^7.0.3",
- "get-stream": "^6.0.0",
- "human-signals": "^2.1.0",
- "is-stream": "^2.0.0",
- "merge-stream": "^2.0.0",
- "npm-run-path": "^4.0.1",
- "onetime": "^5.1.2",
- "signal-exit": "^3.0.3",
- "strip-final-newline": "^2.0.0"
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
}
- },
- "get-stream": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
- "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
- "dev": true
- },
- "human-signals": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
- "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
- "dev": true
- },
- "strip-bom": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
- "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
- "dev": true
}
}
},
"jest-serializer": {
- "version": "27.4.0",
- "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.4.0.tgz",
- "integrity": "sha512-RDhpcn5f1JYTX2pvJAGDcnsNTnsV9bjYPU8xcV+xPwOXnUPOQwf4ZEuiU6G9H1UztH+OapMgu/ckEVwO87PwnQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-27.5.1.tgz",
+ "integrity": "sha512-jZCyo6iIxO1aqUxpuBlwTDMkzOAJS4a3eYz3YzgxxVQFwLeSA7Jfq5cbqCY+JLvTDrWirgusI/0KwxKMgrdf7w==",
"dev": true,
"requires": {
"@types/node": "*",
- "graceful-fs": "^4.2.4"
+ "graceful-fs": "^4.2.9"
}
},
"jest-snapshot": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.4.6.tgz",
- "integrity": "sha512-fafUCDLQfzuNP9IRcEqaFAMzEe7u5BF7mude51wyWv7VRex60WznZIC7DfKTgSIlJa8aFzYmXclmN328aqSDmQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-27.5.1.tgz",
+ "integrity": "sha512-yYykXI5a0I31xX67mgeLw1DZ0bJB+gpq5IpSuCAoyDi0+BhgU/RIrL+RTzDmkNTchvDFWKP8lp+w/42Z3us5sA==",
"dev": true,
"requires": {
"@babel/core": "^7.7.2",
@@ -4896,51 +4878,75 @@
"@babel/plugin-syntax-typescript": "^7.7.2",
"@babel/traverse": "^7.7.2",
"@babel/types": "^7.0.0",
- "@jest/transform": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/transform": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/babel__traverse": "^7.0.4",
"@types/prettier": "^2.1.5",
"babel-preset-current-node-syntax": "^1.0.0",
"chalk": "^4.0.0",
- "expect": "^27.4.6",
- "graceful-fs": "^4.2.4",
- "jest-diff": "^27.4.6",
- "jest-get-type": "^27.4.0",
- "jest-haste-map": "^27.4.6",
- "jest-matcher-utils": "^27.4.6",
- "jest-message-util": "^27.4.6",
- "jest-util": "^27.4.2",
+ "expect": "^27.5.1",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^27.5.1",
+ "jest-get-type": "^27.5.1",
+ "jest-haste-map": "^27.5.1",
+ "jest-matcher-utils": "^27.5.1",
+ "jest-message-util": "^27.5.1",
+ "jest-util": "^27.5.1",
"natural-compare": "^1.4.0",
- "pretty-format": "^27.4.6",
+ "pretty-format": "^27.5.1",
"semver": "^7.3.2"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-util": {
- "version": "27.4.2",
- "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.4.2.tgz",
- "integrity": "sha512-YuxxpXU6nlMan9qyLuxHaMMOzXAl5aGZWCSzben5DhLHemYQxCc4YK+4L3ZrCutT8GPQ+ui9k5D8rUJoDioMnA==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-27.5.1.tgz",
+ "integrity": "sha512-Kv2o/8jNvX1MQ0KGtw480E/w4fBCDOnH6+6DmeKi6LZUIlKA5kwY0YNdlzaWTiVgxqAqik11QyxDOKk543aKXw==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
- "graceful-fs": "^4.2.4",
+ "graceful-fs": "^4.2.9",
"picomatch": "^2.2.3"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-validate": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.4.6.tgz",
- "integrity": "sha512-872mEmCPVlBqbA5dToC57vA3yJaMRfIdpCoD3cyHWJOMx+SJwLNw0I71EkWs41oza/Er9Zno9XuTkRYCPDUJXQ==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-27.5.1.tgz",
+ "integrity": "sha512-thkNli0LYTmOI1tDB3FI1S1RTp/Bqyd9pTarJwL87OIBFuqEb5Apv5EaApEudYg4g86e3CT6kM0RowkhtEnCBQ==",
"dev": true,
"requires": {
- "@jest/types": "^27.4.2",
+ "@jest/types": "^27.5.1",
"camelcase": "^6.2.0",
"chalk": "^4.0.0",
- "jest-get-type": "^27.4.0",
+ "jest-get-type": "^27.5.1",
"leven": "^3.1.0",
- "pretty-format": "^27.4.6"
+ "pretty-format": "^27.5.1"
},
"dependencies": {
"camelcase": {
@@ -4948,28 +4954,50 @@
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
"integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
"dev": true
+ },
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
}
}
},
"jest-watcher": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.4.6.tgz",
- "integrity": "sha512-yKQ20OMBiCDigbD0quhQKLkBO+ObGN79MO4nT7YaCuQ5SM+dkBNWE8cZX0FjU6czwMvWw6StWbe+Wv4jJPJ+fw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-27.5.1.tgz",
+ "integrity": "sha512-z676SuD6Z8o8qbmEGhoEUFOM1+jfEiL3DXHK/xgEiG2EyNYfFG60jluWcupY6dATjfEsKQuibReS1djInQnoVw==",
"dev": true,
"requires": {
- "@jest/test-result": "^27.4.6",
- "@jest/types": "^27.4.2",
+ "@jest/test-result": "^27.5.1",
+ "@jest/types": "^27.5.1",
"@types/node": "*",
"ansi-escapes": "^4.2.1",
"chalk": "^4.0.0",
- "jest-util": "^27.4.2",
+ "jest-util": "^27.5.1",
"string-length": "^4.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"jest-worker": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.4.6.tgz",
- "integrity": "sha512-gHWJF/6Xi5CTG5QCvROr6GcmpIqNYpDJyc8A1h/DyXqH1tD6SnRCM0d3U5msV31D2LB/U+E0M+W4oyvKV44oNw==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz",
+ "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -5036,34 +5064,6 @@
"whatwg-url": "^8.5.0",
"ws": "^7.4.6",
"xml-name-validator": "^3.0.0"
- },
- "dependencies": {
- "tr46": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
- "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
- "dev": true,
- "requires": {
- "punycode": "^2.1.1"
- }
- },
- "webidl-conversions": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
- "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
- "dev": true
- },
- "whatwg-url": {
- "version": "8.7.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
- "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
- "dev": true,
- "requires": {
- "lodash": "^4.7.0",
- "tr46": "^2.1.0",
- "webidl-conversions": "^6.1.0"
- }
- }
}
},
"jsesc": {
@@ -5102,12 +5102,12 @@
"dev": true
},
"json5": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
- "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
+ "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
"dev": true,
"requires": {
- "minimist": "^1.2.0"
+ "minimist": "^1.2.5"
}
},
"jsonc-parser": {
@@ -5143,11 +5143,6 @@
"semver": "^5.6.0"
},
"dependencies": {
- "ms": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
- "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
- },
"semver": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
@@ -5305,6 +5300,18 @@
"requires": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"long": {
@@ -5417,16 +5424,16 @@
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.51.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.51.0.tgz",
- "integrity": "sha512-5y8A56jg7XVQx2mbv1lu49NR4dokRnhZYTtL+KGfaa27uq4pSTXkwQkFJl4pkRMyNFz/EtYDSkiiEHx3F7UN6g=="
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
- "version": "2.1.34",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.34.tgz",
- "integrity": "sha512-6cP692WwGIs9XXdOO4++N+7qjqv0rqxxVvJ3VHPh/Sc9mVZcQP+ZGhkKiTvWMQRr2tbHkJP/Yn7Y0npb3ZBs4A==",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
- "mime-db": "1.51.0"
+ "mime-db": "1.52.0"
}
},
"mimic-fn": {
@@ -5446,9 +5453,9 @@
"integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo="
},
"minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
@@ -5484,9 +5491,9 @@
}
},
"ms": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"multer": {
"version": "1.4.4",
@@ -5546,6 +5553,27 @@
"integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"requires": {
"whatwg-url": "^5.0.0"
+ },
+ "dependencies": {
+ "tr46": {
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
+ },
+ "webidl-conversions": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
+ },
+ "whatwg-url": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
+ "requires": {
+ "tr46": "~0.0.3",
+ "webidl-conversions": "^3.0.0"
+ }
+ }
}
},
"node-int64": {
@@ -5555,9 +5583,9 @@
"dev": true
},
"node-releases": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.1.tgz",
- "integrity": "sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.2.tgz",
+ "integrity": "sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==",
"dev": true
},
"nopt": {
@@ -5611,9 +5639,9 @@
"integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
},
"object-hash": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz",
- "integrity": "sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-3.0.0.tgz",
+ "integrity": "sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw=="
},
"object-inspect": {
"version": "1.12.0",
@@ -5686,6 +5714,18 @@
"log-symbols": "^4.1.0",
"strip-ansi": "^6.0.0",
"wcwidth": "^1.0.1"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"os-locale": {
@@ -5842,9 +5882,9 @@
"dev": true
},
"prettier": {
- "version": "2.5.1",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.5.1.tgz",
- "integrity": "sha512-vBZcPRUR5MZJwoyi3ZoyQlc1rXeEck8KgeC9AwwOn+exuxLxq5toTRDTSaVrXHxelDMHy9zlicw8u66yxoSUFg==",
+ "version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz",
+ "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==",
"dev": true
},
"prettier-linter-helpers": {
@@ -5857,9 +5897,9 @@
}
},
"pretty-format": {
- "version": "27.4.6",
- "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.4.6.tgz",
- "integrity": "sha512-NblstegA1y/RJW2VyML+3LlpFjzx62cUrtBIKIWDXEDkjNeleA7Od7nrzcs/VLQvAeV4CgSYhrN39DRN88Qi/g==",
+ "version": "27.5.1",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz",
+ "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==",
"dev": true,
"requires": {
"ansi-regex": "^5.0.1",
@@ -5908,13 +5948,6 @@
"@types/long": "^4.0.1",
"@types/node": ">=13.7.0",
"long": "^4.0.0"
- },
- "dependencies": {
- "@types/node": {
- "version": "17.0.14",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.14.tgz",
- "integrity": "sha512-SbjLmERksKOGzWzPNuW7fJM7fk3YXVTFiZWB/Hs99gwhk+/dnrQRPBQjPW9aO+fi1tAffi9PrwFvsmOKmDTyng=="
- }
}
},
"proxy-addr": {
@@ -5949,9 +5982,9 @@
"dev": true
},
"qs": {
- "version": "6.9.6",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
- "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ=="
+ "version": "6.9.7",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.7.tgz",
+ "integrity": "sha512-IhMFgUmuNpyRfxA90umL7ByLlgRXu6tIfKPpF5TmcfRLlLCckfP/g3IQmju6jjpu+Hh8rA+2p6A27ZSPOOHdKw=="
},
"queue-microtask": {
"version": "1.2.3",
@@ -5974,11 +6007,11 @@
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.2.tgz",
- "integrity": "sha512-RPMAFUJP19WIet/99ngh6Iv8fzAbqum4Li7AD6DtGaW2RpMB/11xDoalPiJMTbu6I3hkbMVkATvZrqb9EEqeeQ==",
+ "version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.3.tgz",
+ "integrity": "sha512-UlTNLIcu0uzb4D2f4WltY6cVjLi+/jEN4lgEUj3E04tpMDpUlkBo/eSn6zou9hum2VMNpCCUone0O0WeJim07g==",
"requires": {
- "bytes": "3.1.1",
+ "bytes": "3.1.2",
"http-errors": "1.8.1",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
@@ -6121,9 +6154,9 @@
}
},
"rxjs": {
- "version": "7.5.2",
- "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.2.tgz",
- "integrity": "sha512-PwDt186XaL3QN5qXj/H9DGyHhP3/RYYgZZwqBv9Tv8rsAaiwFH1IsJJlcgD37J7UW5a6O67qX0KWKS3/pu0m4w==",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
+ "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
"requires": {
"tslib": "^2.1.0"
}
@@ -6148,34 +6181,15 @@
}
},
"schema-utils": {
- "version": "2.7.0",
- "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
- "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz",
+ "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==",
"dev": true,
"requires": {
- "@types/json-schema": "^7.0.4",
- "ajv": "^6.12.2",
- "ajv-keywords": "^3.4.1"
- },
- "dependencies": {
- "ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
- "dev": true,
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
- "dev": true
- }
+ "@types/json-schema": "^7.0.9",
+ "ajv": "^8.8.0",
+ "ajv-formats": "^2.1.1",
+ "ajv-keywords": "^5.0.0"
}
},
"semver": {
@@ -6206,6 +6220,21 @@
"statuses": "~1.5.0"
},
"dependencies": {
+ "debug": {
+ "version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
+ "requires": {
+ "ms": "2.0.0"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
+ }
+ }
+ },
"ms": {
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
@@ -6281,9 +6310,9 @@
}
},
"signal-exit": {
- "version": "3.0.6",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.6.tgz",
- "integrity": "sha512-sDl4qMFpijcGw22U5w63KmD3cZJfBuFlVNbVMKje2keoKML7X2UzWbc4XrmEbDwg0NXJc3yv4/ox7b+JWb57kQ=="
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"sisteransi": {
"version": "1.0.5",
@@ -6394,9 +6423,9 @@
}
},
"strip-bom": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
- "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
"dev": true
},
"strip-final-newline": {
@@ -6430,15 +6459,6 @@
"semver": "^7.3.5"
},
"dependencies": {
- "debug": {
- "version": "4.3.3",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
- "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
- "dev": true,
- "requires": {
- "ms": "2.1.2"
- }
- },
"form-data": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz",
@@ -6456,12 +6476,6 @@
"integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==",
"dev": true
},
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
- "dev": true
- },
"qs": {
"version": "6.10.3",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
@@ -6528,9 +6542,9 @@
"dev": true
},
"swagger-ui-dist": {
- "version": "4.4.1",
- "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.4.1.tgz",
- "integrity": "sha512-eYe4Utyem3GJC1gLZvKyzMEKEk5dMikbhVxuFKpPJA8l+hzAo6S0HGHLJA6cZKboqVnyCZrQfx6bl716y7T4dA=="
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-4.6.2.tgz",
+ "integrity": "sha512-BSt+ukOGkGZ2uHV4jyyCAzt60ysyQpGZAAhtIh7AMHT4MH1xXGkoXm2tfr1oRqO1N4IEY6qqNAlmcfMo/dAYuw=="
},
"swagger-ui-express": {
"version": "4.3.0",
@@ -6553,9 +6567,9 @@
"dev": true
},
"tapable": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz",
- "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==",
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
+ "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
"dev": true
},
"tar": {
@@ -6589,11 +6603,12 @@
}
},
"terser": {
- "version": "5.10.0",
- "resolved": "https://registry.npmjs.org/terser/-/terser-5.10.0.tgz",
- "integrity": "sha512-AMmF99DMfEDiRJfxfY5jj5wNH/bYO09cniSqhfoyxc8sFoYIgkJy86G04UoZU5VjlpnplVu0K6Tx6E9b5+DlHA==",
+ "version": "5.12.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.12.1.tgz",
+ "integrity": "sha512-NXbs+7nisos5E+yXwAD+y7zrcTkMqb0dEJxIGtSKPdCBzopf7ni4odPul2aechpV7EXNvOudYOX2bb5tln1jbQ==",
"dev": true,
"requires": {
+ "acorn": "^8.5.0",
"commander": "^2.20.0",
"source-map": "~0.7.2",
"source-map-support": "~0.5.20"
@@ -6632,6 +6647,12 @@
"uri-js": "^4.2.2"
}
},
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true
+ },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -6741,9 +6762,13 @@
}
},
"tr46": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
- "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o="
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz",
+ "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==",
+ "dev": true,
+ "requires": {
+ "punycode": "^2.1.1"
+ }
},
"tree-kill": {
"version": "1.2.2",
@@ -6752,9 +6777,9 @@
"dev": true
},
"ts-jest": {
- "version": "27.1.3",
- "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.3.tgz",
- "integrity": "sha512-6Nlura7s6uM9BVUAoqLH7JHyMXjz8gluryjpPXxr3IxZdAXnU6FhjvVLHFtfd1vsE1p8zD1OJfskkc0jhTSnkA==",
+ "version": "27.1.4",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-27.1.4.tgz",
+ "integrity": "sha512-qjkZlVPWVctAezwsOD1OPzbZ+k7zA5z3oxII4dGdZo5ggX/PL7kvwTM0pXTr10fAtbiVpJaL3bWd502zAhpgSQ==",
"dev": true,
"requires": {
"bs-logger": "0.x",
@@ -6765,35 +6790,36 @@
"make-error": "1.x",
"semver": "7.x",
"yargs-parser": "20.x"
- },
- "dependencies": {
- "json5": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz",
- "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5"
- }
- }
}
},
"ts-loader": {
- "version": "9.2.6",
- "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.6.tgz",
- "integrity": "sha512-QMTC4UFzHmu9wU2VHZEmWWE9cUajjfcdcws+Gh7FhiO+Dy0RnR1bNz0YCHqhI0yRowCE9arVnNxYHqELOy9Hjw==",
+ "version": "9.2.8",
+ "resolved": "https://registry.npmjs.org/ts-loader/-/ts-loader-9.2.8.tgz",
+ "integrity": "sha512-gxSak7IHUuRtwKf3FIPSW1VpZcqF9+MBrHOvBp9cjHh+525SjtCIJKVGjRKIAfxBwDGDGCFF00rTfzB1quxdSw==",
"dev": true,
"requires": {
"chalk": "^4.1.0",
"enhanced-resolve": "^5.0.0",
"micromatch": "^4.0.0",
"semver": "^7.3.4"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"ts-node": {
- "version": "10.4.0",
- "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.4.0.tgz",
- "integrity": "sha512-g0FlPvvCXSIO1JDF6S232P5jPYqBkRL9qly81ZgAOSU7rwI0stphCgd2kLiCrU9DjQCrJMWEqcNSjQL02s6d8A==",
+ "version": "10.7.0",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.7.0.tgz",
+ "integrity": "sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==",
"dev": true,
"requires": {
"@cspotcode/source-map-support": "0.7.0",
@@ -6807,6 +6833,7 @@
"create-require": "^1.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.0",
"yn": "3.1.1"
},
"dependencies": {
@@ -6819,15 +6846,38 @@
}
},
"tsconfig-paths": {
- "version": "3.12.0",
- "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
- "integrity": "sha512-e5adrnOYT6zqVnWqZu7i/BQ3BnhzvGbjEjejFXO20lKIKpwTaupkCPgEfv4GZK1IBciJUEhYs3J3p75FdaTFVg==",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
"dev": true,
"requires": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
- "minimist": "^1.2.0",
+ "minimist": "^1.2.6",
"strip-bom": "^3.0.0"
+ },
+ "dependencies": {
+ "json5": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
+ "dev": true,
+ "requires": {
+ "minimist": "^1.2.0"
+ }
+ },
+ "minimist": {
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
+ "dev": true
+ },
+ "strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=",
+ "dev": true
+ }
}
},
"tsconfig-paths-webpack-plugin": {
@@ -6839,6 +6889,18 @@
"chalk": "^4.1.0",
"enhanced-resolve": "^5.7.0",
"tsconfig-paths": "^3.9.0"
+ },
+ "dependencies": {
+ "chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "requires": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ }
+ }
}
},
"tslib": {
@@ -6879,9 +6941,9 @@
"dev": true
},
"type-fest": {
- "version": "0.21.3",
- "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
- "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
"type-is": {
@@ -6908,9 +6970,9 @@
}
},
"typescript": {
- "version": "4.5.5",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.5.5.tgz",
- "integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
+ "version": "4.6.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.6.3.tgz",
+ "integrity": "sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==",
"dev": true
},
"universalify": {
@@ -6954,6 +7016,12 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
+ "v8-compile-cache-lib": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
+ "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
+ "dev": true
+ },
"v8-to-istanbul": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
@@ -7017,18 +7085,19 @@
}
},
"webidl-conversions": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
- "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz",
+ "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==",
+ "dev": true
},
"webpack": {
- "version": "5.66.0",
- "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.66.0.tgz",
- "integrity": "sha512-NJNtGT7IKpGzdW7Iwpn/09OXz9inIkeIQ/ibY6B+MdV1x6+uReqz/5z1L89ezWnpPDWpXF0TY5PCYKQdWVn8Vg==",
+ "version": "5.70.0",
+ "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.70.0.tgz",
+ "integrity": "sha512-ZMWWy8CeuTTjCxbeaQI21xSswseF2oNOwc70QSKNePvmxE7XW36i7vpBMYZFAUHPwQiEbNGCEYIOOlyRbdGmxw==",
"dev": true,
"requires": {
- "@types/eslint-scope": "^3.7.0",
- "@types/estree": "^0.0.50",
+ "@types/eslint-scope": "^3.7.3",
+ "@types/estree": "^0.0.51",
"@webassemblyjs/ast": "1.11.1",
"@webassemblyjs/wasm-edit": "1.11.1",
"@webassemblyjs/wasm-parser": "1.11.1",
@@ -7036,7 +7105,7 @@
"acorn-import-assertions": "^1.7.6",
"browserslist": "^4.14.5",
"chrome-trace-event": "^1.0.2",
- "enhanced-resolve": "^5.8.3",
+ "enhanced-resolve": "^5.9.2",
"es-module-lexer": "^0.9.0",
"eslint-scope": "5.1.1",
"events": "^3.2.0",
@@ -7050,7 +7119,7 @@
"tapable": "^2.1.1",
"terser-webpack-plugin": "^5.1.3",
"watchpack": "^2.3.1",
- "webpack-sources": "^3.2.2"
+ "webpack-sources": "^3.2.3"
},
"dependencies": {
"ajv": {
@@ -7065,6 +7134,12 @@
"uri-js": "^4.2.2"
}
},
+ "ajv-keywords": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
+ "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
+ "dev": true
+ },
"json-schema-traverse": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
@@ -7081,12 +7156,6 @@
"ajv": "^6.12.5",
"ajv-keywords": "^3.5.2"
}
- },
- "tapable": {
- "version": "2.2.1",
- "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz",
- "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==",
- "dev": true
}
}
},
@@ -7118,12 +7187,14 @@
"dev": true
},
"whatwg-url": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
- "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
+ "version": "8.7.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.7.0.tgz",
+ "integrity": "sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg==",
+ "dev": true,
"requires": {
- "tr46": "~0.0.3",
- "webidl-conversions": "^3.0.0"
+ "lodash": "^4.7.0",
+ "tr46": "^2.1.0",
+ "webidl-conversions": "^6.1.0"
}
},
"which": {
@@ -7155,6 +7226,40 @@
"dev": true,
"requires": {
"execa": "^4.0.2"
+ },
+ "dependencies": {
+ "execa": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
+ "dev": true,
+ "requires": {
+ "cross-spawn": "^7.0.0",
+ "get-stream": "^5.0.0",
+ "human-signals": "^1.1.1",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.0",
+ "onetime": "^5.1.0",
+ "signal-exit": "^3.0.2",
+ "strip-final-newline": "^2.0.0"
+ }
+ },
+ "get-stream": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
+ "dev": true,
+ "requires": {
+ "pump": "^3.0.0"
+ }
+ },
+ "human-signals": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
+ "dev": true
+ }
}
},
"word-wrap": {
@@ -7191,9 +7296,9 @@
}
},
"ws": {
- "version": "7.5.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.6.tgz",
- "integrity": "sha512-6GLgCqo2cy2A2rjCNFlxQS6ZljG/coZfZXclldI8FB/1G3CCI36Zd8xy2HrFVACi8tfk5XrgLQEk+P0Tnz9UcA==",
+ "version": "7.5.7",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.7.tgz",
+ "integrity": "sha512-KMvVuFzpKBuiIXW3E4u3mySRO2/mCHSyZDJQM5NQ9Q9KHWHWh0NHgfbRMLLrceUK5qAL4ytALJbpRMjixFZh8A==",
"dev": true
},
"xml-name-validator": {
diff --git a/package.json b/package.json
index 3f02885..9a06df6 100644
--- a/package.json
+++ b/package.json
@@ -21,14 +21,16 @@
"test:e2e": "jest --config ./test/jest-e2e.json"
},
"dependencies": {
- "@grpc/grpc-js": "^1.5.0",
+ "@grpc/grpc-js": "^1.5.10",
"@grpc/proto-loader": "^0.6.9",
- "@nestjs/common": "^8.0.0",
- "@nestjs/core": "^8.0.0",
+ "@nestjs/common": "^8.4.3",
+ "@nestjs/config": "^1.2.1",
+ "@nestjs/core": "^8.4.3",
"@nestjs/mapped-types": "*",
- "@nestjs/microservices": "^8.2.4",
- "@nestjs/platform-express": "^8.0.0",
- "@nestjs/swagger": "^5.1.5",
+ "@nestjs/microservices": "^8.4.3",
+ "@nestjs/platform-express": "^8.4.3",
+ "@nestjs/swagger": "^5.2.1",
+ "@victorradael/protospack": "^1.3.9",
"axios": "^0.25.0",
"dotenv": "^14.2.0",
"grpc": "^1.24.11",
@@ -36,33 +38,33 @@
"jwk-to-pem": "^2.0.5",
"reflect-metadata": "^0.1.13",
"rimraf": "^3.0.2",
- "rxjs": "^7.2.0",
+ "rxjs": "^7.5.5",
"swagger-ui-express": "^4.3.0"
},
"devDependencies": {
- "@nestjs/cli": "^8.0.0",
- "@nestjs/schematics": "^8.0.0",
- "@nestjs/testing": "^8.0.0",
+ "@nestjs/cli": "^8.2.4",
+ "@nestjs/schematics": "^8.0.8",
+ "@nestjs/testing": "^8.4.3",
"@types/express": "^4.17.13",
"@types/jest": "27.0.2",
"@types/jsonwebtoken": "^8.5.8",
"@types/jwk-to-pem": "^2.0.1",
- "@types/node": "^16.0.0",
- "@types/supertest": "^2.0.11",
- "@typescript-eslint/eslint-plugin": "^5.0.0",
- "@typescript-eslint/parser": "^5.0.0",
- "eslint": "^8.0.1",
- "eslint-config-prettier": "^8.3.0",
+ "@types/node": "^16.11.26",
+ "@types/supertest": "^2.0.12",
+ "@typescript-eslint/eslint-plugin": "^5.17.0",
+ "@typescript-eslint/parser": "^5.17.0",
+ "eslint": "^8.12.0",
+ "eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.0.0",
- "jest": "^27.2.5",
- "prettier": "^2.3.2",
+ "jest": "^27.5.1",
+ "prettier": "^2.6.1",
"source-map-support": "^0.5.20",
"supertest": "^6.1.3",
- "ts-jest": "^27.0.3",
- "ts-loader": "^9.2.3",
- "ts-node": "^10.0.0",
- "tsconfig-paths": "^3.10.1",
- "typescript": "^4.3.5"
+ "ts-jest": "^27.1.4",
+ "ts-loader": "^9.2.7",
+ "ts-node": "^10.7.0",
+ "tsconfig-paths": "^3.14.1",
+ "typescript": "^4.6.3"
},
"jest": {
"moduleFileExtensions": [
diff --git a/src/app.module.ts b/src/app.module.ts
index c0de4de..74cb547 100644
--- a/src/app.module.ts
+++ b/src/app.module.ts
@@ -1,44 +1,102 @@
-import { MiddlewareConsumer, Module, NestModule, RequestMethod } from '@nestjs/common';
-import { InputGrpcClientModule } from './inputs/input-grpc-client.module';
-import { UsersGrpcClientModule } from './users-grpc-client/users-grpc-client.module';
-import { OutputsModule } from './outputs/outputs.module';
-import { EnrichmentModule } from './enrichment/enrichment.module';
-import { TransformationsModule } from './transformations/transformations.module';
-import { PipelinesModule } from './pipelines/pipelines.module';
-import { RestInputsModule } from './rest/rest-inputs/rest-inputs.module';
-import { RestOutputsModule } from './rest/rest-outputs/rest-outputs.module';
-import { RestEnrichmentsModule } from './rest/rest-enrichments/rest-enrichments.module';
-import { RestTransformationsModule } from './rest/rest-transformations/rest-transformations.module';
-import { RestPipelinesModule } from './rest/rest-pipelines/rest-pipelines.module';
-import { RestUserModule } from './rest/rest-user/rest-user.module';
-import { RestFactoryModule } from './rest/rest-factory/rest-factory.module';
-import { LoggerMiddleware } from './middlewares/authentication';
-import { RestInputsController } from './rest/rest-inputs/rest-inputs.controller';
-import { RestOutputsController } from './rest/rest-outputs/rest-outputs.controller';
-import { RestTransformationsController } from './rest/rest-transformations/rest-transformations.controller';
-import { RestPipelinesController } from './rest/rest-pipelines/rest-pipelines.controller';
-import { RestEnrichmentsController } from './rest/rest-enrichments/rest-enrichments.controller';
-import { RestFactoryController } from './rest/rest-factory/rest-factory.controller';
-import { HealthModule } from './health/health.module';
-@Module({
- imports: [
- RestInputsModule, RestOutputsModule, RestEnrichmentsModule, RestTransformationsModule, RestPipelinesModule, RestUserModule, RestFactoryModule, HealthModule,
- // InputGrpcClientModule,
- //OutputsModule,
- //EnrichmentModule,
- //TransformationsModule,
- //PipelinesModule
- ],
- controllers: [],
- providers: [],
-})
-export class AppModule implements NestModule{
+import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
+import { ClientsModule } from '@nestjs/microservices';
+import { ConfigModule } from '@nestjs/config';
+import { LoggerMiddleware } from './middlewares/authentication';
+
+import { InputsController } from './modules/inputs/inputs.controller';
+import { TransformationsController } from './modules/transformations/transformations.controller';
+import { OutputsController } from './modules/outputs/outputs.controllers';
+import { PipelinesController } from './modules/pipelines/pipelines.controller';
+import { AuthController } from './modules/auth/auth.controller';
+import { HealthController } from './modules/health/health.controller';
+
+import { InputsService } from './modules/inputs/inputs.service';
+import { TransformationsService } from './modules/transformations/transformations.service';
+import { OutputsService } from './modules/outputs/outputs.service';
+import { PipelinesService } from './modules/pipelines/pipelines.service';
+// import { AuthService } from './modules/auth/auth.service';
+import { HealthService } from './modules/health/health.service';
+
+import { InputsClientService } from './clients/inputs/client.service';
+import { TransformationsClientService } from './clients/transformations/client.service';
+import { OutputsClientService } from './clients/outputs/client.service';
+import { PipelinesClientService } from './clients/pipelines/client.service';
+import { AuthClientService } from './clients/auth/client.service';
+
+import { OutputsClientConfiguration } from './clients/outputs/client.config';
+import { TransformationsClientConfiguration } from './clients/transformations/client.config';
+import { AuthClient } from './clients/auth/client.config';
+import { InputsClientConfiguration } from './clients/inputs/client.config';
+import { PipelinesClientConfiguration } from './clients/pipelines/client.config';
+
+const authClient = new AuthClient();
+const inputClient = new InputsClientConfiguration();
+const outputClient = new OutputsClientConfiguration();
+const pipelineClient = new PipelinesClientConfiguration();
+const transformationClient = new TransformationsClientConfiguration();
+
+@Module({
+ controllers: [
+ InputsController,
+ TransformationsController,
+ OutputsController,
+ PipelinesController,
+ AuthController,
+ HealthController,
+ ],
+ providers: [
+ InputsService,
+ TransformationsService,
+ OutputsService,
+ PipelinesService,
+ // AuthService,
+ HealthService,
+ InputsClientService,
+ TransformationsClientService,
+ OutputsClientService,
+ PipelinesClientService,
+ AuthClientService,
+ ],
+ imports: [
+ ConfigModule.forRoot({
+ isGlobal: true,
+ }),
+
+ ClientsModule.register([
+ {
+ name: 'INPUTS_PACKAGE',
+ ...inputClient.config(),
+ },
+
+ {
+ name: 'TRANSFORMATIONS_PACKAGE',
+ ...transformationClient.config(),
+ },
+ {
+ name: 'OUTPUTS_PACKAGE',
+ ...outputClient.config(),
+ },
+ {
+ name: 'AUTH_PACKAGE',
+ ...authClient.config(),
+ },
+ {
+ name: 'PIPELINES_PACKAGE',
+ ...pipelineClient.config(),
+ },
+ ]),
+ ],
+})
+export class AppModule implements NestModule {
configure(consumer: MiddlewareConsumer) {
consumer
.apply(LoggerMiddleware)
- .forRoutes(RestInputsController,RestOutputsController,RestTransformationsController,RestPipelinesController,RestEnrichmentsController,RestFactoryController)
+ .forRoutes(
+ InputsController,
+ TransformationsController,
+ OutputsController,
+ PipelinesController,
+ );
}
-
-
}
diff --git a/src/clients/auth/client.config.ts b/src/clients/auth/client.config.ts
new file mode 100644
index 0000000..995a967
--- /dev/null
+++ b/src/clients/auth/client.config.ts
@@ -0,0 +1,23 @@
+import { credentials } from '@grpc/grpc-js';
+import { ClientOptions, Transport } from '@nestjs/microservices';
+
+import { DucProtofile } from '@victorradael/protospack';
+
+export class AuthClient {
+ config(): ClientOptions {
+ return {
+ transport: Transport.GRPC,
+ options: {
+ url: process.env.DUC_URL,
+ package: 'duc',
+ credentials: credentials.createSsl(),
+ protoPath: DucProtofile,
+ loader: {
+ enums: String,
+ objects: true,
+ arrays: true,
+ },
+ },
+ };
+ }
+}
diff --git a/src/clients/auth/client.service.ts b/src/clients/auth/client.service.ts
new file mode 100644
index 0000000..79669e1
--- /dev/null
+++ b/src/clients/auth/client.service.ts
@@ -0,0 +1,43 @@
+import { OnModuleInit, Inject } from '@nestjs/common';
+import { ClientGrpc } from '@nestjs/microservices';
+
+import { CognitoServiceInterface } from '@victorradael/protospack';
+
+import { ILogin } from './interfaces';
+
+export class AuthClientService implements OnModuleInit {
+ private cognitoService: CognitoServiceInterface;
+ constructor(
+ @Inject('AUTH_PACKAGE') private readonly grpcClient: ClientGrpc,
+ ) {}
+
+ onModuleInit() {
+ this.cognitoService = this.grpcClient.getService(
+ 'CognitoProtoService',
+ );
+ }
+
+ async signIn({ username, password }: ILogin): Promise {
+ console.log('CognitoClientService', 'SignIn');
+
+ const tokens = await new Promise((resolve, reject) => {
+ this.cognitoService.signIn({ username, password }).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+ return tokens;
+ }
+}
diff --git a/src/clients/auth/interfaces.d.ts b/src/clients/auth/interfaces.d.ts
new file mode 100644
index 0000000..ffede69
--- /dev/null
+++ b/src/clients/auth/interfaces.d.ts
@@ -0,0 +1,4 @@
+export interface ILogin {
+ username: string;
+ password: string;
+}
diff --git a/src/clients/inputs/client.config.ts b/src/clients/inputs/client.config.ts
new file mode 100644
index 0000000..8e0ec83
--- /dev/null
+++ b/src/clients/inputs/client.config.ts
@@ -0,0 +1,23 @@
+import { credentials } from '@grpc/grpc-js';
+import { ClientOptions, Transport } from '@nestjs/microservices';
+
+import { InputProtofile } from '@victorradael/protospack';
+
+export class InputsClientConfiguration {
+ config(): ClientOptions {
+ return {
+ transport: Transport.GRPC,
+ options: {
+ url: process.env.INFACTORY_URL,
+ package: 'input',
+ credentials: credentials.createSsl(),
+ protoPath: InputProtofile,
+ loader: {
+ enums: String,
+ objects: true,
+ arrays: true,
+ },
+ },
+ };
+ }
+}
diff --git a/src/clients/inputs/client.service.ts b/src/clients/inputs/client.service.ts
new file mode 100644
index 0000000..eca07d5
--- /dev/null
+++ b/src/clients/inputs/client.service.ts
@@ -0,0 +1,173 @@
+import { OnModuleInit, Inject } from '@nestjs/common';
+import { ClientGrpc } from '@nestjs/microservices';
+import { InputService } from '@victorradael/protospack';
+import {
+ objectCamelToSnake,
+ objectSnakeToCamel,
+} from 'src/utils/CaseConverter';
+import {
+ ICreateInputRequest,
+ IIdRequest,
+ ITestConnectionRequest,
+ UpdateInputRequest,
+} from './interfaces';
+
+export class InputsClientService implements OnModuleInit {
+ private inputService: InputService;
+ constructor(
+ @Inject('INPUTS_PACKAGE') private readonly grpcClient: ClientGrpc,
+ ) {}
+
+ onModuleInit() {
+ this.inputService =
+ this.grpcClient.getService('InputService');
+ }
+
+ async create(createInputDto: ICreateInputRequest) {
+ console.log('InputClientService', 'Create');
+
+ const createInputResponse = await new Promise((resolve, reject) => {
+ this.inputService.Create(objectSnakeToCamel(createInputDto)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return createInputResponse;
+ }
+
+ async findOne(data: IIdRequest) {
+ console.log('InputClientService', 'FindOne');
+
+ const findOneInputResponse = await new Promise((resolve, reject) => {
+ this.inputService.FindOne(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return findOneInputResponse;
+ }
+
+ async findAll(data) {
+ console.log('InputClientService', 'FindAll');
+
+ const findAllInputResponse = await new Promise((resolve, reject) => {
+ this.inputService.FindAll(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return findAllInputResponse;
+ }
+
+ async update(updateInputDTO: UpdateInputRequest) {
+ console.log('InputClientService', 'Update');
+ const updateInputResponse = await new Promise((resolve, reject) => {
+ this.inputService.Update(objectSnakeToCamel(updateInputDTO)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return updateInputResponse;
+ }
+
+ async remove(idRequest: IIdRequest) {
+ console.log('InputClientService', 'Remove');
+
+ const removeInputResponse = await new Promise((resolve, reject) => {
+ this.inputService.Remove(objectSnakeToCamel(idRequest)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return removeInputResponse;
+ }
+
+ async testConnection(data: ITestConnectionRequest) {
+ console.log('InputClientService', 'TestConnection');
+ const testConnectionResponse = await new Promise((resolve, reject) => {
+ this.inputService.TestConnection(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return testConnectionResponse;
+ }
+}
diff --git a/src/clients/inputs/interfaces.d.ts b/src/clients/inputs/interfaces.d.ts
new file mode 100644
index 0000000..0df0786
--- /dev/null
+++ b/src/clients/inputs/interfaces.d.ts
@@ -0,0 +1,62 @@
+interface Values {
+ jdbc_user: string;
+ jdbc_password: string;
+ database: string;
+ endpoint: string;
+ tables: string[];
+ port: string;
+ engine: string;
+ schema: string;
+}
+
+interface Cron {
+ hours: string[];
+ hour_interval: boolean;
+ hour_resourse: boolean;
+ hour_resourse_value: number;
+ month_day: string[];
+ month_day_interval: boolean;
+ month_day_resourse: boolean;
+ month_day_resourse_value: number;
+ month: string[];
+ month_interval: boolean;
+ month_resourse: boolean;
+ month_resourse_value: number;
+ week_days: string[];
+ week_days_interval: boolean;
+ week_days_resourse: boolean;
+ week_days_resourse_value: number;
+}
+
+export interface Info {
+ costumer_id: string;
+ user_id: string;
+}
+
+export interface ICreateInputRequest {
+ cron: string;
+ name: string;
+ plugin: string;
+ values: Values;
+ operation: string;
+ info: Info;
+}
+export interface IIdRequest {
+ id: string;
+ info: Info;
+}
+
+export interface UpdateInputRequest {
+ id: string;
+ cron: string;
+ name: string;
+ plugin: string;
+ values: Values;
+ operation: string;
+ info: Info;
+}
+
+export interface ITestConnectionRequest {
+ plugin: string;
+ values: Values;
+}
diff --git a/src/clients/outputs/client.config.ts b/src/clients/outputs/client.config.ts
new file mode 100644
index 0000000..f574a4e
--- /dev/null
+++ b/src/clients/outputs/client.config.ts
@@ -0,0 +1,22 @@
+import { OutputProtofile } from '@victorradael/protospack';
+import { ClientOptions, Transport } from '@nestjs/microservices';
+import { credentials } from '@grpc/grpc-js';
+
+export class OutputsClientConfiguration {
+ config(): ClientOptions {
+ return {
+ transport: Transport.GRPC,
+ options: {
+ url: process.env.OTFACTORY_URL,
+ package: 'output',
+ credentials: credentials.createSsl(),
+ protoPath: OutputProtofile,
+ loader: {
+ enums: String,
+ objects: true,
+ arrays: true,
+ },
+ },
+ };
+ }
+}
diff --git a/src/clients/outputs/client.service.ts b/src/clients/outputs/client.service.ts
new file mode 100644
index 0000000..e1e55a5
--- /dev/null
+++ b/src/clients/outputs/client.service.ts
@@ -0,0 +1,156 @@
+import { Controller, Inject, OnModuleInit } from '@nestjs/common';
+import { ClientGrpc, Payload } from '@nestjs/microservices';
+import { OutputsServiceInterface } from '@victorradael/protospack';
+import {
+ objectCamelToSnake,
+ objectSnakeToCamel,
+} from 'src/utils/CaseConverter';
+import {
+ ICreateOutputRequest,
+ IIdRequest,
+ IOutputUpdateRequest,
+} from './interfaces';
+
+@Controller('output')
+export class OutputsClientService implements OnModuleInit {
+ private outputService: OutputsServiceInterface;
+ constructor(
+ @Inject('OUTPUTS_PACKAGE') private readonly grpcClient: ClientGrpc,
+ ) {}
+
+ onModuleInit() {
+ this.outputService =
+ this.grpcClient.getService('OutputService');
+ }
+
+ async create(@Payload() createOutputDto: ICreateOutputRequest) {
+ console.log('OutputClientService', 'Create');
+
+ const createOutputResponse = await new Promise((resolve, reject) => {
+ this.outputService.Create(objectSnakeToCamel(createOutputDto)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ const convertedItem = objectCamelToSnake(createOutputResponse['output']);
+ createOutputResponse['output'] = convertedItem;
+ return createOutputResponse;
+ }
+
+ async findAll(data) {
+ console.log('OutputClientService', 'FindAll');
+
+ const findAllOutputResponse = await new Promise((resolve, reject) => {
+ this.outputService.FindAll(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ const convertedOutputs = findAllOutputResponse['outputs'].map((ot) => {
+ return objectCamelToSnake(ot);
+ });
+
+ return { outputs: convertedOutputs };
+ }
+
+ async findOne(data: IIdRequest) {
+ console.log('OutputClientService', 'FindOne');
+
+ const findOneOutputResponse = await new Promise((resolve, reject) => {
+ this.outputService.FindOne(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return objectCamelToSnake(findOneOutputResponse);
+ }
+
+ async update(updateOutPutDTO: IOutputUpdateRequest) {
+ console.log('OutputClientService', 'Update');
+
+ const updateOutputResponse = await new Promise((resolve, reject) => {
+ this.outputService.Update(objectSnakeToCamel(updateOutPutDTO)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return objectCamelToSnake(updateOutputResponse);
+ }
+
+ async remove(data: IIdRequest) {
+ console.log('OutputClientService', 'Remove');
+
+ const removeOutputResponse = await new Promise((resolve, reject) => {
+ this.outputService.Remove(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return removeOutputResponse;
+ }
+}
diff --git a/src/clients/outputs/interfaces.d.ts b/src/clients/outputs/interfaces.d.ts
new file mode 100644
index 0000000..0f94f66
--- /dev/null
+++ b/src/clients/outputs/interfaces.d.ts
@@ -0,0 +1,29 @@
+export interface ICreateOutputRequest {
+ operation: string;
+ name: string;
+ plugin: string;
+ values: Values;
+}
+
+export interface Values {
+ prefix: string;
+}
+
+interface Info {
+ user_id: string;
+ customer_id: string;
+}
+
+export interface IIdRequest {
+ id: string;
+ info: Info;
+}
+
+export interface IOutputUpdateRequest {
+ id: string;
+ operation: string;
+ values: Values;
+ plugin: string;
+ name: string;
+ info: Info;
+}
diff --git a/src/clients/pipelines/client.config.ts b/src/clients/pipelines/client.config.ts
new file mode 100644
index 0000000..fae827f
--- /dev/null
+++ b/src/clients/pipelines/client.config.ts
@@ -0,0 +1,22 @@
+import { ClientOptions, Transport } from '@nestjs/microservices';
+import { PipelineProtofile } from '@victorradael/protospack';
+import { credentials } from '@grpc/grpc-js';
+
+export class PipelinesClientConfiguration {
+ config(): ClientOptions {
+ return {
+ transport: Transport.GRPC,
+ options: {
+ url: process.env.PIFACTORY_URL,
+ package: 'pipeline',
+ credentials: credentials.createSsl(),
+ protoPath: PipelineProtofile,
+ loader: {
+ enums: String,
+ objects: true,
+ arrays: true,
+ },
+ },
+ };
+ }
+}
diff --git a/src/clients/pipelines/client.service.ts b/src/clients/pipelines/client.service.ts
new file mode 100644
index 0000000..c11d528
--- /dev/null
+++ b/src/clients/pipelines/client.service.ts
@@ -0,0 +1,205 @@
+import { Inject, OnModuleInit } from '@nestjs/common';
+import { ClientGrpc, Payload } from '@nestjs/microservices';
+import { PipelinesServiceInterface } from '@victorradael/protospack';
+import {
+ objectCamelToSnake,
+ objectSnakeToCamel,
+} from 'src/utils/CaseConverter';
+import {
+ ICreatePipelineDto,
+ IdRequest,
+ IGetPipelineLogsRequest,
+ IIdRequest,
+ IUpdatePipelineRequest,
+} from './interfaces';
+
+export class PipelinesClientService implements OnModuleInit {
+ private pipelineService: PipelinesServiceInterface;
+ constructor(
+ @Inject('PIPELINES_PACKAGE') private readonly grpcClient: ClientGrpc,
+ ) {}
+
+ onModuleInit() {
+ this.pipelineService =
+ this.grpcClient.getService('PipelineService');
+ }
+
+ async create(@Payload() createPipelineDto: ICreatePipelineDto) {
+ console.log('PipelinesClientService', 'Create');
+
+ const createPipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService
+ .create(objectSnakeToCamel(createPipelineDto))
+ .subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return createPipelineResponse;
+ }
+
+ async findAll(data: IIdRequest) {
+ console.log('PipelinesClientService', 'FindAll');
+
+ const findAllPipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService.findAll(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return findAllPipelineResponse;
+ }
+
+ async findOne(data: IIdRequest) {
+ console.log('PipelinesClientService', 'FindOne');
+
+ const findOnePipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService.findOne(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return findOnePipelineResponse;
+ }
+
+ async update(UpdatePipelineRequest: IUpdatePipelineRequest) {
+ console.log('PipelinesClientService', 'Update');
+
+ const updatePipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService
+ .update(objectSnakeToCamel(UpdatePipelineRequest))
+ .subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return updatePipelineResponse;
+ }
+
+ async remove(data: IIdRequest) {
+ console.log('PipelinesClientService', 'Remove');
+
+ const removePipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService.remove(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(objectCamelToSnake(x));
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return removePipelineResponse;
+ }
+
+ async getPipelineLogsMessages(data: IGetPipelineLogsRequest) {
+ console.log('PipelinesClientService', 'GetPipelineLogsMessages');
+
+ const logsPipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService.getPipelineLogs(data).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return logsPipelineResponse;
+ }
+
+ async getPipelineStatus({ id }: IdRequest) {
+ console.log('PipelinesClientService', 'GetPipelineStatus');
+
+ const statusPipelineResponse = await new Promise((resolve, reject) => {
+ this.pipelineService.getPipelineStatus({ id }).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ })
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return statusPipelineResponse;
+ }
+}
diff --git a/src/clients/pipelines/interfaces.d.ts b/src/clients/pipelines/interfaces.d.ts
new file mode 100644
index 0000000..2a3ddbe
--- /dev/null
+++ b/src/clients/pipelines/interfaces.d.ts
@@ -0,0 +1,39 @@
+export interface ICreatePipelineDto {
+ input: IdRequest;
+ transformations: IdRequest[];
+ output: IdRequest;
+ tags: string[];
+ name: string;
+ description: string;
+ info: Info;
+}
+
+export interface Info {
+ customer_id: sting;
+ user_id: string;
+}
+
+export interface IdRequest {
+ id: string;
+}
+
+export interface IIdRequest {
+ id: string;
+ info: Info;
+}
+
+export interface IUpdatePipelineRequest {
+ input: IdRequest;
+ transformations: IdRequest[];
+ output: IdRequest;
+ tags: string[];
+ name: string;
+ description: string;
+ id: string;
+ info: Info;
+}
+
+export interface IGetPipelineLogsRequest {
+ id: string;
+ details: string;
+}
diff --git a/src/clients/transformations/client.config.ts b/src/clients/transformations/client.config.ts
new file mode 100644
index 0000000..e1ffe93
--- /dev/null
+++ b/src/clients/transformations/client.config.ts
@@ -0,0 +1,22 @@
+import { ClientOptions, Transport } from '@nestjs/microservices';
+import { TransformationProtofile } from '@victorradael/protospack';
+import { credentials } from '@grpc/grpc-js';
+
+export class TransformationsClientConfiguration {
+ config(): ClientOptions {
+ return {
+ transport: Transport.GRPC,
+ options: {
+ url: process.env.TRFACTORY_URL,
+ package: 'transformation',
+ credentials: credentials.createSsl(),
+ protoPath: TransformationProtofile,
+ loader: {
+ enums: String,
+ objects: true,
+ arrays: true,
+ },
+ },
+ };
+ }
+}
diff --git a/src/clients/transformations/client.service.ts b/src/clients/transformations/client.service.ts
new file mode 100644
index 0000000..0b7eaaf
--- /dev/null
+++ b/src/clients/transformations/client.service.ts
@@ -0,0 +1,173 @@
+import { Controller, Inject, OnModuleInit, Post } from '@nestjs/common';
+import { ClientGrpc } from '@nestjs/microservices';
+import { TransformationsServiceInterface } from '@victorradael/protospack';
+import {
+ objectCamelToSnake,
+ objectSnakeToCamel,
+} from 'src/utils/CaseConverter';
+import { ICreateTransformationsRequest, IIdRequest } from './interfaces';
+
+@Controller('transformation')
+export class TransformationsClientService implements OnModuleInit {
+ private transformationService: TransformationsServiceInterface;
+ constructor(
+ @Inject('TRANSFORMATIONS_PACKAGE') private readonly grpcClient: ClientGrpc,
+ ) {}
+
+ onModuleInit() {
+ this.transformationService =
+ this.grpcClient.getService(
+ 'TransformationService',
+ );
+ }
+
+ @Post()
+ async create(createTransformationsDto: ICreateTransformationsRequest) {
+ console.log('TransformationClientService', 'Create');
+
+ const createTransformationResponse = await new Promise(
+ (resolve, reject) => {
+ this.transformationService
+ .create(objectSnakeToCamel(createTransformationsDto))
+ .subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ },
+ )
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ const convertedTransforms = createTransformationResponse[
+ 'transformations'
+ ].map((tr) => {
+ return objectCamelToSnake(tr);
+ });
+
+ return { transformations: convertedTransforms };
+ }
+
+ async findAll(data) {
+ console.log('TransformationClientService', 'FindAll');
+
+ const findAllTransformationResponse = await new Promise(
+ (resolve, reject) => {
+ this.transformationService.findAll(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ },
+ )
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+ const convertedTransforms = findAllTransformationResponse[
+ 'transformations'
+ ].map((tr) => {
+ return objectCamelToSnake(tr);
+ });
+ return { transformations: convertedTransforms };
+ }
+
+ async findOne(data: IIdRequest) {
+ console.log('TransformationClientService', 'FindOne');
+
+ const findOneTransformationResponse = await new Promise(
+ (resolve, reject) => {
+ this.transformationService.findOne(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ },
+ )
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return objectCamelToSnake(findOneTransformationResponse);
+ }
+
+ async update(updateTransformationDTO) {
+ console.log('TransformationClientService', 'Update');
+
+ const updateTransformationResponse = await new Promise(
+ (resolve, reject) => {
+ this.transformationService
+ .update(objectSnakeToCamel(updateTransformationDTO))
+ .subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ },
+ )
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return objectCamelToSnake(updateTransformationResponse);
+ }
+
+ async remove(data: IIdRequest) {
+ console.log('TransformationClientService', 'Remove');
+
+ const removeTransformationResponse = await new Promise(
+ (resolve, reject) => {
+ this.transformationService.remove(objectSnakeToCamel(data)).subscribe({
+ next(x) {
+ resolve(x);
+ },
+ error(err) {
+ console.log('Observable Error');
+ reject(err);
+ },
+ complete() {
+ console.log('done');
+ },
+ });
+ },
+ )
+ .then((res) => res)
+ .catch((err) => {
+ throw new Error(err);
+ });
+
+ return objectCamelToSnake(removeTransformationResponse);
+ }
+}
diff --git a/src/clients/transformations/interfaces.d.ts b/src/clients/transformations/interfaces.d.ts
new file mode 100644
index 0000000..253450d
--- /dev/null
+++ b/src/clients/transformations/interfaces.d.ts
@@ -0,0 +1,37 @@
+export interface ICreateTransformationsRequest {
+ transformations: Transformation[];
+ info: Info;
+}
+interface Param {
+ base_column: string;
+ column_name: string;
+ n_digits: number;
+ start_index: number;
+ randbelow: number;
+ const: string;
+}
+
+export interface Info {
+ customer_id: string;
+ user_id: string;
+}
+
+interface Transformation {
+ created_at: string;
+ id: string;
+ client_id: string;
+ type: string;
+ params: Param[];
+ input_source: string;
+ table: string;
+}
+
+export interface IIdRequest {
+ id: string;
+ info: Info;
+}
+
+export interface IUpdateTransformationRequest {
+ transformation: Transformation;
+ info: Info;
+}
diff --git a/src/enrichment/config/grpc-client.ts b/src/enrichment/config/grpc-client.ts
deleted file mode 100644
index 7dcf5e1..0000000
--- a/src/enrichment/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50053`,
- package: 'enrichment',
- protoPath: join(__dirname, '..', 'proto', 'enrichment.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/enrichment/dto/create-enrichment.dto.ts b/src/enrichment/dto/create-enrichment.dto.ts
deleted file mode 100644
index 6ec0db3..0000000
--- a/src/enrichment/dto/create-enrichment.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export class CreateEnrichmentDto {
-
- type:string;
-
- columns:string[]
-}
diff --git a/src/enrichment/dto/update-enrichment.dto.ts b/src/enrichment/dto/update-enrichment.dto.ts
deleted file mode 100644
index 570394a..0000000
--- a/src/enrichment/dto/update-enrichment.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreateEnrichmentDto } from './create-enrichment.dto';
-
-export class UpdateEnrichmentDto extends PartialType(CreateEnrichmentDto) {
-
-}
diff --git a/src/enrichment/enrichment.controller.spec.ts b/src/enrichment/enrichment.controller.spec.ts
deleted file mode 100644
index 4b81e7f..0000000
--- a/src/enrichment/enrichment.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { EnrichmentController } from './enrichment.controller';
-import { EnrichmentsService } from './enrichment.service';
-
-describe('EnrichmentController', () => {
- let controller: EnrichmentController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [EnrichmentController],
- providers: [EnrichmentsService],
- }).compile();
-
- controller = module.get(EnrichmentController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/enrichment/enrichment.controller.ts b/src/enrichment/enrichment.controller.ts
deleted file mode 100644
index b39f929..0000000
--- a/src/enrichment/enrichment.controller.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import {
- Controller,
- Delete,
- Get,
- OnModuleInit,
- Param,
- Post,
- Put,
-} from '@nestjs/common';
-import { Client, ClientGrpc, Payload } from '@nestjs/microservices';
-import { EnrichmentsService } from './enrichment.service';
-import { CreateEnrichmentDto } from './dto/create-enrichment.dto';
-import { UpdateEnrichmentDto } from './dto/update-enrichment.dto';
-import { ApiTags } from '@nestjs/swagger';
-import { GrpcClientConfiguration } from './config/grpc-client';
-
-@ApiTags('enrichments')
-@Controller('enrichment')
-export class EnrichmentController implements OnModuleInit {
-
- @Client(GrpcClientConfiguration)
- private enrichmentServiceClient: ClientGrpc;
-
- private enrichmentService: EnrichmentsService;
-
- onModuleInit() {
- this.enrichmentService =
- this.enrichmentServiceClient.getService(
- 'EnrichmentService',
- );
- }
-
- @Post()
- create(@Payload() createEnrichmentDto: CreateEnrichmentDto) {
- return this.enrichmentService.create(createEnrichmentDto);
- }
-
- @Get()
- list() {
- return this.enrichmentService.list();
- }
-
- @Get(':id')
- show(@Param() id: string) {
- return this.enrichmentService.show(id);
- }
-
- @Put(':id')
- update(
- @Param() id: string,
- @Payload() updateEnrichmentDto: UpdateEnrichmentDto,
- ) {
- return this.enrichmentService.update(id, updateEnrichmentDto);
- }
-
- @Delete(':id')
- remove(@Param() id: string) {
- return this.enrichmentService.remove(id);
- }
-}
diff --git a/src/enrichment/enrichment.module.ts b/src/enrichment/enrichment.module.ts
deleted file mode 100644
index ceafbbf..0000000
--- a/src/enrichment/enrichment.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { EnrichmentsService } from './enrichment.service';
-import { EnrichmentController } from './enrichment.controller';
-
-@Module({
- controllers: [EnrichmentController],
- providers: [EnrichmentsService],
-})
-export class EnrichmentModule {}
diff --git a/src/enrichment/enrichment.service.spec.ts b/src/enrichment/enrichment.service.spec.ts
deleted file mode 100644
index 3cdb40b..0000000
--- a/src/enrichment/enrichment.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { EnrichmentsService } from './enrichment.service';
-
-describe('EnrichmentService', () => {
- let service: EnrichmentsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [EnrichmentsService],
- }).compile();
-
- service = module.get(EnrichmentsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/enrichment/enrichment.service.ts b/src/enrichment/enrichment.service.ts
deleted file mode 100644
index aafcceb..0000000
--- a/src/enrichment/enrichment.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateEnrichmentDto } from './dto/create-enrichment.dto';
-import { UpdateEnrichmentDto } from './dto/update-enrichment.dto';
-
-@Injectable()
-export class EnrichmentsService {
- create(createEnrichmentDto: CreateEnrichmentDto) {
- return 'This action adds a new enrichment';
- }
-
- list() {
- return `This action returns all enrichment`;
- }
-
- show(id: string) {
- return `This action returns a #${id} enrichment`;
- }
-
- update(id: string, updateEnrichmentDto: UpdateEnrichmentDto) {
- return `This action updates a #${id} enrichment`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} enrichment`;
- }
-}
diff --git a/src/enrichment/entities/enrichment.entity.ts b/src/enrichment/entities/enrichment.entity.ts
deleted file mode 100644
index fecf084..0000000
--- a/src/enrichment/entities/enrichment.entity.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-export class Enrichment {
-
- id:string;
-
- type:string;
-
- columns:string[]
-}
diff --git a/src/enrichment/proto/enrichment.proto b/src/enrichment/proto/enrichment.proto
deleted file mode 100644
index 85baa06..0000000
--- a/src/enrichment/proto/enrichment.proto
+++ /dev/null
@@ -1,43 +0,0 @@
-syntax = "proto3";
-
-package enrichment;
-
-
-import "google/protobuf/timestamp.proto";
-
-
-
-service EnrichmentService {
- rpc Create(CreateEnrichmentRequest) returns (Enrichment) {}
- rpc Show(IdRequest) returns (Enrichment) {}
- rpc List(Empty) returns (ListResponse){}
- rpc Update(UpdateEnrichmentRequest) returns (Enrichment){}
- rpc Remove(IdRequest) returns (Empty){}
-}
-
-message Empty {}
-
-message IdRequest{
- string id = 1;
-}
-
-message UpdateEnrichmentRequest{
- string id = 1;
- string type = 2;
- repeated string columns = 3;
-}
-
-message Enrichment {
- string id = 1;
- string type = 2;
- repeated string columns = 3;
-}
-
-message CreateEnrichmentRequest {
- string type = 1;
- repeated string columns = 2;
-}
-
-message ListResponse {
- repeated Enrichment enrichments = 2;
-}
diff --git a/src/error/http-exception.filter.spec.ts b/src/error/http-exception.filter.spec.ts
new file mode 100644
index 0000000..8f016dd
--- /dev/null
+++ b/src/error/http-exception.filter.spec.ts
@@ -0,0 +1,7 @@
+import { HttpExceptionFilter } from './http-exception.filter';
+
+describe('HttpExceptionFilter', () => {
+ it('should be defined', () => {
+ expect(new HttpExceptionFilter()).toBeDefined();
+ });
+});
diff --git a/src/error/http-exception.filter.ts b/src/error/http-exception.filter.ts
new file mode 100644
index 0000000..e5cfa26
--- /dev/null
+++ b/src/error/http-exception.filter.ts
@@ -0,0 +1,24 @@
+import {
+ ExceptionFilter,
+ Catch,
+ ArgumentsHost,
+ HttpException,
+} from '@nestjs/common';
+import { Request, Response } from 'express';
+
+@Catch(HttpException)
+export class HttpExceptionFilter implements ExceptionFilter {
+ catch(exception: HttpException, host: ArgumentsHost) {
+ const ctx = host.switchToHttp();
+ const response = ctx.getResponse();
+ const request = ctx.getRequest();
+ const status = exception.getStatus();
+
+ response.status(status).json({
+ status_code: status,
+ timestamp: new Date().toISOString(),
+ path: request.url,
+ method: request.method,
+ });
+ }
+}
diff --git a/src/health/entities/health.entity.ts b/src/health/entities/health.entity.ts
deleted file mode 100644
index d16a76c..0000000
--- a/src/health/entities/health.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class Health {}
diff --git a/src/health/health.module.ts b/src/health/health.module.ts
deleted file mode 100644
index ab943a5..0000000
--- a/src/health/health.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { HealthService } from './health.service';
-import { HealthController } from './health.controller';
-
-@Module({
- controllers: [HealthController],
- providers: [HealthService],
-})
-export class HealthModule {}
diff --git a/src/inputs/config/grpc-client.ts b/src/inputs/config/grpc-client.ts
deleted file mode 100644
index d81788a..0000000
--- a/src/inputs/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50052`,
- package: 'input',
- protoPath: join(__dirname, '..', 'proto', 'input.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/inputs/dto/create-input-grpc-client.dto.ts b/src/inputs/dto/create-input-grpc-client.dto.ts
deleted file mode 100644
index c2c1acd..0000000
--- a/src/inputs/dto/create-input-grpc-client.dto.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-
-export class CreateInputGrpcClientDto {
-
- cron:string;
-
- name:string;
-
- plugin:string;
-
- values:string;
-
- operation:string;
-}
diff --git a/src/inputs/dto/test-connection-grpc-client.dto.ts b/src/inputs/dto/test-connection-grpc-client.dto.ts
deleted file mode 100644
index 48275c4..0000000
--- a/src/inputs/dto/test-connection-grpc-client.dto.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-export class TestConnectionDTO{
-
- values:string;
- plugin:string;
-}
diff --git a/src/inputs/dto/update-input-grpc-client.dto.ts b/src/inputs/dto/update-input-grpc-client.dto.ts
deleted file mode 100644
index 67ac954..0000000
--- a/src/inputs/dto/update-input-grpc-client.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreateInputGrpcClientDto } from './create-input-grpc-client.dto';
-
-export class UpdateInputGrpcClientDto extends PartialType(
- CreateInputGrpcClientDto,
-) {}
diff --git a/src/inputs/entities/input-grcp-client.entity.ts b/src/inputs/entities/input-grcp-client.entity.ts
deleted file mode 100644
index 4e4fed6..0000000
--- a/src/inputs/entities/input-grcp-client.entity.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export class InputGrpcClient {
-
- id:string;
-
- cron:string;
-
- name:string;
-
- plugin:string;
-
- values:string;
-
- operation:string;
-}
diff --git a/src/inputs/input-grpc-client.controller.ts b/src/inputs/input-grpc-client.controller.ts
deleted file mode 100644
index 22e02bc..0000000
--- a/src/inputs/input-grpc-client.controller.ts
+++ /dev/null
@@ -1,63 +0,0 @@
-import {
- Get,
- Post,
- Controller,
- Delete,
- OnModuleInit,
- Put,
- Param
-} from '@nestjs/common';
-import { Client, ClientGrpc, Payload } from '@nestjs/microservices';
-import { CreateInputGrpcClientDto } from './dto/create-input-grpc-client.dto';
-import { UpdateInputGrpcClientDto } from './dto/update-input-grpc-client.dto';
-import { InputGrpcClientService } from './input-grpc-client.service';
-import { GrpcClientConfiguration } from './config/grpc-client';
-import { TestConnectionDTO } from './dto/test-connection-grpc-client.dto';
-import { ApiTags } from '@nestjs/swagger';
-
-@Controller('grpc/input')
-export class InputGrpcClientController implements OnModuleInit {
- @Client(GrpcClientConfiguration)
- private inputServiceClient: ClientGrpc;
-
- private inputService: InputGrpcClientService;
-
- onModuleInit() {
- this.inputService =
- this.inputServiceClient.getService('InputService');
- }
-
- @Post()
- async create(@Payload() createInputDto: CreateInputGrpcClientDto) {
- return this.inputService.create(createInputDto);
- }
-
- @Get()
- list() {
- return this.inputService.list();
- }
-
- @Get(':id')
- show(@Param() id: string) {
- return this.inputService.show(id);
- }
-
- @Put(':id')
- update(
- @Payload() updateInputDto: UpdateInputGrpcClientDto,
- @Param() id: string,
- ) {
- return this.inputService.update(id, updateInputDto);
- }
-
- @Delete(':id')
- remove(@Param() id: string) {
- return this.inputService.remove(id);
- }
-
- @Get('/test-connection')
- testConnection(@Payload() testConnectionDTO:TestConnectionDTO){
-
- return this.inputService.testConnection(testConnectionDTO)
- }
-}
diff --git a/src/inputs/input-grpc-client.module.ts b/src/inputs/input-grpc-client.module.ts
deleted file mode 100644
index 53dd6ed..0000000
--- a/src/inputs/input-grpc-client.module.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-import { Module } from '@nestjs/common';
-import { InputGrpcClientService } from './input-grpc-client.service';
-import { InputGrpcClientController } from './input-grpc-client.controller';
-// import { InputRestClientController } from './input-rest-client.controller';
-
-@Module({
- controllers: [
- InputGrpcClientController,
- // InputRestClientController
- ],
- providers: [InputGrpcClientService],
-})
-export class InputGrpcClientModule {}
diff --git a/src/inputs/input-grpc-client.service.spec.ts b/src/inputs/input-grpc-client.service.spec.ts
deleted file mode 100644
index 65f90aa..0000000
--- a/src/inputs/input-grpc-client.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { InputGrpcClientService } from './input-grpc-client.service';
-
-describe('InputGrcpClientService', () => {
- let service: InputGrpcClientService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [InputGrpcClientService],
- }).compile();
-
- service = module.get(InputGrpcClientService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/inputs/input-grpc-client.service.ts b/src/inputs/input-grpc-client.service.ts
deleted file mode 100644
index db99157..0000000
--- a/src/inputs/input-grpc-client.service.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateInputGrpcClientDto } from './dto/create-input-grpc-client.dto';
-import { TestConnectionDTO } from './dto/test-connection-grpc-client.dto';
-import { UpdateInputGrpcClientDto } from './dto/update-input-grpc-client.dto';
-
-@Injectable()
-export class InputGrpcClientService {
- create(createInputGrcpClientDto: CreateInputGrpcClientDto) {
- return 'This action adds a new InputGrcpClient';
- }
-
- list() {
- return `This action returns all InputGrcpClient`;
- }
-
- show(id: string) {
- return `This action returns a #${id} InputGrcpClient`;
- }
-
- update(id: string, updateInputGrcpClientDto: UpdateInputGrpcClientDto) {
- return `This action updates a #${id} InputGrcpClient`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} InputGrcpClient`;
- }
-
- testConnection(testConnectionDTO:TestConnectionDTO){
- return `This action tests a given connection`;
- }
-}
diff --git a/src/inputs/input-rest-client.controller.ts b/src/inputs/input-rest-client.controller.ts
deleted file mode 100644
index 99e379a..0000000
--- a/src/inputs/input-rest-client.controller.ts
+++ /dev/null
@@ -1,71 +0,0 @@
-import { Body, Controller, Delete, Get, Param, Post, Put, Redirect } from '@nestjs/common';
-import { Payload } from '@nestjs/microservices';
-import axios from 'axios';
-import { Console } from 'console';
-import { CreateInputGrpcClientDto } from './dto/create-input-grpc-client.dto';
-import { UpdateInputGrpcClientDto } from './dto/update-input-grpc-client.dto';
-
-@Controller('input')
-export class InputRestClientController {
-
-
- @Get('/test-connection/')
- async testConnection(){
- console.log(process.env.DEV_URL+`/test-connection`, "ON TEST CONNECTION ROUTE")
- await axios.get(process.env.DEV_URL+`/test-connection`).then( (response) => {
- return response
- })
- }
-
- @Post()
- async create(@Body() createInputDto: CreateInputGrpcClientDto){
- console.log(createInputDto)
- console.log(process.env.DEV_URL+`/input`, "ON CREATE ROUTE")
-
- await axios.post(process.env.DEV_URL+'/input',createInputDto).then( (response) => {
- return response
- })
- }
-
- @Get()
- async list(){
- console.log(process.env.DEV_URL+`/input`, "ON GET ROUTE")
- await axios.get(process.env.DEV_URL+`/input`).then( (response) => {
- return response
- })
- }
-
-
- @Get('/:id')
- async show(@Param() id: string){
- console.log(process.env.DEV_URL+`/input/${id}`, "ON SHOW ROUTE")
- await axios.get(process.env.DEV_URL+`/input/${id}`).then( (response) => {
- return response
- })
- }
-
-
- @Put(':id')
- async update(
- @Payload() updateInputDto: UpdateInputGrpcClientDto,
- @Param() id: string,
- ){
- console.log(process.env.DEV_URL+`/input/${id}`, "ON UPDATE ROUTE")
- await axios.put(process.env.DEV_URL+`input/${id}`,updateInputDto).then( (response) => {
- return response
- })
- }
-
-
- @Delete(':id')
- async delete(@Param() id: string){
- console.log(process.env.DEV_URL+`/input/${id}`, "ON DELETE ROUTE")
-
- await axios.delete(process.env.DEV_URL+`/input/${id}`).then( (response) => {
- return response
- })
- }
-
-
-
-}
diff --git a/src/inputs/proto/input.proto b/src/inputs/proto/input.proto
deleted file mode 100644
index 87cf829..0000000
--- a/src/inputs/proto/input.proto
+++ /dev/null
@@ -1,65 +0,0 @@
-syntax = "proto3";
-
-package input;
-
-
-import "google/protobuf/timestamp.proto";
-
-
-
-service InputService {
- rpc Create(CreateInputRequest) returns (Input) {}
- rpc Show(IdRequest) returns (Input) {}
- rpc List(Empty) returns (ListResponse){}
- rpc Update(UpdateInputRequest) returns (Input){}
- rpc Remove(IdRequest) returns (Empty){}
- rpc TestConnection(TestConnectionRequest) returns (TestConnectionResponse){}
-}
-
-message Empty {}
-
-message IdRequest{
- string id = 1;
-}
-
-message UpdateInputRequest{
- string id = 1;
- string cron = 2;
- string name = 3;
- string plugin = 4;
- string values = 5;
- string operation = 6;
-}
-
-message Input {
- string id = 1;
- string cronFormated = 2;
- string name = 3;
- string plugin = 4;
- string values = 5;
- string operation = 6;
-}
-
-message CreateInputRequest {
- string cron = 1;
- string name = 2;
- string plugin = 3;
- string values = 4;
- string operation = 5;
-}
-
-message ListResponse {
- repeated Input inputs = 1;
-}
-
-message TestConnectionRequest{
- string values = 1;
- string plugin = 2;
-}
-
-message TestConnectionResponse{
-
- // nao sei como vai ser a resposta
- bool respose = 1;
-
-}
diff --git a/src/main.ts b/src/main.ts
index a5e74f8..ba714fa 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -3,10 +3,16 @@ import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
import { writeFileSync } from 'fs';
import { AppModule } from './app.module';
-import { config } from 'dotenv';
-config();
+
async function bootstrap() {
- const app = await NestFactory.create(AppModule);
+ const app = await NestFactory.create(AppModule, {
+ cors: {
+ origin: '*',
+ methods: 'GET,HEAD,PUT,PATCH,POST,DELETE',
+ preflightContinue: false,
+ optionsSuccessStatus: 204,
+ },
+ });
const config = new DocumentBuilder()
.setTitle('Maestro Grpc Documentation')
diff --git a/src/middlewares/authentication.ts b/src/middlewares/authentication.ts
index cdd1412..83abf9d 100644
--- a/src/middlewares/authentication.ts
+++ b/src/middlewares/authentication.ts
@@ -1,30 +1,123 @@
import { Request, Response, NextFunction } from 'express';
import axios from 'axios';
-import { NestMiddleware } from '@nestjs/common';
+import {
+ ForbiddenException,
+ InternalServerErrorException,
+ NestMiddleware,
+ UnauthorizedException,
+ UseFilters,
+} from '@nestjs/common';
+import jwkToPem from 'jwk-to-pem';
+import { decode, verify } from 'jsonwebtoken';
+import { HttpExceptionFilter } from 'src/error/http-exception.filter';
-export class LoggerMiddleware implements NestMiddleware{
+@UseFilters(new HttpExceptionFilter())
+export class LoggerMiddleware implements NestMiddleware {
+ use = async (request: Request, response: Response, next: NextFunction) => {
+ const idToken = request.get('Dadosfera-User');
+ const accessToken = request.get('Authorization');
+ const privateKey = process.env.JWT_PRIVATE_KEY;
+ const requiredMethod = request.method.trim();
+ const requiredRoute = request.route.path.split('/')[1].trim();
- use = async (
- request: Request,
- response: Response,
- next: NextFunction
- ) => {
+ verify(idToken, privateKey, (err) => {
+ if (err) {
+ throw new UnauthorizedException();
+ }
+ });
+ const jwtDecoded: any = decode(idToken);
+ console.log(jwtDecoded);
+ const permissions = jwtDecoded.user.permissions;
+ const clienId = jwtDecoded.user.customerId;
+ const userId = jwtDecoded.user.id;
- try {
- const verify_response = await axios.post(
- `${process.env.DEV_URL}/user/verify`,
- { "token":request.get('Authorization')}
- ).then(response =>{
- if(response.data.message == "Success"){
- next()
- }
- })
+ await verifyToken(accessToken);
+ let havePermission = false;
+ permissions.forEach((permission) => {
+ permission = permission.split('/');
+ const method = permission[0].trim();
+ const route = permission[1].trim();
- } catch (error) {
- response.status(401).send({ message: 'Authentication Failed!' });
- }
+ if (method === requiredMethod && route === requiredRoute) {
+ havePermission = true;
+ }
+ });
+
+ if (havePermission) {
+ request.body.info = {
+ customer_id: clienId,
+ user_id: userId,
};
+ next();
+ } else {
+ throw new ForbiddenException();
+ }
+ };
}
+
+let pems: { [key: string]: Record }[];
+
+const setUp = async (region: string, id: string) => {
+ const URL = `https://cognito-idp.${region}.amazonaws.com/${id}/.well-known/jwks.json`;
+
+ try {
+ const response = await axios.get(URL);
+
+ if (response.status !== 200) {
+ throw new InternalServerErrorException();
+ }
+ const data = await response.data;
+ const { keys } = data;
+
+ pems = keys.map((key: any) => {
+ const modulus = key.n;
+ const exponent = key.e;
+ const keyType = key.kty;
+ const jwk = { kty: keyType, n: modulus, e: exponent };
+ const pem = jwkToPem(jwk);
+ const keyId = key.kid;
+
+ return { [keyId]: pem };
+ });
+ } catch (error) {
+ // console.log(error);
+ // console.log('Error! Unable to download JWKs');
+ }
+};
+
+const verifyToken = async (accessToken: string) => {
+ const awsRegion = process.env.AWS_REGION;
+ const awsPoolId = process.env.AWS_IDENTITY_POOL_ID;
+
+ try {
+ await setUp(awsRegion, awsPoolId);
+ if (accessToken) {
+ const user: any = decode(accessToken, { complete: true });
+
+ if (user === null) {
+ throw new UnauthorizedException();
+ }
+
+ const { kid } = user.header;
+ const pem = pems.filter((item: any) => item[kid]);
+ const pemValue: any = pem[0][kid];
+
+ if (!pem) {
+ throw new UnauthorizedException();
+ }
+
+ verify(accessToken, pemValue, (err: any) => {
+ if (err) {
+ throw new UnauthorizedException();
+ }
+
+ return;
+ });
+ }
+ } catch (error) {
+ throw new UnauthorizedException();
+ }
+};
diff --git a/src/modules/auth/auth.controller.ts b/src/modules/auth/auth.controller.ts
new file mode 100644
index 0000000..c58f248
--- /dev/null
+++ b/src/modules/auth/auth.controller.ts
@@ -0,0 +1,25 @@
+import { Body, Controller, Post } from '@nestjs/common';
+
+import { AuthClientService } from 'src/clients/auth/client.service';
+
+interface ISignIn {
+ username: string;
+ password: string;
+}
+
+@Controller('auth')
+export class AuthController {
+ constructor(private authClient: AuthClientService) {}
+
+ @Post()
+ async signIn(@Body() { username, password }: ISignIn) {
+ console.log(`/auth`, 'SignIn');
+
+ const tokens = await this.authClient
+ .signIn({ username, password })
+ .then((result) => result)
+ .catch((err) => console.log(err));
+
+ return tokens;
+ }
+}
diff --git a/src/modules/auth/auth.service.spec.ts b/src/modules/auth/auth.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/auth/auth.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/health/health.controller.ts b/src/modules/health/health.controller.ts
similarity index 88%
rename from src/health/health.controller.ts
rename to src/modules/health/health.controller.ts
index 137c8d3..86445fb 100644
--- a/src/health/health.controller.ts
+++ b/src/modules/health/health.controller.ts
@@ -7,6 +7,7 @@ export class HealthController {
@Get()
check() {
+ console.log(`/health`, 'check');
return this.healthService.check();
}
}
diff --git a/src/modules/health/health.service.spec.ts b/src/modules/health/health.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/health/health.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/health/health.service.ts b/src/modules/health/health.service.ts
similarity index 83%
rename from src/health/health.service.ts
rename to src/modules/health/health.service.ts
index 62b5601..8754715 100644
--- a/src/health/health.service.ts
+++ b/src/modules/health/health.service.ts
@@ -3,6 +3,7 @@ import { Injectable } from '@nestjs/common';
@Injectable()
export class HealthService {
check() {
+ console.log('HEALTH');
return { message: 'Ok' };
}
}
diff --git a/src/modules/inputs/inputs.controller.ts b/src/modules/inputs/inputs.controller.ts
new file mode 100644
index 0000000..e626d01
--- /dev/null
+++ b/src/modules/inputs/inputs.controller.ts
@@ -0,0 +1,89 @@
+import {
+ Body,
+ Controller,
+ Delete,
+ Get,
+ Param,
+ Post,
+ Put,
+} from '@nestjs/common';
+import { InputsService } from './inputs.service';
+import { InputsClientService } from 'src/clients/inputs/client.service';
+import {
+ ICreateInputRequest,
+ UpdateInputRequest,
+} from 'src/clients/inputs/interfaces';
+
+@Controller('inputs')
+export class InputsController {
+ constructor(private inputsClientService: InputsClientService) {}
+
+ @Post('/test-connection')
+ async testConnection(@Body() data) {
+ console.log(`/test-connection`, 'ON TEST CONNECTION ROUTE');
+
+ const inputService = new InputsService(this.inputsClientService);
+ const response = await inputService.testConnection(data);
+
+ return response;
+ }
+
+ @Post()
+ async create(@Body() createInputDto: ICreateInputRequest) {
+ console.log(`/input`, 'ON CREATE ROUTE');
+
+ const inputService = new InputsService(this.inputsClientService);
+ const response = await inputService.create(createInputDto);
+
+ return response;
+ }
+
+ @Get()
+ async findAll(@Body() body) {
+ console.log(`/input`, 'ON FIND ALL ROUTE');
+
+ const inputService = new InputsService(this.inputsClientService);
+
+ const response = await inputService.findAll(body);
+
+ return response;
+ }
+
+ @Get('/:id')
+ async findOne(@Body() body, @Param() params) {
+ const { id } = params;
+ console.log(`/input/${id}`, 'ON FIND ONE ROUTE');
+ const inputService = new InputsService(this.inputsClientService);
+
+ const response = await inputService.findOne({ id, ...body });
+
+ return response;
+ }
+
+ @Put(':id')
+ async update(@Body() updateInputDto: UpdateInputRequest, @Param() params) {
+ const { id } = params;
+ const { info } = updateInputDto;
+ delete updateInputDto.info;
+
+ console.log(`/input/${id}`, 'ON UPDATE ROUTE');
+ const inputService = new InputsService(this.inputsClientService);
+
+ const response = await inputService.update(id, updateInputDto, info);
+
+ return response;
+ }
+
+ @Delete(':id')
+ async delete(@Body() data, @Param() params) {
+ const { id } = params;
+
+ console.log(`/input/${id}`, 'ON DELETE ROUTE');
+
+ const inputService = new InputsService(this.inputsClientService);
+
+ const response = await inputService.remove({ id, ...data });
+
+ return response;
+ }
+}
diff --git a/src/modules/inputs/inputs.service.spec.ts b/src/modules/inputs/inputs.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/inputs/inputs.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/modules/inputs/inputs.service.ts b/src/modules/inputs/inputs.service.ts
new file mode 100644
index 0000000..d090b52
--- /dev/null
+++ b/src/modules/inputs/inputs.service.ts
@@ -0,0 +1,77 @@
+import { Body, HttpException, HttpStatus, Injectable } from '@nestjs/common';
+import { InputsClientService } from 'src/clients/inputs/client.service';
+import {
+ ICreateInputRequest,
+ IIdRequest,
+ Info,
+} from 'src/clients/inputs/interfaces';
+
+@Injectable()
+export class InputsService {
+ constructor(private inputClient: InputsClientService) {}
+
+ async create(@Body() data: ICreateInputRequest) {
+ try {
+ const createInputResponse = await this.inputClient.create(data);
+
+ return createInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findAll(body) {
+ try {
+ const findAllInputResponse = await this.inputClient.findAll(body);
+
+ return findAllInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findOne(idRequest: IIdRequest) {
+ try {
+ const findOneInputResponse = await this.inputClient.findOne(idRequest);
+ return findOneInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async update(id: string, data, info: Info) {
+ try {
+ const updateInputResponse = await this.inputClient.update({
+ id,
+ info,
+ ...data,
+ });
+
+ return updateInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async remove(idRequest: IIdRequest) {
+ try {
+ const removeInputResponse = await this.inputClient.remove(idRequest);
+
+ return removeInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async testConnection(data) {
+ try {
+ const testConnectionInputResponse = await this.inputClient.testConnection(
+ data,
+ );
+
+ return testConnectionInputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+}
diff --git a/src/modules/outputs/outputs.controllers.ts b/src/modules/outputs/outputs.controllers.ts
new file mode 100644
index 0000000..e9f73d3
--- /dev/null
+++ b/src/modules/outputs/outputs.controllers.ts
@@ -0,0 +1,73 @@
+import {
+ Body,
+ Controller,
+ Delete,
+ Get,
+ Param,
+ Post,
+ Put,
+} from '@nestjs/common';
+import { Payload } from '@nestjs/microservices';
+import { OutputsClientService } from 'src/clients/outputs/client.service';
+import { OutputsService } from './outputs.service';
+
+@Controller('outputs')
+export class OutputsController {
+ constructor(private outputsClientService: OutputsClientService) {}
+
+ @Post()
+ async create(@Body() createOutputDto) {
+ console.log(process.env.DEV_URL + `/output`, 'ON CREATE ROUTE');
+
+ const outputService = new OutputsService(this.outputsClientService);
+ const response = await outputService.create(createOutputDto);
+
+ return response;
+ }
+
+ @Get()
+ async findAll(@Body() data) {
+ console.log(process.env.DEV_URL + `/output`, 'ON Find All ROUTE');
+
+ const outputService = new OutputsService(this.outputsClientService);
+ const response = await outputService.findAll(data);
+
+ return response;
+ }
+
+ @Get('/:id')
+ async findOne(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(process.env.DEV_URL + `/output/${id}`, 'ON Find One ROUTE');
+
+ const outputService = new OutputsService(this.outputsClientService);
+ const response = await outputService.findOne({ id, ...data });
+
+ return response;
+ }
+
+ @Put(':id')
+ async update(@Payload() updateOutputDto, @Param() params) {
+ const { id } = params;
+ const { info } = updateOutputDto;
+ delete updateOutputDto.info;
+
+ console.log(process.env.DEV_URL + `/output/${id}`, 'ON UPDATE ROUTE');
+
+ const outputService = new OutputsService(this.outputsClientService);
+ const response = await outputService.update(id, updateOutputDto, info);
+
+ return response;
+ }
+
+ @Delete(':id')
+ async delete(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(process.env.DEV_URL + `/output/${id}`, 'ON DELETE ROUTE');
+
+ const outputService = new OutputsService(this.outputsClientService);
+ const response = await outputService.remove({ id, ...data });
+
+ return response;
+ }
+}
diff --git a/src/modules/outputs/outputs.service.spec.ts b/src/modules/outputs/outputs.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/outputs/outputs.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/modules/outputs/outputs.service.ts b/src/modules/outputs/outputs.service.ts
new file mode 100644
index 0000000..25a521d
--- /dev/null
+++ b/src/modules/outputs/outputs.service.ts
@@ -0,0 +1,63 @@
+import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
+import { IIdRequest, Info } from 'src/clients/outputs/interfaces';
+import { OutputsClientService } from 'src/clients/outputs/client.service';
+
+@Injectable()
+export class OutputsService {
+ constructor(private outputClient: OutputsClientService) {}
+
+ async create(createOutputDto) {
+ try {
+ const createOutputResponse = await this.outputClient.create(
+ createOutputDto,
+ );
+
+ return createOutputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findOne(data: IIdRequest) {
+ try {
+ const findOneOutputResponse = await this.outputClient.findOne(data);
+ return findOneOutputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findAll(data) {
+ try {
+ const findAllOutputResponse = await this.outputClient.findAll(data);
+
+ return findAllOutputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async update(id: string, data, info: Info) {
+ try {
+ const updateOutputResponse = await this.outputClient.update({
+ id,
+ info,
+ ...data,
+ });
+
+ return updateOutputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async remove(data: IIdRequest) {
+ try {
+ const removeOutputResponse = await this.outputClient.remove(data);
+
+ return removeOutputResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+}
diff --git a/src/modules/pipelines/pipelines.controller.ts b/src/modules/pipelines/pipelines.controller.ts
new file mode 100644
index 0000000..5460273
--- /dev/null
+++ b/src/modules/pipelines/pipelines.controller.ts
@@ -0,0 +1,100 @@
+import {
+ Body,
+ Controller,
+ Delete,
+ Get,
+ Param,
+ Post,
+ Put,
+} from '@nestjs/common';
+import { PipelinesClientService } from 'src/clients/pipelines/client.service';
+import { PipelinesService } from './pipelines.service';
+
+@Controller('pipelines')
+export class PipelinesController {
+ constructor(private pipelinesClientService: PipelinesClientService) {}
+
+ @Get(':id/status')
+ async getPipelineStatus(@Param() params) {
+ const { id } = params;
+ console.log(
+ process.env.DEV_URL + `/pipeline/${id}`,
+ 'ON GET PIPELINE STATUS ROUTE',
+ );
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.getPipelineStatus(id);
+
+ return response;
+ }
+
+ @Get(':id/:details')
+ async getPipelineLogs(@Param() params) {
+ const { id, details } = params;
+ console.log(
+ process.env.DEV_URL + `/pipeline/${id}`,
+ 'ON GET PIPELINE LOGS ROUTE',
+ );
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.getPipelineLogsMessages(id, details);
+
+ return response;
+ }
+
+ @Post()
+ async create(@Body() createPipelineDto) {
+ console.log(process.env.DEV_URL + `/pipelines`, 'ON CREATE ROUTE');
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.create(createPipelineDto);
+
+ return response;
+ }
+
+ @Get()
+ async findAll(@Body() data) {
+ console.log(process.env.DEV_URL + `/pipeline`, 'ON Find All ROUTE');
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.findAll(data);
+
+ return response;
+ }
+
+ @Get('/:id')
+ async findOne(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(process.env.DEV_URL + `/pipeline/${id}`, 'ON Find One ROUTE');
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.findOne({ id, ...data });
+
+ return response;
+ }
+
+ @Put(':id')
+ async update(@Body() updatePipelineDto, @Param() params) {
+ const { id } = params;
+ const { info } = updatePipelineDto;
+ delete updatePipelineDto.info;
+
+ console.log(process.env.DEV_URL + `/pipeline/${id}`, 'ON UPDATE ROUTE');
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.update(id, updatePipelineDto, info);
+
+ return response;
+ }
+
+ @Delete(':id')
+ async delete(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(process.env.DEV_URL + `/pipeline/${id}`, 'ON DELETE ROUTE');
+
+ const pipelineService = new PipelinesService(this.pipelinesClientService);
+ const response = await pipelineService.remove({ id, ...data });
+
+ return response;
+ }
+}
diff --git a/src/modules/pipelines/pipelines.service.spec.ts b/src/modules/pipelines/pipelines.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/pipelines/pipelines.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/modules/pipelines/pipelines.service.ts b/src/modules/pipelines/pipelines.service.ts
new file mode 100644
index 0000000..86a8a76
--- /dev/null
+++ b/src/modules/pipelines/pipelines.service.ts
@@ -0,0 +1,87 @@
+import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
+import { PipelinesClientService } from 'src/clients/pipelines/client.service';
+import { IIdRequest, Info } from 'src/clients/pipelines/interfaces';
+import { objectCamelToSnake } from 'src/utils/CaseConverter';
+
+@Injectable()
+export class PipelinesService {
+ constructor(private pipelineClient: PipelinesClientService) {}
+
+ async create(createPipelineDto) {
+ try {
+ const createPipelineResponse = await this.pipelineClient.create(
+ createPipelineDto,
+ );
+
+ return objectCamelToSnake(createPipelineResponse);
+ } catch (err) {
+ console.log(err);
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findOne(data: IIdRequest) {
+ try {
+ const findOnePipelineResponse = await this.pipelineClient.findOne(data);
+ return objectCamelToSnake(findOnePipelineResponse);
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findAll(data) {
+ try {
+ const findAllPipelineResponse = await this.pipelineClient.findAll(data);
+
+ return objectCamelToSnake(findAllPipelineResponse);
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async update(id: string, data, info: Info) {
+ try {
+ const updatePipelineResponse = await this.pipelineClient.update({
+ id,
+ info,
+ ...data,
+ });
+
+ return objectCamelToSnake(updatePipelineResponse);
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async remove(data: IIdRequest) {
+ try {
+ const removePipelineResponse = await this.pipelineClient.remove(data);
+
+ return removePipelineResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async getPipelineLogsMessages(id: string, details: string) {
+ try {
+ const pipelineLogsResponse =
+ await this.pipelineClient.getPipelineLogsMessages({ id, details });
+
+ return objectCamelToSnake(pipelineLogsResponse);
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async getPipelineStatus(id: string) {
+ try {
+ const pipelineStatusResponse =
+ await this.pipelineClient.getPipelineStatus({ id });
+
+ return objectCamelToSnake(pipelineStatusResponse);
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+}
diff --git a/src/modules/transformations/transformations.controller.ts b/src/modules/transformations/transformations.controller.ts
new file mode 100644
index 0000000..3234dfc
--- /dev/null
+++ b/src/modules/transformations/transformations.controller.ts
@@ -0,0 +1,97 @@
+import {
+ Body,
+ Controller,
+ Delete,
+ Get,
+ Param,
+ Post,
+ Put,
+} from '@nestjs/common';
+import { Payload } from '@nestjs/microservices';
+import { TransformationsClientService } from 'src/clients/transformations/client.service';
+import { IIdRequest } from 'src/clients/transformations/interfaces';
+import { TransformationsService } from './transformations.service';
+
+@Controller('transformations')
+export class TransformationsController {
+ constructor(
+ private transformationsClientService: TransformationsClientService,
+ ) {}
+
+ @Post()
+ async create(@Body() createTransformationDto) {
+ console.log(process.env.DEV_URL + `/transformation`, 'ON CREATE ROUTE');
+
+ const transformationService = new TransformationsService(
+ this.transformationsClientService,
+ );
+ const response = await transformationService.create(
+ createTransformationDto,
+ );
+
+ return response;
+ }
+
+ @Get()
+ async findAll(@Body() data: IIdRequest) {
+ console.log(process.env.DEV_URL + `/transformation`, 'ON Find All ROUTE');
+
+ const transformationService = new TransformationsService(
+ this.transformationsClientService,
+ );
+ const response = await transformationService.findAll(data);
+
+ return response;
+ }
+
+ @Get('/:id')
+ async findOne(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(
+ process.env.DEV_URL + `/transformation/${id}`,
+ 'ON Find One ROUTE',
+ );
+
+ const transformationService = new TransformationsService(
+ this.transformationsClientService,
+ );
+ const response = await transformationService.findOne({ id, ...data });
+
+ return response;
+ }
+
+ @Put(':id')
+ async update(@Payload() updateTransformationDto, @Param() params) {
+ const { id } = params;
+ console.log(
+ process.env.DEV_URL + `/transformation/${id}`,
+ 'ON UPDATE ROUTE',
+ );
+
+ const transformationService = new TransformationsService(
+ this.transformationsClientService,
+ );
+ const response = await transformationService.update(
+ id,
+ updateTransformationDto,
+ );
+
+ return response;
+ }
+
+ @Delete(':id')
+ async delete(@Body() data, @Param() params) {
+ const { id } = params;
+ console.log(
+ process.env.DEV_URL + `/transformation/${id}`,
+ 'ON DELETE ROUTE',
+ );
+
+ const transformationService = new TransformationsService(
+ this.transformationsClientService,
+ );
+ const response = await transformationService.remove({ id, ...data });
+
+ return response;
+ }
+}
diff --git a/src/modules/transformations/transformations.service.spec.ts b/src/modules/transformations/transformations.service.spec.ts
new file mode 100644
index 0000000..89e1958
--- /dev/null
+++ b/src/modules/transformations/transformations.service.spec.ts
@@ -0,0 +1,5 @@
+describe('PipelinesGrpcServerService', () => {
+ it('should be defined', () => {
+ expect(2 + 2).toBe(4);
+ });
+});
diff --git a/src/modules/transformations/transformations.service.ts b/src/modules/transformations/transformations.service.ts
new file mode 100644
index 0000000..7cce933
--- /dev/null
+++ b/src/modules/transformations/transformations.service.ts
@@ -0,0 +1,74 @@
+import { HttpException, HttpStatus, Injectable } from '@nestjs/common';
+import { TransformationsClientService } from 'src/clients/transformations/client.service';
+import {
+ ICreateTransformationsRequest,
+ IIdRequest,
+} from 'src/clients/transformations/interfaces';
+import { trSnakeToCamel } from 'src/utils/CaseConverter';
+
+@Injectable()
+export class TransformationsService {
+ constructor(private transformationClient: TransformationsClientService) {}
+
+ async create(createTransformationDto: ICreateTransformationsRequest) {
+ try {
+ const convertedDTO = createTransformationDto.transformations.map((tr) => {
+ return trSnakeToCamel(tr);
+ });
+
+ const createTransformationResponse =
+ await this.transformationClient.create({
+ transformations: convertedDTO,
+ info: createTransformationDto.info,
+ });
+
+ return createTransformationResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findOne(data: IIdRequest) {
+ try {
+ const findOneTransformationResponse =
+ await this.transformationClient.findOne(data);
+ return findOneTransformationResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async findAll(data) {
+ try {
+ const findAllTransformationResponse =
+ await this.transformationClient.findAll(data);
+
+ return findAllTransformationResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async update(id: string, data) {
+ try {
+ data.transformation['id'] = id;
+ const updateTransformationResponse =
+ await this.transformationClient.update({ ...data });
+
+ return updateTransformationResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+
+ async remove(data: IIdRequest) {
+ try {
+ const removeTransformationResponse =
+ await this.transformationClient.remove(data);
+
+ return removeTransformationResponse;
+ } catch (err) {
+ throw new HttpException(err.message, HttpStatus.NOT_FOUND);
+ }
+ }
+}
diff --git a/src/outputs/config/grpc-client.ts b/src/outputs/config/grpc-client.ts
deleted file mode 100644
index acbec96..0000000
--- a/src/outputs/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50053`,
- package: 'output',
- protoPath: join(__dirname, '..', 'proto', 'output.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/outputs/dto/create-output.dto.ts b/src/outputs/dto/create-output.dto.ts
deleted file mode 100644
index ac9bb0f..0000000
--- a/src/outputs/dto/create-output.dto.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export class CreateOutputDto {
-
- name:string;
- plugin:string;
- values:string;
- operation:string;
-}
diff --git a/src/outputs/dto/update-output.dto.ts b/src/outputs/dto/update-output.dto.ts
deleted file mode 100644
index 62d92a5..0000000
--- a/src/outputs/dto/update-output.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreateOutputDto } from './create-output.dto';
-
-export class UpdateOutputDto extends PartialType(CreateOutputDto) {
-
-}
diff --git a/src/outputs/entities/output.entity.ts b/src/outputs/entities/output.entity.ts
deleted file mode 100644
index f3557e3..0000000
--- a/src/outputs/entities/output.entity.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-export class Output {
-
- id:string;
- name:string;
- plugin:string;
- values:string;
- operation:string;
-
-}
diff --git a/src/outputs/outputs.controller.spec.ts b/src/outputs/outputs.controller.spec.ts
deleted file mode 100644
index 407ee10..0000000
--- a/src/outputs/outputs.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { OutputsController } from './outputs.controller';
-import { OutputsService } from './outputs.service';
-
-describe('OutputsController', () => {
- let controller: OutputsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [OutputsController],
- providers: [OutputsService],
- }).compile();
-
- controller = module.get(OutputsController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/outputs/outputs.controller.ts b/src/outputs/outputs.controller.ts
deleted file mode 100644
index 6e23c70..0000000
--- a/src/outputs/outputs.controller.ts
+++ /dev/null
@@ -1,57 +0,0 @@
-import {
- Controller,
- Delete,
- Get,
- OnModuleInit,
- Param,
- Post,
- Put,
-} from '@nestjs/common';
-import {
- Client,
- ClientGrpc,
- MessagePattern,
- Payload,
-} from '@nestjs/microservices';
-import { OutputsService } from './outputs.service';
-import { CreateOutputDto } from './dto/create-output.dto';
-import { UpdateOutputDto } from './dto/update-output.dto';
-import { ApiTags } from '@nestjs/swagger';
-import { GrpcClientConfiguration } from './config/grpc-client';
-
-@Controller('output')
-export class OutputsController implements OnModuleInit {
- @Client(GrpcClientConfiguration)
- private outputServiceClient: ClientGrpc;
-
- private outputService: OutputsService;
-
- onModuleInit() {
- this.outputService =
- this.outputServiceClient.getService('OutputService');
- }
- @Post()
- create(@Payload() createOutputDto: CreateOutputDto) {
- return this.outputService.create(createOutputDto);
- }
-
- @Get()
- list() {
- return this.outputService.list();
- }
-
- @Get(':id')
- show(@Param() id: string) {
- return this.outputService.show(id);
- }
-
- @Put(':id')
- update(@Param() id: string, @Payload() updateOutputDto: UpdateOutputDto) {
- return this.outputService.update(id, updateOutputDto);
- }
-
- @Delete(':id')
- remove(@Param() id: string) {
- return this.outputService.remove(id);
- }
-}
diff --git a/src/outputs/outputs.module.ts b/src/outputs/outputs.module.ts
deleted file mode 100644
index c907f54..0000000
--- a/src/outputs/outputs.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { OutputsService } from './outputs.service';
-import { OutputsController } from './outputs.controller';
-
-@Module({
- controllers: [OutputsController],
- providers: [OutputsService],
-})
-export class OutputsModule {}
diff --git a/src/outputs/outputs.service.spec.ts b/src/outputs/outputs.service.spec.ts
deleted file mode 100644
index d0ce19e..0000000
--- a/src/outputs/outputs.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { OutputsService } from './outputs.service';
-
-describe('OutputsService', () => {
- let service: OutputsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [OutputsService],
- }).compile();
-
- service = module.get(OutputsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/outputs/outputs.service.ts b/src/outputs/outputs.service.ts
deleted file mode 100644
index d39a029..0000000
--- a/src/outputs/outputs.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateOutputDto } from './dto/create-output.dto';
-import { UpdateOutputDto } from './dto/update-output.dto';
-
-@Injectable()
-export class OutputsService {
- create(createOutputDto: CreateOutputDto) {
- return 'This action adds a new output';
- }
-
- list() {
- return `This action returns all outputs`;
- }
-
- show(id: string) {
- return `This action returns a #${id} output`;
- }
-
- update(id: string, updateOutputDto: UpdateOutputDto) {
- return `This action updates a #${id} output`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} output`;
- }
-}
diff --git a/src/outputs/proto/output.proto b/src/outputs/proto/output.proto
deleted file mode 100644
index eadb489..0000000
--- a/src/outputs/proto/output.proto
+++ /dev/null
@@ -1,48 +0,0 @@
-syntax = "proto3";
-
-package output;
-
-import "google/protobuf/timestamp.proto";
-
-
-service OutputService{
- rpc Create(CreateOutputRequest) returns (Output) {}
- rpc Show(IdRequest) returns (Output) {}
- rpc List(Empty) returns (ListResponse){}
- rpc Update(UpdateOutputRequest) returns (Output){}
- rpc Remove(IdRequest) returns (Empty){}
-}
-
-
-message Empty {}
-
-message IdRequest{
- string id = 1;
-}
-
-message Output {
- string id = 1;
- string name = 2;
- string plugin = 3;
- string values = 4;
- string operation = 5;
-}
-
-message CreateOutputRequest {
- string name = 1;
- string plugin = 2;
- string values = 3;
- string operation = 4;
-}
-
-message UpdateOutputRequest{
- string id = 1;
- string name = 3;
- string plugin = 4;
- string values = 5;
- string operation = 6;
-}
-
-message ListResponse {
- repeated Output outputs = 1;
-}
diff --git a/src/pipelines/config/grpc-client.ts b/src/pipelines/config/grpc-client.ts
deleted file mode 100644
index af87bbe..0000000
--- a/src/pipelines/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50054`,
- package: 'pipeline',
- protoPath: join(__dirname, '..', 'proto', 'pipeline.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/pipelines/dto/create-pipeline.dto.ts b/src/pipelines/dto/create-pipeline.dto.ts
deleted file mode 100644
index cb543d8..0000000
--- a/src/pipelines/dto/create-pipeline.dto.ts
+++ /dev/null
@@ -1,12 +0,0 @@
-import { InputGrpcClient } from "src/inputs/entities/input-grcp-client.entity";
-import { Output } from "src/outputs/entities/output.entity";
-import { Transformation } from "src/transformations/entities/transformation.entity";
-
-export class CreatePipelineDto {
- input:InputGrpcClient;
- output:Output;
- transformations:Transformation;
- tags:string[];
- name:string;
- description:string;
-}
diff --git a/src/pipelines/dto/update-pipeline.dto.ts b/src/pipelines/dto/update-pipeline.dto.ts
deleted file mode 100644
index b1848b4..0000000
--- a/src/pipelines/dto/update-pipeline.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreatePipelineDto } from './create-pipeline.dto';
-
-export class UpdatePipelineDto extends PartialType(CreatePipelineDto) {
-
-}
diff --git a/src/pipelines/entities/pipeline.entity.ts b/src/pipelines/entities/pipeline.entity.ts
deleted file mode 100644
index 2e4eafb..0000000
--- a/src/pipelines/entities/pipeline.entity.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-import { InputGrpcClient } from "src/inputs/entities/input-grcp-client.entity";
-import { Output } from "src/outputs/entities/output.entity";
-import { Transformation } from "src/transformations/entities/transformation.entity";
-
-export class Pipeline {
- id:string;
- input:InputGrpcClient;
- output:Output;
- transformations:Transformation;
- tags:string[];
- name:string;
- description:string;
- status:string;
-}
diff --git a/src/pipelines/pipelines.controller.spec.ts b/src/pipelines/pipelines.controller.spec.ts
deleted file mode 100644
index 968b6b8..0000000
--- a/src/pipelines/pipelines.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { PipelinesController } from './pipelines.controller';
-import { PipelinesService } from './pipelines.service';
-
-describe('PipelinesController', () => {
- let controller: PipelinesController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [PipelinesController],
- providers: [PipelinesService],
- }).compile();
-
- controller = module.get(PipelinesController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/pipelines/pipelines.controller.ts b/src/pipelines/pipelines.controller.ts
deleted file mode 100644
index 681c293..0000000
--- a/src/pipelines/pipelines.controller.ts
+++ /dev/null
@@ -1,70 +0,0 @@
-import {
- Controller,
- Delete,
- Get,
- OnModuleInit,
- Param,
- Post,
- Put,
-} from '@nestjs/common';
-import {
- Client,
- ClientGrpc,
- MessagePattern,
- Payload,
-} from '@nestjs/microservices';
-import { PipelinesService } from './pipelines.service';
-import { CreatePipelineDto } from './dto/create-pipeline.dto';
-import { UpdatePipelineDto } from './dto/update-pipeline.dto';
-import { GrpcClientConfiguration } from './config/grpc-client';
-
-@Controller('pipeline')
-
-export class PipelinesController implements OnModuleInit {
-
- @Client(GrpcClientConfiguration)
- private pipelineServiceClient: ClientGrpc;
-
- private pipelineService: PipelinesService;
-
- onModuleInit() {
- this.pipelineService =
- this.pipelineServiceClient.getService(
- 'PipelineService',
- );
- }
-
- @Post()
- create(@Payload() createPipelineDto: CreatePipelineDto) {
- return this.pipelineService.create(createPipelineDto);
- }
-
- @Get()
- list() {
- return this.pipelineService.list();
- }
-
- @Get(':id')
- show(@Param() id: string) {
- return this.pipelineService.show(id);
- }
-
- @Put(':id')
- update(@Param() id: string, @Payload() updatePipelineDto: UpdatePipelineDto) {
- return this.pipelineService.update(id, updatePipelineDto);
- }
-
- @Delete()
- remove(@Param() id: string) {
- return this.pipelineService.remove(id);
- }
-
- @Post()
- getPipelineLogsMessages(@Param() id: string, @Payload() details: string) {
- return this.pipelineService.getPipelineLogsMessages(id, details);
- }
-
- getPipelineStatus(id: string) {
- return this.pipelineService.getPipelineStatus(id);
- }
-}
diff --git a/src/pipelines/pipelines.module.ts b/src/pipelines/pipelines.module.ts
deleted file mode 100644
index 2eb2334..0000000
--- a/src/pipelines/pipelines.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { PipelinesService } from './pipelines.service';
-import { PipelinesController } from './pipelines.controller';
-
-@Module({
- controllers: [PipelinesController],
- providers: [PipelinesService],
-})
-export class PipelinesModule {}
diff --git a/src/pipelines/pipelines.service.spec.ts b/src/pipelines/pipelines.service.spec.ts
deleted file mode 100644
index e7a30b6..0000000
--- a/src/pipelines/pipelines.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { PipelinesService } from './pipelines.service';
-
-describe('PipelinesService', () => {
- let service: PipelinesService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [PipelinesService],
- }).compile();
-
- service = module.get(PipelinesService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/pipelines/pipelines.service.ts b/src/pipelines/pipelines.service.ts
deleted file mode 100644
index ed5aaf8..0000000
--- a/src/pipelines/pipelines.service.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreatePipelineDto } from './dto/create-pipeline.dto';
-import { UpdatePipelineDto } from './dto/update-pipeline.dto';
-
-@Injectable()
-export class PipelinesService {
- create(createPipelineDto: CreatePipelineDto) {
- return 'This action adds a new pipeline';
- }
-
- list() {
- return `This action returns all pipelines`;
- }
-
- show(id: string) {
- return `This action returns a #${id} pipeline`;
- }
-
- update(id: string, updatePipelineDto: UpdatePipelineDto) {
- return `This action updates a #${id} pipeline`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} pipeline`;
- }
-
- getPipelineLogsMessages(id: string, details: string) {
- return `This action perfoms a getLogMessages on #${id} pipeline`;
- }
-
- getPipelineStatus(id: string) {
- return `This action performs a getStatus on #${id} pipeline`;
- }
-}
diff --git a/src/pipelines/proto/pipeline.proto b/src/pipelines/proto/pipeline.proto
deleted file mode 100644
index 9e187d7..0000000
--- a/src/pipelines/proto/pipeline.proto
+++ /dev/null
@@ -1,97 +0,0 @@
-syntax = "proto3";
-
-package pipeline;
-
-import "google/protobuf/timestamp.proto";
-
-service PipelineService{
- rpc Create(CreatePipelineRequest) returns (Pipeline) {}
- rpc Show(IdRequest) returns (Pipeline) {}
- rpc List(Empty) returns (ListResponse){}
- rpc Update(UpdatePipelineRequest) returns (Pipeline){}
- rpc Remove(IdRequest) returns (Empty){}
- rpc getPipelineLogsMessages(getPipelineLogsMessagesRequest) returns (getPipelineLogsMessagesResponse){}
- rpc getPipelineStatus(IdRequest) returns (getPipelineStatusResponse){}
-}
-
-
-message Empty {}
-
-message IdRequest{
- string id = 1;
-}
-
-message Transformation {
- string id = 1;
- string inputSource = 2;
- string table = 3;
- string type = 4;
- string params = 5;
-}
-
-message Input {
- string id = 1;
- string cronFormated = 2;
- string name = 3;
- string plugin = 4;
- string values = 5;
- string operation = 6;
-}
-
-message Output {
- string id = 1;
- string name = 2;
- string plugin = 3;
- string values = 4;
- string operation = 5;
-}
-
-message Pipeline {
- string id = 1;
- Input input = 2;
- Output output = 3;
- Transformation transformations = 4;
- repeated string tags = 5;
- string name = 6;
- string description = 7;
- string status = 8;
-}
-
-message CreatePipelineRequest {
- Input input = 1;
- Output output = 2;
- Transformation transformations = 3;
- repeated string tags = 4;
- string name = 5;
- string description = 6;
-}
-
-message UpdatePipelineRequest{
- string id = 1;
- repeated string tags = 2;
- string name = 3;
- string description = 4;
- string status = 5;
-}
-
-message ListResponse {
- repeated Pipeline pipelines = 1;
-}
-
-message getPipelineLogsMessagesRequest{
- string id = 1;
- string details = 2;
-}
-
-message getPipelineLogsMessagesResponseItem{
- string date = 1;
- string log = 2;
-}
-
-message getPipelineLogsMessagesResponse{
- repeated getPipelineLogsMessagesResponseItem pipelineLogs = 1;
-}
-
-message getPipelineStatusResponse{
- string status = 1;
-}
diff --git a/src/rest/rest-enrichments/dto/create-rest-enrichment.dto.ts b/src/rest/rest-enrichments/dto/create-rest-enrichment.dto.ts
deleted file mode 100644
index 0821f28..0000000
--- a/src/rest/rest-enrichments/dto/create-rest-enrichment.dto.ts
+++ /dev/null
@@ -1,6 +0,0 @@
-export class CreateRestEnrichmentDto {
-
- type:string;
-
- columns
-}
diff --git a/src/rest/rest-enrichments/dto/update-rest-enrichment.dto.ts b/src/rest/rest-enrichments/dto/update-rest-enrichment.dto.ts
deleted file mode 100644
index b3a2c60..0000000
--- a/src/rest/rest-enrichments/dto/update-rest-enrichment.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestEnrichmentDto } from './create-rest-enrichment.dto';
-
-export class UpdateRestEnrichmentDto extends PartialType(CreateRestEnrichmentDto) {}
diff --git a/src/rest/rest-enrichments/entities/rest-enrichment.entity.ts b/src/rest/rest-enrichments/entities/rest-enrichment.entity.ts
deleted file mode 100644
index 3595d46..0000000
--- a/src/rest/rest-enrichments/entities/rest-enrichment.entity.ts
+++ /dev/null
@@ -1,7 +0,0 @@
-export class RestEnrichment {
- id:string;
-
- type:string;
-
- columns:string[]
-}
diff --git a/src/rest/rest-enrichments/rest-enrichments.controller.spec.ts b/src/rest/rest-enrichments/rest-enrichments.controller.spec.ts
deleted file mode 100644
index e4c8579..0000000
--- a/src/rest/rest-enrichments/rest-enrichments.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestEnrichmentsController } from './rest-enrichments.controller';
-import { RestEnrichmentsService } from './rest-enrichments.service';
-
-describe('RestEnrichmentsController', () => {
- let controller: RestEnrichmentsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestEnrichmentsController],
- providers: [RestEnrichmentsService],
- }).compile();
-
- controller = module.get(RestEnrichmentsController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-enrichments/rest-enrichments.controller.ts b/src/rest/rest-enrichments/rest-enrichments.controller.ts
deleted file mode 100644
index 5a84ad2..0000000
--- a/src/rest/rest-enrichments/rest-enrichments.controller.ts
+++ /dev/null
@@ -1,92 +0,0 @@
-import { Controller, Get, Post, Body, Patch, Param, Delete, Put, Headers} from '@nestjs/common';
-import { RestEnrichmentsService } from './rest-enrichments.service';
-import { CreateRestEnrichmentDto } from './dto/create-rest-enrichment.dto';
-import { UpdateRestEnrichmentDto } from './dto/update-rest-enrichment.dto';
-import axios from 'axios';
-import { ApiTags } from '@nestjs/swagger';
-
-@ApiTags('Enrichments')
-@Controller('enrichment')
-export class RestEnrichmentsController {
- constructor(private readonly restEnrichmentsService: RestEnrichmentsService) {}
-
- @Post()
- async create(@Body() body: CreateRestEnrichmentDto,@Headers() headers) {
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/enrichment`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get()
- async list(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/enrichment`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get(':id')
- async show(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/enrichment/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Put(':id')
- async update(@Param('id') id: string,@Headers() headers, @Body() body: UpdateRestEnrichmentDto) {
-
- const connectionResponse = await axios.put(
- `${process.env.DEV_URL}/enrichment/${id}`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Delete(':id')
- async remove(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.delete(
- `${process.env.DEV_URL}/enrichment/${id}`,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-}
diff --git a/src/rest/rest-enrichments/rest-enrichments.module.ts b/src/rest/rest-enrichments/rest-enrichments.module.ts
deleted file mode 100644
index 54c9912..0000000
--- a/src/rest/rest-enrichments/rest-enrichments.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestEnrichmentsService } from './rest-enrichments.service';
-import { RestEnrichmentsController } from './rest-enrichments.controller';
-
-@Module({
- controllers: [RestEnrichmentsController],
- providers: [RestEnrichmentsService]
-})
-export class RestEnrichmentsModule {}
diff --git a/src/rest/rest-enrichments/rest-enrichments.service.spec.ts b/src/rest/rest-enrichments/rest-enrichments.service.spec.ts
deleted file mode 100644
index 8edbc0d..0000000
--- a/src/rest/rest-enrichments/rest-enrichments.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestEnrichmentsService } from './rest-enrichments.service';
-
-describe('RestEnrichmentsService', () => {
- let service: RestEnrichmentsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestEnrichmentsService],
- }).compile();
-
- service = module.get(RestEnrichmentsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-enrichments/rest-enrichments.service.ts b/src/rest/rest-enrichments/rest-enrichments.service.ts
deleted file mode 100644
index 03efa72..0000000
--- a/src/rest/rest-enrichments/rest-enrichments.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestEnrichmentDto } from './dto/create-rest-enrichment.dto';
-import { UpdateRestEnrichmentDto } from './dto/update-rest-enrichment.dto';
-
-@Injectable()
-export class RestEnrichmentsService {
- create(createRestEnrichmentDto: CreateRestEnrichmentDto) {
- return 'This action adds a new restEnrichment';
- }
-
- findAll() {
- return `This action returns all restEnrichments`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restEnrichment`;
- }
-
- update(id: number, updateRestEnrichmentDto: UpdateRestEnrichmentDto) {
- return `This action updates a #${id} restEnrichment`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restEnrichment`;
- }
-}
diff --git a/src/rest/rest-factory/dto/create-rest-factory.dto.ts b/src/rest/rest-factory/dto/create-rest-factory.dto.ts
deleted file mode 100644
index 905b39e..0000000
--- a/src/rest/rest-factory/dto/create-rest-factory.dto.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class CreateRestFactoryDto {}
diff --git a/src/rest/rest-factory/dto/update-rest-factory.dto.ts b/src/rest/rest-factory/dto/update-rest-factory.dto.ts
deleted file mode 100644
index a682c19..0000000
--- a/src/rest/rest-factory/dto/update-rest-factory.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestFactoryDto } from './create-rest-factory.dto';
-
-export class UpdateRestFactoryDto extends PartialType(CreateRestFactoryDto) {}
diff --git a/src/rest/rest-factory/entities/rest-factory.entity.ts b/src/rest/rest-factory/entities/rest-factory.entity.ts
deleted file mode 100644
index 4daced3..0000000
--- a/src/rest/rest-factory/entities/rest-factory.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class RestFactory {}
diff --git a/src/rest/rest-factory/rest-factory.controller.spec.ts b/src/rest/rest-factory/rest-factory.controller.spec.ts
deleted file mode 100644
index 5c8d7e2..0000000
--- a/src/rest/rest-factory/rest-factory.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestFactoryController } from './rest-factory.controller';
-import { RestFactoryService } from './rest-factory.service';
-
-describe('RestFactoryController', () => {
- let controller: RestFactoryController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestFactoryController],
- providers: [RestFactoryService],
- }).compile();
-
- controller = module.get(RestFactoryController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-factory/rest-factory.controller.ts b/src/rest/rest-factory/rest-factory.controller.ts
deleted file mode 100644
index e740b36..0000000
--- a/src/rest/rest-factory/rest-factory.controller.ts
+++ /dev/null
@@ -1,60 +0,0 @@
-import { Controller, Get, Param, Headers } from '@nestjs/common';
-import { RestFactoryService } from './rest-factory.service';
-import axios from 'axios';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-
-@ApiTags('Dag Factory')
-@ApiBearerAuth()
-@Controller('factory')
-export class RestFactoryController {
- constructor(private readonly restFactoryService: RestFactoryService) {}
-
-
- @Get('/start')
- async startDagFactory(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/factory/start`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
-
- @Get('/pipeline_params')
- async sendJSONSettingsToDagFactory(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/factory/pipeline_params`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get('/start/:pipelineId')
- async startDag(@Param('pipelineId') pipelineId:string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/factory/start/${pipelineId}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
-
-}
diff --git a/src/rest/rest-factory/rest-factory.module.ts b/src/rest/rest-factory/rest-factory.module.ts
deleted file mode 100644
index 58d778f..0000000
--- a/src/rest/rest-factory/rest-factory.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestFactoryService } from './rest-factory.service';
-import { RestFactoryController } from './rest-factory.controller';
-
-@Module({
- controllers: [RestFactoryController],
- providers: [RestFactoryService]
-})
-export class RestFactoryModule {}
diff --git a/src/rest/rest-factory/rest-factory.service.spec.ts b/src/rest/rest-factory/rest-factory.service.spec.ts
deleted file mode 100644
index 493fa9e..0000000
--- a/src/rest/rest-factory/rest-factory.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestFactoryService } from './rest-factory.service';
-
-describe('RestFactoryService', () => {
- let service: RestFactoryService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestFactoryService],
- }).compile();
-
- service = module.get(RestFactoryService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-factory/rest-factory.service.ts b/src/rest/rest-factory/rest-factory.service.ts
deleted file mode 100644
index 93104df..0000000
--- a/src/rest/rest-factory/rest-factory.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestFactoryDto } from './dto/create-rest-factory.dto';
-import { UpdateRestFactoryDto } from './dto/update-rest-factory.dto';
-
-@Injectable()
-export class RestFactoryService {
- create(createRestFactoryDto: CreateRestFactoryDto) {
- return 'This action adds a new restFactory';
- }
-
- findAll() {
- return `This action returns all restFactory`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restFactory`;
- }
-
- update(id: number, updateRestFactoryDto: UpdateRestFactoryDto) {
- return `This action updates a #${id} restFactory`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restFactory`;
- }
-}
diff --git a/src/rest/rest-inputs/dto/HTTPInputValues.dto.ts b/src/rest/rest-inputs/dto/HTTPInputValues.dto.ts
deleted file mode 100644
index f73642e..0000000
--- a/src/rest/rest-inputs/dto/HTTPInputValues.dto.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class HTTPInputValues{
-
- @ApiProperty({
- description:"Choosen url",
- example:"http://testroute/dadosfera/inputs/values"
- })
- urls:string;
-
- @ApiProperty({
- description:"Schedule name",
- example:"Test_Schedule"
- })
- schedule:string
-}
diff --git a/src/rest/rest-inputs/dto/JDBCInputValues.dto.ts b/src/rest/rest-inputs/dto/JDBCInputValues.dto.ts
deleted file mode 100644
index c7bad27..0000000
--- a/src/rest/rest-inputs/dto/JDBCInputValues.dto.ts
+++ /dev/null
@@ -1,53 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class JDBCInputvalues{
-
- @ApiProperty({
- description:"JDBC user",
- example:"airflow"
- })
- jdbc_user: string;
-
- @ApiProperty({
- description:"JDBC password",
- example:"password123"
- })
- jdbc_password: string;
-
- @ApiProperty({
- description:"Database",
- example:"airflow"
- })
- database: string;
-
- @ApiProperty({
- description:"Connection endpoint",
- example:"dadosfera-postgres-db.test123.us-east"
- })
- endpoint: string;
-
- @ApiProperty({
- description:"Schema name",
- example:"cadastros"
- })
- schema?:string;
-
- @ApiProperty({
- description:"Tables names",
- example:["pessoas", "clients"]
- })
- table: string[];
-
- @ApiProperty({
- description:"Port",
- example:"5432"
- })
- port: string;
-
- @ApiProperty({
- description:"Engine name",
- example:"postgres"
- })
- engine: string;
-}
diff --git a/src/rest/rest-inputs/dto/create-rest-input.dto.ts b/src/rest/rest-inputs/dto/create-rest-input.dto.ts
deleted file mode 100644
index 84ce3a3..0000000
--- a/src/rest/rest-inputs/dto/create-rest-input.dto.ts
+++ /dev/null
@@ -1,64 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-import { CronDTO } from "./cron.dto";
-import { HTTPInputValues } from "./HTTPInputValues.dto";
-import { JDBCInputvalues } from "./JDBCInputValues.dto";
-import { S3InputValues } from "./s3InputValues.dto";
-import { SalesforceInputValuesDTO } from "./salesforceInputValues.dto";
-
-export class CreateRestInputDto {
-
- @ApiProperty({
- description:"Input CRON",
- example:{
- hours: ["3", "7"],
- hour_interval: true,
- hour_resourse: true,
- hour_resourse_value: 3,
- month_day: ["3"],
- month_day_interval: true,
- month_day_resourse: false,
- month_day_resourse_value: null,
- month: ["3"],
- month_interval: false,
- month_resourse: false,
- month_resourse_value: null,
- week_days: [],
- week_days_interval: false,
- week_days_resourse: false,
- week_days_resourse_value: null
- }
- })
- cron:CronDTO;
-
- @ApiProperty({
- description:"Name of the input",
- example:"Test_Input"
- })
- name:string;
-
- @ApiProperty({
- description:"Plugin",
- example:"s3"
- })
- plugin:string;
-
- @ApiProperty({
- description:"Values for choosen input",
- example:{
- jdbc_user: "user123",
- jdbc_password: "password123",
- database: "default_database",
- endpoint: "dadosfera-postgres-db.test123.us-east-1.rds.amazonaws.com",
- table: "test_table",
- port: "5432",
- engine: "postgresql"
- }
- })
- values: SalesforceInputValuesDTO|HTTPInputValues|S3InputValues|JDBCInputvalues;
-
- @ApiProperty({
- description:"Operation name",
- example:"input"
- })
- operation:string;
-}
diff --git a/src/rest/rest-inputs/dto/cron.dto.ts b/src/rest/rest-inputs/dto/cron.dto.ts
deleted file mode 100644
index 9220775..0000000
--- a/src/rest/rest-inputs/dto/cron.dto.ts
+++ /dev/null
@@ -1,102 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class CronDTO{
-
- @ApiProperty({
- description:"Hours to the cron",
- example:["3","7"]
- })
- hours: string[];
-
- @ApiProperty({
- description:"Boolean for hour interval",
- example:true
- })
- hour_interval: boolean;
-
- @ApiProperty({
- description:"Boolean for hour resourse",
- example:true
- })
- hour_resourse: boolean;
-
- @ApiProperty({
- description:"Value for hour resourse",
- example:3
- })
- hour_resourse_value: number;
-
- @ApiProperty({
- description:"Month day to the cron",
- example:["3"]
- })
- month_day: string[];
-
- @ApiProperty({
- description:"Boolean for month day interval",
- example:true
- })
- month_day_interval: boolean;
-
- @ApiProperty({
- description:"Boolean for month day resourse",
- example:false
- })
- month_day_resourse: boolean;
-
- @ApiProperty({
- description:"Value for month day resourse",
- example:null
- })
- month_day_resourse_value:number|null;
-
- @ApiProperty({
- description:"Month to the cron",
- example:["3"]
- })
- month: string[];
-
- @ApiProperty({
- description:"Boolean from month interval",
- example:false
- })
- month_interval: boolean;
-
- @ApiProperty({
- description:"Boolean from month resourse",
- example:false
- })
- month_resourse: boolean;
-
- @ApiProperty({
- description:"Value to month resourse",
- example:null
- })
- month_resourse_value:number|null;
-
- @ApiProperty({
- description:"Week days to the cron",
- example:[]
- })
- week_days: string[];
-
- @ApiProperty({
- description:"Boolean for the week days",
- example:false
- })
- week_days_interval: boolean;
-
- @ApiProperty({
- description:"Boolean for week day resourse",
- example:false
- })
- week_days_resourse: boolean;
-
- @ApiProperty({
- description:"Hours to the cron",
- example:null
- })
- week_days_resourse_value:number|null
-
-}
diff --git a/src/rest/rest-inputs/dto/s3InputValues.dto.ts b/src/rest/rest-inputs/dto/s3InputValues.dto.ts
deleted file mode 100644
index 93d371a..0000000
--- a/src/rest/rest-inputs/dto/s3InputValues.dto.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class S3InputValues{
-
- @ApiProperty({
- description:"file to extract path",
- example:"s3_connector/testfile.csv"
- })
- file_to_extract: string;
-
- @ApiProperty({
- description:"target bucket path",
- example:"dadosfera-test"
- })
- target_bucket?: string;
-
- @ApiProperty({
- description:"client bucket path",
- example:"dadosfera-test"
- })
- client_bucket: string;
-
- @ApiProperty({
- description:"Format to the file",
- example:"csv"
- })
- format_file: string;
-
- @ApiProperty({
- description:"Clients AWS Access Key Id",
- example:"AKIBN5B19D3NGZI"
- })
- client_aws_access_key_id: string;
-
- @ApiProperty({
- description:"Clients AWS Secret Access Key Id",
- example:"ct5R1EjrVC78bvaJ636gG90O5NqOrOUoq4Ri"
- })
- client_aws_secret_access_key : string;
-
- @ApiProperty({
- description:"file params format",
- example:{sep: "," , header: "true"}
- })
- format_file_params?: {
- sep: string,
- header: string
- }
-}
diff --git a/src/rest/rest-inputs/dto/salesforceInputValues.dto.ts b/src/rest/rest-inputs/dto/salesforceInputValues.dto.ts
deleted file mode 100644
index 6f6998e..0000000
--- a/src/rest/rest-inputs/dto/salesforceInputValues.dto.ts
+++ /dev/null
@@ -1,27 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class SalesforceInputValuesDTO{
-
- @ApiProperty({
- description:"Salesforce username",
- example:"dadosfera@devs.com"
- })
- username_salesforce: string;
-
- @ApiProperty({
- description:"Salesforce password",
- example:"Salesforce@test123"
- })password_salesforce: string;
-
- @ApiProperty({
- description:"Salesforce Security Token",
- example:"A67Tdg7qHUvhZDOFjWwtPMjmQ"
- })security_token_salesforce: string;
-
- @ApiProperty({
- description:"Salesforce Query",
- example:"SELECT * FROM Users"
- })query_salesforce: string;
-
-}
diff --git a/src/rest/rest-inputs/dto/testConnection.dto.ts b/src/rest/rest-inputs/dto/testConnection.dto.ts
deleted file mode 100644
index 0e6d73e..0000000
--- a/src/rest/rest-inputs/dto/testConnection.dto.ts
+++ /dev/null
@@ -1,34 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-import { HTTPInputValues } from "./HTTPInputValues.dto";
-import { JDBCInputvalues } from "./JDBCInputValues.dto";
-import { S3InputValues } from "./s3InputValues.dto";
-import { SalesforceInputValuesDTO } from "./salesforceInputValues.dto";
-
-
-export class testConnectionDTO{
-
- @ApiProperty({
- description:"Input Plugin Name",
- example:"mysql"
- })
- plugin:string;
-
-
- @ApiProperty({
- description:"Plugin name",
- example:{
- plugin: "mysql",
- values: {
- jdbc_user: "test",
- jdbc_password: "test1234",
- database: "users",
- endpoint: "dadosfera.test123.us-east-1.rds.amazonaws.com",
- schema: "user",
- port: "5432",
- engine: "mysql"
- }
- }
- })
-
- values:HTTPInputValues|SalesforceInputValuesDTO|S3InputValues|JDBCInputvalues
-}
diff --git a/src/rest/rest-inputs/dto/update-rest-input.dto.ts b/src/rest/rest-inputs/dto/update-rest-input.dto.ts
deleted file mode 100644
index 2a198c6..0000000
--- a/src/rest/rest-inputs/dto/update-rest-input.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestInputDto } from './create-rest-input.dto';
-
-export class UpdateRestInputDto extends PartialType(CreateRestInputDto) {}
diff --git a/src/rest/rest-inputs/entities/rest-input.entity.ts b/src/rest/rest-inputs/entities/rest-input.entity.ts
deleted file mode 100644
index 2525e65..0000000
--- a/src/rest/rest-inputs/entities/rest-input.entity.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export class RestInput {
-
- id:string;
-
- cron:string;
-
- name:string;
-
- plugin:string;
-
- values:string;
-
- operation:string;
-}
diff --git a/src/rest/rest-inputs/rest-inputs.controller.spec.ts b/src/rest/rest-inputs/rest-inputs.controller.spec.ts
deleted file mode 100644
index 208e5ac..0000000
--- a/src/rest/rest-inputs/rest-inputs.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestInputsController } from './rest-inputs.controller';
-import { RestInputsService } from './rest-inputs.service';
-
-describe('RestInputsController', () => {
- let controller: RestInputsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestInputsController],
- providers: [RestInputsService],
- }).compile();
-
- controller = module.get(RestInputsController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-inputs/rest-inputs.controller.ts b/src/rest/rest-inputs/rest-inputs.controller.ts
deleted file mode 100644
index 9439ca6..0000000
--- a/src/rest/rest-inputs/rest-inputs.controller.ts
+++ /dev/null
@@ -1,123 +0,0 @@
-import axios from 'axios';
-require("dotenv").config();
-import { RestInputsService } from './rest-inputs.service';
-import { Controller, Get, Post, Body, Patch, Param, Delete, Put, Headers } from '@nestjs/common';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-import { CreateRestInputDto } from './dto/create-rest-input.dto';
-import { UpdateRestInputDto } from './dto/update-rest-input.dto';
-import { testConnectionDTO } from './dto/testConnection.dto';
-
-
-@ApiTags('Inputs')
-@ApiBearerAuth()
-@Controller('input')
-export class RestInputsController {
- constructor(private readonly restInputsService: RestInputsService) {}
-
-
- @Post('/test-connection/')
- async testConnection(@Body() body:testConnectionDTO,@Headers() headers){
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/input/test-connection`,
- body,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Post()
- async create(@Body() body: CreateRestInputDto,@Headers() headers){
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/input`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Get()
- async list(@Headers() headers){
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/input`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Get('/:id')
- async show(@Param() id: string,@Headers() headers){
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/input/:${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Put(':id')
- async update(
- @Body() body: UpdateRestInputDto,
- @Param() id: string,
- @Headers() headers
- ){
-
- const connectionResponse = await axios.put(
- `${process.env.DEV_URL}/input/:${id}`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Delete(':id')
- async delete(@Param() id: string,@Headers() headers){
-
- const connectionResponse = await axios.delete(
- `${process.env.DEV_URL}/input/:${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
-}
diff --git a/src/rest/rest-inputs/rest-inputs.module.ts b/src/rest/rest-inputs/rest-inputs.module.ts
deleted file mode 100644
index fb91425..0000000
--- a/src/rest/rest-inputs/rest-inputs.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestInputsService } from './rest-inputs.service';
-import { RestInputsController } from './rest-inputs.controller';
-
-@Module({
- controllers: [RestInputsController],
- providers: [RestInputsService]
-})
-export class RestInputsModule {}
diff --git a/src/rest/rest-inputs/rest-inputs.service.spec.ts b/src/rest/rest-inputs/rest-inputs.service.spec.ts
deleted file mode 100644
index 31becf5..0000000
--- a/src/rest/rest-inputs/rest-inputs.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestInputsService } from './rest-inputs.service';
-
-describe('RestInputsService', () => {
- let service: RestInputsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestInputsService],
- }).compile();
-
- service = module.get(RestInputsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-inputs/rest-inputs.service.ts b/src/rest/rest-inputs/rest-inputs.service.ts
deleted file mode 100644
index 4dc8dab..0000000
--- a/src/rest/rest-inputs/rest-inputs.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestInputDto } from './dto/create-rest-input.dto';
-import { UpdateRestInputDto } from './dto/update-rest-input.dto';
-
-@Injectable()
-export class RestInputsService {
- create(createRestInputDto: CreateRestInputDto) {
- return 'This action adds a new restInput';
- }
-
- findAll() {
- return `This action returns all restInputs`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restInput`;
- }
-
- update(id: number, updateRestInputDto: UpdateRestInputDto) {
- return `This action updates a #${id} restInput`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restInput`;
- }
-}
diff --git a/src/rest/rest-outputs/dto/create-rest-output.dto.ts b/src/rest/rest-outputs/dto/create-rest-output.dto.ts
deleted file mode 100644
index 9dc126e..0000000
--- a/src/rest/rest-outputs/dto/create-rest-output.dto.ts
+++ /dev/null
@@ -1,32 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-export class CreateRestOutputDto {
-
- @ApiProperty({
- description:"Output name",
- example:"Test Output"
- })
- name:string;
-
- @ApiProperty({
- description:"Plugin name",
- example:"Test Plugin"
- })
- plugin:string;
-
- @ApiProperty({
- description:"Plugin values",
- example:{
- prefix:"test"
- }
- })
- values:{
- prefix:string
- };
-
- @ApiProperty({
- description:"Operation name",
- example:"output"
- })
- operation:string;
-}
diff --git a/src/rest/rest-outputs/dto/update-rest-output.dto.ts b/src/rest/rest-outputs/dto/update-rest-output.dto.ts
deleted file mode 100644
index 902bffd..0000000
--- a/src/rest/rest-outputs/dto/update-rest-output.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestOutputDto } from './create-rest-output.dto';
-
-export class UpdateRestOutputDto extends PartialType(CreateRestOutputDto) {}
diff --git a/src/rest/rest-outputs/entities/rest-output.entity.ts b/src/rest/rest-outputs/entities/rest-output.entity.ts
deleted file mode 100644
index 7ccc372..0000000
--- a/src/rest/rest-outputs/entities/rest-output.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class RestOutput {}
diff --git a/src/rest/rest-outputs/rest-outputs.controller.spec.ts b/src/rest/rest-outputs/rest-outputs.controller.spec.ts
deleted file mode 100644
index 3640110..0000000
--- a/src/rest/rest-outputs/rest-outputs.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestOutputsController } from './rest-outputs.controller';
-import { RestOutputsService } from './rest-outputs.service';
-
-describe('RestOutputsController', () => {
- let controller: RestOutputsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestOutputsController],
- providers: [RestOutputsService],
- }).compile();
-
- controller = module.get(RestOutputsController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-outputs/rest-outputs.controller.ts b/src/rest/rest-outputs/rest-outputs.controller.ts
deleted file mode 100644
index 1de86fe..0000000
--- a/src/rest/rest-outputs/rest-outputs.controller.ts
+++ /dev/null
@@ -1,91 +0,0 @@
-import { Controller, Get, Post, Body, Headers, Param, Delete, Put } from '@nestjs/common';
-import { RestOutputsService } from './rest-outputs.service';
-import { CreateRestOutputDto } from './dto/create-rest-output.dto';
-import { UpdateRestOutputDto } from './dto/update-rest-output.dto';
-import axios from 'axios';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-
-@ApiTags('Outputs')
-@ApiBearerAuth()
-@Controller('output')
-export class RestOutputsController {
- constructor(private readonly restOutputsService: RestOutputsService) {}
-
- @Post()
- async create(@Body() body: CreateRestOutputDto,@Headers() headers) {
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/output`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get()
- async list(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/output`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get(':id')
- async show(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/output/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Put(':id')
- async update(@Param('id') id: string, @Body() body: UpdateRestOutputDto,@Headers() headers) {
-
- const connectionResponse = await axios.put(
- `${process.env.DEV_URL}/output/${id}`,
- body,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Delete(':id')
- async remove(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.delete(
- `${process.env.DEV_URL}/output/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-}
diff --git a/src/rest/rest-outputs/rest-outputs.module.ts b/src/rest/rest-outputs/rest-outputs.module.ts
deleted file mode 100644
index 18d5a1b..0000000
--- a/src/rest/rest-outputs/rest-outputs.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestOutputsService } from './rest-outputs.service';
-import { RestOutputsController } from './rest-outputs.controller';
-
-@Module({
- controllers: [RestOutputsController],
- providers: [RestOutputsService]
-})
-export class RestOutputsModule {}
diff --git a/src/rest/rest-outputs/rest-outputs.service.spec.ts b/src/rest/rest-outputs/rest-outputs.service.spec.ts
deleted file mode 100644
index 7457923..0000000
--- a/src/rest/rest-outputs/rest-outputs.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestOutputsService } from './rest-outputs.service';
-
-describe('RestOutputsService', () => {
- let service: RestOutputsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestOutputsService],
- }).compile();
-
- service = module.get(RestOutputsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-outputs/rest-outputs.service.ts b/src/rest/rest-outputs/rest-outputs.service.ts
deleted file mode 100644
index fa4f905..0000000
--- a/src/rest/rest-outputs/rest-outputs.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestOutputDto } from './dto/create-rest-output.dto';
-import { UpdateRestOutputDto } from './dto/update-rest-output.dto';
-
-@Injectable()
-export class RestOutputsService {
- create(createRestOutputDto: CreateRestOutputDto) {
- return 'This action adds a new restOutput';
- }
-
- findAll() {
- return `This action returns all restOutputs`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restOutput`;
- }
-
- update(id: number, updateRestOutputDto: UpdateRestOutputDto) {
- return `This action updates a #${id} restOutput`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restOutput`;
- }
-}
diff --git a/src/rest/rest-pipelines/dto/create-rest-pipeline.dto.ts b/src/rest/rest-pipelines/dto/create-rest-pipeline.dto.ts
deleted file mode 100644
index 7b56caa..0000000
--- a/src/rest/rest-pipelines/dto/create-rest-pipeline.dto.ts
+++ /dev/null
@@ -1,59 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-export class CreateRestPipelineDto {
-
- @ApiProperty({
- description:"Pipeline Input",
- example:{
- id:"ac8f828a-708d-4f28-a5b4-0170eaf96843"
- }
- })
- input:{
- id:string
- }
-
- @ApiProperty({
- description:"Pipeline Transformations",
- example:[
- {
- id:"b2579a1a-2874-47f6-b609-7568a2930468"
- },
- {
- id:"6bac1a1a-3037-474f-8211-c3ceb8ea04e8"
- }
- ]
- })
- transformations:[
- {
- id:string
- }
- ]
-
- @ApiProperty({
- description:"Pipeline Output",
- example:{
- id:"06f9ce35-d9c0-4f95-a49b-c09ea00b8e48"
- }
- })
- output:{
- id:string
- }
-
- @ApiProperty({
- description:"Pipeline Tags",
- example:[]
- })
- tags:string[]
-
- @ApiProperty({
- description:"Pipeline Name",
- example:"Dadosfera Pipeline"
- })
- name:string
-
- @ApiProperty({
- description:"Pipeline Description",
- example:"Example pipeline"
- })
- description:string
-}
diff --git a/src/rest/rest-pipelines/dto/update-rest-pipeline.dto.ts b/src/rest/rest-pipelines/dto/update-rest-pipeline.dto.ts
deleted file mode 100644
index 0cccbef..0000000
--- a/src/rest/rest-pipelines/dto/update-rest-pipeline.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestPipelineDto } from './create-rest-pipeline.dto';
-
-export class UpdateRestPipelineDto extends PartialType(CreateRestPipelineDto) {}
diff --git a/src/rest/rest-pipelines/entities/rest-pipeline.entity.ts b/src/rest/rest-pipelines/entities/rest-pipeline.entity.ts
deleted file mode 100644
index fc1724f..0000000
--- a/src/rest/rest-pipelines/entities/rest-pipeline.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class RestPipeline {}
diff --git a/src/rest/rest-pipelines/rest-pipelines.controller.spec.ts b/src/rest/rest-pipelines/rest-pipelines.controller.spec.ts
deleted file mode 100644
index 6471cdc..0000000
--- a/src/rest/rest-pipelines/rest-pipelines.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestPipelinesController } from './rest-pipelines.controller';
-import { RestPipelinesService } from './rest-pipelines.service';
-
-describe('RestPipelinesController', () => {
- let controller: RestPipelinesController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestPipelinesController],
- providers: [RestPipelinesService],
- }).compile();
-
- controller = module.get(RestPipelinesController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-pipelines/rest-pipelines.controller.ts b/src/rest/rest-pipelines/rest-pipelines.controller.ts
deleted file mode 100644
index bce0df0..0000000
--- a/src/rest/rest-pipelines/rest-pipelines.controller.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { Controller, Get, Post, Body, Headers, Param, Delete, Put } from '@nestjs/common';
-import { RestPipelinesService } from './rest-pipelines.service';
-import { CreateRestPipelineDto } from './dto/create-rest-pipeline.dto';
-import { UpdateRestPipelineDto } from './dto/update-rest-pipeline.dto';
-import axios from 'axios';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-
-@ApiTags('Pipelines')
-@ApiBearerAuth()
-@Controller('pipeline')
-export class RestPipelinesController {
- constructor(private readonly restPipelinesService: RestPipelinesService) {}
-
- @Post()
- async create(@Body() body: CreateRestPipelineDto,@Headers() headers) {
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/pipeline`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get()
- async list(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/pipeline`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get(':id/logs/details')
- async showLogs(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/pipeline/${id}/logs/details`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get(':id/status')
- async showStatus(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/pipeline/${id}/status`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Get(':id')
- async show(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/pipeline/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Put(':id')
- async update(@Param('id') id: string, @Headers() headers, @Body() body: UpdateRestPipelineDto) {
-
- const connectionResponse = await axios.put(
- `${process.env.DEV_URL}/pipeline/${id}`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Delete(':id')
- async remove(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.delete(
- `${process.env.DEV_URL}/pipeline/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
- return connectionResponse.data
- }
-}
diff --git a/src/rest/rest-pipelines/rest-pipelines.module.ts b/src/rest/rest-pipelines/rest-pipelines.module.ts
deleted file mode 100644
index 641517a..0000000
--- a/src/rest/rest-pipelines/rest-pipelines.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestPipelinesService } from './rest-pipelines.service';
-import { RestPipelinesController } from './rest-pipelines.controller';
-
-@Module({
- controllers: [RestPipelinesController],
- providers: [RestPipelinesService]
-})
-export class RestPipelinesModule {}
diff --git a/src/rest/rest-pipelines/rest-pipelines.service.spec.ts b/src/rest/rest-pipelines/rest-pipelines.service.spec.ts
deleted file mode 100644
index a440ebe..0000000
--- a/src/rest/rest-pipelines/rest-pipelines.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestPipelinesService } from './rest-pipelines.service';
-
-describe('RestPipelinesService', () => {
- let service: RestPipelinesService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestPipelinesService],
- }).compile();
-
- service = module.get(RestPipelinesService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-pipelines/rest-pipelines.service.ts b/src/rest/rest-pipelines/rest-pipelines.service.ts
deleted file mode 100644
index 66a831e..0000000
--- a/src/rest/rest-pipelines/rest-pipelines.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestPipelineDto } from './dto/create-rest-pipeline.dto';
-import { UpdateRestPipelineDto } from './dto/update-rest-pipeline.dto';
-
-@Injectable()
-export class RestPipelinesService {
- create(createRestPipelineDto: CreateRestPipelineDto) {
- return 'This action adds a new restPipeline';
- }
-
- findAll() {
- return `This action returns all restPipelines`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restPipeline`;
- }
-
- update(id: number, updateRestPipelineDto: UpdateRestPipelineDto) {
- return `This action updates a #${id} restPipeline`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restPipeline`;
- }
-}
diff --git a/src/rest/rest-transformations/dto/create-rest-transformation.dto.ts b/src/rest/rest-transformations/dto/create-rest-transformation.dto.ts
deleted file mode 100644
index f29a451..0000000
--- a/src/rest/rest-transformations/dto/create-rest-transformation.dto.ts
+++ /dev/null
@@ -1,52 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-export class Transformation{
- transformations:[{
- type:string;
- params:[{
- base_column:string,
- column_name:string
- }]
- }]
-}
-
-export class UpdateTransformation{
- transformations:[{
- inputSource:string;
- table:string;
- type:string;
- params:[{
- base_column:string,
- column_name:string
- }]
- }]
-}
-
-export class CreateRestTransformationDto {
-
- @ApiProperty({
- description:"Array of transformations",
- example:[
- {
- type:"hide_full_name",
- params:[
- {
- base_column:"full_name",
- column_name:"hiden_full_name"
- }
- ]
- },
- {
- type: "hide_cpf",
- params: [
- {
- base_column: "cpf",
- column_name: "cpf_hashed"
- }
- ]
- },
- ]
- })
- transformations: Transformation | UpdateTransformation;
-
-}
diff --git a/src/rest/rest-transformations/dto/update-rest-transformation.dto.ts b/src/rest/rest-transformations/dto/update-rest-transformation.dto.ts
deleted file mode 100644
index 266b6bc..0000000
--- a/src/rest/rest-transformations/dto/update-rest-transformation.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestTransformationDto } from './create-rest-transformation.dto';
-
-export class UpdateRestTransformationDto extends PartialType(CreateRestTransformationDto) {}
diff --git a/src/rest/rest-transformations/entities/rest-transformation.entity.ts b/src/rest/rest-transformations/entities/rest-transformation.entity.ts
deleted file mode 100644
index aec27d5..0000000
--- a/src/rest/rest-transformations/entities/rest-transformation.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class RestTransformation {}
diff --git a/src/rest/rest-transformations/rest-transformations.controller.spec.ts b/src/rest/rest-transformations/rest-transformations.controller.spec.ts
deleted file mode 100644
index 8c3adb2..0000000
--- a/src/rest/rest-transformations/rest-transformations.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestTransformationsController } from './rest-transformations.controller';
-import { RestTransformationsService } from './rest-transformations.service';
-
-describe('RestTransformationsController', () => {
- let controller: RestTransformationsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestTransformationsController],
- providers: [RestTransformationsService],
- }).compile();
-
- controller = module.get(RestTransformationsController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-transformations/rest-transformations.controller.ts b/src/rest/rest-transformations/rest-transformations.controller.ts
deleted file mode 100644
index edc0577..0000000
--- a/src/rest/rest-transformations/rest-transformations.controller.ts
+++ /dev/null
@@ -1,97 +0,0 @@
-import { Controller, Get, Post, Body, Headers, Param, Delete, Put } from '@nestjs/common';
-import { RestTransformationsService } from './rest-transformations.service';
-import { CreateRestTransformationDto } from './dto/create-rest-transformation.dto';
-import { UpdateRestTransformationDto } from './dto/update-rest-transformation.dto';
-import axios from 'axios';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-
-@ApiTags('Transformations')
-@ApiBearerAuth()
-@Controller('transformation')
-export class RestTransformationsController {
- constructor(private readonly restTransformationsService: RestTransformationsService) {}
-
- @Post()
- async create(@Body() body: CreateRestTransformationDto,@Headers() headers) {
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/transformation`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Get()
- async list(@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/transformation`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Get(':id')
- async show(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.get(
- `${process.env.DEV_URL}/transformation/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Put(':id')
- async update(@Param('id') id: string, @Headers() headers, @Body() body: UpdateRestTransformationDto) {
-
- const connectionResponse = await axios.put(
- `${process.env.DEV_URL}/transformation/${id}`,
- body,
- {
- headers:{
- "Authorization":headers.authorization,
- "Content-Type":"application/json"
- }
- }
- )
-
-
- return connectionResponse.data
- }
-
- @Delete(':id')
- async remove(@Param('id') id: string,@Headers() headers) {
-
- const connectionResponse = await axios.delete(
- `${process.env.DEV_URL}/transformation/${id}`,
- {
- headers:{
- "Authorization":headers.authorization
- }
- }
- )
-
-
- return connectionResponse.data
- }
-}
diff --git a/src/rest/rest-transformations/rest-transformations.module.ts b/src/rest/rest-transformations/rest-transformations.module.ts
deleted file mode 100644
index 6dbe1a5..0000000
--- a/src/rest/rest-transformations/rest-transformations.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestTransformationsService } from './rest-transformations.service';
-import { RestTransformationsController } from './rest-transformations.controller';
-
-@Module({
- controllers: [RestTransformationsController],
- providers: [RestTransformationsService]
-})
-export class RestTransformationsModule {}
diff --git a/src/rest/rest-transformations/rest-transformations.service.spec.ts b/src/rest/rest-transformations/rest-transformations.service.spec.ts
deleted file mode 100644
index d0f1a2a..0000000
--- a/src/rest/rest-transformations/rest-transformations.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestTransformationsService } from './rest-transformations.service';
-
-describe('RestTransformationsService', () => {
- let service: RestTransformationsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestTransformationsService],
- }).compile();
-
- service = module.get(RestTransformationsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-transformations/rest-transformations.service.ts b/src/rest/rest-transformations/rest-transformations.service.ts
deleted file mode 100644
index 8183baf..0000000
--- a/src/rest/rest-transformations/rest-transformations.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestTransformationDto } from './dto/create-rest-transformation.dto';
-import { UpdateRestTransformationDto } from './dto/update-rest-transformation.dto';
-
-@Injectable()
-export class RestTransformationsService {
- create(createRestTransformationDto: CreateRestTransformationDto) {
- return 'This action adds a new restTransformation';
- }
-
- findAll() {
- return `This action returns all restTransformations`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restTransformation`;
- }
-
- update(id: number, updateRestTransformationDto: UpdateRestTransformationDto) {
- return `This action updates a #${id} restTransformation`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restTransformation`;
- }
-}
diff --git a/src/rest/rest-user/dto/create-rest-user.dto.ts b/src/rest/rest-user/dto/create-rest-user.dto.ts
deleted file mode 100644
index bc5f892..0000000
--- a/src/rest/rest-user/dto/create-rest-user.dto.ts
+++ /dev/null
@@ -1,40 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-export class CreateRestUserDto {
-
- @ApiProperty({
- description:"User Email",
- example:"dev@dadosfera.ai"
- })
- email: string;
-
- @ApiProperty({
- description:"User Password",
- example:"dadospassword123"
- })
- password: string;
-
- @ApiProperty({
- description:"User Username",
- example:"dev_fera"
- })
- username: string;
-
- @ApiProperty({
- description:"User name",
- example:"Fulano da Silva"
- })
- name: string;
-
- @ApiProperty({
- description:"Customer id",
- example:"dadosfera"
- })
- customer_id: string;
-
- @ApiProperty({
- description:"User rules",
- example:"['admin']"
- })
- rules: string;
-}
diff --git a/src/rest/rest-user/dto/resendCode.dto.ts b/src/rest/rest-user/dto/resendCode.dto.ts
deleted file mode 100644
index dd00c8d..0000000
--- a/src/rest/rest-user/dto/resendCode.dto.ts
+++ /dev/null
@@ -1,10 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class ResendCodeDTO{
- @ApiProperty({
- description:"User username",
- example:"dev_fera"
- })
- username:string
-}
diff --git a/src/rest/rest-user/dto/update-rest-user.dto.ts b/src/rest/rest-user/dto/update-rest-user.dto.ts
deleted file mode 100644
index a753406..0000000
--- a/src/rest/rest-user/dto/update-rest-user.dto.ts
+++ /dev/null
@@ -1,4 +0,0 @@
-import { PartialType } from '@nestjs/swagger';
-import { CreateRestUserDto } from './create-rest-user.dto';
-
-export class UpdateRestUserDto extends PartialType(CreateRestUserDto) {}
diff --git a/src/rest/rest-user/dto/userAuth.dto.ts b/src/rest/rest-user/dto/userAuth.dto.ts
deleted file mode 100644
index d8f3b1d..0000000
--- a/src/rest/rest-user/dto/userAuth.dto.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-
-export class UserAuthDTO{
-
- @ApiProperty({
- description:"User username",
- example:"dev_fera"
- })
- username:string;
-
- @ApiProperty({
- description:"User password",
- example:"dadospassword123"
- })
- password:string;
-}
diff --git a/src/rest/rest-user/dto/userConfirmation.dto.ts b/src/rest/rest-user/dto/userConfirmation.dto.ts
deleted file mode 100644
index 8c95261..0000000
--- a/src/rest/rest-user/dto/userConfirmation.dto.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { ApiProperty } from "@nestjs/swagger";
-
-
-export class UserConfirmationDTO{
- @ApiProperty({
- description:"User username",
- example:"dev_fera"
- })
- username:string;
-
-
- @ApiProperty({
- description:"Received Confirmation Code",
- example:"315246"
- })
- confirmationCode:string;
-}
diff --git a/src/rest/rest-user/entities/rest-user.entity.ts b/src/rest/rest-user/entities/rest-user.entity.ts
deleted file mode 100644
index 5e7bb30..0000000
--- a/src/rest/rest-user/entities/rest-user.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class RestUser {}
diff --git a/src/rest/rest-user/rest-user.controller.spec.ts b/src/rest/rest-user/rest-user.controller.spec.ts
deleted file mode 100644
index 58f5be9..0000000
--- a/src/rest/rest-user/rest-user.controller.spec.ts
+++ /dev/null
@@ -1,20 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestUserController } from './rest-user.controller';
-import { RestUserService } from './rest-user.service';
-
-describe('RestUserController', () => {
- let controller: RestUserController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [RestUserController],
- providers: [RestUserService],
- }).compile();
-
- controller = module.get(RestUserController);
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/rest/rest-user/rest-user.controller.ts b/src/rest/rest-user/rest-user.controller.ts
deleted file mode 100644
index 022a690..0000000
--- a/src/rest/rest-user/rest-user.controller.ts
+++ /dev/null
@@ -1,85 +0,0 @@
-import { Controller, Get, Post, Body, Patch, Param, Delete } from '@nestjs/common';
-import { RestUserService } from './rest-user.service';
-import { CreateRestUserDto } from './dto/create-rest-user.dto';
-import { UpdateRestUserDto } from './dto/update-rest-user.dto';
-import axios from 'axios';
-import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
-import { UserAuthDTO } from './dto/userAuth.dto';
-import { UserConfirmationDTO } from './dto/userConfirmation.dto';
-import { ResendCodeDTO } from './dto/resendCode.dto';
-
-@ApiTags('Users')
-@Controller('user')
-export class RestUserController {
- constructor(private readonly restUserService: RestUserService) {}
-
- @Post('/register')
- async create(@Body() body: CreateRestUserDto) {
-
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/user/register`,
- body,
- {
- headers:{
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Post('/auth')
- async auth(@Body() body: UserAuthDTO) {
-
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/user/auth`,
- body,
- {
- headers:{
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Post('/confirm')
- async confirm(@Body() body: UserConfirmationDTO) {
-
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/user/confirm`,
- body,
- {
- headers:{
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
- @Post('/resendCode')
- async resendCode(@Body() body: ResendCodeDTO) {
-
-
- const connectionResponse = await axios.post(
- `${process.env.DEV_URL}/user/resendCode`,
- body,
- {
- headers:{
- "Content-Type":"application/json"
- }
- }
- )
-
- return connectionResponse.data
- }
-
-
-}
diff --git a/src/rest/rest-user/rest-user.module.ts b/src/rest/rest-user/rest-user.module.ts
deleted file mode 100644
index c6cf241..0000000
--- a/src/rest/rest-user/rest-user.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { RestUserService } from './rest-user.service';
-import { RestUserController } from './rest-user.controller';
-
-@Module({
- controllers: [RestUserController],
- providers: [RestUserService]
-})
-export class RestUserModule {}
diff --git a/src/rest/rest-user/rest-user.service.spec.ts b/src/rest/rest-user/rest-user.service.spec.ts
deleted file mode 100644
index fab24a9..0000000
--- a/src/rest/rest-user/rest-user.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { RestUserService } from './rest-user.service';
-
-describe('RestUserService', () => {
- let service: RestUserService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [RestUserService],
- }).compile();
-
- service = module.get(RestUserService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/rest/rest-user/rest-user.service.ts b/src/rest/rest-user/rest-user.service.ts
deleted file mode 100644
index 8f93a4a..0000000
--- a/src/rest/rest-user/rest-user.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateRestUserDto } from './dto/create-rest-user.dto';
-import { UpdateRestUserDto } from './dto/update-rest-user.dto';
-
-@Injectable()
-export class RestUserService {
- create(createRestUserDto: CreateRestUserDto) {
- return 'This action adds a new restUser';
- }
-
- findAll() {
- return `This action returns all restUser`;
- }
-
- findOne(id: number) {
- return `This action returns a #${id} restUser`;
- }
-
- update(id: number, updateRestUserDto: UpdateRestUserDto) {
- return `This action updates a #${id} restUser`;
- }
-
- remove(id: number) {
- return `This action removes a #${id} restUser`;
- }
-}
diff --git a/src/transformations/config/grpc-client.ts b/src/transformations/config/grpc-client.ts
deleted file mode 100644
index f918bed..0000000
--- a/src/transformations/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50054`,
- package: 'transformation',
- protoPath: join(__dirname, '..', 'proto', 'transformation.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/transformations/dto/create-transformation.dto.ts b/src/transformations/dto/create-transformation.dto.ts
deleted file mode 100644
index 1e2f42e..0000000
--- a/src/transformations/dto/create-transformation.dto.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-export class CreateTransformationDto {
- inputSource:string;
-
- table:string;
-
- type:string;
-
- params:string;
-}
diff --git a/src/transformations/dto/update-transformation.dto.ts b/src/transformations/dto/update-transformation.dto.ts
deleted file mode 100644
index b9fcab6..0000000
--- a/src/transformations/dto/update-transformation.dto.ts
+++ /dev/null
@@ -1,5 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreateTransformationDto } from './create-transformation.dto';
-
-export class UpdateTransformationDto extends PartialType(CreateTransformationDto) {
-}
diff --git a/src/transformations/entities/transformation.entity.ts b/src/transformations/entities/transformation.entity.ts
deleted file mode 100644
index 6f067a7..0000000
--- a/src/transformations/entities/transformation.entity.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export class Transformation {
-
- id:string;
-
- inputSource:string;
-
- table:string;
-
- type:string;
-
- params:string;
-
-
-}
diff --git a/src/transformations/proto/transformation.proto b/src/transformations/proto/transformation.proto
deleted file mode 100644
index 55f553e..0000000
--- a/src/transformations/proto/transformation.proto
+++ /dev/null
@@ -1,49 +0,0 @@
-syntax = "proto3";
-
-package transformation;
-
-
-import "google/protobuf/timestamp.proto";
-
-
-
-service TransformationService {
- rpc Create(CreateTransformationRequest) returns (Transformation) {}
- rpc Show(IdRequest) returns (Transformation) {}
- rpc List(Empty) returns (ListResponse){}
- rpc Update(UpdateTransformationRequest) returns (Transformation){}
- rpc Remove(IdRequest) returns (Empty){}
-}
-
-message Empty {}
-
-message IdRequest{
- string id = 1;
-}
-
-message UpdateTransformationRequest{
- string id = 1;
- string inputSource = 2;
- string table = 3;
- string type = 4;
- string params = 5;
-}
-
-message Transformation {
- string id = 1;
- string inputSource = 2;
- string table = 3;
- string type = 4;
- string params = 5;
-}
-
-message CreateTransformationRequest {
- string inputSource = 1;
- string table = 2;
- string type = 3;
- string params = 4;
-}
-
-message ListResponse {
- repeated Transformation transformations = 2;
-}
diff --git a/src/transformations/transformations.controller.spec.ts b/src/transformations/transformations.controller.spec.ts
deleted file mode 100644
index 77899d9..0000000
--- a/src/transformations/transformations.controller.spec.ts
+++ /dev/null
@@ -1,22 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { TransformationsController } from './transformations.controller';
-import { TransformationsService } from './transformations.service';
-
-describe('TransformationsController', () => {
- let controller: TransformationsController;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- controllers: [TransformationsController],
- providers: [TransformationsService],
- }).compile();
-
- controller = module.get(
- TransformationsController,
- );
- });
-
- it('should be defined', () => {
- expect(controller).toBeDefined();
- });
-});
diff --git a/src/transformations/transformations.controller.ts b/src/transformations/transformations.controller.ts
deleted file mode 100644
index c4206eb..0000000
--- a/src/transformations/transformations.controller.ts
+++ /dev/null
@@ -1,65 +0,0 @@
-import {
- Controller,
- Delete,
- Get,
- OnModuleInit,
- Param,
- Post,
- Put,
-} from '@nestjs/common';
-import {
- Client,
- ClientGrpc,
- MessagePattern,
- Payload,
-} from '@nestjs/microservices';
-import { TransformationsService } from './transformations.service';
-import { CreateTransformationDto } from './dto/create-transformation.dto';
-import { UpdateTransformationDto } from './dto/update-transformation.dto';
-import { ApiTags } from '@nestjs/swagger';
-import { GrpcClientConfiguration } from './config/grpc-client';
-
-@Controller('transformation')
-export class TransformationsController implements OnModuleInit {
- @Client(GrpcClientConfiguration)
- private transformationServiceClient: ClientGrpc;
-
- private transformationService: TransformationsService;
-
- onModuleInit() {
- this.transformationService =
- this.transformationServiceClient.getService(
- 'TransformationService',
- );
- }
-
- @Post()
- create(@Payload() createTransformationDto: CreateTransformationDto[]) {
- return createTransformationDto.map((transf) =>
- this.transformationService.create(transf),
- );
- }
-
- @Get()
- list() {
- return this.transformationService.list();
- }
-
- @Get(':id')
- show(@Payload() id: string) {
- return this.transformationService.show(id);
- }
-
- @Put(':id')
- update(
- @Param() id: string,
- @Payload() updateTransformationDto: UpdateTransformationDto,
- ) {
- return this.transformationService.update(id, updateTransformationDto);
- }
-
- @Delete(':id')
- remove(@Param() id: string) {
- return this.transformationService.remove(id);
- }
-}
diff --git a/src/transformations/transformations.module.ts b/src/transformations/transformations.module.ts
deleted file mode 100644
index 6e54df6..0000000
--- a/src/transformations/transformations.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { TransformationsService } from './transformations.service';
-import { TransformationsController } from './transformations.controller';
-
-@Module({
- controllers: [TransformationsController],
- providers: [TransformationsService],
-})
-export class TransformationsModule {}
diff --git a/src/transformations/transformations.service.spec.ts b/src/transformations/transformations.service.spec.ts
deleted file mode 100644
index 1c78677..0000000
--- a/src/transformations/transformations.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { TransformationsService } from './transformations.service';
-
-describe('TransformationsService', () => {
- let service: TransformationsService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [TransformationsService],
- }).compile();
-
- service = module.get(TransformationsService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/transformations/transformations.service.ts b/src/transformations/transformations.service.ts
deleted file mode 100644
index 44a373e..0000000
--- a/src/transformations/transformations.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateTransformationDto } from './dto/create-transformation.dto';
-import { UpdateTransformationDto } from './dto/update-transformation.dto';
-
-@Injectable()
-export class TransformationsService {
- create(createTransformationDto: CreateTransformationDto) {
- return 'This action adds a new transformation';
- }
-
- list() {
- return `This action returns all transformations`;
- }
-
- show(id: string) {
- return `This action returns a #${id} transformation`;
- }
-
- update(id: string, updateTransformationDto: UpdateTransformationDto) {
- return `This action updates a #${id} transformation`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} transformation`;
- }
-}
diff --git a/src/users-grpc-client/config/grpc-client.ts b/src/users-grpc-client/config/grpc-client.ts
deleted file mode 100644
index ebec6ef..0000000
--- a/src/users-grpc-client/config/grpc-client.ts
+++ /dev/null
@@ -1,17 +0,0 @@
-import { join } from 'path';
-import { ClientOptions, Transport } from '@nestjs/microservices';
-
-export const GrpcClientConfiguration: ClientOptions = {
- transport: Transport.GRPC,
- options: {
- //url: `${process.env.USERS_SVC_URL}:${process.env.USERS_SVC_PORT}`,
- url: `127.0.0.1:50051`,
- package: 'user',
- protoPath: join(__dirname, '..', 'proto', 'user.proto'),
- loader: {
- enums: String,
- objects: true,
- arrays: true,
- },
- },
-};
diff --git a/src/users-grpc-client/dto/create-users-grpc-client.dto.ts b/src/users-grpc-client/dto/create-users-grpc-client.dto.ts
deleted file mode 100644
index b05e8f2..0000000
--- a/src/users-grpc-client/dto/create-users-grpc-client.dto.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class CreateUsersGrpcClientDto {}
diff --git a/src/users-grpc-client/dto/update-users-grpc-client.dto.ts b/src/users-grpc-client/dto/update-users-grpc-client.dto.ts
deleted file mode 100644
index b71a964..0000000
--- a/src/users-grpc-client/dto/update-users-grpc-client.dto.ts
+++ /dev/null
@@ -1,8 +0,0 @@
-import { PartialType } from '@nestjs/mapped-types';
-import { CreateUsersGrpcClientDto } from './create-users-grpc-client.dto';
-
-export class UpdateUsersGrpcClientDto extends PartialType(
- CreateUsersGrpcClientDto,
-) {
- id: number;
-}
diff --git a/src/users-grpc-client/entities/users-grcp-client.entity.ts b/src/users-grpc-client/entities/users-grcp-client.entity.ts
deleted file mode 100644
index efc66ac..0000000
--- a/src/users-grpc-client/entities/users-grcp-client.entity.ts
+++ /dev/null
@@ -1 +0,0 @@
-export class UsersGrpcClient {}
diff --git a/src/users-grpc-client/proto/user.proto b/src/users-grpc-client/proto/user.proto
deleted file mode 100644
index 3ce8dad..0000000
--- a/src/users-grpc-client/proto/user.proto
+++ /dev/null
@@ -1,37 +0,0 @@
-syntax = "proto3";
-
-package user;
-
-
-import "google/protobuf/timestamp.proto";
-
-
-
-service UserService {
- rpc Create(UserRequest) returns (UserResponse) {}
- rpc Show(Empty) returns (ShowResponse) {}
-}
-
-message Empty {}
-
-message User {
- int32 id = 1;
- string name = 2;
- string email = 3;
- uint64 created_at = 4;
- string updated_at = 5;
-}
-
-message UserRequest {
- string name = 1;
- string email = 2;
-
-}
-
-message UserResponse {
- User user = 1;
-}
-
-message ShowResponse {
- repeated UserResponse users = 1;
-}
diff --git a/src/users-grpc-client/users-grpc-client.controller.ts b/src/users-grpc-client/users-grpc-client.controller.ts
deleted file mode 100644
index 88d9298..0000000
--- a/src/users-grpc-client/users-grpc-client.controller.ts
+++ /dev/null
@@ -1,55 +0,0 @@
-import {
- Get,
- Post,
- Controller,
- Delete,
- OnModuleInit,
- Put,
- Query,
-} from '@nestjs/common';
-import { Client, ClientGrpc, Payload } from '@nestjs/microservices';
-import { CreateUsersGrpcClientDto } from './dto/create-users-grpc-client.dto';
-import { UpdateUsersGrpcClientDto } from './dto/update-users-grpc-client.dto';
-import { UsersGrpcClientService } from './users-grpc-client.service';
-import { GrpcClientConfiguration } from './config/grpc-client';
-
-@Controller('users-grpc-client')
-export class UsersGrpcClientController implements OnModuleInit {
- @Client(GrpcClientConfiguration)
- private usersServiceClient: ClientGrpc;
-
- private usersService: UsersGrpcClientService;
-
- onModuleInit() {
- this.usersService =
- this.usersServiceClient.getService('UserService');
- }
-
- @Post()
- async create(@Payload() createUserDto: CreateUsersGrpcClientDto) {
- return this.usersService.create(createUserDto);
- }
-
- @Get()
- findAll() {
- return this.usersService.findAll();
- }
-
- @Get(':id')
- findOne(@Query() id: string) {
- return this.usersService.findOne(id);
- }
-
- @Put()
- update(
- @Payload() updateUserDto: UpdateUsersGrpcClientDto,
- @Query() id: string,
- ) {
- return this.usersService.update(id, updateUserDto);
- }
-
- @Delete()
- remove(@Query() id: string) {
- return this.usersService.remove(id);
- }
-}
diff --git a/src/users-grpc-client/users-grpc-client.module.ts b/src/users-grpc-client/users-grpc-client.module.ts
deleted file mode 100644
index 6a10d16..0000000
--- a/src/users-grpc-client/users-grpc-client.module.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { Module } from '@nestjs/common';
-import { UsersGrpcClientService } from './users-grpc-client.service';
-import { UsersGrpcClientController } from './users-grpc-client.controller';
-
-@Module({
- controllers: [UsersGrpcClientController],
- providers: [UsersGrpcClientService],
-})
-export class UsersGrpcClientModule {}
diff --git a/src/users-grpc-client/users-grpc-client.service.spec.ts b/src/users-grpc-client/users-grpc-client.service.spec.ts
deleted file mode 100644
index 88bcaca..0000000
--- a/src/users-grpc-client/users-grpc-client.service.spec.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { Test, TestingModule } from '@nestjs/testing';
-import { UsersGrpcClientService } from './users-grpc-client.service';
-
-describe('UsersGrcpClientService', () => {
- let service: UsersGrpcClientService;
-
- beforeEach(async () => {
- const module: TestingModule = await Test.createTestingModule({
- providers: [UsersGrpcClientService],
- }).compile();
-
- service = module.get(UsersGrpcClientService);
- });
-
- it('should be defined', () => {
- expect(service).toBeDefined();
- });
-});
diff --git a/src/users-grpc-client/users-grpc-client.service.ts b/src/users-grpc-client/users-grpc-client.service.ts
deleted file mode 100644
index 827816d..0000000
--- a/src/users-grpc-client/users-grpc-client.service.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Injectable } from '@nestjs/common';
-import { CreateUsersGrpcClientDto } from './dto/create-users-grpc-client.dto';
-import { UpdateUsersGrpcClientDto } from './dto/update-users-grpc-client.dto';
-
-@Injectable()
-export class UsersGrpcClientService {
- create(createUsersGrcpClientDto: CreateUsersGrpcClientDto) {
- return 'This action adds a new usersGrcpClient';
- }
-
- findAll() {
- return `This action returns all usersGrcpClient`;
- }
-
- findOne(id: string) {
- return `This action returns a #${id} usersGrcpClient`;
- }
-
- update(id: string, updateUsersGrcpClientDto: UpdateUsersGrpcClientDto) {
- return `This action updates a #${id} usersGrcpClient`;
- }
-
- remove(id: string) {
- return `This action removes a #${id} usersGrcpClient`;
- }
-}
diff --git a/src/utils/Authenticate.ts b/src/utils/Authenticate.ts
deleted file mode 100644
index e9b4627..0000000
--- a/src/utils/Authenticate.ts
+++ /dev/null
@@ -1,29 +0,0 @@
-import axios from "axios";
-
-
-export class AuthenticateController{
-
- private username:string;
- private password:string;
-
- constructor(){
- this.username = process.env.AUTH_USERNAME
- this.password = process.env.AUTH_PASSWORD
- }
-
-
-
- async authenticate():Promise{
-
- const response = await axios.post(process.env.AUTH_ROUTE,
- {
- username:this.username,
- password:this.password
- }
- )
-
- return response.data.accessToken
- }
-
-
-}
diff --git a/src/utils/CaseConverter.ts b/src/utils/CaseConverter.ts
new file mode 100644
index 0000000..741c3cf
--- /dev/null
+++ b/src/utils/CaseConverter.ts
@@ -0,0 +1,62 @@
+export const objectCamelToSnake = (object) => {
+ const objectKeys = Object.keys(object);
+ const objectValues = Object.values(object);
+
+ const newKeys = objectKeys.map((key) => {
+ return key
+ .split(/(?=[A-Z])/)
+ .join('_')
+ .toLowerCase();
+ });
+
+ objectKeys.forEach((key, index) => {
+ object[newKeys[index]] = object[key];
+ if (newKeys[index] !== objectKeys[index]) {
+ delete object[key];
+ }
+ });
+
+ objectValues.forEach((value) => {
+ if (typeof value === 'object') {
+ objectCamelToSnake(value);
+ }
+ });
+
+ return object;
+};
+
+export const objectSnakeToCamel = (object) => {
+ const objectKeys = Object.keys(object);
+ const objectValues = Object.values(object);
+
+ const newKeys = objectKeys.map((key) => {
+ return key.replace(/([-_][a-z])/gi, ($1) => {
+ return $1.toUpperCase().replace('-', '').replace('_', '');
+ });
+ });
+
+ objectKeys.forEach((key, index) => {
+ object[newKeys[index]] = object[key];
+ if (newKeys[index] !== objectKeys[index]) {
+ delete object[key];
+ }
+ });
+ objectValues.forEach((value) => {
+ if (value == null) return;
+ if (typeof value === 'object') {
+ objectSnakeToCamel(value);
+ }
+ });
+
+ return object;
+};
+
+export const trSnakeToCamel = (object) => {
+ const convertedParams = object.params.map((param) => {
+ return objectSnakeToCamel(param);
+ });
+
+ object.params = convertedParams;
+
+ return objectSnakeToCamel(object);
+};
diff --git a/swagger.json b/swagger.json
index 1ed2c5f..539ae84 100644
--- a/swagger.json
+++ b/swagger.json
@@ -1 +1 @@
-{"openapi":"3.0.0","paths":{"/input/test-connection":{"post":{"operationId":"RestInputsController_testConnection","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/testConnectionDTO"}}}},"responses":{"201":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]}},"/input":{"post":{"operationId":"RestInputsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestInputDto"}}}},"responses":{"201":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]},"get":{"operationId":"RestInputsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]}},"/input/{id}":{"get":{"operationId":"RestInputsController_show","parameters":[],"responses":{"200":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]},"put":{"operationId":"RestInputsController_update","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestInputDto"}}}},"responses":{"200":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]},"delete":{"operationId":"RestInputsController_delete","parameters":[],"responses":{"200":{"description":""}},"tags":["Inputs"],"security":[{"bearer":[]}]}},"/output":{"post":{"operationId":"RestOutputsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestOutputDto"}}}},"responses":{"201":{"description":""}},"tags":["Outputs"],"security":[{"bearer":[]}]},"get":{"operationId":"RestOutputsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Outputs"],"security":[{"bearer":[]}]}},"/output/{id}":{"get":{"operationId":"RestOutputsController_show","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Outputs"],"security":[{"bearer":[]}]},"put":{"operationId":"RestOutputsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestOutputDto"}}}},"responses":{"200":{"description":""}},"tags":["Outputs"],"security":[{"bearer":[]}]},"delete":{"operationId":"RestOutputsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Outputs"],"security":[{"bearer":[]}]}},"/enrichment":{"post":{"operationId":"RestEnrichmentsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestEnrichmentDto"}}}},"responses":{"201":{"description":""}},"tags":["Enrichments"]},"get":{"operationId":"RestEnrichmentsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Enrichments"]}},"/enrichment/{id}":{"get":{"operationId":"RestEnrichmentsController_show","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Enrichments"]},"put":{"operationId":"RestEnrichmentsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestEnrichmentDto"}}}},"responses":{"200":{"description":""}},"tags":["Enrichments"]},"delete":{"operationId":"RestEnrichmentsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Enrichments"]}},"/transformation":{"post":{"operationId":"RestTransformationsController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestTransformationDto"}}}},"responses":{"201":{"description":""}},"tags":["Transformations"],"security":[{"bearer":[]}]},"get":{"operationId":"RestTransformationsController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Transformations"],"security":[{"bearer":[]}]}},"/transformation/{id}":{"get":{"operationId":"RestTransformationsController_show","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Transformations"],"security":[{"bearer":[]}]},"put":{"operationId":"RestTransformationsController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestTransformationDto"}}}},"responses":{"200":{"description":""}},"tags":["Transformations"],"security":[{"bearer":[]}]},"delete":{"operationId":"RestTransformationsController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Transformations"],"security":[{"bearer":[]}]}},"/pipeline":{"post":{"operationId":"RestPipelinesController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestPipelineDto"}}}},"responses":{"201":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]},"get":{"operationId":"RestPipelinesController_list","parameters":[],"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]}},"/pipeline/{id}/logs/details":{"get":{"operationId":"RestPipelinesController_showLogs","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]}},"/pipeline/{id}/status":{"get":{"operationId":"RestPipelinesController_showStatus","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]}},"/pipeline/{id}":{"get":{"operationId":"RestPipelinesController_show","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]},"put":{"operationId":"RestPipelinesController_update","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateRestPipelineDto"}}}},"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]},"delete":{"operationId":"RestPipelinesController_remove","parameters":[{"name":"id","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Pipelines"],"security":[{"bearer":[]}]}},"/user/register":{"post":{"operationId":"RestUserController_create","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateRestUserDto"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/user/auth":{"post":{"operationId":"RestUserController_auth","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserAuthDTO"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/user/confirm":{"post":{"operationId":"RestUserController_confirm","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserConfirmationDTO"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/user/resendCode":{"post":{"operationId":"RestUserController_resendCode","parameters":[],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResendCodeDTO"}}}},"responses":{"201":{"description":""}},"tags":["Users"]}},"/factory/start":{"get":{"operationId":"RestFactoryController_startDagFactory","parameters":[],"responses":{"200":{"description":""}},"tags":["Dag Factory"],"security":[{"bearer":[]}]}},"/factory/pipeline_params":{"get":{"operationId":"RestFactoryController_sendJSONSettingsToDagFactory","parameters":[],"responses":{"200":{"description":""}},"tags":["Dag Factory"],"security":[{"bearer":[]}]}},"/factory/start/{pipelineId}":{"get":{"operationId":"RestFactoryController_startDag","parameters":[{"name":"pipelineId","required":true,"in":"path","schema":{"type":"string"}}],"responses":{"200":{"description":""}},"tags":["Dag Factory"],"security":[{"bearer":[]}]}},"/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":""}}}}},"info":{"title":"Maestro Grpc Documentation","description":"Documentation for Maestro gateway","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{"testConnectionDTO":{"type":"object","properties":{"plugin":{"type":"string","description":"Input Plugin Name","example":"mysql"},"values":{"type":"object","description":"Plugin name","example":{"plugin":"mysql","values":{"jdbc_user":"test","jdbc_password":"test1234","database":"users","endpoint":"dadosfera.test123.us-east-1.rds.amazonaws.com","schema":"user","port":"5432","engine":"mysql"}}}},"required":["plugin","values"]},"CronDTO":{"type":"object","properties":{"hours":{"description":"Hours to the cron","example":["3","7"],"type":"array","items":{"type":"string"}},"hour_interval":{"type":"boolean","description":"Boolean for hour interval","example":true},"hour_resourse":{"type":"boolean","description":"Boolean for hour resourse","example":true},"hour_resourse_value":{"type":"number","description":"Value for hour resourse","example":3},"month_day":{"description":"Month day to the cron","example":["3"],"type":"array","items":{"type":"string"}},"month_day_interval":{"type":"boolean","description":"Boolean for month day interval","example":true},"month_day_resourse":{"type":"boolean","description":"Boolean for month day resourse","example":false},"month_day_resourse_value":{"type":"number","description":"Value for month day resourse","example":null},"month":{"description":"Month to the cron","example":["3"],"type":"array","items":{"type":"string"}},"month_interval":{"type":"boolean","description":"Boolean from month interval","example":false},"month_resourse":{"type":"boolean","description":"Boolean from month resourse","example":false},"month_resourse_value":{"type":"number","description":"Value to month resourse","example":null},"week_days":{"description":"Week days to the cron","example":[],"type":"array","items":{"type":"string"}},"week_days_interval":{"type":"boolean","description":"Boolean for the week days","example":false},"week_days_resourse":{"type":"boolean","description":"Boolean for week day resourse","example":false},"week_days_resourse_value":{"type":"number","description":"Hours to the cron","example":null}},"required":["hours","hour_interval","hour_resourse","hour_resourse_value","month_day","month_day_interval","month_day_resourse","month_day_resourse_value","month","month_interval","month_resourse","month_resourse_value","week_days","week_days_interval","week_days_resourse","week_days_resourse_value"]},"CreateRestInputDto":{"type":"object","properties":{"cron":{"description":"Input CRON","example":{"hours":["3","7"],"hour_interval":true,"hour_resourse":true,"hour_resourse_value":3,"month_day":["3"],"month_day_interval":true,"month_day_resourse":false,"month_day_resourse_value":null,"month":["3"],"month_interval":false,"month_resourse":false,"month_resourse_value":null,"week_days":[],"week_days_interval":false,"week_days_resourse":false,"week_days_resourse_value":null},"allOf":[{"$ref":"#/components/schemas/CronDTO"}]},"name":{"type":"string","description":"Name of the input","example":"Test_Input"},"plugin":{"type":"string","description":"Plugin","example":"s3"},"values":{"type":"object","description":"Values for choosen input","example":{"jdbc_user":"user123","jdbc_password":"password123","database":"default_database","endpoint":"dadosfera-postgres-db.test123.us-east-1.rds.amazonaws.com","table":"test_table","port":"5432","engine":"postgresql"}},"operation":{"type":"string","description":"Operation name","example":"input"}},"required":["cron","name","plugin","values","operation"]},"UpdateRestInputDto":{"type":"object","properties":{"cron":{"description":"Input CRON","example":{"hours":["3","7"],"hour_interval":true,"hour_resourse":true,"hour_resourse_value":3,"month_day":["3"],"month_day_interval":true,"month_day_resourse":false,"month_day_resourse_value":null,"month":["3"],"month_interval":false,"month_resourse":false,"month_resourse_value":null,"week_days":[],"week_days_interval":false,"week_days_resourse":false,"week_days_resourse_value":null},"allOf":[{"$ref":"#/components/schemas/CronDTO"}]},"name":{"type":"string","description":"Name of the input","example":"Test_Input"},"plugin":{"type":"string","description":"Plugin","example":"s3"},"values":{"type":"object","description":"Values for choosen input","example":{"jdbc_user":"user123","jdbc_password":"password123","database":"default_database","endpoint":"dadosfera-postgres-db.test123.us-east-1.rds.amazonaws.com","table":"test_table","port":"5432","engine":"postgresql"}},"operation":{"type":"string","description":"Operation name","example":"input"}}},"CreateRestOutputDto":{"type":"object","properties":{"name":{"type":"string","description":"Output name","example":"Test Output"},"plugin":{"type":"string","description":"Plugin name","example":"Test Plugin"},"values":{"type":"object","description":"Plugin values","example":{"prefix":"test"}},"operation":{"type":"string","description":"Operation name","example":"output"}},"required":["name","plugin","values","operation"]},"UpdateRestOutputDto":{"type":"object","properties":{"name":{"type":"string","description":"Output name","example":"Test Output"},"plugin":{"type":"string","description":"Plugin name","example":"Test Plugin"},"values":{"type":"object","description":"Plugin values","example":{"prefix":"test"}},"operation":{"type":"string","description":"Operation name","example":"output"}}},"CreateRestEnrichmentDto":{"type":"object","properties":{}},"UpdateRestEnrichmentDto":{"type":"object","properties":{}},"CreateRestTransformationDto":{"type":"object","properties":{"transformations":{"type":"object","description":"Array of transformations","example":[{"type":"hide_full_name","params":[{"base_column":"full_name","column_name":"hiden_full_name"}]},{"type":"hide_cpf","params":[{"base_column":"cpf","column_name":"cpf_hashed"}]}]}},"required":["transformations"]},"UpdateRestTransformationDto":{"type":"object","properties":{"transformations":{"type":"object","description":"Array of transformations","example":[{"type":"hide_full_name","params":[{"base_column":"full_name","column_name":"hiden_full_name"}]},{"type":"hide_cpf","params":[{"base_column":"cpf","column_name":"cpf_hashed"}]}]}}},"CreateRestPipelineDto":{"type":"object","properties":{"input":{"type":"object","description":"Pipeline Input","example":{"id":"ac8f828a-708d-4f28-a5b4-0170eaf96843"}},"transformations":{"description":"Pipeline Transformations","example":[{"id":"b2579a1a-2874-47f6-b609-7568a2930468"},{"id":"6bac1a1a-3037-474f-8211-c3ceb8ea04e8"}],"type":"array","items":{"type":"string"}},"output":{"type":"object","description":"Pipeline Output","example":{"id":"06f9ce35-d9c0-4f95-a49b-c09ea00b8e48"}},"tags":{"description":"Pipeline Tags","example":[],"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Pipeline Name","example":"Dadosfera Pipeline"},"description":{"type":"string","description":"Pipeline Description","example":"Example pipeline"}},"required":["input","transformations","output","tags","name","description"]},"UpdateRestPipelineDto":{"type":"object","properties":{"input":{"type":"object","description":"Pipeline Input","example":{"id":"ac8f828a-708d-4f28-a5b4-0170eaf96843"}},"transformations":{"description":"Pipeline Transformations","example":[{"id":"b2579a1a-2874-47f6-b609-7568a2930468"},{"id":"6bac1a1a-3037-474f-8211-c3ceb8ea04e8"}],"type":"array","items":{"type":"string"}},"output":{"type":"object","description":"Pipeline Output","example":{"id":"06f9ce35-d9c0-4f95-a49b-c09ea00b8e48"}},"tags":{"description":"Pipeline Tags","example":[],"type":"array","items":{"type":"string"}},"name":{"type":"string","description":"Pipeline Name","example":"Dadosfera Pipeline"},"description":{"type":"string","description":"Pipeline Description","example":"Example pipeline"}}},"CreateRestUserDto":{"type":"object","properties":{"email":{"type":"string","description":"User Email","example":"dev@dadosfera.ai"},"password":{"type":"string","description":"User Password","example":"dadospassword123"},"username":{"type":"string","description":"User Username","example":"dev_fera"},"name":{"type":"string","description":"User name","example":"Fulano da Silva"},"customer_id":{"type":"string","description":"Customer id","example":"dadosfera"},"rules":{"type":"string","description":"User rules","example":"['admin']"}},"required":["email","password","username","name","customer_id","rules"]},"UserAuthDTO":{"type":"object","properties":{"username":{"type":"string","description":"User username","example":"dev_fera"},"password":{"type":"string","description":"User password","example":"dadospassword123"}},"required":["username","password"]},"UserConfirmationDTO":{"type":"object","properties":{"username":{"type":"string","description":"User username","example":"dev_fera"},"confirmationCode":{"type":"string","description":"Received Confirmation Code","example":"315246"}},"required":["username","confirmationCode"]},"ResendCodeDTO":{"type":"object","properties":{"username":{"type":"string","description":"User username","example":"dev_fera"}},"required":["username"]}}}}
+{"openapi":"3.0.0","paths":{"/inputs/test-connection":{"post":{"operationId":"InputsController_testConnection","parameters":[],"responses":{"201":{"description":""}}}},"/inputs":{"post":{"operationId":"InputsController_create","parameters":[],"responses":{"201":{"description":""}}},"get":{"operationId":"InputsController_findAll","parameters":[],"responses":{"200":{"description":""}}}},"/inputs/{id}":{"get":{"operationId":"InputsController_findOne","parameters":[],"responses":{"200":{"description":""}}},"put":{"operationId":"InputsController_update","parameters":[],"responses":{"200":{"description":""}}},"delete":{"operationId":"InputsController_delete","parameters":[],"responses":{"200":{"description":""}}}},"/transformations":{"post":{"operationId":"TransformationsController_create","parameters":[],"responses":{"201":{"description":""}}},"get":{"operationId":"TransformationsController_findAll","parameters":[],"responses":{"200":{"description":""}}}},"/transformations/{id}":{"get":{"operationId":"TransformationsController_findOne","parameters":[],"responses":{"200":{"description":""}}},"put":{"operationId":"TransformationsController_update","parameters":[],"responses":{"200":{"description":""}}},"delete":{"operationId":"TransformationsController_delete","parameters":[],"responses":{"200":{"description":""}}}},"/outputs":{"post":{"operationId":"OutputsController_create","parameters":[],"responses":{"201":{"description":""}}},"get":{"operationId":"OutputsController_findAll","parameters":[],"responses":{"200":{"description":""}}}},"/outputs/{id}":{"get":{"operationId":"OutputsController_findOne","parameters":[],"responses":{"200":{"description":""}}},"put":{"operationId":"OutputsController_update","parameters":[],"responses":{"200":{"description":""}}},"delete":{"operationId":"OutputsController_delete","parameters":[],"responses":{"200":{"description":""}}}},"/pipelines/{id}/status":{"get":{"operationId":"PipelinesController_getPipelineStatus","parameters":[],"responses":{"200":{"description":""}}}},"/pipelines/{id}/{details}":{"get":{"operationId":"PipelinesController_getPipelineLogs","parameters":[],"responses":{"200":{"description":""}}}},"/pipelines":{"post":{"operationId":"PipelinesController_create","parameters":[],"responses":{"201":{"description":""}}},"get":{"operationId":"PipelinesController_findAll","parameters":[],"responses":{"200":{"description":""}}}},"/pipelines/{id}":{"get":{"operationId":"PipelinesController_findOne","parameters":[],"responses":{"200":{"description":""}}},"put":{"operationId":"PipelinesController_update","parameters":[],"responses":{"200":{"description":""}}},"delete":{"operationId":"PipelinesController_delete","parameters":[],"responses":{"200":{"description":""}}}},"/auth":{"post":{"operationId":"AuthController_signIn","parameters":[],"responses":{"201":{"description":""}}}},"/health":{"get":{"operationId":"HealthController_check","parameters":[],"responses":{"200":{"description":""}}}}},"info":{"title":"Maestro Grpc Documentation","description":"Documentation for Maestro gateway","version":"1.0","contact":{}},"tags":[],"servers":[],"components":{"securitySchemes":{"bearer":{"scheme":"bearer","bearerFormat":"JWT","type":"http"}},"schemas":{}}}
\ No newline at end of file