diff --git a/.github/workflows/deploy-development.yml b/.github/workflows/deploy-development.yml
index c15bc545..f58cd28b 100644
--- a/.github/workflows/deploy-development.yml
+++ b/.github/workflows/deploy-development.yml
@@ -1,6 +1,3 @@
-# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
name: Deploy development server to ec2
on:
@@ -9,28 +6,41 @@ on:
- dev
jobs:
- build:
- runs-on: self-hosted
+ deploy:
+ runs-on: ubuntu-latest
+
strategy:
matrix:
node-version: [16.x]
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- defaults:
- run:
- working-directory: ${{ env.SERVER_PROFILE }}
+
steps:
- - uses: actions/checkout@93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 #v3.1.0
- with:
- path: ${{ env.SERVER_PROFILE }}
+ - name: Checkout Repository
+ uses: actions/checkout@v3
+
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@8c91899e586c5b171469028077307d293428b516 #v.3.5.1
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - run: cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json
- - run: cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env
- - run: bash ${{ env.PROJECT_PATH }}/script/prebuild.sh
- - run: sh ${{ env.PROJECT_PATH }}/script/reload.sh
+
+ - name: Deploy to EC2 using SSH
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.SERVER_HOST }}
+ username: ${{ secrets.SSH_USERNAME }}
+ key: ${{ secrets.SSH_PRIVATE_KEY }}
+ port: 22
+ script: |
+ cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json &&
+ cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env &&
+ cd ${{ env.PROJECT_PATH }} &&
+ git fetch --all &&
+ git checkout ${{ env.BRANCH_NAME }} &&
+ git pull origin ${{ env.BRANCH_NAME }} &&
+ bash script/prebuild.sh &&
+ bash script/reload.sh
+
env:
+ BRANCH_NAME: dev
NODE_ENV: development
SERVER_PROFILE: development
PROJECT_PATH: ~/actions-runner/_work/A.fume.Server/A.fume.Server/development
diff --git a/.github/workflows/deploy-production-1.yml b/.github/workflows/deploy-production-1.yml
index f4401222..12d42c29 100644
--- a/.github/workflows/deploy-production-1.yml
+++ b/.github/workflows/deploy-production-1.yml
@@ -1,6 +1,3 @@
-# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
name: Deploy production-1 server to ec2
on:
@@ -10,28 +7,41 @@ on:
- production-1
jobs:
- build:
- runs-on: self-hosted
+ deploy:
+ runs-on: ubuntu-latest
+
strategy:
matrix:
node-version: [16.x]
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- defaults:
- run:
- working-directory: ${{ env.SERVER_PROFILE }}
+
steps:
- - uses: actions/checkout@v2
- with:
- path: ${{ env.SERVER_PROFILE }}
+ - name: Checkout Repository
+ uses: actions/checkout@v3
+
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - run: cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json
- - run: cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env
- - run: bash ${{ env.PROJECT_PATH }}/script/prebuild.sh
- - run: sh ${{ env.PROJECT_PATH }}/script/reload.sh
+
+ - name: Deploy to EC2 using SSH
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.SERVER_HOST }}
+ username: ${{ secrets.SSH_USERNAME }}
+ key: ${{ secrets.SSH_PRIVATE_KEY }}
+ port: 22
+ script: |
+ cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json &&
+ cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env &&
+ cd ${{ env.PROJECT_PATH }} &&
+ git fetch --all &&
+ git checkout ${{ env.BRANCH_NAME }} &&
+ git pull origin ${{ env.BRANCH_NAME }} &&
+ bash script/prebuild.sh &&
+ bash script/reload.sh
+
env:
+ BRANCH_NAME: production-1
NODE_ENV: production
SERVER_PROFILE: production-1
PROJECT_PATH: ~/actions-runner/_work/A.fume.Server/A.fume.Server/production-1
diff --git a/.github/workflows/deploy-production-2.yml b/.github/workflows/deploy-production-2.yml
index e442ca15..a59a5854 100644
--- a/.github/workflows/deploy-production-2.yml
+++ b/.github/workflows/deploy-production-2.yml
@@ -1,6 +1,3 @@
-# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
name: Deploy production-2 server to ec2
on:
@@ -10,28 +7,41 @@ on:
- production-2
jobs:
- build:
- runs-on: self-hosted
+ deploy:
+ runs-on: ubuntu-latest
+
strategy:
matrix:
node-version: [16.x]
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- defaults:
- run:
- working-directory: ${{ env.SERVER_PROFILE }}
+
steps:
- - uses: actions/checkout@v2
- with:
- path: ${{ env.SERVER_PROFILE }}
+ - name: Checkout Repository
+ uses: actions/checkout@v3
+
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - run: cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json
- - run: cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env
- - run: bash ${{ env.PROJECT_PATH }}/script/prebuild.sh
- - run: sh ${{ env.PROJECT_PATH }}/script/reload.sh
+
+ - name: Deploy to EC2 using SSH
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.SERVER_HOST }}
+ username: ${{ secrets.SSH_USERNAME }}
+ key: ${{ secrets.SSH_PRIVATE_KEY }}
+ port: 22
+ script: |
+ cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json &&
+ cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env &&
+ cd ${{ env.PROJECT_PATH }} &&
+ git fetch --all &&
+ git checkout ${{ env.BRANCH_NAME }} &&
+ git pull origin ${{ env.BRANCH_NAME }} &&
+ bash script/prebuild.sh &&
+ bash script/reload.sh
+
env:
+ BRANCH_NAME: production-2
NODE_ENV: production
SERVER_PROFILE: production-2
PROJECT_PATH: ~/actions-runner/_work/A.fume.Server/A.fume.Server/production-2
diff --git a/.github/workflows/deploy-production.yml b/.github/workflows/deploy-production.yml
index f330e40e..82397e0b 100644
--- a/.github/workflows/deploy-production.yml
+++ b/.github/workflows/deploy-production.yml
@@ -1,36 +1,47 @@
-# This workflow will do a clean installation of node dependencies, cache/restore them, build the source code and run tests across different versions of node
-# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
-
name: Deploy production server to ec2
on:
+ workflow_dispatch:
push:
branches:
- main
jobs:
- build:
- runs-on: self-hosted
+ deploy:
+ runs-on: ubuntu-latest
+
strategy:
matrix:
node-version: [16.x]
- # See supported Node.js release schedule at https://nodejs.org/en/about/releases/
- defaults:
- run:
- working-directory: ${{ env.SERVER_PROFILE }}
+
steps:
- - uses: actions/checkout@v2
- with:
- path: ${{ env.SERVER_PROFILE }}
+ - name: Checkout Repository
+ uses: actions/checkout@v3
+
- name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v2
+ uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- - run: cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json
- - run: cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env
- - run: bash ${{ env.PROJECT_PATH }}/script/prebuild.sh
- - run: sh ${{ env.PROJECT_PATH }}/script/reload.sh
+
+ - name: Deploy to EC2 using SSH
+ uses: appleboy/ssh-action@master
+ with:
+ host: ${{ secrets.SERVER_HOST }}
+ username: ${{ secrets.SSH_USERNAME }}
+ key: ${{ secrets.SSH_PRIVATE_KEY }}
+ port: 22
+ script: |
+ cp ~/config-injection/ecosystem-${{ env.SERVER_PROFILE }}.json ${{ env.PROJECT_PATH }}/ecosystem.json &&
+ cp ~/config-injection/envs/.env.${{ env.NODE_ENV }} ${{ env.PROJECT_PATH }}/.env &&
+ cd ${{ env.PROJECT_PATH }} &&
+ git fetch --all &&
+ git checkout ${{ env.BRANCH_NAME }} &&
+ git pull origin ${{ env.BRANCH_NAME }} &&
+ bash script/prebuild.sh &&
+ bash script/reload.sh
+
env:
+ BRANCH_NAME: main
NODE_ENV: production
SERVER_PROFILE: production
PROJECT_PATH: ~/actions-runner/_work/A.fume.Server/A.fume.Server/production
diff --git a/README.md b/README.md
index 70caae65..bd13b632 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,8 @@ Scents Node Server
- [기여하기](./docs/contribution.md)
+- [환경, 배포](./docs/environments.md)
+
# 연관 프로젝트
[A.fume.Analysis](https://github.com/Scents-Note/A.fume.Analysis)
diff --git a/docs/environments.md b/docs/environments.md
new file mode 100644
index 00000000..2d8f4c2d
--- /dev/null
+++ b/docs/environments.md
@@ -0,0 +1,21 @@
+# 환경
+
+- dev
+ - 목적: 개발환경에서 사용.
+ - 기준 브랜치: dev
+- production-1
+ - 목적: ios 용 엔드포인트
+- production-2
+ - 목적: android 용 엔드포인트
+
+* production 이 현재 1과 2, 2개가 공존하는 상황. 초기에 안전성을 위해 분리한 것으로 보이나, 불필요한 분리여서 합치는 것이 좋다고 판단.
+
+# 배포
+
+- dev 환경
+ - dev 브랜치에 병합시 자동으로 배포됨
+- production-1, production-2
+ - [저장소의 깃헙액션 페이지](https://github.com/Scents-Note/A.fume.Server/actions) 에서 각 환경에 해당하는 워크플로우 진입 후, 아래 과정을 따라 수행
+ - Run workflow 드랍다운 클릭
+ - 배포를 원하는 브랜치 선택
+ - 초록색 Run workflow 버튼 클릭
diff --git a/package-lock.json b/package-lock.json
index 9ae7d81b..1b0ab305 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,11 +9,15 @@
"version": "0.0.8",
"license": "GNU",
"dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-decorators": "^7.22.3",
+ "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
+ "@babel/plugin-transform-runtime": "^7.17.0",
+ "@babel/preset-env": "^7.16.11",
+ "@babel/preset-typescript": "^7.16.7",
"@opensearch-project/opensearch": "^1.2.0",
- "@types/swagger-ui-express": "^4.1.3",
- "@types/winston": "^2.4.4",
"aws-sdk": "^2.1101.0",
+ "babel-plugin-module-resolver": "^4.1.0",
"body-parser": "^1.20.1",
"chai": "^4.3.6",
"connect": "^3.7.0",
@@ -23,6 +27,7 @@
"discord-webhook-node": "^1.1.8",
"dotenv": "^16.0.0",
"express": "^4.17.3",
+ "hangul-js": "^0.2.6",
"ioredis": "^5.2.4",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^9.0.0",
@@ -43,11 +48,6 @@
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.8",
"@babel/node": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
- "@babel/plugin-transform-runtime": "^7.17.0",
- "@babel/preset-env": "^7.16.11",
- "@babel/preset-typescript": "^7.16.7",
"@types/aws-sdk": "^2.7.0",
"@types/chai": "^4.3.0",
"@types/cookie-parser": "^1.4.2",
@@ -64,10 +64,11 @@
"@types/sinon": "^10.0.15",
"@types/supertest": "^2.0.12",
"@types/swagger-jsdoc": "^6.0.1",
+ "@types/swagger-ui-express": "^4.1.3",
"@types/validator": "^13.7.17",
+ "@types/winston": "^2.4.4",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
- "babel-plugin-module-resolver": "^4.1.0",
"eslint": "^8.12.0",
"mocha": "^10.2.0",
"nodemon": "^2.0.22",
@@ -256,7 +257,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
"integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
- "dev": true,
"dependencies": {
"@babel/helper-explode-assignable-expression": "^7.18.6",
"@babel/types": "^7.18.9"
@@ -308,7 +308,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz",
"integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==",
- "dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"regexpu-core": "^5.1.0"
@@ -324,7 +323,6 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
"integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
- "dev": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-plugin-utils": "^7.16.7",
@@ -349,7 +347,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
"integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
"dependencies": {
"@babel/types": "^7.18.6"
},
@@ -443,7 +440,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
"integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
- "dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
@@ -534,7 +530,6 @@
"version": "7.18.11",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
"integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
- "dev": true,
"dependencies": {
"@babel/helper-function-name": "^7.18.9",
"@babel/template": "^7.18.10",
@@ -609,7 +604,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
"integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -624,7 +618,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
"integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -641,7 +634,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
"integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
- "dev": true,
"dependencies": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -659,7 +651,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
"integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -675,7 +666,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
"integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
- "dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -710,7 +700,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
"integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
@@ -726,7 +715,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
"integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
@@ -742,7 +730,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
"integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-json-strings": "^7.8.3"
@@ -758,7 +745,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
"integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@@ -774,7 +760,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
"integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
@@ -790,7 +775,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
"integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -806,7 +790,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz",
"integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==",
- "dev": true,
"dependencies": {
"@babel/compat-data": "^7.18.8",
"@babel/helper-compilation-targets": "^7.18.9",
@@ -825,7 +808,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
"integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@@ -841,7 +823,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
"integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -858,7 +839,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
"integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
- "dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -874,7 +854,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
"integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
- "dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -892,7 +871,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
"integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
- "dev": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -908,7 +886,6 @@
"version": "7.8.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -920,7 +897,6 @@
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -932,7 +908,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
"integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -961,7 +936,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -973,7 +947,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.3"
},
@@ -985,7 +958,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
"integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1000,7 +972,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1012,7 +983,6 @@
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -1024,7 +994,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1036,7 +1005,6 @@
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -1048,7 +1016,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1060,7 +1027,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1072,7 +1038,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -1084,7 +1049,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
"integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1099,7 +1063,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -1114,7 +1077,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
"integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1129,7 +1091,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
"integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1144,7 +1105,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
"integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
- "dev": true,
"dependencies": {
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -1161,7 +1121,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
"integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1176,7 +1135,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz",
"integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1191,7 +1149,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz",
"integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==",
- "dev": true,
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
@@ -1213,7 +1170,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
"integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1228,7 +1184,6 @@
"version": "7.18.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz",
"integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1243,7 +1198,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
"integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
- "dev": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1259,7 +1213,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
"integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1274,7 +1227,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
"integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
- "dev": true,
"dependencies": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1290,7 +1242,6 @@
"version": "7.18.8",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
"integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1305,7 +1256,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
"integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
- "dev": true,
"dependencies": {
"@babel/helper-compilation-targets": "^7.18.9",
"@babel/helper-function-name": "^7.18.9",
@@ -1322,7 +1272,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
"integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1337,7 +1286,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
"integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1352,7 +1300,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
"integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
- "dev": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -1369,7 +1316,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
"integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
- "dev": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -1387,7 +1333,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz",
"integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==",
- "dev": true,
"dependencies": {
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-module-transforms": "^7.18.9",
@@ -1406,7 +1351,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
"integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
- "dev": true,
"dependencies": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1422,7 +1366,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz",
"integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==",
- "dev": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1438,7 +1381,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
"integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1453,7 +1395,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
"integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-replace-supers": "^7.18.6"
@@ -1469,7 +1410,6 @@
"version": "7.18.8",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
"integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1484,7 +1424,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
"integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1499,7 +1438,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
"integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"regenerator-transform": "^0.15.0"
@@ -1515,7 +1453,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
"integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1530,7 +1467,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
"integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
- "dev": true,
"dependencies": {
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -1550,7 +1486,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
"integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1565,7 +1500,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz",
"integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
@@ -1581,7 +1515,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
"integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6"
},
@@ -1596,7 +1529,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
"integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1611,7 +1543,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
"integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1626,7 +1557,6 @@
"version": "7.18.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz",
"integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==",
- "dev": true,
"dependencies": {
"@babel/helper-create-class-features-plugin": "^7.18.9",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -1643,7 +1573,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
"integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.9"
},
@@ -1658,7 +1587,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
"integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
- "dev": true,
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -1674,7 +1602,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz",
"integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
- "dev": true,
"dependencies": {
"@babel/compat-data": "^7.18.8",
"@babel/helper-compilation-targets": "^7.18.9",
@@ -1763,7 +1690,6 @@
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
"integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@@ -1779,7 +1705,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
"integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
- "dev": true,
"dependencies": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-validator-option": "^7.18.6",
@@ -1815,7 +1740,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
- "dev": true,
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -2192,6 +2116,7 @@
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "dev": true,
"dependencies": {
"@types/connect": "*",
"@types/node": "*"
@@ -2207,6 +2132,7 @@
"version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "dev": true,
"dependencies": {
"@types/node": "*"
}
@@ -2244,6 +2170,7 @@
"version": "4.17.13",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
"integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
+ "dev": true,
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.18",
@@ -2255,6 +2182,7 @@
"version": "4.17.30",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz",
"integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==",
+ "dev": true,
"dependencies": {
"@types/node": "*",
"@types/qs": "*",
@@ -2301,7 +2229,8 @@
"node_modules/@types/mime": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
+ "dev": true
},
"node_modules/@types/mocha": {
"version": "9.1.1",
@@ -2345,17 +2274,20 @@
"node_modules/@types/qs": {
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
+ "dev": true
},
"node_modules/@types/range-parser": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
+ "dev": true
},
"node_modules/@types/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "dev": true,
"dependencies": {
"@types/mime": "*",
"@types/node": "*"
@@ -2405,6 +2337,7 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.3.tgz",
"integrity": "sha512-jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==",
+ "dev": true,
"dependencies": {
"@types/express": "*",
"@types/serve-static": "*"
@@ -2434,6 +2367,7 @@
"resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.4.4.tgz",
"integrity": "sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==",
"deprecated": "This is a stub types definition. winston provides its own type definitions, so you do not need this installed.",
+ "dev": true,
"dependencies": {
"winston": "*"
}
@@ -2876,7 +2810,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
"integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dev": true,
"dependencies": {
"object.assign": "^4.1.0"
}
@@ -2885,7 +2818,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz",
"integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==",
- "dev": true,
"dependencies": {
"find-babel-config": "^1.2.0",
"glob": "^7.1.6",
@@ -2901,7 +2833,6 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
"integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
- "dev": true,
"dependencies": {
"@babel/compat-data": "^7.17.7",
"@babel/helper-define-polyfill-provider": "^0.3.2",
@@ -2915,7 +2846,6 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
"integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
- "dev": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.2",
"core-js-compat": "^3.21.0"
@@ -2928,7 +2858,6 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
"integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
- "dev": true,
"dependencies": {
"@babel/helper-define-polyfill-provider": "^0.3.2"
},
@@ -3520,7 +3449,6 @@
"version": "3.25.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz",
"integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
- "dev": true,
"dependencies": {
"browserslist": "^4.21.3",
"semver": "7.0.0"
@@ -3534,7 +3462,6 @@
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
"integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "dev": true,
"bin": {
"semver": "bin/semver.js"
}
@@ -4278,7 +4205,6 @@
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
"integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true,
"engines": {
"node": ">=0.10.0"
}
@@ -4561,7 +4487,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz",
"integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==",
- "dev": true,
"dependencies": {
"json5": "^0.5.1",
"path-exists": "^3.0.0"
@@ -4574,7 +4499,6 @@
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
"integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==",
- "dev": true,
"bin": {
"json5": "lib/cli.js"
}
@@ -4844,7 +4768,6 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -4921,6 +4844,11 @@
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
"dev": true
},
+ "node_modules/hangul-js": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/hangul-js/-/hangul-js-0.2.6.tgz",
+ "integrity": "sha512-48axU8LgjCD30FEs66Xc04/8knxMwCMQw0f67l67rlttW7VXT3qRJgQeHmhiuGwWXGvSbk6YM0fhQlcjE1JFQA=="
+ },
"node_modules/has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -5240,7 +5168,6 @@
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
"integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
"dependencies": {
"has": "^1.0.3"
},
@@ -5736,8 +5663,7 @@
"node_modules/lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
"node_modules/lodash.defaults": {
"version": "4.2.0",
@@ -6790,7 +6716,6 @@
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
"integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true,
"engines": {
"node": ">=6"
}
@@ -6828,7 +6753,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
"integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -6852,8 +6776,7 @@
"node_modules/path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"node_modules/path-to-regexp": {
"version": "0.1.7",
@@ -6985,7 +6908,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
- "dev": true,
"dependencies": {
"find-up": "^3.0.0"
},
@@ -6997,7 +6919,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
"dependencies": {
"locate-path": "^3.0.0"
},
@@ -7009,7 +6930,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
"dependencies": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -7022,7 +6942,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
"dependencies": {
"p-try": "^2.0.0"
},
@@ -7037,7 +6956,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
"dependencies": {
"p-limit": "^2.0.0"
},
@@ -7234,14 +7152,12 @@
"node_modules/regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
},
"node_modules/regenerate-unicode-properties": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
"integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
- "dev": true,
"dependencies": {
"regenerate": "^1.4.2"
},
@@ -7252,14 +7168,12 @@
"node_modules/regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/regenerator-transform": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
"integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
- "dev": true,
"dependencies": {
"@babel/runtime": "^7.8.4"
}
@@ -7296,7 +7210,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz",
"integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
- "dev": true,
"dependencies": {
"regenerate": "^1.4.2",
"regenerate-unicode-properties": "^10.0.1",
@@ -7312,14 +7225,12 @@
"node_modules/regjsgen": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
- "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
- "dev": true
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA=="
},
"node_modules/regjsparser": {
"version": "0.8.4",
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
"integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
- "dev": true,
"dependencies": {
"jsesc": "~0.5.0"
},
@@ -7331,7 +7242,6 @@
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
"integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true,
"bin": {
"jsesc": "bin/jsesc"
}
@@ -7348,14 +7258,12 @@
"node_modules/reselect": {
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
- "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==",
- "dev": true
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
},
"node_modules/resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
"dependencies": {
"is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
@@ -8104,7 +8012,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true,
"engines": {
"node": ">= 0.4"
},
@@ -8468,7 +8375,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
"integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -8477,7 +8383,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
"integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
"unicode-property-aliases-ecmascript": "^2.0.0"
@@ -8490,7 +8395,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
"integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -8499,7 +8403,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
"integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
- "dev": true,
"engines": {
"node": ">=4"
}
@@ -9125,7 +9028,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.9.tgz",
"integrity": "sha512-yFQ0YCHoIqarl8BCRwBL8ulYUaZpz3bNsA7oFepAzee+8/+ImtADXNOmO5vJvsPff3qi+hvpkY/NYBTrBQgdNw==",
- "dev": true,
"requires": {
"@babel/helper-explode-assignable-expression": "^7.18.6",
"@babel/types": "^7.18.9"
@@ -9162,7 +9064,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz",
"integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==",
- "dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"regexpu-core": "^5.1.0"
@@ -9172,7 +9073,6 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.2.tgz",
"integrity": "sha512-r9QJJ+uDWrd+94BSPcP6/de67ygLtvVy6cK4luE6MOuDsZIdoaPBnfSpbO/+LTifjPckbKXRuI9BB/Z2/y3iTg==",
- "dev": true,
"requires": {
"@babel/helper-compilation-targets": "^7.17.7",
"@babel/helper-plugin-utils": "^7.16.7",
@@ -9191,7 +9091,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz",
"integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==",
- "dev": true,
"requires": {
"@babel/types": "^7.18.6"
}
@@ -9261,7 +9160,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz",
"integrity": "sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==",
- "dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
@@ -9325,7 +9223,6 @@
"version": "7.18.11",
"resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.11.tgz",
"integrity": "sha512-oBUlbv+rjZLh2Ks9SKi4aL7eKaAXBWleHzU89mP0G6BMUlRxSckk9tSIkgDGydhgFxHuGSlBQZfnaD47oBEB7w==",
- "dev": true,
"requires": {
"@babel/helper-function-name": "^7.18.9",
"@babel/template": "^7.18.10",
@@ -9376,7 +9273,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz",
"integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9385,7 +9281,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz",
"integrity": "sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -9396,7 +9291,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.18.10.tgz",
"integrity": "sha512-1mFuY2TOsR1hxbjCo4QL+qlIjV07p4H4EUYw2J/WCqsvFV6V9X9z9YhXbWndc/4fw+hYGlDT7egYxliMp5O6Ew==",
- "dev": true,
"requires": {
"@babel/helper-environment-visitor": "^7.18.9",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -9408,7 +9302,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz",
"integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==",
- "dev": true,
"requires": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9418,7 +9311,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz",
"integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==",
- "dev": true,
"requires": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -9441,7 +9333,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz",
"integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
@@ -9451,7 +9342,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz",
"integrity": "sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
@@ -9461,7 +9351,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz",
"integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-json-strings": "^7.8.3"
@@ -9471,7 +9360,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz",
"integrity": "sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
@@ -9481,7 +9369,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz",
"integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
@@ -9491,7 +9378,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz",
"integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -9501,7 +9387,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.9.tgz",
"integrity": "sha512-kDDHQ5rflIeY5xl69CEqGEZ0KY369ehsCIEbTGb4siHG5BE9sga/T0r0OUwyZNLMmZE79E1kbsqAjwFCW4ds6Q==",
- "dev": true,
"requires": {
"@babel/compat-data": "^7.18.8",
"@babel/helper-compilation-targets": "^7.18.9",
@@ -9514,7 +9399,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz",
"integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@@ -9524,7 +9408,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz",
"integrity": "sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9",
@@ -9535,7 +9418,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz",
"integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==",
- "dev": true,
"requires": {
"@babel/helper-create-class-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9545,7 +9427,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz",
"integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==",
- "dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-create-class-features-plugin": "^7.18.6",
@@ -9557,7 +9438,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz",
"integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==",
- "dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9567,7 +9447,6 @@
"version": "7.8.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
"integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9576,7 +9455,6 @@
"version": "7.12.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
"integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.12.13"
}
@@ -9585,7 +9463,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
"integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
@@ -9602,7 +9479,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
"integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9611,7 +9487,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
"integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
}
@@ -9620,7 +9495,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz",
"integrity": "sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9629,7 +9503,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
"integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9638,7 +9511,6 @@
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
"integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
@@ -9647,7 +9519,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
"integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9656,7 +9527,6 @@
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
"integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
@@ -9665,7 +9535,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
"integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9674,7 +9543,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
"integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9683,7 +9551,6 @@
"version": "7.8.3",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
"integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
@@ -9692,7 +9559,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
"integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
@@ -9701,7 +9567,6 @@
"version": "7.14.5",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
"integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
@@ -9710,7 +9575,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.18.6.tgz",
"integrity": "sha512-mAWAuq4rvOepWCBid55JuRNvpTNf2UGVgoz4JV0fXEKolsVZDzsa4NqCef758WZJj/GDu0gVGItjKFiClTAmZA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9719,7 +9583,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz",
"integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9728,7 +9591,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz",
"integrity": "sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==",
- "dev": true,
"requires": {
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -9739,7 +9601,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz",
"integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9748,7 +9609,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.9.tgz",
"integrity": "sha512-5sDIJRV1KtQVEbt/EIBwGy4T01uYIo4KRB3VUqzkhrAIOGx7AoctL9+Ux88btY0zXdDyPJ9mW+bg+v+XEkGmtw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -9757,7 +9617,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.9.tgz",
"integrity": "sha512-EkRQxsxoytpTlKJmSPYrsOMjCILacAjtSVkd4gChEe2kXjFCun3yohhW5I7plXJhCemM0gKsaGMcO8tinvCA5g==",
- "dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.18.6",
"@babel/helper-environment-visitor": "^7.18.9",
@@ -9773,7 +9632,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz",
"integrity": "sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -9782,7 +9640,6 @@
"version": "7.18.13",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.13.tgz",
"integrity": "sha512-TodpQ29XekIsex2A+YJPj5ax2plkGa8YYY6mFjCohk/IG9IY42Rtuj1FuDeemfg2ipxIFLzPeA83SIBnlhSIow==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -9791,7 +9648,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz",
"integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==",
- "dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9801,7 +9657,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz",
"integrity": "sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -9810,7 +9665,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz",
"integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==",
- "dev": true,
"requires": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9820,7 +9674,6 @@
"version": "7.18.8",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz",
"integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9829,7 +9682,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz",
"integrity": "sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==",
- "dev": true,
"requires": {
"@babel/helper-compilation-targets": "^7.18.9",
"@babel/helper-function-name": "^7.18.9",
@@ -9840,7 +9692,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz",
"integrity": "sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -9849,7 +9700,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz",
"integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9858,7 +9708,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz",
"integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==",
- "dev": true,
"requires": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -9869,7 +9718,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz",
"integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==",
- "dev": true,
"requires": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6",
@@ -9881,7 +9729,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.9.tgz",
"integrity": "sha512-zY/VSIbbqtoRoJKo2cDTewL364jSlZGvn0LKOf9ntbfxOvjfmyrdtEEOAdswOswhZEb8UH3jDkCKHd1sPgsS0A==",
- "dev": true,
"requires": {
"@babel/helper-hoist-variables": "^7.18.6",
"@babel/helper-module-transforms": "^7.18.9",
@@ -9894,7 +9741,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz",
"integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==",
- "dev": true,
"requires": {
"@babel/helper-module-transforms": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9904,7 +9750,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz",
"integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==",
- "dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -9914,7 +9759,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz",
"integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9923,7 +9767,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz",
"integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-replace-supers": "^7.18.6"
@@ -9933,7 +9776,6 @@
"version": "7.18.8",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz",
"integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9942,7 +9784,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz",
"integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9951,7 +9792,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz",
"integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"regenerator-transform": "^0.15.0"
@@ -9961,7 +9801,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz",
"integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9970,7 +9809,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.10.tgz",
"integrity": "sha512-q5mMeYAdfEbpBAgzl7tBre/la3LeCxmDO1+wMXRdPWbcoMjR3GiXlCLk7JBZVVye0bqTGNMbt0yYVXX1B1jEWQ==",
- "dev": true,
"requires": {
"@babel/helper-module-imports": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -9984,7 +9822,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz",
"integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -9993,7 +9830,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.9.tgz",
"integrity": "sha512-39Q814wyoOPtIB/qGopNIL9xDChOE1pNU0ZY5dO0owhiVt/5kFm4li+/bBtwc7QotG0u5EPzqhZdjMtmqBqyQA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9",
"@babel/helper-skip-transparent-expression-wrappers": "^7.18.9"
@@ -10003,7 +9839,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz",
"integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6"
}
@@ -10012,7 +9847,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz",
"integrity": "sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -10021,7 +9855,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz",
"integrity": "sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -10030,7 +9863,6 @@
"version": "7.18.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-typescript/-/plugin-transform-typescript-7.18.12.tgz",
"integrity": "sha512-2vjjam0cum0miPkenUbQswKowuxs/NjMwIKEq0zwegRxXk12C9YOF9STXnaUptITOtOJHKHpzvvWYOjbm6tc0w==",
- "dev": true,
"requires": {
"@babel/helper-create-class-features-plugin": "^7.18.9",
"@babel/helper-plugin-utils": "^7.18.9",
@@ -10041,7 +9873,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz",
"integrity": "sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.9"
}
@@ -10050,7 +9881,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz",
"integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==",
- "dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.18.6",
"@babel/helper-plugin-utils": "^7.18.6"
@@ -10060,7 +9890,6 @@
"version": "7.18.10",
"resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.10.tgz",
"integrity": "sha512-wVxs1yjFdW3Z/XkNfXKoblxoHgbtUF7/l3PvvP4m02Qz9TZ6uZGxRVYjSQeR87oQmHco9zWitW5J82DJ7sCjvA==",
- "dev": true,
"requires": {
"@babel/compat-data": "^7.18.8",
"@babel/helper-compilation-targets": "^7.18.9",
@@ -10143,7 +9972,6 @@
"version": "0.1.5",
"resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
"integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@@ -10156,7 +9984,6 @@
"version": "7.18.6",
"resolved": "https://registry.npmjs.org/@babel/preset-typescript/-/preset-typescript-7.18.6.tgz",
"integrity": "sha512-s9ik86kXBAnD760aybBucdpnLsAt0jK1xqJn2juOn9lkOvSHV60os5hxoVJsPzMQxvnUJFAlkont2DvvaYEBtQ==",
- "dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.18.6",
"@babel/helper-validator-option": "^7.18.6",
@@ -10180,7 +10007,6 @@
"version": "7.18.9",
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.9.tgz",
"integrity": "sha512-lkqXDcvlFT5rvEjiu6+QYO+1GXrEHRo2LOtS7E4GtX5ESIZOgepqsZBVIj6Pv+a6zqsya9VCgiK1KAK4BvJDAw==",
- "dev": true,
"requires": {
"regenerator-runtime": "^0.13.4"
}
@@ -10499,6 +10325,7 @@
"version": "1.19.2",
"resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz",
"integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==",
+ "dev": true,
"requires": {
"@types/connect": "*",
"@types/node": "*"
@@ -10514,6 +10341,7 @@
"version": "3.4.35",
"resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz",
"integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==",
+ "dev": true,
"requires": {
"@types/node": "*"
}
@@ -10551,6 +10379,7 @@
"version": "4.17.13",
"resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz",
"integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==",
+ "dev": true,
"requires": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^4.17.18",
@@ -10562,6 +10391,7 @@
"version": "4.17.30",
"resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.30.tgz",
"integrity": "sha512-gstzbTWro2/nFed1WXtf+TtrpwxH7Ggs4RLYTLbeVgIkUQOI3WG/JKjgeOU1zXDvezllupjrf8OPIdvTbIaVOQ==",
+ "dev": true,
"requires": {
"@types/node": "*",
"@types/qs": "*",
@@ -10607,7 +10437,8 @@
"@types/mime": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/@types/mime/-/mime-3.0.1.tgz",
- "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA=="
+ "integrity": "sha512-Y4XFY5VJAuw0FgAqPNd6NNoV44jbq9Bz2L7Rh/J6jLTiHBSBJa9fxqQIvkIld4GsoDOcCbvzOUAbLPsSKKg+uA==",
+ "dev": true
},
"@types/mocha": {
"version": "9.1.1",
@@ -10651,17 +10482,20 @@
"@types/qs": {
"version": "6.9.7",
"resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz",
- "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
+ "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==",
+ "dev": true
},
"@types/range-parser": {
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz",
- "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
+ "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==",
+ "dev": true
},
"@types/serve-static": {
"version": "1.15.0",
"resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.15.0.tgz",
"integrity": "sha512-z5xyF6uh8CbjAu9760KDKsH2FcDxZ2tFCsA4HIMWE6IkiYMXfVoa+4f9KX+FN0ZLsaMw1WNG2ETLA6N+/YA+cg==",
+ "dev": true,
"requires": {
"@types/mime": "*",
"@types/node": "*"
@@ -10711,6 +10545,7 @@
"version": "4.1.3",
"resolved": "https://registry.npmjs.org/@types/swagger-ui-express/-/swagger-ui-express-4.1.3.tgz",
"integrity": "sha512-jqCjGU/tGEaqIplPy3WyQg+Nrp6y80DCFnDEAvVKWkJyv0VivSSDCChkppHRHAablvInZe6pijDFMnavtN0vqA==",
+ "dev": true,
"requires": {
"@types/express": "*",
"@types/serve-static": "*"
@@ -10739,6 +10574,7 @@
"version": "2.4.4",
"resolved": "https://registry.npmjs.org/@types/winston/-/winston-2.4.4.tgz",
"integrity": "sha512-BVGCztsypW8EYwJ+Hq+QNYiT/MUyCif0ouBH+flrY66O5W+KIXAMML6E/0fJpm7VjIzgangahl5S03bJJQGrZw==",
+ "dev": true,
"requires": {
"winston": "*"
}
@@ -11030,7 +10866,6 @@
"version": "2.3.3",
"resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
"integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
- "dev": true,
"requires": {
"object.assign": "^4.1.0"
}
@@ -11039,7 +10874,6 @@
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/babel-plugin-module-resolver/-/babel-plugin-module-resolver-4.1.0.tgz",
"integrity": "sha512-MlX10UDheRr3lb3P0WcaIdtCSRlxdQsB1sBqL7W0raF070bGl1HQQq5K3T2vf2XAYie+ww+5AKC/WrkjRO2knA==",
- "dev": true,
"requires": {
"find-babel-config": "^1.2.0",
"glob": "^7.1.6",
@@ -11052,7 +10886,6 @@
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.2.tgz",
"integrity": "sha512-LPnodUl3lS0/4wN3Rb+m+UK8s7lj2jcLRrjho4gLw+OJs+I4bvGXshINesY5xx/apM+biTnQ9reDI8yj+0M5+Q==",
- "dev": true,
"requires": {
"@babel/compat-data": "^7.17.7",
"@babel/helper-define-polyfill-provider": "^0.3.2",
@@ -11063,7 +10896,6 @@
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.3.tgz",
"integrity": "sha512-zKsXDh0XjnrUEW0mxIHLfjBfnXSMr5Q/goMe/fxpQnLm07mcOZiIZHBNWCMx60HmdvjxfXcalac0tfFg0wqxyw==",
- "dev": true,
"requires": {
"@babel/helper-define-polyfill-provider": "^0.3.2",
"core-js-compat": "^3.21.0"
@@ -11073,7 +10905,6 @@
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.0.tgz",
"integrity": "sha512-RW1cnryiADFeHmfLS+WW/G431p1PsW5qdRdz0SDRi7TKcUgc7Oh/uXkT7MZ/+tGsT1BkczEAmD5XjUyJ5SWDTw==",
- "dev": true,
"requires": {
"@babel/helper-define-polyfill-provider": "^0.3.2"
}
@@ -11513,7 +11344,6 @@
"version": "3.25.0",
"resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.25.0.tgz",
"integrity": "sha512-extKQM0g8/3GjFx9US12FAgx8KJawB7RCQ5y8ipYLbmfzEzmFRWdDjIlxDx82g7ygcNG85qMVUSRyABouELdow==",
- "dev": true,
"requires": {
"browserslist": "^4.21.3",
"semver": "7.0.0"
@@ -11522,8 +11352,7 @@
"semver": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
- "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
- "dev": true
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A=="
}
}
},
@@ -12091,8 +11920,7 @@
"esutils": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
- "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
- "dev": true
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="
},
"etag": {
"version": "1.8.1",
@@ -12331,7 +12159,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/find-babel-config/-/find-babel-config-1.2.0.tgz",
"integrity": "sha512-jB2CHJeqy6a820ssiqwrKMeyC6nNdmrcgkKWJWmpoxpE8RKciYJXCcXRq1h2AzCo5I5BJeN2tkGEO3hLTuePRA==",
- "dev": true,
"requires": {
"json5": "^0.5.1",
"path-exists": "^3.0.0"
@@ -12340,8 +12167,7 @@
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
- "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw==",
- "dev": true
+ "integrity": "sha512-4xrs1aW+6N5DalkqSVA8fxh458CXvR99WU8WLKmq4v8eWAL86Xo3BVqyd3SkA9wEVjCMqyvvRRkshAdOnBp5rw=="
}
}
},
@@ -12545,7 +12371,6 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
- "dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -12603,6 +12428,11 @@
"integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==",
"dev": true
},
+ "hangul-js": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/hangul-js/-/hangul-js-0.2.6.tgz",
+ "integrity": "sha512-48axU8LgjCD30FEs66Xc04/8knxMwCMQw0f67l67rlttW7VXT3qRJgQeHmhiuGwWXGvSbk6YM0fhQlcjE1JFQA=="
+ },
"has": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
@@ -12831,7 +12661,6 @@
"version": "2.10.0",
"resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz",
"integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==",
- "dev": true,
"requires": {
"has": "^1.0.3"
}
@@ -13182,8 +13011,7 @@
"lodash.debounce": {
"version": "4.0.8",
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
- "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
- "dev": true
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow=="
},
"lodash.defaults": {
"version": "4.2.0",
@@ -14014,8 +13842,7 @@
"p-try": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
- "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
- "dev": true
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"parent-module": {
"version": "1.0.1",
@@ -14040,8 +13867,7 @@
"path-exists": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
- "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
- "dev": true
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ=="
},
"path-is-absolute": {
"version": "1.0.1",
@@ -14056,8 +13882,7 @@
"path-parse": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
- "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
- "dev": true
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw=="
},
"path-to-regexp": {
"version": "0.1.7",
@@ -14155,7 +13980,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/pkg-up/-/pkg-up-3.1.0.tgz",
"integrity": "sha512-nDywThFk1i4BQK4twPQ6TA4RT8bDY96yeuCVBWL3ePARCiEKDRSrNGbFIgUJpLp+XeIR65v8ra7WuJOFUBtkMA==",
- "dev": true,
"requires": {
"find-up": "^3.0.0"
},
@@ -14164,7 +13988,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
"integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
- "dev": true,
"requires": {
"locate-path": "^3.0.0"
}
@@ -14173,7 +13996,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
"integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
- "dev": true,
"requires": {
"p-locate": "^3.0.0",
"path-exists": "^3.0.0"
@@ -14183,7 +14005,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
"integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
- "dev": true,
"requires": {
"p-try": "^2.0.0"
}
@@ -14192,7 +14013,6 @@
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
"integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
- "dev": true,
"requires": {
"p-limit": "^2.0.0"
}
@@ -14340,14 +14160,12 @@
"regenerate": {
"version": "1.4.2",
"resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
- "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
- "dev": true
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A=="
},
"regenerate-unicode-properties": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
"integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
- "dev": true,
"requires": {
"regenerate": "^1.4.2"
}
@@ -14355,14 +14173,12 @@
"regenerator-runtime": {
"version": "0.13.9",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
- "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==",
- "dev": true
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regenerator-transform": {
"version": "0.15.0",
"resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
"integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
- "dev": true,
"requires": {
"@babel/runtime": "^7.8.4"
}
@@ -14387,7 +14203,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz",
"integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==",
- "dev": true,
"requires": {
"regenerate": "^1.4.2",
"regenerate-unicode-properties": "^10.0.1",
@@ -14400,14 +14215,12 @@
"regjsgen": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
- "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
- "dev": true
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA=="
},
"regjsparser": {
"version": "0.8.4",
"resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
"integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
- "dev": true,
"requires": {
"jsesc": "~0.5.0"
},
@@ -14415,8 +14228,7 @@
"jsesc": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
- "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
- "dev": true
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA=="
}
}
},
@@ -14429,14 +14241,12 @@
"reselect": {
"version": "4.1.7",
"resolved": "https://registry.npmjs.org/reselect/-/reselect-4.1.7.tgz",
- "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A==",
- "dev": true
+ "integrity": "sha512-Zu1xbUt3/OPwsXL46hvOOoQrap2azE7ZQbokq61BQfiXvhewsKDwhMeZjTX9sX0nvw1t/U5Audyn1I9P/m9z0A=="
},
"resolve": {
"version": "1.22.1",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz",
"integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==",
- "dev": true,
"requires": {
"is-core-module": "^2.9.0",
"path-parse": "^1.0.7",
@@ -14979,8 +14789,7 @@
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
- "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
- "dev": true
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
},
"swagger-jsdoc": {
"version": "6.2.5",
@@ -15237,14 +15046,12 @@
"unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
- "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
- "dev": true
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ=="
},
"unicode-match-property-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
"integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
- "dev": true,
"requires": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
"unicode-property-aliases-ecmascript": "^2.0.0"
@@ -15253,14 +15060,12 @@
"unicode-match-property-value-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
- "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
- "dev": true
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw=="
},
"unicode-property-aliases-ecmascript": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
- "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
- "dev": true
+ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ=="
},
"universalify": {
"version": "2.0.0",
diff --git a/package.json b/package.json
index 75b461c8..983048ca 100644
--- a/package.json
+++ b/package.json
@@ -23,11 +23,15 @@
"license": "GNU",
"private": true,
"dependencies": {
+ "@babel/plugin-proposal-class-properties": "^7.16.7",
"@babel/plugin-proposal-decorators": "^7.22.3",
+ "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
+ "@babel/plugin-transform-runtime": "^7.17.0",
+ "@babel/preset-env": "^7.16.11",
+ "@babel/preset-typescript": "^7.16.7",
"@opensearch-project/opensearch": "^1.2.0",
- "@types/swagger-ui-express": "^4.1.3",
- "@types/winston": "^2.4.4",
"aws-sdk": "^2.1101.0",
+ "babel-plugin-module-resolver": "^4.1.0",
"body-parser": "^1.20.1",
"chai": "^4.3.6",
"connect": "^3.7.0",
@@ -37,6 +41,7 @@
"discord-webhook-node": "^1.1.8",
"dotenv": "^16.0.0",
"express": "^4.17.3",
+ "hangul-js": "^0.2.6",
"ioredis": "^5.2.4",
"js-yaml": "^4.1.0",
"jsonwebtoken": "^9.0.0",
@@ -57,11 +62,6 @@
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.8",
"@babel/node": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.17.3",
- "@babel/plugin-transform-runtime": "^7.17.0",
- "@babel/preset-env": "^7.16.11",
- "@babel/preset-typescript": "^7.16.7",
"@types/aws-sdk": "^2.7.0",
"@types/chai": "^4.3.0",
"@types/cookie-parser": "^1.4.2",
@@ -78,10 +78,11 @@
"@types/sinon": "^10.0.15",
"@types/supertest": "^2.0.12",
"@types/swagger-jsdoc": "^6.0.1",
+ "@types/swagger-ui-express": "^4.1.3",
"@types/validator": "^13.7.17",
+ "@types/winston": "^2.4.4",
"@typescript-eslint/eslint-plugin": "^5.16.0",
"@typescript-eslint/parser": "^5.16.0",
- "babel-plugin-module-resolver": "^4.1.0",
"eslint": "^8.12.0",
"mocha": "^10.2.0",
"nodemon": "^2.0.22",
diff --git a/script/prebuild.sh b/script/prebuild.sh
index 3a8a83a9..f2bc5326 100755
--- a/script/prebuild.sh
+++ b/script/prebuild.sh
@@ -1,7 +1,18 @@
#!/bin/bash
+# 에러 핸들링 추가
+set -e
+
+# ecosystem.json 파일이 존재하면 pm2로 실행 중인 프로세스 중지
if [[ -f "ecosystem.json" ]]; then
- pm2 stop ecosystem.json
+ pm2 stop ecosystem.json || true
fi
-npm ci
\ No newline at end of file
+# 종속성 설치
+npm ci || exit 1
+
+# 프로젝트 빌드
+npm run build || exit 1
+
+# Exit code를 출력하여 스크립트가 성공적으로 실행되었는지 확인
+echo $?
\ No newline at end of file
diff --git a/script/reload.sh b/script/reload.sh
index c8af0c4a..beb6b5b3 100755
--- a/script/reload.sh
+++ b/script/reload.sh
@@ -1,6 +1,9 @@
-#!/bin/sh
+#!/bin/bash
-pm2 stop ecosystem.json
-npm run build
-pm2 restart ecosystem.json
-echo $?
+# 에러 핸들링 추가
+set -e
+
+# ecosystem.json 사용하여 pm2로 프로세스 재시작
+if [[ -f "ecosystem.json" ]]; then
+ pm2 restart ecosystem.json || exit 1
+fi
\ No newline at end of file
diff --git a/src/controllers/Admin.ts b/src/controllers/Admin.ts
index b82496ee..bf99f774 100644
--- a/src/controllers/Admin.ts
+++ b/src/controllers/Admin.ts
@@ -1,19 +1,21 @@
import IngredientService from '@services/IngredientService';
import { AdminService } from '@src/service/AdminService';
import PerfumeService from '@src/service/PerfumeService';
+import BrandService from '@src/service/BrandService';
import StatusCode from '@src/utils/statusCode';
import {
MSG_EXIST_DUPLICATE_ENTRY,
MSG_GET_ADDED_PERFUME_RECENT_SUCCESS,
+ MSG_GET_BRAND_ALL_SUCCESS,
MSG_GET_PERFUME_DETAIL_SUCCESS,
MSG_GET_SEARCH_INGREDIENT_SUCCESS,
MSG_LOGIN_SUCCESS,
} from '@src/utils/strings';
import { NextFunction, Request, RequestHandler, Response } from 'express';
import {
+ BrandFullResponse,
IngredientCategoryResponse,
IngredientFullResponse,
- // IngredientResponse,
LoginResponse,
PerfumeDetailResponse,
PerfumeResponse,
@@ -23,13 +25,13 @@ import {
import { ListAndCountDTO } from '@src/data/dto';
import IngredientCategoryService from '@src/service/IngredientCategoryService';
import { DuplicatedEntryError } from '@src/utils/errors/errors';
-
+import * as Hangul from 'hangul-js';
let Admin: AdminService = new AdminService();
let Perfume: PerfumeService = new PerfumeService();
let Ingredient: IngredientService = new IngredientService();
let IngredientCategory: IngredientCategoryService =
new IngredientCategoryService();
-
+let Brand: BrandService = new BrandService();
/**
* @swagger
* /admin/login:
@@ -437,3 +439,235 @@ export const createIngredientCategory: RequestHandler = async (
}
}
};
+
+/**
+ * @swagger
+ * /admin/perfumes:
+ * post:
+ * tags:
+ * - admin
+ * summary: 향수 추가
+ * description: 향수 추가
+ * operationId: createPerfume
+ * consumes:
+ * - application/json
+ * produces:
+ * - application/json
+ * parameters:
+ * - name: body
+ * in: body
+ * required: true
+ * schema:
+ * $ref: '#/definitions/PerfumeInput'
+ * name:
+ * type: string
+ * elgishName:
+ * type: string
+ * Brand:
+ * type: object
+ * abundanceRate:
+ * type: number
+ * Notes:
+ * type: object
+ * imageUrl:
+ * type: string
+ * responses:
+ * 200:
+ * description: success
+ * schema:
+ * type: object
+ * properties:
+ * message:
+ * type: string
+ * 400:
+ * description: 요청 실패
+ * 409:
+ * description: 같은 이름의 카테고리가 존재할 때
+ * schema:
+ * type: object
+ * x-swagger-router-controll er: Admin
+ * definitions:
+ * Brand:
+ * type: object
+ * properties:
+ * brandIdx:
+ * type: integer
+ * name:
+ * type: string
+ * Note:
+ * type: object
+ * properties:
+ * perfumeIdx:
+ * type: integer
+ * ingredientIdx:
+ * type: integer
+ * type:
+ *
+ */
+export const createPerfume: RequestHandler = async (
+ req: Request,
+ res: Response
+) => {
+ const { name } = req.body;
+ try {
+ await IngredientCategory.create(name);
+ res.status(StatusCode.OK).json({
+ message: '성공',
+ });
+ } catch (e: any) {
+ if (e instanceof DuplicatedEntryError) {
+ res.status(StatusCode.CONFLICT).json(
+ new ResponseDTO(MSG_EXIST_DUPLICATE_ENTRY, false)
+ );
+ } else {
+ res.status(StatusCode.BAD_REQUEST).json(
+ new SimpleResponseDTO(e.message)
+ );
+ }
+ }
+};
+
+/**
+ *
+ * @swagger
+ * /admin/brands:
+ * get:
+ * tags:
+ * - admin
+ * summary: 브랜드 목록 조회
+ * description: 브랜드 리스트 조회
반환 되는 정보 [재료]
+ * operationId: getBrandAll
+ * produces:
+ * - application/json
+ * parameters:
+ * - name: page
+ * in: query
+ * required: true
+ * type: integer
+ * format: int64
+ * - name: target
+ * in: query
+ * required: false
+ * type: string
+ * enum:
+ * - id
+ * - name
+ * - englishName
+ * - name: keyword
+ * in: query
+ * required: false
+ * type: string
+ * responses:
+ * 200:
+ * description: 성공
+ * schema:
+ * type: object
+ * properties:
+ * message:
+ * type: string
+ * example: brand 목록 조회 성공
+ * data:
+ * type: object
+ * properties:
+ * count:
+ * type: integer
+ * example: 1
+ * rows:
+ * type: array
+ * items:
+ * allOf:
+ * - $ref: '#/definitions/BrandResponse'
+ * 401:
+ * description: Token is missing or invalid
+ * x-swagger-router-controller: Admin
+ */
+
+export const getBrandAll: RequestHandler = async (
+ req: Request,
+ res: Response,
+ next: NextFunction
+) => {
+ const page: number = Number(req.query.page);
+ if (isNaN(page)) {
+ next();
+ return;
+ }
+ const limit = 20;
+ const offset = (page - 1) * limit;
+ const brands = await Brand.readPage(offset, limit, req.query);
+
+ res.status(StatusCode.OK).json(
+ new ResponseDTO>(
+ MSG_GET_BRAND_ALL_SUCCESS,
+ brands.convertType(BrandFullResponse.createByJson)
+ )
+ );
+};
+
+/**
+ * @swagger
+ * /admin/brand:
+ * post:
+ * tags:
+ * - admin
+ * summary: 브랜드 추가
+ * description: 브랜드 추가
+ * operationId: createBrand
+ * consumes:
+ * - application/json
+ * produces:
+ * - application/json
+ * parameters:
+ * - name: body
+ * in: body
+ * required: true
+ * schema:
+ * type: object
+ * properties:
+ * name:
+ * type: string
+ * englishName:
+ * type: string
+ * description:
+ * type: string
+ * responses:
+ * 200:
+ * description: success
+ * schema:
+ * type: object
+ * properties:
+ * message:
+ * type: string
+ * example: 성공
+ * 400:
+ * description: 요청 실패
+ * 409:
+ * description: 같은 이름의 브랜드가 존재할 때
+ * schema:
+ * type: object
+ * x-swagger-router-controller: Admin
+ *
+ */
+export const createBrand: RequestHandler = async (
+ req: Request,
+ res: Response
+) => {
+ const { name, englishName, description } = req.body;
+ try {
+ const firstInitail = Hangul.disassemble(name)[0];
+ await Brand.create(name, englishName, description, firstInitail);
+ res.status(StatusCode.OK).json({
+ message: '성공',
+ });
+ } catch (e: any) {
+ if (e instanceof DuplicatedEntryError) {
+ res.status(StatusCode.CONFLICT).json(
+ new ResponseDTO(MSG_EXIST_DUPLICATE_ENTRY, false)
+ );
+ } else {
+ res.status(StatusCode.BAD_REQUEST).json(
+ new SimpleResponseDTO(e.message)
+ );
+ }
+ }
+};
diff --git a/src/controllers/System.ts b/src/controllers/System.ts
index f7efb7f1..6e836d3b 100644
--- a/src/controllers/System.ts
+++ b/src/controllers/System.ts
@@ -133,8 +133,8 @@ interface IVersionChecker {
class VersionCheckerAndroid implements IVersionChecker {
// TODO: prevVersion, latestVersion을 삭제하고 minimumVersion으로 변경
// 유연한 변경을 위해서 코드 레벨이 아닌 환경 변수 주입으로 변경 필요
- prevVersion: Version = new Version(1, 4, 0);
- latestVersion: Version = new Version(1, 4, 1);
+ prevVersion: Version = new Version(1, 5, 2);
+ latestVersion: Version = new Version(1, 5, 2);
isSupportVersion(apkVersion: string): Boolean {
const version: Version = Version.create(apkVersion);
diff --git a/src/controllers/definitions/response/brand.ts b/src/controllers/definitions/response/brand.ts
index 0d017d8e..ef8ed3a0 100644
--- a/src/controllers/definitions/response/brand.ts
+++ b/src/controllers/definitions/response/brand.ts
@@ -68,4 +68,68 @@ class BrandFilterResponse {
}
}
-export { BrandResponse, BrandFilterResponse };
+/**
+ * @swagger
+ * definitions:
+ * BrandFullResponse:
+ * type: object
+ * properties:
+ * brand_idx:
+ * type: number
+ * name:
+ * type: string
+ * englishName:
+ * type: string
+ * description:
+ * type: string
+ * firstInitial:
+ * type: string
+ * example:
+ * brand_idx: 1
+ * name: (테스트)조말론
+ * englishName: jo malone
+ * description: 설명
+ * firstInitial: ㅈ
+ * */
+class BrandFullResponse {
+ readonly brandIdx: number;
+ readonly name: string;
+ readonly englishName: string;
+ readonly description: string;
+ readonly firstInitial: string;
+ constructor(
+ brandIdx: number,
+ name: string,
+ englishName: string,
+ description: string,
+ firstInitial: string
+ ) {
+ this.brandIdx = brandIdx;
+ this.name = name;
+ this.englishName = englishName;
+ this.description = description;
+ this.firstInitial = firstInitial;
+ }
+
+ public toString(): string {
+ return `${this.constructor.name} (${JSON.stringify(this)})`;
+ }
+
+ static createByJson(json: {
+ brandIdx: number;
+ name: string;
+ englishName: string;
+ description: string;
+ firstInitial: string;
+ }): BrandFullResponse {
+ return new BrandFullResponse(
+ json.brandIdx,
+ json.name,
+ json.englishName,
+ json.description,
+ json.firstInitial
+ );
+ }
+}
+
+export { BrandResponse, BrandFilterResponse, BrandFullResponse };
diff --git a/src/dao/BrandDao.ts b/src/dao/BrandDao.ts
index a8966e58..3746f3fa 100644
--- a/src/dao/BrandDao.ts
+++ b/src/dao/BrandDao.ts
@@ -4,7 +4,7 @@ import { NotMatchedError } from '@errors';
import { BrandDTO, PagingDTO, ListAndCountDTO } from '@dto/index';
import { Brand } from '@sequelize';
-
+import { WhereOptions } from 'sequelize';
const LOG_TAG: string = '[Brand/DAO]';
class BrandDao {
@@ -50,6 +50,37 @@ class BrandDao {
);
});
}
+
+ /**
+ * 브랜드 전체 조회
+ *
+ * @returns {Promise}
+ */
+ async readPage(offset: number, limit: number, where?: WhereOptions) {
+ logger.debug(`${LOG_TAG} readAll()`);
+ return Brand.findAndCountAll({
+ offset,
+ limit,
+ where,
+ raw: true,
+ nest: true,
+ order: [['createdAt', 'desc']],
+ });
+ }
+
+ async create(
+ name: string,
+ englishName: string,
+ description: string,
+ firstInitial: string
+ ) {
+ return Brand.create({
+ name,
+ englishName,
+ description,
+ firstInitial,
+ });
+ }
}
export default BrandDao;
diff --git a/src/models/tables/Brand.ts b/src/models/tables/Brand.ts
index 1c95cd67..49848bbf 100644
--- a/src/models/tables/Brand.ts
+++ b/src/models/tables/Brand.ts
@@ -38,6 +38,7 @@ export class Brand extends Model {
@Column({
type: DataType.STRING,
allowNull: false,
+ defaultValue: '',
})
imageUrl: string;
diff --git a/src/service/BrandService.ts b/src/service/BrandService.ts
index ee016c6b..284e0f96 100644
--- a/src/service/BrandService.ts
+++ b/src/service/BrandService.ts
@@ -1,6 +1,7 @@
import { logger } from '@modules/winston';
import BrandDao from '@dao/BrandDao';
+import { Op } from 'sequelize';
import {
BrandFilterDTO,
@@ -8,6 +9,10 @@ import {
BrandDTO,
PagingDTO,
} from '@dto/index';
+import {
+ DuplicatedEntryError,
+ FailedToCreateError,
+} from '@src/utils/errors/errors';
const LOG_TAG: string = '[Brand/Service]';
@@ -50,6 +55,56 @@ class BrandService {
});
});
}
+
+ async readPage(offset: number, limit: number, query: any) {
+ const { target, keyword } = query;
+ const whereOptions = {} as any;
+ if (target && keyword) {
+ switch (target) {
+ case 'id':
+ whereOptions.brandIdx = keyword;
+ break;
+ case 'name':
+ whereOptions.name = { [Op.startsWith]: keyword };
+ break;
+ case 'englishName':
+ whereOptions.englishName = { [Op.startsWith]: keyword };
+ break;
+ }
+ }
+
+ const { rows, count } = await this.brandDao.readPage(
+ offset,
+ limit,
+ whereOptions
+ );
+ const list = rows.map((brand) => BrandDTO.createByJson(brand));
+ return new ListAndCountDTO(count, list);
+ }
+
+ async create(
+ name: string,
+ englishName: string,
+ description: string,
+ firstInitial: string
+ ) {
+ try {
+ return await this.brandDao.create(
+ name,
+ englishName,
+ description,
+ firstInitial
+ );
+ } catch (err: Error | any) {
+ if (
+ err.original.code === 'ER_DUP_ENTRY' ||
+ err.parent.errno === 1062
+ ) {
+ throw new DuplicatedEntryError();
+ }
+ throw new FailedToCreateError();
+ }
+ }
}
export default BrandService;
diff --git a/src/service/IngredientCategoryService.ts b/src/service/IngredientCategoryService.ts
index fca9ae05..ffaa7d13 100644
--- a/src/service/IngredientCategoryService.ts
+++ b/src/service/IngredientCategoryService.ts
@@ -48,6 +48,7 @@ class IngredientCategoryService {
if (err.parent.errno === 1062) {
throw new DuplicatedEntryError();
}
+
throw new FailedToCreateError();
}
}