From 83227f18a78812b6d6af3c4d148bcea22c51ac07 Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 13:54:11 +0200 Subject: [PATCH 01/21] [TU-13737] Add SonarCloud test coverage configuration --- .github/workflows/pr.yml | 42 ++++++++++++++++++++++++++++++++++++++-- sonar-project.properties | 18 +++++++++++++++++ 2 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 sonar-project.properties diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 76a96ec..595e123 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -44,7 +44,45 @@ jobs: run: yarn lint - name: Unit tests - run: yarn test:unit + run: yarn test:unit --coverage - name: Integration tests - run: (yarn server &) && sleep 1 && yarn test:integration + run: (yarn server &) && sleep 1 && yarn test:integration --coverage + + - name: Merge coverage reports and generate lcov.info + run: npx nyc merge ./coverage && npx nyc report --reporter=lcov + + - name: Upload coverage file + uses: actions/upload-artifact@v4 + with: + name: coverage-report + path: ./coverage/lcov.info + retention-days: 1 + + sonarcloud: + name: Test and Code Quality Report (SonarCloud) + needs: + - build-lint-test + runs-on: ubuntu-latest + steps: + - name: Check out Git repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Download coverage file + uses: actions/download-artifact@v4 + with: + name: coverage-report + + - name: Verify coverage file download + run: find . | grep lcov.info + + - name: SonarCloud Scan + uses: SonarSource/sonarcloud-github-action@v2 + with: + args: > + -Dsonar.projectVersion=${{ github.run_id }} + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_CLOUD_TOKEN }} diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..8418117 --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,18 @@ +sonar.projectKey=Typeform_js-api-client +sonar.organization=typeform +sonar.projectVersion=dev + +# Define the main source and test directories +sonar.sources=src +sonar.tests=tests + +# Exclude specific files or directories from analysis +sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts +sonar.test.exclusions=node_modules/**,dist/** + +# Specify the location of the coverage report +sonar.javascript.lcov.reportPaths=coverage/lcov.info + +# Additional configurations for TypeScript if needed +sonar.typescript.lcov.reportPaths=coverage/lcov.info +sonar.test.inclusions=**/*.spec.ts,**/*.test.ts From b9525d3cf11c861e480098855d6ff744583a41e9 Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 14:00:14 +0200 Subject: [PATCH 02/21] [TU-13737] fix ci --- .github/workflows/pr.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 595e123..d42e05c 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -50,7 +50,10 @@ jobs: run: (yarn server &) && sleep 1 && yarn test:integration --coverage - name: Merge coverage reports and generate lcov.info - run: npx nyc merge ./coverage && npx nyc report --reporter=lcov + run: | + mkdir -p .nyc_output + npx nyc merge ./coverage + npx nyc report --reporter=lcov - name: Upload coverage file uses: actions/upload-artifact@v4 From f2bf1987838fecdabaa9f77265ec6e6acaf5bb78 Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 15:38:22 +0200 Subject: [PATCH 03/21] [TU-13737] fix ci p2 --- .github/workflows/pr.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index d42e05c..466c208 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -57,6 +57,7 @@ jobs: - name: Upload coverage file uses: actions/upload-artifact@v4 + continue-on-error: true with: name: coverage-report path: ./coverage/lcov.info From 4da80476e17222268f813edcb5acdfe511ce14dc Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 15:55:41 +0200 Subject: [PATCH 04/21] [TU-13737] reformat webhooks.ts --- src/webhooks.ts | 161 ++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/src/webhooks.ts b/src/webhooks.ts index 96dbec3..d90fa8c 100644 --- a/src/webhooks.ts +++ b/src/webhooks.ts @@ -1,99 +1,100 @@ -import { Typeform } from './typeform-types' +import {Typeform} from './typeform-types' export class Webhooks { - constructor(private _http: Typeform.HTTPClient) {} + constructor(private _http: Typeform.HTTPClient) { + } - public create(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + public create(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } - public delete(args: { uid: string; tag: string }): Promise { - const { uid, tag } = args + public delete(args: { uid: string; tag: string }): Promise { + const {uid, tag} = args - return this._http.request({ - method: 'delete', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + return this._http.request({ + method: 'delete', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - public get(args: { uid: string; tag: string }): Promise { - const { uid, tag } = args + public get(args: { uid: string; tag: string }): Promise { + const {uid, tag} = args - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - public list(args: { uid: string }): Promise { - const { uid } = args + public list(args: { uid: string }): Promise { + const {uid} = args - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks`, - }) - } - - public toggle (args: { uid: string, tag: string, enabled: boolean }): Promise { - const { uid, tag, enabled } = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks`, + }) + } - return this._http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - enabled - } - }) - } + public toggle(args: { uid: string, tag: string, enabled: boolean }): Promise { + const {uid, tag, enabled} = args + + return this._http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + enabled + } + }) + } - update(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + update(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } } const createOrUpdateWebhook = ( - http: Typeform.HTTPClient, - args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - } + http: Typeform.HTTPClient, + args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + } ): Promise => { - const { uid, tag, url, enabled = false, secret, verifySSL } = args + const {uid, tag, url, enabled = false, secret, verifySSL} = args - if (!url) { - throw new Error(`Please provide an url for ${tag}`) - } + if (!url) { + throw new Error(`Please provide an url for ${tag}`) + } - if (!tag) { - throw new Error(`Please provide a tag name for the webhook`) - } + if (!tag) { + throw new Error(`Please provide a tag name for the webhook`) + } - return http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - url, - enabled, - secret, - verify_ssl: verifySSL ? true : undefined, - }, - }) + return http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + url, + enabled, + secret, + verify_ssl: verifySSL ? true : undefined, + }, + }) } From 50703f13143918051c5709b9a50598f3dd2af8ab Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 16:10:12 +0200 Subject: [PATCH 05/21] [TU-13737] fix ci p3 --- .github/workflows/pr.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 466c208..65df135 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -53,7 +53,7 @@ jobs: run: | mkdir -p .nyc_output npx nyc merge ./coverage - npx nyc report --reporter=lcov + npx nyc report --reporter=lcov --temp-dir ./coverage - name: Upload coverage file uses: actions/upload-artifact@v4 From 88c44a80ba73ae09c95eb65d293aced65a728701 Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 16:25:58 +0200 Subject: [PATCH 06/21] [TU-13737] fix ci p4 --- .nycrc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .nycrc diff --git a/.nycrc b/.nycrc new file mode 100644 index 0000000..1c31b1c --- /dev/null +++ b/.nycrc @@ -0,0 +1,22 @@ +{ + "extends": "@istanbuljs/nyc-config-typescript", + "all": true, + "include": [ + "src/**/*.ts" + ], + "exclude": [ + "**/*.d.ts", + "**/tests/**", + "**/node_modules/**" + ], + "reporter": [ + "lcov", + "text-summary" + ], + "report-dir": "./coverage", + "check-coverage": true, + "statements": 80, + "branches": 70, + "functions": 75, + "lines": 80 +} From 1b96311fdfb7e19355748cf40fb225c22dc4ab12 Mon Sep 17 00:00:00 2001 From: vrybas Date: Mon, 22 Jul 2024 16:40:37 +0200 Subject: [PATCH 07/21] [TU-13737] add nyc --- .gitignore | 1 + package.json | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 0e0a07a..fe7d36b 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ yarn-error.log .idea/ params.js params.json +coverage* diff --git a/package.json b/package.json index 9538f99..6c216be 100644 --- a/package.json +++ b/package.json @@ -75,6 +75,7 @@ "json-server": "^0.15.1", "lint-staged": "^13.2.2", "nodemon": "^1.19.2", + "nyc": "^17.0.0", "prettier": "^2.8.8", "rollup": "^1.21.2", "rollup-plugin-commonjs": "^10.1.0", From 1cb3569ce5ef21d7e1716ae6788b166bc4d1e58d Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 07:26:57 +0200 Subject: [PATCH 08/21] [TU-13737] add nyc-config-typescript --- .nycrc | 6 +----- package.json | 1 + 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/.nycrc b/.nycrc index 1c31b1c..e056659 100644 --- a/.nycrc +++ b/.nycrc @@ -14,9 +14,5 @@ "text-summary" ], "report-dir": "./coverage", - "check-coverage": true, - "statements": 80, - "branches": 70, - "functions": 75, - "lines": 80 + "check-coverage": false } diff --git a/package.json b/package.json index 6c216be..809f6e2 100644 --- a/package.json +++ b/package.json @@ -61,6 +61,7 @@ "devDependencies": { "@commitlint/cli": "^8.1.0", "@commitlint/config-conventional": "^8.1.0", + "@istanbuljs/nyc-config-typescript": "^1.0.2", "@semantic-release/commit-analyzer": "^11.1.0", "@semantic-release/exec": "^6.0.3", "@semantic-release/github": "^9.2.4", From b9e6cc0675ff35802e225b510a9c8136cb69beb4 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 07:32:41 +0200 Subject: [PATCH 09/21] [TU-13737] update yarn.lock --- yarn.lock | 511 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 504 insertions(+), 7 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5ede079..bbf691f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -30,11 +30,24 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" +"@babel/code-frame@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.24.7.tgz#882fd9e09e8ee324e496bd040401c6f046ef4465" + integrity sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA== + dependencies: + "@babel/highlight" "^7.24.7" + picocolors "^1.0.0" + "@babel/compat-data@^7.22.20", "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.22.9": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.22.20.tgz#8df6e96661209623f1975d66c35ffca66f3306d0" integrity sha512-BQYjKbpXjoXwFW5jGqiizJQQT/aC7pFm9Ok1OWssonuguICi264lbgMzRp2ZMmRSlfkX6DsWDDcsrctK8Rwfiw== +"@babel/compat-data@^7.24.8": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.24.9.tgz#53eee4e68f1c1d0282aa0eb05ddb02d033fc43a0" + integrity sha512-e701mcfApCJqMMueQI0Fb68Amflj83+dvAvHawoBpAz+GDjCIyGHzNwnefjsWJ3xiYAqqiQFoWbspGYBdb2/ng== + "@babel/core@^7.11.6", "@babel/core@^7.12.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" @@ -77,6 +90,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@^7.23.9": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.24.9.tgz#dc07c9d307162c97fa9484ea997ade65841c7c82" + integrity sha512-5e3FI4Q3M3Pbr21+5xJwCv6ZT6KmGkI0vw3Tozy5ODAQFTIWe37iT8Cr7Ice2Ntb+M3iSKCEWMB1MBgKrW3whg== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.9" + "@babel/helper-compilation-targets" "^7.24.8" + "@babel/helper-module-transforms" "^7.24.9" + "@babel/helpers" "^7.24.8" + "@babel/parser" "^7.24.8" + "@babel/template" "^7.24.7" + "@babel/traverse" "^7.24.8" + "@babel/types" "^7.24.9" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/eslint-parser@^7.16.3": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.22.15.tgz#263f059c476e29ca4972481a17b8b660cb025a34" @@ -106,6 +140,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.24.8", "@babel/generator@^7.24.9": + version "7.24.10" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.24.10.tgz#a4ab681ec2a78bbb9ba22a3941195e28a81d8e76" + integrity sha512-o9HBZL1G2129luEUlG1hB4N/nlYNWHnpwlND9eOMclRqqu1YDy2sSYVCFUZwl8I1Gxh+QSRrP2vD7EpUmFVXxg== + dependencies: + "@babel/types" "^7.24.9" + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.25" + jsesc "^2.5.1" + "@babel/helper-annotate-as-pure@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.22.5.tgz#e7f06737b197d580a01edf75d97e2c8be99d3882" @@ -131,6 +175,17 @@ lru-cache "^5.1.1" semver "^6.3.1" +"@babel/helper-compilation-targets@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.24.8.tgz#b607c3161cd9d1744977d4f97139572fe778c271" + integrity sha512-oU+UoqCHdp+nWVDkpldqIQL/i/bvAv53tRqLG/s+cOXxe66zOYLU7ar/Xs3LdmBihrUMEUhwu6dMZwbNOYDwvw== + dependencies: + "@babel/compat-data" "^7.24.8" + "@babel/helper-validator-option" "^7.24.8" + browserslist "^4.23.1" + lru-cache "^5.1.1" + semver "^6.3.1" + "@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.22.11", "@babel/helper-create-class-features-plugin@^7.22.15", "@babel/helper-create-class-features-plugin@^7.22.5": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.22.15.tgz#97a61b385e57fe458496fad19f8e63b63c867de4" @@ -171,6 +226,13 @@ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== +"@babel/helper-environment-visitor@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.24.7.tgz#4b31ba9551d1f90781ba83491dd59cf9b269f7d9" + integrity sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-function-name@^7.22.5", "@babel/helper-function-name@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz#1f9a3cdbd5b2698a670c30d2735f9af95ed52759" @@ -179,6 +241,14 @@ "@babel/template" "^7.22.15" "@babel/types" "^7.23.0" +"@babel/helper-function-name@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.24.7.tgz#75f1e1725742f39ac6584ee0b16d94513da38dd2" + integrity sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-hoist-variables@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz#c01a007dac05c085914e8fb652b339db50d823bb" @@ -186,6 +256,13 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-hoist-variables@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.24.7.tgz#b4ede1cde2fd89436397f30dc9376ee06b0f25ee" + integrity sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-member-expression-to-functions@^7.22.15": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.23.0.tgz#9263e88cc5e41d39ec18c9a3e0eced59a3e7d366" @@ -200,6 +277,14 @@ dependencies: "@babel/types" "^7.22.15" +"@babel/helper-module-imports@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.24.7.tgz#f2f980392de5b84c3328fc71d38bd81bbb83042b" + integrity sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-module-transforms@^7.22.5", "@babel/helper-module-transforms@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.0.tgz#3ec246457f6c842c0aee62a01f60739906f7047e" @@ -222,6 +307,17 @@ "@babel/helper-split-export-declaration" "^7.22.6" "@babel/helper-validator-identifier" "^7.22.20" +"@babel/helper-module-transforms@^7.24.9": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.24.9.tgz#e13d26306b89eea569180868e652e7f514de9d29" + integrity sha512-oYbh+rtFKj/HwBQkFlUzvcybzklmVdVV3UU+mN7n2t/q3yGHbuVdNxyFvSBO1tfvjyArpHNcWMAzsSPdyI46hw== + dependencies: + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-module-imports" "^7.24.7" + "@babel/helper-simple-access" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/helper-validator-identifier" "^7.24.7" + "@babel/helper-optimise-call-expression@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.22.5.tgz#f21531a9ccbff644fdd156b4077c16ff0c3f609e" @@ -264,6 +360,14 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-simple-access@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.24.7.tgz#bcade8da3aec8ed16b9c4953b74e506b51b5edb3" + integrity sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg== + dependencies: + "@babel/traverse" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/helper-skip-transparent-expression-wrappers@^7.20.0", "@babel/helper-skip-transparent-expression-wrappers@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.22.5.tgz#007f15240b5751c537c40e77abb4e89eeaaa8847" @@ -278,21 +382,43 @@ dependencies: "@babel/types" "^7.22.5" +"@babel/helper-split-export-declaration@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.24.7.tgz#83949436890e07fa3d6873c61a96e3bbf692d856" + integrity sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA== + dependencies: + "@babel/types" "^7.24.7" + "@babel/helper-string-parser@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== +"@babel/helper-string-parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.24.8.tgz#5b3329c9a58803d5df425e5785865881a81ca48d" + integrity sha512-pO9KhhRcuUyGnJWwyEgnRJTSIZHiT+vMD0kPeD+so0l7mxkMT19g3pjY9GTnHySck/hDzq+dtW/4VgnMkippsQ== + "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== +"@babel/helper-validator-identifier@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz#75b889cfaf9e35c2aaf42cf0d72c8e91719251db" + integrity sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w== + "@babel/helper-validator-option@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== +"@babel/helper-validator-option@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.24.8.tgz#3725cdeea8b480e86d34df15304806a06975e33d" + integrity sha512-xb8t9tD1MHLungh/AIoWYN+gVHaB9kwlu8gffXGSt3FFEIT7RjS+xWbc2vUD1UTZdIpKj/ab3rdqJ7ufngyi2Q== + "@babel/helper-wrap-function@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.22.20.tgz#15352b0b9bfb10fc9c76f79f6342c00e3411a569" @@ -320,6 +446,14 @@ "@babel/traverse" "^7.23.2" "@babel/types" "^7.23.0" +"@babel/helpers@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.24.8.tgz#2820d64d5d6686cca8789dd15b074cd862795873" + integrity sha512-gV2265Nkcz7weJJfvDoAEVzC1e2OTDpkGbEsebse8koXUJUXPsCMi7sRo/+SPMuMZ9MtUPnGwITTnQnU5YjyaQ== + dependencies: + "@babel/template" "^7.24.7" + "@babel/types" "^7.24.8" + "@babel/highlight@^7.0.0": version "7.5.0" resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.5.0.tgz" @@ -338,6 +472,16 @@ chalk "^2.4.2" js-tokens "^4.0.0" +"@babel/highlight@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.24.7.tgz#a05ab1df134b286558aae0ed41e6c5f731bf409d" + integrity sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw== + dependencies: + "@babel/helper-validator-identifier" "^7.24.7" + chalk "^2.4.2" + js-tokens "^4.0.0" + picocolors "^1.0.0" + "@babel/parser@^7.1.0": version "7.6.0" resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.6.0.tgz" @@ -353,6 +497,11 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.23.9", "@babel/parser@^7.24.7", "@babel/parser@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.24.8.tgz#58a4dbbcad7eb1d48930524a3fd93d93e9084c6f" + integrity sha512-WzfbgXOkGzZiXXCqk43kKwZjzwx4oulxZi3nq2TYL9mOjQv6kYwul9mz6ID36njuL7Xkp6nJEfok848Zj10j/w== + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.22.15.tgz#02dc8a03f613ed5fdc29fb2f728397c78146c962" @@ -1185,6 +1334,15 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" +"@babel/template@^7.24.7": + version "7.24.7" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.24.7.tgz#02efcee317d0609d2c07117cb70ef8fb17ab7315" + integrity sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/parser" "^7.24.7" + "@babel/types" "^7.24.7" + "@babel/traverse@^7.23.0", "@babel/traverse@^7.7.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.0.tgz#18196ddfbcf4ccea324b7f6d3ada00d8c5a99c53" @@ -1217,6 +1375,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.24.7", "@babel/traverse@^7.24.8": + version "7.24.8" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.24.8.tgz#6c14ed5232b7549df3371d820fbd9abfcd7dfab7" + integrity sha512-t0P1xxAPzEDcEPmjprAQq19NWum4K0EQPjMwZQZbHt+GiZqvjCHjj755Weq1YRPVzBI+3zSfvScfpnuIecVFJQ== + dependencies: + "@babel/code-frame" "^7.24.7" + "@babel/generator" "^7.24.8" + "@babel/helper-environment-visitor" "^7.24.7" + "@babel/helper-function-name" "^7.24.7" + "@babel/helper-hoist-variables" "^7.24.7" + "@babel/helper-split-export-declaration" "^7.24.7" + "@babel/parser" "^7.24.8" + "@babel/types" "^7.24.8" + debug "^4.3.1" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.4": version "7.6.1" resolved "https://registry.npmjs.org/@babel/types/-/types-7.6.1.tgz" @@ -1244,6 +1418,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.24.7", "@babel/types@^7.24.8", "@babel/types@^7.24.9": + version "7.24.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.24.9.tgz#228ce953d7b0d16646e755acf204f4cf3d08cc73" + integrity sha512-xm8XrMKz0IlUdocVbYJe0Z9xEgidU7msskG8BbhnTPK/HZ2z/7FP7ykqPgrUH+C+r414mNfNWam1f2vqOjqjYQ== + dependencies: + "@babel/helper-string-parser" "^7.24.8" + "@babel/helper-validator-identifier" "^7.24.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -1468,7 +1651,14 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/nyc-config-typescript@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-1.0.2.tgz#1f5235b28540a07219ae0dd42014912a0b19cf89" + integrity sha512-iKGIyMoyJuFnJRSVTZ78POIRvNnwZaWIf8vG4ZS3rQq58MMDrqEX2nnzx0R28V2X8JvmKYiqY9FP2hlJsm8A0w== + dependencies: + "@istanbuljs/schema" "^0.1.2" + +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== @@ -1675,6 +1865,15 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping" "^0.3.9" +"@jridgewell/gen-mapping@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" + integrity sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg== + dependencies: + "@jridgewell/set-array" "^1.2.1" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@jridgewell/trace-mapping" "^0.3.24" + "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" @@ -1685,6 +1884,11 @@ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== +"@jridgewell/set-array@^1.2.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" + integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== + "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" @@ -1706,6 +1910,14 @@ "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" +"@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": + version "0.3.25" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@marionebl/sander@^0.6.0": version "0.6.1" resolved "https://registry.npmjs.org/@marionebl/sander/-/sander-0.6.1.tgz" @@ -3041,6 +3253,13 @@ anymatch@^3.0.3: normalize-path "^3.0.0" picomatch "^2.0.4" +append-transform@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" + integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== + dependencies: + default-require-extensions "^3.0.0" + aproba@^1.0.3: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -3051,7 +3270,7 @@ aproba@^1.0.3: resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== -archy@~1.0.0: +archy@^1.0.0, archy@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== @@ -3729,6 +3948,16 @@ browserslist@^4.21.9, browserslist@^4.22.1: node-releases "^2.0.13" update-browserslist-db "^1.0.13" +browserslist@^4.23.1: + version "4.23.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.23.2.tgz#244fe803641f1c19c28c48c4b6ec9736eb3d32ed" + integrity sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA== + dependencies: + caniuse-lite "^1.0.30001640" + electron-to-chromium "^1.4.820" + node-releases "^2.0.14" + update-browserslist-db "^1.1.0" + bs-logger@0.x: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" @@ -3863,6 +4092,16 @@ cacheable-request@^6.0.0: normalize-url "^4.1.0" responselike "^1.0.2" +caching-transform@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" + integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== + dependencies: + hasha "^5.0.0" + make-dir "^3.0.0" + package-hash "^4.0.0" + write-file-atomic "^3.0.0" + call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" @@ -3933,6 +4172,11 @@ caniuse-lite@^1.0.30001541: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001543.tgz#478a3e9dddbb353c5ab214b0ecb0dbed529ed1d8" integrity sha512-qxdO8KPWPQ+Zk6bvNpPeQIOH47qZSYdFZd6dXQzb2KzhnSXju4Kd7H1PkSJx6NICSMgo/IhRZRhhfPTHYpJUCA== +caniuse-lite@^1.0.30001640: + version "1.0.30001643" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001643.tgz#9c004caef315de9452ab970c3da71085f8241dbd" + integrity sha512-ERgWGNleEilSrHM6iUz/zJNSQTP8Mr21wDWpdgvRwcTXGAq6jMtOUPP4dqFPTdKqZ2wKTdtB+uucZ3MRpAUSmg== + capture-stack-trace@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz" @@ -4146,6 +4390,15 @@ cliui@^5.0.0: strip-ansi "^5.2.0" wrap-ansi "^5.1.0" +cliui@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" @@ -4495,7 +4748,7 @@ conventional-commits-parser@^5.0.0: meow "^12.0.1" split2 "^4.0.0" -convert-source-map@^1.4.0: +convert-source-map@^1.4.0, convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== @@ -4738,6 +4991,13 @@ debug@^4.1.0, debug@^4.1.1: dependencies: ms "^2.1.1" +debug@^4.3.1: + version "4.3.5" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.5.tgz#e83444eceb9fedd4a1da56d671ae2446a01a6e1e" + integrity sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg== + dependencies: + ms "2.1.2" + debuglog@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" @@ -4788,6 +5048,13 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== +default-require-extensions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd" + integrity sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== + dependencies: + strip-bom "^4.0.0" + defaults@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz" @@ -5015,6 +5282,11 @@ electron-to-chromium@^1.4.535: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.539.tgz#5ce6b161e252132cc84501bc35d084995a2a9840" integrity sha512-wRmWJ8F7rgmINuI32S6r2SLrw/h/bJQsDSvBiq9GBfvc2Lh73qTOwn73r3Cf67mjVgFGJYcYtmERzySa5jIWlg== +electron-to-chromium@^1.4.820: + version "1.4.832" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.832.tgz#d25882ce0a9237577b039bffa124ecef1822003b" + integrity sha512-cTen3SB0H2SGU7x467NRe1eVcQgcuS6jckKfWJHia2eo0cHIGOqHoAxevIYZD4eRHcWjkvFzo93bi3vJ9W+1lA== + elliptic@^6.0.0: version "6.5.1" resolved "https://registry.npmjs.org/elliptic/-/elliptic-6.5.1.tgz" @@ -5198,11 +5470,21 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" +es6-error@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== + escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +escalade@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27" + integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA== + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz" @@ -5891,6 +6173,15 @@ find-cache-dir@^3.0.0: make-dir "^3.0.0" pkg-dir "^4.1.0" +find-cache-dir@^3.2.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + find-up@^2.0.0: version "2.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz" @@ -5964,6 +6255,14 @@ foreach@~2.0.1: resolved "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz" integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= +foreground-child@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== + dependencies: + cross-spawn "^7.0.0" + signal-exit "^3.0.2" + foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -6020,7 +6319,7 @@ from2@^2.3.0: inherits "^2.0.1" readable-stream "^2.0.0" -fromentries@^1.3.2: +fromentries@^1.2.0, fromentries@^1.3.2: version "1.3.2" resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== @@ -6414,7 +6713,7 @@ graceful-fs@4.2.10: resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.8, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.3, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.3, graceful-fs@^4.2.4, graceful-fs@^4.2.6, graceful-fs@^4.2.8, graceful-fs@^4.2.9: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -6570,6 +6869,14 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" +hasha@^5.0.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + hasown@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" @@ -7511,6 +7818,13 @@ istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== +istanbul-lib-hook@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" + integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== + dependencies: + append-transform "^2.0.0" + istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: version "5.2.1" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz#d10c8885c2125574e1c231cacadf955675e1ce3d" @@ -7522,6 +7836,29 @@ istanbul-lib-instrument@^5.0.4, istanbul-lib-instrument@^5.1.0: istanbul-lib-coverage "^3.2.0" semver "^6.3.0" +istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz#fa15401df6c15874bcb2105f773325d78c666765" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== + dependencies: + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-coverage "^3.2.0" + semver "^7.5.4" + +istanbul-lib-processinfo@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" + integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== + dependencies: + archy "^1.0.0" + cross-spawn "^7.0.3" + istanbul-lib-coverage "^3.2.0" + p-map "^3.0.0" + rimraf "^3.0.0" + uuid "^8.3.2" + istanbul-lib-report@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz#908305bac9a5bd175ac6a74489eafd0fc2445a7d" @@ -7540,6 +7877,14 @@ istanbul-lib-source-maps@^4.0.0: istanbul-lib-coverage "^3.0.0" source-map "^0.6.1" +istanbul-reports@^3.0.2: + version "3.1.7" + resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.7.tgz#daed12b9e1dca518e15c056e1e537e741280fa0b" + integrity sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g== + dependencies: + html-escaper "^2.0.0" + istanbul-lib-report "^3.0.0" + istanbul-reports@^3.1.3: version "3.1.6" resolved "https://registry.yarnpkg.com/istanbul-reports/-/istanbul-reports-3.1.6.tgz#2544bcab4768154281a2f0870471902704ccaa1a" @@ -8640,6 +8985,11 @@ lodash.escaperegexp@^4.1.2: resolved "https://registry.npmjs.org/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz" integrity sha512-TM9YBvyC84ZxE3rgfefxUWiQKLilstD6k7PTGt6wfbtXF8ixIJLOL3VYyV/z+ZiPLsVxAsKAFVwWlWeb2Y8Yyw== +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://registry.npmjs.org/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz" @@ -8817,6 +9167,13 @@ make-dir@^3.0.0: dependencies: semver "^6.0.0" +make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + make-dir@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-4.0.0.tgz#c3c2307a771277cd9638305f915c29ae741b614e" @@ -9433,11 +9790,23 @@ node-int64@^0.4.0: resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" integrity sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs= +node-preload@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" + integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== + dependencies: + process-on-spawn "^1.0.0" + node-releases@^2.0.13: version "2.0.13" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== +node-releases@^2.0.14: + version "2.0.18" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.18.tgz#f010e8d35e2fe8d6b2944f03f70213ecedc4ca3f" + integrity sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g== + nodemon@^1.19.2: version "1.19.2" resolved "https://registry.npmjs.org/nodemon/-/nodemon-1.19.2.tgz" @@ -9897,6 +10266,39 @@ number-is-nan@^1.0.0: resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= +nyc@^17.0.0: + version "17.0.0" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-17.0.0.tgz#d8943407584242a448a70290b15bb72207fac9fd" + integrity sha512-ISp44nqNCaPugLLGGfknzQwSwt10SSS5IMoPR7GLoMAyS18Iw5js8U7ga2VF9lYuMZ42gOHr3UddZw4WZltxKg== + dependencies: + "@istanbuljs/load-nyc-config" "^1.0.0" + "@istanbuljs/schema" "^0.1.2" + caching-transform "^4.0.0" + convert-source-map "^1.7.0" + decamelize "^1.2.0" + find-cache-dir "^3.2.0" + find-up "^4.1.0" + foreground-child "^2.0.0" + get-package-type "^0.1.0" + glob "^7.1.6" + istanbul-lib-coverage "^3.0.0" + istanbul-lib-hook "^3.0.0" + istanbul-lib-instrument "^6.0.2" + istanbul-lib-processinfo "^2.0.2" + istanbul-lib-report "^3.0.0" + istanbul-lib-source-maps "^4.0.0" + istanbul-reports "^3.0.2" + make-dir "^3.0.0" + node-preload "^0.2.1" + p-map "^3.0.0" + process-on-spawn "^1.0.0" + resolve-from "^5.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + spawn-wrap "^2.0.0" + test-exclude "^6.0.0" + yargs "^15.0.2" + oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" @@ -10157,6 +10559,13 @@ p-map@^2.0.0: resolved "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz" integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + p-map@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" @@ -10194,6 +10603,16 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-hash@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" + integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== + dependencies: + graceful-fs "^4.1.15" + hasha "^5.0.0" + lodash.flattendeep "^4.4.0" + release-zalgo "^1.0.0" + package-json@^4.0.0: version "4.0.1" resolved "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz" @@ -10445,6 +10864,11 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.1.tgz#a8ad579b571952f0e5d25892de5445bcfe25aaa1" + integrity sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew== + picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" @@ -10555,6 +10979,13 @@ process-nextick-args@~2.0.0: resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== +process-on-spawn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" + integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== + dependencies: + fromentries "^1.2.0" + process@^0.11.10: version "0.11.10" resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" @@ -11106,6 +11537,13 @@ regjsparser@^0.9.1: dependencies: jsesc "~0.5.0" +release-zalgo@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + integrity sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== + dependencies: + es6-error "^4.0.1" + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" @@ -11826,6 +12264,18 @@ spawn-error-forwarder@~1.0.0: resolved "https://registry.npmjs.org/spawn-error-forwarder/-/spawn-error-forwarder-1.0.0.tgz" integrity sha512-gRjMgK5uFjbCvdibeGJuy3I5OYz6VLoVdsOJdA6wV0WlfQVLFueoqMxwwYD9RODdgb6oUIvlRlsyFSiQkMKu0g== +spawn-wrap@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" + integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== + dependencies: + foreground-child "^2.0.0" + is-windows "^1.0.2" + make-dir "^3.0.0" + rimraf "^3.0.0" + signal-exit "^3.0.2" + which "^2.0.1" + spdx-correct@^3.0.0: version "3.1.0" resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz" @@ -12581,7 +13031,7 @@ type-fest@^0.6.0: resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== -type-fest@^0.8.1: +type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== @@ -12828,6 +13278,14 @@ update-browserslist-db@^1.0.13: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.0.tgz#7ca61c0d8650766090728046e416a8cde682859e" + integrity sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ== + dependencies: + escalade "^3.1.2" + picocolors "^1.0.1" + update-notifier@^2.5.0: version "2.5.0" resolved "https://registry.npmjs.org/update-notifier/-/update-notifier-2.5.0.tgz" @@ -12918,6 +13376,11 @@ uuid@^3.3.2: resolved "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz" integrity sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ== +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + v8-to-istanbul@^9.0.1: version "9.1.3" resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz#ea456604101cd18005ac2cae3cdd1aa058a6306b" @@ -13123,6 +13586,15 @@ wrap-ansi@^5.1.0: string-width "^3.0.0" strip-ansi "^5.0.0" +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -13155,7 +13627,7 @@ write-file-atomic@^2.0.0: imurmurhash "^0.1.4" signal-exit "^3.0.2" -write-file-atomic@^3.0.3: +write-file-atomic@^3.0.0, write-file-atomic@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== @@ -13266,6 +13738,14 @@ yargs-parser@^13.1.1: camelcase "^5.0.0" decamelize "^1.2.0" +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" @@ -13293,6 +13773,23 @@ yargs@^14.0.0: y18n "^4.0.0" yargs-parser "^13.1.1" +yargs@^15.0.2: + version "15.4.1" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" From 4e843d2efced5568045c8837c403edfcc56a33ab Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 07:45:24 +0200 Subject: [PATCH 10/21] [TU-13737] fix sonar-project paths --- sonar-project.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 8418117..ce149fd 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,8 +3,8 @@ sonar.organization=typeform sonar.projectVersion=dev # Define the main source and test directories -sonar.sources=src -sonar.tests=tests +sonar.sources=src/** +sonar.tests=tests/** # Exclude specific files or directories from analysis sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts From fa0a37de22d343fd4e9966ad1b0b5d46b37c0c68 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:07:25 +0200 Subject: [PATCH 11/21] [TU-13737] indent images.ts --- src/images.ts | 153 +++++++++++++++++++++++++------------------------- 1 file changed, 77 insertions(+), 76 deletions(-) diff --git a/src/images.ts b/src/images.ts index d86a5bc..62ed68f 100644 --- a/src/images.ts +++ b/src/images.ts @@ -1,88 +1,89 @@ -import { Typeform } from './typeform-types' +import {Typeform} from './typeform-types' export class Images { - constructor(private _http: Typeform.HTTPClient) {} - - public add(args: { - image?: string - url?: string - fileName: string - }): Promise { - const { image, url, fileName } = args + constructor(private _http: Typeform.HTTPClient) { + } - return this._http.request({ - method: 'post', - url: `/images`, - data: { - image, - file_name: fileName, - url, - }, - }) - } + public add(args: { + image?: string + url?: string + fileName: string + }): Promise { + const {image, url, fileName} = args - public delete(args: { id: string }): Promise { - const { id } = args + return this._http.request({ + method: 'post', + url: `/images`, + data: { + image, + file_name: fileName, + url, + }, + }) + } - return this._http.request({ - method: 'delete', - url: `/images/${id}`, - }) - } + public delete(args: { id: string }): Promise { + const {id} = args - public get(args: { - id: string - size?: string - backgroundSize?: string - choiceSize?: string - }): Promise { - const { id, size, backgroundSize, choiceSize } = args - const requestQuery: Typeform.Request = { - method: 'get', - url: `/images/${id}`, - headers: { - Accept: 'application/json', - }, + return this._http.request({ + method: 'delete', + url: `/images/${id}`, + }) } - const choiceImageSizes = [ - 'default', - 'thumbnail', - 'supersize', - 'supermobile', - 'supersizefit', - 'supermobilefit', - ] + public get(args: { + id: string + size?: string + backgroundSize?: string + choiceSize?: string + }): Promise { + const {id, size, backgroundSize, choiceSize} = args + const requestQuery: Typeform.Request = { + method: 'get', + url: `/images/${id}`, + headers: { + Accept: 'application/json', + }, + } - if (size) { - if (['default', 'thumbnail', 'mobile'].includes(size)) { - requestQuery.url += `/image/${size}` - } else { - throw new Error(`Image size doesn't exist`) - } - } else if (backgroundSize) { - if ( - ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) - ) { - requestQuery.url += `/background/${backgroundSize}` - } else { - throw new Error(`Image background size doesn't exist`) - } - } else if (choiceSize) { - if (choiceImageSizes.includes(choiceSize)) { - requestQuery.url += `/choice/${choiceSize}` - } else { - throw new Error(`Image choice size doesn't exist`) - } - } + const choiceImageSizes = [ + 'default', + 'thumbnail', + 'supersize', + 'supermobile', + 'supersizefit', + 'supermobilefit', + ] - return this._http.request(requestQuery) - } + if (size) { + if (['default', 'thumbnail', 'mobile'].includes(size)) { + requestQuery.url += `/image/${size}` + } else { + throw new Error(`Image size doesn't exist`) + } + } else if (backgroundSize) { + if ( + ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) + ) { + requestQuery.url += `/background/${backgroundSize}` + } else { + throw new Error(`Image background size doesn't exist`) + } + } else if (choiceSize) { + if (choiceImageSizes.includes(choiceSize)) { + requestQuery.url += `/choice/${choiceSize}` + } else { + throw new Error(`Image choice size doesn't exist`) + } + } - public list(): Promise { - return this._http.request({ - method: 'get', - url: '/images', - }) - } + return this._http.request(requestQuery) + } + + public list(): Promise { + return this._http.request({ + method: 'get', + url: '/images', + }) + } } From 0bfa80e4ab0b8bed9cfd4de6fc5bb715f3817666 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:10:16 +0200 Subject: [PATCH 12/21] [TU-13737] fix sonar-project paths p2 --- sonar-project.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index ce149fd..8418117 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -3,8 +3,8 @@ sonar.organization=typeform sonar.projectVersion=dev # Define the main source and test directories -sonar.sources=src/** -sonar.tests=tests/** +sonar.sources=src +sonar.tests=tests # Exclude specific files or directories from analysis sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts From 71db26ed20e03685d7118ccfeca2f8b43b016554 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:21:43 +0200 Subject: [PATCH 13/21] [TU-13737] fix sonar-project paths p3 --- sonar-project.properties | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 8418117..0008a8a 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -2,17 +2,12 @@ sonar.projectKey=Typeform_js-api-client sonar.organization=typeform sonar.projectVersion=dev -# Define the main source and test directories sonar.sources=src sonar.tests=tests -# Exclude specific files or directories from analysis -sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts -sonar.test.exclusions=node_modules/**,dist/** +# sonar.inclusions=packages/*/src/**/*.ts,src/**/*.js +# sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts +# sonar.test.exclusions=node_modules/**,dist/** # Specify the location of the coverage report -sonar.javascript.lcov.reportPaths=coverage/lcov.info - -# Additional configurations for TypeScript if needed -sonar.typescript.lcov.reportPaths=coverage/lcov.info -sonar.test.inclusions=**/*.spec.ts,**/*.test.ts +sonar.javascript.lcov.reportPaths=coverage/lcov.info \ No newline at end of file From f3ca2151fa17e7b1fe12543149bb224cdbd6f3c1 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:34:33 +0200 Subject: [PATCH 14/21] [TU-13737] fix sonar-project paths p4 --- sonar-project.properties | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/sonar-project.properties b/sonar-project.properties index 0008a8a..4ccd0b7 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -5,9 +5,10 @@ sonar.projectVersion=dev sonar.sources=src sonar.tests=tests -# sonar.inclusions=packages/*/src/**/*.ts,src/**/*.js -# sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts -# sonar.test.exclusions=node_modules/**,dist/** +sonar.inclusions=packages/*/src/**/*.ts,src/**/*.js +sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts + +sonar.test.exclusions=node_modules/**,dist/** # Specify the location of the coverage report sonar.javascript.lcov.reportPaths=coverage/lcov.info \ No newline at end of file From 983f6a39270bf96bd90e3609442db3cf3aa7979c Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:40:36 +0200 Subject: [PATCH 15/21] [TU-13737] reset modified files --- src/images.ts | 153 +++++++++++++++++++++++---------------------- src/webhooks.ts | 161 ++++++++++++++++++++++++------------------------ 2 files changed, 156 insertions(+), 158 deletions(-) diff --git a/src/images.ts b/src/images.ts index 62ed68f..d86a5bc 100644 --- a/src/images.ts +++ b/src/images.ts @@ -1,89 +1,88 @@ -import {Typeform} from './typeform-types' +import { Typeform } from './typeform-types' export class Images { - constructor(private _http: Typeform.HTTPClient) { - } - - public add(args: { - image?: string - url?: string - fileName: string - }): Promise { - const {image, url, fileName} = args + constructor(private _http: Typeform.HTTPClient) {} - return this._http.request({ - method: 'post', - url: `/images`, - data: { - image, - file_name: fileName, - url, - }, - }) - } + public add(args: { + image?: string + url?: string + fileName: string + }): Promise { + const { image, url, fileName } = args - public delete(args: { id: string }): Promise { - const {id} = args + return this._http.request({ + method: 'post', + url: `/images`, + data: { + image, + file_name: fileName, + url, + }, + }) + } - return this._http.request({ - method: 'delete', - url: `/images/${id}`, - }) - } + public delete(args: { id: string }): Promise { + const { id } = args - public get(args: { - id: string - size?: string - backgroundSize?: string - choiceSize?: string - }): Promise { - const {id, size, backgroundSize, choiceSize} = args - const requestQuery: Typeform.Request = { - method: 'get', - url: `/images/${id}`, - headers: { - Accept: 'application/json', - }, - } + return this._http.request({ + method: 'delete', + url: `/images/${id}`, + }) + } - const choiceImageSizes = [ - 'default', - 'thumbnail', - 'supersize', - 'supermobile', - 'supersizefit', - 'supermobilefit', - ] + public get(args: { + id: string + size?: string + backgroundSize?: string + choiceSize?: string + }): Promise { + const { id, size, backgroundSize, choiceSize } = args + const requestQuery: Typeform.Request = { + method: 'get', + url: `/images/${id}`, + headers: { + Accept: 'application/json', + }, + } - if (size) { - if (['default', 'thumbnail', 'mobile'].includes(size)) { - requestQuery.url += `/image/${size}` - } else { - throw new Error(`Image size doesn't exist`) - } - } else if (backgroundSize) { - if ( - ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) - ) { - requestQuery.url += `/background/${backgroundSize}` - } else { - throw new Error(`Image background size doesn't exist`) - } - } else if (choiceSize) { - if (choiceImageSizes.includes(choiceSize)) { - requestQuery.url += `/choice/${choiceSize}` - } else { - throw new Error(`Image choice size doesn't exist`) - } - } + const choiceImageSizes = [ + 'default', + 'thumbnail', + 'supersize', + 'supermobile', + 'supersizefit', + 'supermobilefit', + ] - return this._http.request(requestQuery) + if (size) { + if (['default', 'thumbnail', 'mobile'].includes(size)) { + requestQuery.url += `/image/${size}` + } else { + throw new Error(`Image size doesn't exist`) + } + } else if (backgroundSize) { + if ( + ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) + ) { + requestQuery.url += `/background/${backgroundSize}` + } else { + throw new Error(`Image background size doesn't exist`) + } + } else if (choiceSize) { + if (choiceImageSizes.includes(choiceSize)) { + requestQuery.url += `/choice/${choiceSize}` + } else { + throw new Error(`Image choice size doesn't exist`) + } } - public list(): Promise { - return this._http.request({ - method: 'get', - url: '/images', - }) - } + return this._http.request(requestQuery) + } + + public list(): Promise { + return this._http.request({ + method: 'get', + url: '/images', + }) + } } diff --git a/src/webhooks.ts b/src/webhooks.ts index d90fa8c..96dbec3 100644 --- a/src/webhooks.ts +++ b/src/webhooks.ts @@ -1,100 +1,99 @@ -import {Typeform} from './typeform-types' +import { Typeform } from './typeform-types' export class Webhooks { - constructor(private _http: Typeform.HTTPClient) { - } + constructor(private _http: Typeform.HTTPClient) {} - public create(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + public create(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } - public delete(args: { uid: string; tag: string }): Promise { - const {uid, tag} = args + public delete(args: { uid: string; tag: string }): Promise { + const { uid, tag } = args - return this._http.request({ - method: 'delete', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } - - public get(args: { uid: string; tag: string }): Promise { - const {uid, tag} = args + return this._http.request({ + method: 'delete', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + public get(args: { uid: string; tag: string }): Promise { + const { uid, tag } = args - public list(args: { uid: string }): Promise { - const {uid} = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks`, - }) - } + public list(args: { uid: string }): Promise { + const { uid } = args - public toggle(args: { uid: string, tag: string, enabled: boolean }): Promise { - const {uid, tag, enabled} = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks`, + }) + } + + public toggle (args: { uid: string, tag: string, enabled: boolean }): Promise { + const { uid, tag, enabled } = args - return this._http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - enabled - } - }) - } + return this._http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + enabled + } + }) + } - update(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + update(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } } const createOrUpdateWebhook = ( - http: Typeform.HTTPClient, - args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - } + http: Typeform.HTTPClient, + args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + } ): Promise => { - const {uid, tag, url, enabled = false, secret, verifySSL} = args + const { uid, tag, url, enabled = false, secret, verifySSL } = args - if (!url) { - throw new Error(`Please provide an url for ${tag}`) - } + if (!url) { + throw new Error(`Please provide an url for ${tag}`) + } - if (!tag) { - throw new Error(`Please provide a tag name for the webhook`) - } + if (!tag) { + throw new Error(`Please provide a tag name for the webhook`) + } - return http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - url, - enabled, - secret, - verify_ssl: verifySSL ? true : undefined, - }, - }) + return http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + url, + enabled, + secret, + verify_ssl: verifySSL ? true : undefined, + }, + }) } From 3ecb8c18a0a9b8a3bad1fd95ee01c8757da3fb13 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:44:46 +0200 Subject: [PATCH 16/21] [TU-13737] fix sonar-project paths p5 --- .github/workflows/pr.yml | 5 ++ src/images.ts | 153 ++++++++++++++++++++------------------- 2 files changed, 82 insertions(+), 76 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 65df135..e447bbd 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -82,6 +82,11 @@ jobs: - name: Verify coverage file download run: find . | grep lcov.info + - name: Copy the coverage file to a proper location + run: | + mkdir -p coverage + mv lcov.info coverage/lcov.info + - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@v2 with: diff --git a/src/images.ts b/src/images.ts index d86a5bc..62ed68f 100644 --- a/src/images.ts +++ b/src/images.ts @@ -1,88 +1,89 @@ -import { Typeform } from './typeform-types' +import {Typeform} from './typeform-types' export class Images { - constructor(private _http: Typeform.HTTPClient) {} - - public add(args: { - image?: string - url?: string - fileName: string - }): Promise { - const { image, url, fileName } = args + constructor(private _http: Typeform.HTTPClient) { + } - return this._http.request({ - method: 'post', - url: `/images`, - data: { - image, - file_name: fileName, - url, - }, - }) - } + public add(args: { + image?: string + url?: string + fileName: string + }): Promise { + const {image, url, fileName} = args - public delete(args: { id: string }): Promise { - const { id } = args + return this._http.request({ + method: 'post', + url: `/images`, + data: { + image, + file_name: fileName, + url, + }, + }) + } - return this._http.request({ - method: 'delete', - url: `/images/${id}`, - }) - } + public delete(args: { id: string }): Promise { + const {id} = args - public get(args: { - id: string - size?: string - backgroundSize?: string - choiceSize?: string - }): Promise { - const { id, size, backgroundSize, choiceSize } = args - const requestQuery: Typeform.Request = { - method: 'get', - url: `/images/${id}`, - headers: { - Accept: 'application/json', - }, + return this._http.request({ + method: 'delete', + url: `/images/${id}`, + }) } - const choiceImageSizes = [ - 'default', - 'thumbnail', - 'supersize', - 'supermobile', - 'supersizefit', - 'supermobilefit', - ] + public get(args: { + id: string + size?: string + backgroundSize?: string + choiceSize?: string + }): Promise { + const {id, size, backgroundSize, choiceSize} = args + const requestQuery: Typeform.Request = { + method: 'get', + url: `/images/${id}`, + headers: { + Accept: 'application/json', + }, + } - if (size) { - if (['default', 'thumbnail', 'mobile'].includes(size)) { - requestQuery.url += `/image/${size}` - } else { - throw new Error(`Image size doesn't exist`) - } - } else if (backgroundSize) { - if ( - ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) - ) { - requestQuery.url += `/background/${backgroundSize}` - } else { - throw new Error(`Image background size doesn't exist`) - } - } else if (choiceSize) { - if (choiceImageSizes.includes(choiceSize)) { - requestQuery.url += `/choice/${choiceSize}` - } else { - throw new Error(`Image choice size doesn't exist`) - } - } + const choiceImageSizes = [ + 'default', + 'thumbnail', + 'supersize', + 'supermobile', + 'supersizefit', + 'supermobilefit', + ] - return this._http.request(requestQuery) - } + if (size) { + if (['default', 'thumbnail', 'mobile'].includes(size)) { + requestQuery.url += `/image/${size}` + } else { + throw new Error(`Image size doesn't exist`) + } + } else if (backgroundSize) { + if ( + ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) + ) { + requestQuery.url += `/background/${backgroundSize}` + } else { + throw new Error(`Image background size doesn't exist`) + } + } else if (choiceSize) { + if (choiceImageSizes.includes(choiceSize)) { + requestQuery.url += `/choice/${choiceSize}` + } else { + throw new Error(`Image choice size doesn't exist`) + } + } - public list(): Promise { - return this._http.request({ - method: 'get', - url: '/images', - }) - } + return this._http.request(requestQuery) + } + + public list(): Promise { + return this._http.request({ + method: 'get', + url: '/images', + }) + } } From ebadbb903b44ccde9423791aa326b2e161bc01a9 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:54:42 +0200 Subject: [PATCH 17/21] [TU-13737] reformat webhooks.ts --- src/webhooks.ts | 161 ++++++++++++++++++++++++------------------------ 1 file changed, 81 insertions(+), 80 deletions(-) diff --git a/src/webhooks.ts b/src/webhooks.ts index 96dbec3..d90fa8c 100644 --- a/src/webhooks.ts +++ b/src/webhooks.ts @@ -1,99 +1,100 @@ -import { Typeform } from './typeform-types' +import {Typeform} from './typeform-types' export class Webhooks { - constructor(private _http: Typeform.HTTPClient) {} + constructor(private _http: Typeform.HTTPClient) { + } - public create(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + public create(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } - public delete(args: { uid: string; tag: string }): Promise { - const { uid, tag } = args + public delete(args: { uid: string; tag: string }): Promise { + const {uid, tag} = args - return this._http.request({ - method: 'delete', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + return this._http.request({ + method: 'delete', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - public get(args: { uid: string; tag: string }): Promise { - const { uid, tag } = args + public get(args: { uid: string; tag: string }): Promise { + const {uid, tag} = args - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - public list(args: { uid: string }): Promise { - const { uid } = args + public list(args: { uid: string }): Promise { + const {uid} = args - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks`, - }) - } - - public toggle (args: { uid: string, tag: string, enabled: boolean }): Promise { - const { uid, tag, enabled } = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks`, + }) + } - return this._http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - enabled - } - }) - } + public toggle(args: { uid: string, tag: string, enabled: boolean }): Promise { + const {uid, tag, enabled} = args + + return this._http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + enabled + } + }) + } - update(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + update(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } } const createOrUpdateWebhook = ( - http: Typeform.HTTPClient, - args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - } + http: Typeform.HTTPClient, + args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + } ): Promise => { - const { uid, tag, url, enabled = false, secret, verifySSL } = args + const {uid, tag, url, enabled = false, secret, verifySSL} = args - if (!url) { - throw new Error(`Please provide an url for ${tag}`) - } + if (!url) { + throw new Error(`Please provide an url for ${tag}`) + } - if (!tag) { - throw new Error(`Please provide a tag name for the webhook`) - } + if (!tag) { + throw new Error(`Please provide a tag name for the webhook`) + } - return http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - url, - enabled, - secret, - verify_ssl: verifySSL ? true : undefined, - }, - }) + return http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + url, + enabled, + secret, + verify_ssl: verifySSL ? true : undefined, + }, + }) } From b484c2a642f1b3005849c70d2416f1b000d07438 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 08:58:42 +0200 Subject: [PATCH 18/21] [TU-13737] reformat webhooks.ts --- .github/workflows/pr.yml | 2 +- src/webhooks.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index e447bbd..7e70a61 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -82,7 +82,7 @@ jobs: - name: Verify coverage file download run: find . | grep lcov.info - - name: Copy the coverage file to a proper location + - name: Move the coverage file to a proper location run: | mkdir -p coverage mv lcov.info coverage/lcov.info diff --git a/src/webhooks.ts b/src/webhooks.ts index d90fa8c..2e219c9 100644 --- a/src/webhooks.ts +++ b/src/webhooks.ts @@ -80,7 +80,7 @@ const createOrUpdateWebhook = ( const {uid, tag, url, enabled = false, secret, verifySSL} = args if (!url) { - throw new Error(`Please provide an url for ${tag}`) + throw new Error(`Please provide a url for ${tag}`) } if (!tag) { From 69682cdb9d681e39bdf42e223e73aef14e112121 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 11:46:39 +0200 Subject: [PATCH 19/21] [TU-13737] verify lcov.info --- .github/workflows/pr.yml | 6 +++--- sonar-project.properties | 3 +-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index 7e70a61..cfc645f 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -79,14 +79,14 @@ jobs: with: name: coverage-report - - name: Verify coverage file download - run: find . | grep lcov.info - - name: Move the coverage file to a proper location run: | mkdir -p coverage mv lcov.info coverage/lcov.info + - name: Verify coverage file ready + run: ls -lah ./coverage/lcov.info + - name: SonarCloud Scan uses: SonarSource/sonarcloud-github-action@v2 with: diff --git a/sonar-project.properties b/sonar-project.properties index 4ccd0b7..3216066 100644 --- a/sonar-project.properties +++ b/sonar-project.properties @@ -10,5 +10,4 @@ sonar.exclusions=node_modules/**,dist/**,**/*.spec.ts,**/*.test.ts sonar.test.exclusions=node_modules/**,dist/** -# Specify the location of the coverage report -sonar.javascript.lcov.reportPaths=coverage/lcov.info \ No newline at end of file +sonar.javascript.lcov.reportPaths=./coverage/lcov.info \ No newline at end of file From 45abcd3e6f846bc473ac1dcb7e0e8c4ea071b891 Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 11:54:47 +0200 Subject: [PATCH 20/21] [TU-13737] reset modified files --- src/images.ts | 153 +++++++++++++++++++++++---------------------- src/webhooks.ts | 161 ++++++++++++++++++++++++------------------------ 2 files changed, 156 insertions(+), 158 deletions(-) diff --git a/src/images.ts b/src/images.ts index 62ed68f..d86a5bc 100644 --- a/src/images.ts +++ b/src/images.ts @@ -1,89 +1,88 @@ -import {Typeform} from './typeform-types' +import { Typeform } from './typeform-types' export class Images { - constructor(private _http: Typeform.HTTPClient) { - } - - public add(args: { - image?: string - url?: string - fileName: string - }): Promise { - const {image, url, fileName} = args + constructor(private _http: Typeform.HTTPClient) {} - return this._http.request({ - method: 'post', - url: `/images`, - data: { - image, - file_name: fileName, - url, - }, - }) - } + public add(args: { + image?: string + url?: string + fileName: string + }): Promise { + const { image, url, fileName } = args - public delete(args: { id: string }): Promise { - const {id} = args + return this._http.request({ + method: 'post', + url: `/images`, + data: { + image, + file_name: fileName, + url, + }, + }) + } - return this._http.request({ - method: 'delete', - url: `/images/${id}`, - }) - } + public delete(args: { id: string }): Promise { + const { id } = args - public get(args: { - id: string - size?: string - backgroundSize?: string - choiceSize?: string - }): Promise { - const {id, size, backgroundSize, choiceSize} = args - const requestQuery: Typeform.Request = { - method: 'get', - url: `/images/${id}`, - headers: { - Accept: 'application/json', - }, - } + return this._http.request({ + method: 'delete', + url: `/images/${id}`, + }) + } - const choiceImageSizes = [ - 'default', - 'thumbnail', - 'supersize', - 'supermobile', - 'supersizefit', - 'supermobilefit', - ] + public get(args: { + id: string + size?: string + backgroundSize?: string + choiceSize?: string + }): Promise { + const { id, size, backgroundSize, choiceSize } = args + const requestQuery: Typeform.Request = { + method: 'get', + url: `/images/${id}`, + headers: { + Accept: 'application/json', + }, + } - if (size) { - if (['default', 'thumbnail', 'mobile'].includes(size)) { - requestQuery.url += `/image/${size}` - } else { - throw new Error(`Image size doesn't exist`) - } - } else if (backgroundSize) { - if ( - ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) - ) { - requestQuery.url += `/background/${backgroundSize}` - } else { - throw new Error(`Image background size doesn't exist`) - } - } else if (choiceSize) { - if (choiceImageSizes.includes(choiceSize)) { - requestQuery.url += `/choice/${choiceSize}` - } else { - throw new Error(`Image choice size doesn't exist`) - } - } + const choiceImageSizes = [ + 'default', + 'thumbnail', + 'supersize', + 'supermobile', + 'supersizefit', + 'supermobilefit', + ] - return this._http.request(requestQuery) + if (size) { + if (['default', 'thumbnail', 'mobile'].includes(size)) { + requestQuery.url += `/image/${size}` + } else { + throw new Error(`Image size doesn't exist`) + } + } else if (backgroundSize) { + if ( + ['default', 'thumbnail', 'mobile', 'tablet'].includes(backgroundSize) + ) { + requestQuery.url += `/background/${backgroundSize}` + } else { + throw new Error(`Image background size doesn't exist`) + } + } else if (choiceSize) { + if (choiceImageSizes.includes(choiceSize)) { + requestQuery.url += `/choice/${choiceSize}` + } else { + throw new Error(`Image choice size doesn't exist`) + } } - public list(): Promise { - return this._http.request({ - method: 'get', - url: '/images', - }) - } + return this._http.request(requestQuery) + } + + public list(): Promise { + return this._http.request({ + method: 'get', + url: '/images', + }) + } } diff --git a/src/webhooks.ts b/src/webhooks.ts index 2e219c9..96dbec3 100644 --- a/src/webhooks.ts +++ b/src/webhooks.ts @@ -1,100 +1,99 @@ -import {Typeform} from './typeform-types' +import { Typeform } from './typeform-types' export class Webhooks { - constructor(private _http: Typeform.HTTPClient) { - } + constructor(private _http: Typeform.HTTPClient) {} - public create(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + public create(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } - public delete(args: { uid: string; tag: string }): Promise { - const {uid, tag} = args + public delete(args: { uid: string; tag: string }): Promise { + const { uid, tag } = args - return this._http.request({ - method: 'delete', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } - - public get(args: { uid: string; tag: string }): Promise { - const {uid, tag} = args + return this._http.request({ + method: 'delete', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks/${tag}`, - }) - } + public get(args: { uid: string; tag: string }): Promise { + const { uid, tag } = args - public list(args: { uid: string }): Promise { - const {uid} = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks/${tag}`, + }) + } - return this._http.request({ - method: 'get', - url: `/forms/${uid}/webhooks`, - }) - } + public list(args: { uid: string }): Promise { + const { uid } = args - public toggle(args: { uid: string, tag: string, enabled: boolean }): Promise { - const {uid, tag, enabled} = args + return this._http.request({ + method: 'get', + url: `/forms/${uid}/webhooks`, + }) + } + + public toggle (args: { uid: string, tag: string, enabled: boolean }): Promise { + const { uid, tag, enabled } = args - return this._http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - enabled - } - }) - } + return this._http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + enabled + } + }) + } - update(args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - }): Promise { - return createOrUpdateWebhook(this._http, args) - } + update(args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + }): Promise { + return createOrUpdateWebhook(this._http, args) + } } const createOrUpdateWebhook = ( - http: Typeform.HTTPClient, - args: { - uid: string - tag: string - url: string - enabled?: boolean - secret?: string - verifySSL?: boolean - } + http: Typeform.HTTPClient, + args: { + uid: string + tag: string + url: string + enabled?: boolean + secret?: string + verifySSL?: boolean + } ): Promise => { - const {uid, tag, url, enabled = false, secret, verifySSL} = args + const { uid, tag, url, enabled = false, secret, verifySSL } = args - if (!url) { - throw new Error(`Please provide a url for ${tag}`) - } + if (!url) { + throw new Error(`Please provide an url for ${tag}`) + } - if (!tag) { - throw new Error(`Please provide a tag name for the webhook`) - } + if (!tag) { + throw new Error(`Please provide a tag name for the webhook`) + } - return http.request({ - method: 'put', - url: `/forms/${uid}/webhooks/${tag}`, - data: { - url, - enabled, - secret, - verify_ssl: verifySSL ? true : undefined, - }, - }) + return http.request({ + method: 'put', + url: `/forms/${uid}/webhooks/${tag}`, + data: { + url, + enabled, + secret, + verify_ssl: verifySSL ? true : undefined, + }, + }) } From c98d7cb6ad16a9734a3c86e66b9d2c8631dcdf9a Mon Sep 17 00:00:00 2001 From: vrybas Date: Tue, 23 Jul 2024 12:17:58 +0200 Subject: [PATCH 21/21] [TU-13737] simplify ci --- .github/workflows/pr.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr.yml b/.github/workflows/pr.yml index cfc645f..0553d37 100644 --- a/.github/workflows/pr.yml +++ b/.github/workflows/pr.yml @@ -12,7 +12,7 @@ jobs: matrix: node_version: - 18 # end of life 2025-04-30 - - 20 # end of life 2025-04-30 + - 20 # end of life 2025-04-30 # please update "Upload coverage file" step if you change this name: build-lint-test - node ${{ matrix.node_version }} steps: - name: Check out Git repository @@ -57,7 +57,7 @@ jobs: - name: Upload coverage file uses: actions/upload-artifact@v4 - continue-on-error: true + if: ${{ matrix.node_version == '20' }} with: name: coverage-report path: ./coverage/lcov.info