diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 94cffdda1053..5e7f69916825 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -19,54 +19,15 @@ jobs: name: Analyze runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - # Override automatic language detection by changing the below list - # Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python'] - language: ['javascript'] - # Learn more... - # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - steps: - name: Checkout repository uses: actions/checkout@v2 - with: - # We must fetch at least the immediate parents so that if this is - # a pull request then we can checkout the head. - fetch-depth: 2 - # If this run was triggered by a pull request event, then checkout - # the head of the pull request instead of the merge commit. - - run: git checkout HEAD^2 - if: ${{ github.event_name == 'pull_request' }} - - # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 with: - languages: ${{ matrix.language }} + languages: 'javascript' config-file: ./.github/codeql/codeql-config.yml - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. - # queries: ./path/to/local/query, your-org/your-repo/queries@main - - # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). - # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 - - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 https://git.io/JvXDl - - # âœī¸ If the Autobuild fails above, remove it and uncomment the following three lines - # and modify them (or add more) to build your code if your project - # uses a compiled language - - #- run: | - # make bootstrap - # make release - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 diff --git a/.github/workflows/continous-integration.yaml b/.github/workflows/continous-integration.yaml new file mode 100644 index 000000000000..5d6d16432127 --- /dev/null +++ b/.github/workflows/continous-integration.yaml @@ -0,0 +1,113 @@ +name: Continous Integration +on: + push: + branches: [master] + pull_request: + # The branches below must be a subset of the branches above + branches: [master] + +env: + CI: true + NODE_OPTIONS: --max-old-space-size=4096 + +jobs: + test: + name: Test + timeout-minutes: 15 + strategy: + matrix: + os: [ubuntu-latest] + node-version: [10, 12, 14] + include: + - os: macos-latest + node-version: 14 + fail-fast: false + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v1 + with: + node-version: ${{ matrix.node-version }} + - name: Bootstrap project + run: | + npm ci --ignore-scripts + npm run postinstall + - name: Build project + run: npm run build + - uses: Yuri6037/Action-FakeTTY@v1.1 + - name: Run tests + run: faketty npm run test:ci + + test-benchmark: + name: Test Benchmark + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js 14 + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Bootstrap benchmark tests + run: | + npm ci --ignore-scripts + npx lerna bootstrap --scope "@loopback/benchmark" --include-dependencies + - name: Run benchmark tests + run: | + cd benchmark && npm test + + code-lint: + name: Code Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js 14 + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Bootstrap project + run: | + npm ci --ignore-scripts + npm run postinstall + - name: Build project + run: npm run build + - name: Verify code linting + run: npm run lint + - name: Verify package metadata + run: npm run check-package-metadata + + commit-lint: + name: Commit Lint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - name: Use Node.js 14 + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Install monorepo tools + run: npm ci --ignore-scripts + - name: Verify commit linting + run: npx commitlint --from origin/master --to HEAD --verbose + + verify-docs: + name: Verify Docs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Use Node.js 14 + uses: actions/setup-node@v1 + with: + node-version: 14 + - name: Bootstrap project + run: | + npm ci --ignore-scripts + npm run postinstall + - name: Build project + run: npm run build + - name: Verify doc changes + run: ./bin/verify-doc-changes.sh diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index c17c63be1e63..000000000000 --- a/.travis.yml +++ /dev/null @@ -1,133 +0,0 @@ -language: node_js - -os: - - linux - -node_js: - - "10" - - "12" - - "14" - - "15" - -script: - - npm run postinstall - - npm run build - - npm run test:ci - -# Increase the memory to 2G for node -env: TASK=test NODE_OPTIONS="--max-old-space-size=2048" - -cache: - yarn: true - -before_install: npm i -g yarn - -install: npm ci --ignore-scripts - -after_success: - - if [[ "${TRAVIS_OS_NAME}" == "linux" ]] && [[ $(echo $TRAVIS_NODE_VERSION | cut -d'.' -f1) == "10" ]]; then npm run coverage:ci; fi - -branches: - only: - - master - -jobs: - include: - - node_js: "12" - os: osx - - # using the default script to build & run the tests - - node_js: "12" - os: linux - env: TASK=code-lint - # Running Code Linter -- Requires @loopback/build so it's bootstrapped - # We actually need to bootstrap all packages, otherwise typescript-eslint - # is not able to access type information for dependencies - script: - - lerna bootstrap - - npm run build - - npm run lint - - npm run check-package-metadata - - - node_js: "12" - os: linux - env: TASK=commit-lint - script: commitlint-travis - - - node_js: "12" - os: linux - env: TASK=verify-docs - # The default npm for node v12.16.1 (npm v6.13.4) fails with cb() never called - before_install: npm i -g npm - script: - - lerna bootstrap - - npm run build - - npm run --prefix docs version - - ./bin/verify-doc-changes.sh - - - node_js: "12" - os: linux - env: - - TASK=test-repository-mongodb - services: - - mongodb - script: - - lerna bootstrap --scope "@loopback/test-repository-mongodb" --include-dependencies - - cd acceptance/repository-mongodb && npm test - - - node_js: "12" - os: linux - env: - - TASK=test-repository-mysql - - MYSQL_USER=test - - MYSQL_PASSWORD=test - services: - - mysql - before_install: - - mysql -u root -e "CREATE USER 'test'@'localhost' IDENTIFIED BY 'test';" - - mysql -e "use mysql; update user set authentication_string=PASSWORD('test') where User='test'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;" - - mysql -e "GRANT ALL PRIVILEGES ON *.* TO 'test'@'localhost' WITH GRANT OPTION;FLUSH PRIVILEGES;" - - mysql -e "GRANT SUPER ON *.* TO 'test'@'localhost' IDENTIFIED BY 'test';FLUSH PRIVILEGES;" - script: - - lerna bootstrap --scope "@loopback/test-repository-mysql" --include-dependencies - - cd acceptance/repository-mysql && npm test - - - node_js: "12" - os: linux - env: - - TASK=test-repository-postgresql - - POSTGRESQL_USER=postgres - services: - - postgresql - script: - - lerna bootstrap --scope "@loopback/test-repository-postgresql" --include-dependencies - - psql -U postgres -a -f acceptance/repository-postgresql/test/schema.sql - - cd acceptance/repository-postgresql && npm test - - - node_js: "12" - os: linux - env: - - TASK=test-repository-cloudant - script: - # set up docker image and create admin for cloudant. - - lerna bootstrap --scope "@loopback/test-repository-cloudant" --include-dependencies - - cd acceptance/repository-cloudant && sh setup.sh - - npm test - - - node_js: "12" - os: linux - env: - - TASK=test-extension-logging-fluentd - services: - - docker - script: - - lerna bootstrap --scope "@loopback/test-extension-logging-fluentd" --include-dependencies - - cd acceptance/extension-logging-fluentd && npm test - - - node_js: "12" - os: linux - env: - - TASK=test-benchmark - script: - - lerna bootstrap --scope "@loopback/benchmark" --include-dependencies - - cd benchmark && npm test diff --git a/README.md b/README.md index 19974846c809..35433905f62b 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,9 @@ LoopBack4 logo -[![Travis Build Status](https://travis-ci.com/strongloop/loopback-next.svg?branch=master)](https://travis-ci.com/strongloop/loopback-next) +[![Continuous Integration Status](https://github.com/strongloop/loopback-next/workflows/Continous%20Integration/badge.svg)](https://github.com/strongloop/loopback-next/actions?query=workflow%3A%22Continous+Integration%22) [![AppVeyor Build status](https://ci.appveyor.com/api/projects/status/q8vp7wrdn2ak6801/branch/master?svg=true)](https://ci.appveyor.com/project/strongloop/loopback-next/branch/master) [![Coverage Status](https://coveralls.io/repos/github/strongloop/loopback-next/badge.svg?branch=master)](https://coveralls.io/github/strongloop/loopback-next?branch=master) +[![CodeQL Status](https://github.com/strongloop/loopback-next/workflows/CodeQL/badge.svg)](https://github.com/strongloop/loopback-next/actions?query=workflow%3ACodeQL) [![Twitter](https://img.shields.io/twitter/follow/strongloop.svg?style=social&label=Follow%20%40strongloop)](https://twitter.com/strongloop) [![Facebook](https://img.shields.io/badge/StrongLoop-white?logo=facebook&color=1877F2&logoColor=white)](https://www.facebook.com/strongloop) @@ -41,11 +42,11 @@ if you are interested in a version that's less frequently changed. We are providing Maintenance support for [LoopBack 3](https://loopback.io/doc/en/lb3/) until December 2020. -| Version | Status | Published | EOL | -| ---------- | --------------- | --------- | -------------------- | -| LoopBack 4 | Current | Oct 2018 | Apr 2023 _(minimum)_ | -| LoopBack 3 | Maintenance LTS | Dec 2016 | Dec 2020 | -| LoopBack 2 | End-of-Life | Jul 2014 | Apr 2019 | +| Version | Status | Published | EOL | +| ---------- | ----------- | --------- | -------------------- | +| LoopBack 4 | Current | Oct 2018 | Apr 2023 _(minimum)_ | +| LoopBack 3 | End-of-Life | Dec 2016 | Dec 2020 | +| LoopBack 2 | End-of-Life | Jul 2014 | Apr 2019 | Please refer to our [Long Term Support Policy](https://loopback.io/doc/en/contrib/Long-term-support.html) diff --git a/SECURITY.md b/SECURITY.md index 03cbc768f43c..17ecc1153090 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -8,7 +8,7 @@ LoopBack implements the | Version | Supported | | ---------- | ------------------ | | LoopBack 4 | :white_check_mark: | -| LoopBack 3 | :white_check_mark: | +| LoopBack 3 | :x: | | LoopBack 2 | :x: |
diff --git a/acceptance/extension-logging-fluentd/CHANGELOG.md b/acceptance/extension-logging-fluentd/CHANGELOG.md index be5fa8930406..9437c01836b2 100644 --- a/acceptance/extension-logging-fluentd/CHANGELOG.md +++ b/acceptance/extension-logging-fluentd/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.6](https://github.com/strongloop/loopback-next/compare/@loopback/test-extension-logging-fluentd@0.4.5...@loopback/test-extension-logging-fluentd@0.4.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/test-extension-logging-fluentd + + + + + ## [0.4.5](https://github.com/strongloop/loopback-next/compare/@loopback/test-extension-logging-fluentd@0.4.4...@loopback/test-extension-logging-fluentd@0.4.5) (2020-12-07) **Note:** Version bump only for package @loopback/test-extension-logging-fluentd diff --git a/acceptance/extension-logging-fluentd/package-lock.json b/acceptance/extension-logging-fluentd/package-lock.json index 9fcbc2d0c11b..6f8edc2c4f05 100644 --- a/acceptance/extension-logging-fluentd/package-lock.json +++ b/acceptance/extension-logging-fluentd/package-lock.json @@ -1,13 +1,13 @@ { "name": "@loopback/test-extension-logging-fluentd", - "version": "0.4.5", + "version": "0.4.6", "lockfileVersion": 1, "requires": true, "dependencies": { "@types/dockerode": { - "version": "2.5.34", - "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-2.5.34.tgz", - "integrity": "sha512-LcbLGcvcBwBAvjH9UrUI+4qotY+A5WCer5r43DR5XHv2ZIEByNXFdPLo1XxR+v/BjkGjlggW8qUiXuVEhqfkpA==", + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/@types/dockerode/-/dockerode-3.2.1.tgz", + "integrity": "sha512-AeZpdQMNqM8dtrEaaP81CbjdRVKNmFIMzgz5IlKIeS5uWEmjlEmENP444AGTEEF71r5TFuY9E4SkzZAO8lOF1A==", "dev": true, "requires": { "@types/node": "*" @@ -398,14 +398,14 @@ } }, "testcontainers": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-6.4.0.tgz", - "integrity": "sha512-iajbJhbc1lMjyjm+TOKwke2I4jpWDZxvptuqoALKaEv6oaMZltvwA7IhaTtBoGH7rDrwJGfpVxOy2QlZJ/3VuQ==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/testcontainers/-/testcontainers-6.4.1.tgz", + "integrity": "sha512-MNO0t7AOCFtMJBGCRGPBGgm3Xs0k0prVXiIDQ6YLkP/+1XWJeKIeEmi60HBme03mxv5T1bzP3eoEbjblg6L2dQ==", "dev": true, "requires": { - "@types/dockerode": "^2.5.34", + "@types/dockerode": "^3.2.1", "byline": "^5.0.0", - "debug": "^4.1.1", + "debug": "^4.3.1", "docker-compose": "^0.23.5", "dockerode": "^3.2.1", "get-port": "^5.1.1", @@ -413,7 +413,7 @@ "slash": "^3.0.0", "ssh-remote-port-forward": "^1.0.3", "stream-to-array": "^2.3.0", - "tar-fs": "^2.1.0" + "tar-fs": "^2.1.1" } }, "tslib": { diff --git a/acceptance/extension-logging-fluentd/package.json b/acceptance/extension-logging-fluentd/package.json index 4ddce639319a..1903d833b0f0 100644 --- a/acceptance/extension-logging-fluentd/package.json +++ b/acceptance/extension-logging-fluentd/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/test-extension-logging-fluentd", - "version": "0.4.5", + "version": "0.4.6", "description": "Acceptance test for `@loopback/logging` with fluentd", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -20,13 +20,13 @@ "copyright.owner": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/logging": "^0.4.5", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/logging": "^0.4.6", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "testcontainers": "^6.4.0", + "testcontainers": "^6.4.1", "tslib": "^2.0.3" }, "files": [ diff --git a/acceptance/repository-cloudant/CHANGELOG.md b/acceptance/repository-cloudant/CHANGELOG.md index b61a85d98034..fea3d23d421a 100644 --- a/acceptance/repository-cloudant/CHANGELOG.md +++ b/acceptance/repository-cloudant/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.16](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-cloudant@2.2.15...@loopback/test-repository-cloudant@2.2.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/test-repository-cloudant + + + + + ## [2.2.15](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-cloudant@2.2.14...@loopback/test-repository-cloudant@2.2.15) (2020-12-07) **Note:** Version bump only for package @loopback/test-repository-cloudant diff --git a/acceptance/repository-cloudant/package-lock.json b/acceptance/repository-cloudant/package-lock.json index 472c64a00efb..e82a36aabf25 100644 --- a/acceptance/repository-cloudant/package-lock.json +++ b/acceptance/repository-cloudant/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/test-repository-cloudant", - "version": "2.2.15", + "version": "2.2.16", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -390,6 +390,14 @@ "dev": true, "requires": { "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } }, "delayed-stream": { @@ -1005,6 +1013,14 @@ "dev": true, "requires": { "ms": "2.1.2" + }, + "dependencies": { + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } } } } @@ -1109,9 +1125,9 @@ "dev": true }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "msgpack5": { @@ -1587,9 +1603,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "universalify": { diff --git a/acceptance/repository-cloudant/package.json b/acceptance/repository-cloudant/package.json index a12ade64241c..526a0b104c60 100644 --- a/acceptance/repository-cloudant/package.json +++ b/acceptance/repository-cloudant/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/test-repository-cloudant", - "version": "2.2.15", + "version": "2.2.16", "description": "Acceptance tests for `@loopback/repository` + `loopback-connector-cloudant`", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,10 +21,10 @@ "copyright.owner": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/repository-tests": "^0.15.0", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/repository-tests": "^0.16.0", "@types/node": "^10.17.35", "async": "^3.2.0", "chalk": "^4.1.0", @@ -32,9 +32,9 @@ "dockerode": "^3.2.1", "lodash": "^4.17.20", "loopback-connector-cloudant": "2.4.2", - "ms": "2.1.2", + "ms": "2.1.3", "tslib": "^2.0.3", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "files": [ "README.md", diff --git a/acceptance/repository-mongodb/CHANGELOG.md b/acceptance/repository-mongodb/CHANGELOG.md index 0924f534cdef..d7eddbc6c300 100644 --- a/acceptance/repository-mongodb/CHANGELOG.md +++ b/acceptance/repository-mongodb/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.20](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-mongodb@0.7.19...@loopback/test-repository-mongodb@0.7.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/test-repository-mongodb + + + + + ## [0.7.19](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-mongodb@0.7.18...@loopback/test-repository-mongodb@0.7.19) (2020-12-07) **Note:** Version bump only for package @loopback/test-repository-mongodb diff --git a/acceptance/repository-mongodb/package-lock.json b/acceptance/repository-mongodb/package-lock.json index 7b810f3e5025..f8d45e843417 100644 --- a/acceptance/repository-mongodb/package-lock.json +++ b/acceptance/repository-mongodb/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/test-repository-mongodb", - "version": "0.7.19", + "version": "0.7.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/acceptance/repository-mongodb/package.json b/acceptance/repository-mongodb/package.json index 76ebd1c712ef..e146559aa3ba 100644 --- a/acceptance/repository-mongodb/package.json +++ b/acceptance/repository-mongodb/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/test-repository-mongodb", - "version": "0.7.19", + "version": "0.7.20", "description": "Acceptance tests for `@loopback/repository` + `loopback-connector-mongodb`", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -20,11 +20,11 @@ "copyright.owner": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/repository-tests": "^0.15.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/repository-tests": "^0.16.0", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", "loopback-connector-mongodb": "^5.5.0", "tslib": "^2.0.3" diff --git a/acceptance/repository-mysql/CHANGELOG.md b/acceptance/repository-mysql/CHANGELOG.md index 49b83f0c42a6..bc4176637f46 100644 --- a/acceptance/repository-mysql/CHANGELOG.md +++ b/acceptance/repository-mysql/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.20](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-mysql@0.7.19...@loopback/test-repository-mysql@0.7.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/test-repository-mysql + + + + + ## [0.7.19](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-mysql@0.7.18...@loopback/test-repository-mysql@0.7.19) (2020-12-07) **Note:** Version bump only for package @loopback/test-repository-mysql diff --git a/acceptance/repository-mysql/package-lock.json b/acceptance/repository-mysql/package-lock.json index 8d7a7b80df07..ea3fdaf3cc6e 100644 --- a/acceptance/repository-mysql/package-lock.json +++ b/acceptance/repository-mysql/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/test-repository-mysql", - "version": "0.7.19", + "version": "0.7.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/acceptance/repository-mysql/package.json b/acceptance/repository-mysql/package.json index e0e97355af11..37b9fec11c4e 100644 --- a/acceptance/repository-mysql/package.json +++ b/acceptance/repository-mysql/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/test-repository-mysql", - "version": "0.7.19", + "version": "0.7.20", "description": "Acceptance tests for `@loopback/repository` + `loopback-connector-mysql`", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -20,11 +20,11 @@ "copyright.owner": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/repository-tests": "^0.15.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/repository-tests": "^0.16.0", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", "loopback-connector-mysql": "^6.0.0", "tslib": "^2.0.3" diff --git a/acceptance/repository-postgresql/CHANGELOG.md b/acceptance/repository-postgresql/CHANGELOG.md index b21f7919139b..671159f1c5df 100644 --- a/acceptance/repository-postgresql/CHANGELOG.md +++ b/acceptance/repository-postgresql/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.20](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-postgresql@2.1.19...@loopback/test-repository-postgresql@2.1.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/test-repository-postgresql + + + + + ## [2.1.19](https://github.com/strongloop/loopback-next/compare/@loopback/test-repository-postgresql@2.1.18...@loopback/test-repository-postgresql@2.1.19) (2020-12-07) **Note:** Version bump only for package @loopback/test-repository-postgresql diff --git a/acceptance/repository-postgresql/package-lock.json b/acceptance/repository-postgresql/package-lock.json index f64f2ae129d7..b7c21b574735 100644 --- a/acceptance/repository-postgresql/package-lock.json +++ b/acceptance/repository-postgresql/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/test-repository-postgresql", - "version": "2.1.19", + "version": "2.1.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/acceptance/repository-postgresql/package.json b/acceptance/repository-postgresql/package.json index 7192988cf8a3..4fef300fd6a1 100644 --- a/acceptance/repository-postgresql/package.json +++ b/acceptance/repository-postgresql/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/test-repository-postgresql", - "version": "2.1.19", + "version": "2.1.20", "description": "Acceptance tests for `@loopback/repository` + `loopback-connector-postgresql`", "private": true, "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -20,11 +20,11 @@ "copyright.owner": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/repository-tests": "^0.15.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/repository-tests": "^0.16.0", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", "loopback-connector-postgresql": "^5.3.0", "tslib": "^2.0.3" diff --git a/benchmark/CHANGELOG.md b/benchmark/CHANGELOG.md index dce994c77644..c9ef496777c4 100644 --- a/benchmark/CHANGELOG.md +++ b/benchmark/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/benchmark@2.1.15...@loopback/benchmark@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/benchmark + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/benchmark@2.1.14...@loopback/benchmark@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/benchmark diff --git a/benchmark/package-lock.json b/benchmark/package-lock.json index fe74c56bded4..4455932bb11b 100644 --- a/benchmark/package-lock.json +++ b/benchmark/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/benchmark", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -50,9 +50,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/mocha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.4.tgz", - "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==", "dev": true }, "@types/node": { @@ -142,9 +142,9 @@ "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, "autocannon": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/autocannon/-/autocannon-6.5.0.tgz", - "integrity": "sha512-gHqKcvxyKTwN8Wj9PN/ya5gyC7Dy+WblBNMWogkYJ+GHB51wBqcTAb8gfs/oGk/fTajGXjHoTHWijRV2mRGR8g==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/autocannon/-/autocannon-7.0.3.tgz", + "integrity": "sha512-SotMqmw735jdDAktwUJWU9ORLJlczA1Bbng4D+B4bocNQKiIzLfsigTOQDLWUc8HPaYgeTtGoO6xOUeFHHAmPQ==", "requires": { "chalk": "^4.1.0", "cli-table3": "^0.6.0", @@ -160,10 +160,12 @@ "manage-path": "^2.0.0", "minimist": "^1.2.0", "on-net-listen": "^1.1.1", + "ora": "^5.1.0", "pretty-bytes": "^5.4.1", "progress": "^2.0.3", "reinterval": "^1.1.0", "retimer": "^2.0.0", + "semver": "^7.3.2", "timestring": "^6.0.0" }, "dependencies": { @@ -213,6 +215,16 @@ "integrity": "sha512-1Yj8h9Q+QDF5FzhMs/c9+6UntbD5MkRfRwac8DoEm9ZfUBZ7tZ55YcGVAzEe4bXsdQHEk+s9S5wsOKVdZrw0tQ==", "dev": true }, + "bl": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz", + "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==", + "requires": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", @@ -238,6 +250,15 @@ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, "buffer-from": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", @@ -280,6 +301,19 @@ "readdirp": "~3.5.0" } }, + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", + "requires": { + "restore-cursor": "^3.1.0" + } + }, + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==" + }, "cli-table3": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.0.tgz", @@ -403,6 +437,21 @@ "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=" + } + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -551,19 +600,24 @@ "dev": true }, "http-parser-js": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.2.tgz", - "integrity": "sha512-opCO9ASqg5Wy2FNo7A0sxy71yGbbkJJXLdgMK04Tcypw9jr2MgWbyubb0+WdmDmGnFflO7fRbqbaihh/ENDlRQ==" + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" }, "hyperid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.0.5.tgz", - "integrity": "sha512-kg0+DOmWo3HSFvWWMCQJJhzEB4kg5z/83l4eFDaeAMJ5E2zbQzTEewAmVtOqdRElU9yRFJhCOuegUk0M6RZfiw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.1.0.tgz", + "integrity": "sha512-cSakhxbUsaIuqjfvvcUuvl/Fl342J65xgLLYrYxSSr9qmJ/EJK+S8crS6mIlQd/a7i+Pe4D0MgSrtZPLze+aCw==", "requires": { "uuid": "^3.4.0", "uuid-parse": "^1.1.0" } }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -577,8 +631,7 @@ "inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "is-binary-path": { "version": "2.1.0", @@ -609,6 +662,11 @@ "is-extglob": "^2.1.1" } }, + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==" + }, "is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", @@ -655,11 +713,18 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.0.0.tgz", "integrity": "sha512-FN8JBzLx6CzeMrB0tg6pqlGU1wCrXW+ZXGH481kfsBqer0hToTIiHdjH4Mq8xJUbvATujKCvaREGWpGUionraA==", - "dev": true, "requires": { "chalk": "^4.0.0" } }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "requires": { + "yallist": "^4.0.0" + } + }, "manage-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz", @@ -678,6 +743,11 @@ "mime-db": "1.44.0" } }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -772,6 +842,29 @@ "wrappy": "1" } }, + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "ora": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.3.0.tgz", + "integrity": "sha512-zAKMgGXUim0Jyd6CXK9lraBnD3H5yPGBPPOkC23a2BG6hsm4Zu6OQSjQuEtV0BHDf4aKHcUFvJiGRrFuW3MG8g==", + "requires": { + "bl": "^4.0.3", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "log-symbols": "^4.0.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -830,9 +923,9 @@ "integrity": "sha512-fnWVljUchTro6RiCFvCXBbNhJc2NijN7oIQxbwsyL0buWJPG85v81ehlHI9fXrJsMNgTofEoWIQeClKpgxFLrg==" }, "pretty-bytes": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz", - "integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA==" + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz", + "integrity": "sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA==" }, "progress": { "version": "2.0.3", @@ -848,6 +941,16 @@ "safe-buffer": "^5.1.0" } }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, "readdirp": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", @@ -874,6 +977,15 @@ "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", "dev": true }, + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, "retimer": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/retimer/-/retimer-2.0.0.tgz", @@ -882,8 +994,15 @@ "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "semver": { + "version": "7.3.4", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", + "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", + "requires": { + "lru-cache": "^6.0.0" + } }, "serialize-javascript": { "version": "5.0.1", @@ -900,6 +1019,11 @@ "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", "dev": true }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -932,6 +1056,14 @@ "strip-ansi": "^6.0.0" } }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, "strip-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", @@ -973,6 +1105,11 @@ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz", "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, "uuid": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", @@ -983,6 +1120,14 @@ "resolved": "https://registry.npmjs.org/uuid-parse/-/uuid-parse-1.1.0.tgz", "integrity": "sha512-OdmXxA8rDsQ7YpNVbKSJkNzTw2I+S5WsbMDnCtIWSQaosNAcWtFuI/YK1TjzUI6nbkgiqEyh8gWngfcv8Asd9A==" }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "requires": { + "defaults": "^1.0.3" + } + }, "which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", @@ -1133,6 +1278,11 @@ "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", "dev": true }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, "yargs": { "version": "13.3.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", diff --git a/benchmark/package.json b/benchmark/package.json index c3901ad253c6..1dc5c9a199e8 100644 --- a/benchmark/package.json +++ b/benchmark/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/benchmark", - "version": "2.1.15", + "version": "2.1.16", "description": "Benchmarks measuring performance of our framework.", "private": true, "main": "dist/index.js", @@ -11,7 +11,7 @@ "benchmark" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -33,14 +33,14 @@ "!*/__tests__" ], "dependencies": { - "@loopback/core": "^2.13.1", - "@loopback/example-todo": "^3.9.2", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/rest": "^9.1.1", + "@loopback/core": "^2.14.0", + "@loopback/example-todo": "^3.9.3", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/rest": "^9.1.2", "@types/byline": "^4.2.32", "@types/debug": "^4.1.5", "@types/request-promise-native": "^1.0.17", - "autocannon": "^6.5.0", + "autocannon": "^7.0.3", "axios": "^0.21.0", "benchmark": "^2.1.4", "byline": "^5.0.0", @@ -49,11 +49,11 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/testlab": "^3.2.11", "@types/autocannon": "^4.1.0", "@types/benchmark": "^2.1.0", - "@types/mocha": "^8.0.4", + "@types/mocha": "^8.2.0", "@types/node": "^10.17.35", "mocha": "^8.2.1", "source-map-support": "^0.5.19" diff --git a/bodyparsers/rest-msgpack/CHANGELOG.md b/bodyparsers/rest-msgpack/CHANGELOG.md index 21dc4fda5248..9e16ba6abbf6 100644 --- a/bodyparsers/rest-msgpack/CHANGELOG.md +++ b/bodyparsers/rest-msgpack/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest-msgpack@0.2.4...@loopback/rest-msgpack@0.3.0) (2021-01-21) + + +### Features + +* replace msgpack parser ([fbdb0ab](https://github.com/strongloop/loopback-next/commit/fbdb0abe6c8b3f1025183c91a12e1cff4e5952df)) + + + + + ## [0.2.4](https://github.com/strongloop/loopback-next/compare/@loopback/rest-msgpack@0.2.3...@loopback/rest-msgpack@0.2.4) (2020-12-07) **Note:** Version bump only for package @loopback/rest-msgpack diff --git a/bodyparsers/rest-msgpack/README.md b/bodyparsers/rest-msgpack/README.md index b222c76488ca..1a4b5d4059a4 100644 --- a/bodyparsers/rest-msgpack/README.md +++ b/bodyparsers/rest-msgpack/README.md @@ -93,7 +93,7 @@ to include the MIME type as a possible response and use a parser library. For example, to update the Todo controller to return in MessagePack: ```ts -// `msgpack-lite` is re-exported by `@loopback/rest-msgpack` for convenience. +// `msgpack5` is re-exported by `@loopback/rest-msgpack` for convenience. // It is recommended to bind it to context the inject it to benefit from // dependency injection. import {MsgPackBodyParserBindings, msgpack} from '@loopback/rest-msgpack'; @@ -139,7 +139,7 @@ class TodoController { // this._res .type('application/msgpack') - .end(msgpack.encode(this.todoRepository.find(filter))); + .end(msgpack().encode(this.todoRepository.find(filter))); } } ``` diff --git a/bodyparsers/rest-msgpack/package-lock.json b/bodyparsers/rest-msgpack/package-lock.json index ff1c66d08ab3..43bc5855f597 100644 --- a/bodyparsers/rest-msgpack/package-lock.json +++ b/bodyparsers/rest-msgpack/package-lock.json @@ -1,18 +1,27 @@ { "name": "@loopback/rest-msgpack", - "version": "0.2.4", + "version": "0.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/msgpack-lite": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@types/msgpack-lite/-/msgpack-lite-0.1.7.tgz", - "integrity": "sha512-OYPf2ExHl0TKuDn7M/356RDyCiqOQEs8f+SfePpbfHJJ7C8mqgp4ShgeUTuE8W7Tui2txbyVPiRiDPeK3D9PPA==", + "@types/bl": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bl/-/bl-2.1.0.tgz", + "integrity": "sha512-1TdA9IXOy4sdqn8vgieQ6GZAiHiPNrOiO1s2GJjuYPw4QVY7gYoVjkW049avj33Ez7IcIvu43hQsMsoUFbCn2g==", "dev": true, "requires": { "@types/node": "*" } }, + "@types/msgpack5": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@types/msgpack5/-/msgpack5-3.4.1.tgz", + "integrity": "sha512-E3wILUjTXONukpiI6tmqpLwf7eV3MVTdxpjz56FqNn7koMF/6sSPUh5TxMlwgoOhyeejxwVoNZUiDcdqChKkAw==", + "dev": true, + "requires": { + "@types/bl": "*" + } + }, "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", @@ -28,20 +37,24 @@ "@types/node": "*" } }, - "event-lite": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/event-lite/-/event-lite-0.1.2.tgz", - "integrity": "sha512-HnSYx1BsJ87/p6swwzv+2v6B4X+uxUteoDfRxsAb1S1BePzQqOLevVmkdA15GHJVd9A9Ok6wygUR18Hu0YeV9g==" + "bl": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-2.2.1.tgz", + "integrity": "sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==", + "requires": { + "readable-stream": "^2.3.5", + "safe-buffer": "^5.1.1" + } }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" }, - "int64-buffer": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/int64-buffer/-/int64-buffer-0.1.10.tgz", - "integrity": "sha1-J3siiofZWtd30HwTgyAiQGpHNCM=" + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, "isarray": { "version": "1.0.0", @@ -66,15 +79,61 @@ "mime-db": "1.44.0" } }, - "msgpack-lite": { - "version": "0.1.26", - "resolved": "https://registry.npmjs.org/msgpack-lite/-/msgpack-lite-0.1.26.tgz", - "integrity": "sha1-3TxQsm8FnyXn7e42REGDWOKprYk=", + "msgpack5": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/msgpack5/-/msgpack5-4.5.0.tgz", + "integrity": "sha512-LYuyrhCncpw29VSAsoYyW8x+eubDtkkXCJQzHKren//b70/71GZcFpys+OpR8Qo5Seeeju6ULz5vIhTblFEMPg==", "requires": { - "event-lite": "^0.1.1", - "ieee754": "^1.1.8", - "int64-buffer": "^0.1.9", - "isarray": "^1.0.0" + "bl": "^2.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.3.6", + "safe-buffer": "^5.1.2" + } + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + }, + "dependencies": { + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + } } }, "tslib": { @@ -92,10 +151,15 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" } } } diff --git a/bodyparsers/rest-msgpack/package.json b/bodyparsers/rest-msgpack/package.json index cdffeef18090..5bb21128ab6e 100644 --- a/bodyparsers/rest-msgpack/package.json +++ b/bodyparsers/rest-msgpack/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/rest-msgpack", - "version": "0.2.4", + "version": "0.3.0", "description": "Body parser to handle MessagePack requests in LoopBack 4.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -32,22 +32,22 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "msgpack-lite": "0.1.26", + "msgpack5": "^4.5.0", "tslib": "^2.0.3", "type-is": "^1.6.18" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", - "@types/msgpack-lite": "0.1.7", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", + "@types/msgpack5": "^3.4.1", "@types/node": "^10.17.35", "@types/type-is": "^1.6.3", - "typescript": "~4.1.2" + "typescript": "~4.1.3" } } diff --git a/bodyparsers/rest-msgpack/src/__tests__/acceptance/bodyparser.acceptance.ts b/bodyparsers/rest-msgpack/src/__tests__/acceptance/bodyparser.acceptance.ts index b4cd64f8bcba..a4b926d9484d 100644 --- a/bodyparsers/rest-msgpack/src/__tests__/acceptance/bodyparser.acceptance.ts +++ b/bodyparsers/rest-msgpack/src/__tests__/acceptance/bodyparser.acceptance.ts @@ -20,8 +20,8 @@ import { ShotRequestOptions, stubExpressContext, } from '@loopback/testlab'; -import {encode} from 'msgpack-lite'; import {MsgPackBodyParser} from '../..'; +const msgpack = require('msgpack')(); describe('MessagePack body parser', () => { let requestBodyParser: RequestBodyParser; @@ -56,7 +56,7 @@ describe('MessagePack body parser', () => { headers: { 'Content-Type': contentType, }, - payload: encode({ + payload: msgpack.encode({ data: 'hello world', }), }); @@ -90,7 +90,7 @@ describe('MessagePack body parser', () => { headers: { 'Content-Type': 'application/msgpack', }, - payload: encode({ + payload: msgpack.encode({ data: 'does not conform to OAS 3 Schema Object', }), }); diff --git a/bodyparsers/rest-msgpack/src/__tests__/acceptance/component.acceptance.ts b/bodyparsers/rest-msgpack/src/__tests__/acceptance/component.acceptance.ts deleted file mode 100644 index f210cab2876b..000000000000 --- a/bodyparsers/rest-msgpack/src/__tests__/acceptance/component.acceptance.ts +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright IBM Corp. 2020. All Rights Reserved. -// Node module: @loopback/rest-msgpack -// This file is licensed under the MIT License. -// License text available at https://opensource.org/licenses/MIT - -import {RestApplication, RestBindings} from '@loopback/rest'; -import {expect} from '@loopback/testlab'; -import { - MsgPackBodyParser, - MsgPackBodyParserBindings, - MsgPackBodyParserComponent, -} from '../..'; - -describe('MessagePack body parser component', () => { - it('binds MessagePack body parser', async () => { - const restApplication = new RestApplication(); - restApplication.component(MsgPackBodyParserComponent); - - expect( - await restApplication.get(MsgPackBodyParserBindings.BODY_PARSER), - ).to.be.instanceOf(MsgPackBodyParser); - }); - - it('throws error without raw body parser', async () => { - const restApplication = new RestApplication(); - restApplication.unbind(RestBindings.REQUEST_BODY_PARSER_RAW); - - expect(() => - restApplication.component(MsgPackBodyParserComponent), - ).to.throw(); - }); -}); diff --git a/bodyparsers/rest-msgpack/src/bodyparser.ts b/bodyparsers/rest-msgpack/src/bodyparser.ts index 0bfbbc409d7f..c07c9e872361 100644 --- a/bodyparsers/rest-msgpack/src/bodyparser.ts +++ b/bodyparsers/rest-msgpack/src/bodyparser.ts @@ -11,11 +11,12 @@ import { RequestBodyParserOptions, RestBindings, } from '@loopback/rest'; +import msgpack from 'msgpack5'; import {is} from 'type-is'; -import {msgpack} from '.'; export class MsgPackBodyParser extends RawBodyParser { name = Symbol('msgpack'); + private _msgpack = msgpack(); constructor( @inject(RestBindings.REQUEST_BODY_PARSER_OPTIONS, {optional: true}) @@ -35,7 +36,7 @@ export class MsgPackBodyParser extends RawBodyParser { async parse(request: Request): Promise { const result = await super.parse(request); - const body = msgpack.decode(result.value); + const body = this._msgpack.decode(result.value); return { value: body, diff --git a/bodyparsers/rest-msgpack/src/component.ts b/bodyparsers/rest-msgpack/src/component.ts index a63edda70c68..a5ddf3c75bbe 100644 --- a/bodyparsers/rest-msgpack/src/component.ts +++ b/bodyparsers/rest-msgpack/src/component.ts @@ -23,8 +23,7 @@ export class MsgPackBodyParserComponent implements Component { @inject(RestBindings.REQUEST_BODY_PARSER_RAW, {optional: true}) rawBodyParser?: RawBodyParser, ) { - if (rawBodyParser == null) { + if (!rawBodyParser) throw new Error('MessagePack body parser requires raw body parser.'); - } } } diff --git a/bodyparsers/rest-msgpack/src/index.ts b/bodyparsers/rest-msgpack/src/index.ts index dea7c73d9b42..098d865cd7dc 100644 --- a/bodyparsers/rest-msgpack/src/index.ts +++ b/bodyparsers/rest-msgpack/src/index.ts @@ -3,7 +3,7 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import msgpack from 'msgpack-lite'; +import msgpack from 'msgpack5'; export * from './bodyparser'; export * from './component'; export * from './keys'; diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index 33f7043772e8..17ccb6456639 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -3,6 +3,28 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.21.0](https://github.com/strongloop/loopback-next/compare/@loopback/docs@3.20.0...@loopback/docs@3.21.0) (2021-01-21) + + +### Bug Fixes + +* **context:** make sure subclass is used for create binding from class ([befbbcf](https://github.com/strongloop/loopback-next/commit/befbbcf04bb66b1764291139c2bdd67a869d62d4)) +* **docs:** add info on action-based sequences ([883e9b3](https://github.com/strongloop/loopback-next/commit/883e9b31b0e5281085a0c9f091f648e84fef795e)) +* **docs:** add injectable decorator in custom extended sequence ([1fe4c27](https://github.com/strongloop/loopback-next/commit/1fe4c274efb32210699c13be38d8b71365bee9c4)), closes [#6918](https://github.com/strongloop/loopback-next/issues/6918) +* **docs:** binding event listener sample code ([bc5dc91](https://github.com/strongloop/loopback-next/commit/bc5dc91af5f23d6be0d83092efe87d1c79117cd5)) +* **docs:** encoded inclusion filter code example ([73be4a4](https://github.com/strongloop/loopback-next/commit/73be4a496bf37bfbd93ab7f08abb14fb2f1b7b7f)), closes [#6980](https://github.com/strongloop/loopback-next/issues/6980) + + +### Features + +* make @loopback/tsdocs public so that it can be used by other projects ([90d157f](https://github.com/strongloop/loopback-next/commit/90d157f2762f8c61199ade35014bebc45e7a3d2f)) +* normalize debug scopes in relations ([b3c52c1](https://github.com/strongloop/loopback-next/commit/b3c52c191fc98cc6fc2b304c838d5b15b62ddcb5)) +* **docs:** add warning on LB3 hooks 'this' behaviour ([b9f435e](https://github.com/strongloop/loopback-next/commit/b9f435e527c81ec3e0ac8cf13fbb6902009b87b9)) + + + + + # [3.20.0](https://github.com/strongloop/loopback-next/compare/@loopback/docs@3.19.0...@loopback/docs@3.20.0) (2020-12-07) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index 6b853e3b7265..718ee60677df 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -46,7 +46,7 @@ and tools contained in LoopBack repositories. - [Git commit messages](./site/DEVELOPING.md#commit-message-guidelines) - [Making breaking changes](./site/DEVELOPING.md#making-breaking-changes) - [Reviewing pull requests](http://loopback.io/doc/en/contrib/triaging-pull-requests.html) -- [Contributor License Agreement (CLA)](http://loopback.io/doc/en/contrib/code-contrib.html#agreeing-to-the-cla) +- [Developer Certificate of Origin (DCO)](https://loopback.io/doc/en/contrib/code-contrib.html#developer-certificate-of-origin-dco) ## [Documentation](http://loopback.io/doc/en/contrib/doc-contrib.html) diff --git a/docs/package-lock.json b/docs/package-lock.json index 3b7c7e2a0e2c..3568a03dc39f 100644 --- a/docs/package-lock.json +++ b/docs/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/docs", - "version": "3.20.0", + "version": "3.21.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,14 +10,14 @@ "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "graceful-fs": { @@ -32,13 +32,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "tslib": { @@ -47,9 +40,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } } diff --git a/docs/package.json b/docs/package.json index a886e6a2e156..b69816bd5b5f 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/docs", - "version": "3.20.0", + "version": "3.21.0", "description": "Documentation files rendered at [https://loopback.io](https://loopback.io)", "homepage": "https://github.com/strongloop/loopback-next/tree/master/docs", "author": "IBM Corp.", @@ -10,14 +10,14 @@ "access": "public" }, "dependencies": { - "fs-extra": "^9.0.1", + "fs-extra": "^9.1.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8" + "@loopback/build": "^6.2.9" }, "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "files": [ "*.md", diff --git a/docs/site/Application-setup-tips.md b/docs/site/Application-setup-tips.md new file mode 100644 index 000000000000..ecce5d5906c8 --- /dev/null +++ b/docs/site/Application-setup-tips.md @@ -0,0 +1,79 @@ +--- +lang: en +title: 'Tips for Application Setup' +keywords: + LoopBack 4.0, LoopBack 4, Node.js, TypeScript, Application Setup, + RestApplication +sidebar: lb4_sidebar +permalink: /doc/en/lb4/Application-setup-tips.html +--- + +Here are some tips for application setup to help avoid common pitfalls and +mistakes. + +### Extend from `RestApplication` when using `RestServer` + +If you want to use `RestServer` from the `@loopback/rest` package, we recommend +extending `RestApplication` in your app instead of manually binding `RestServer` +or `RestComponent`. `RestApplication` already uses `RestComponent` and makes +useful functions in `RestServer` like `handler()` available at the app level. +This means you can call the `RestServer` functions to perform all of your +server-level setups in the app constructor without having to explicitly retrieve +an instance of your server. + +### Serve static files + +The `RestServer` allows static files to be served. It can be set up by calling +the `static()` API. + +```ts +app.static('/html', rootDirForHtml); +``` + +or + +```ts +server.static(['/html', '/public'], rootDirForHtml); +``` + +Static assets are not allowed to be mounted on `/` to avoid performance penalty +as `/` matches all paths and incurs file system access for each HTTP request. + +The static() API delegates to +[serve-static](https://expressjs.com/en/resources/middleware/serve-static.html) +to serve static files. Please see +https://expressjs.com/en/starter/static-files.html and +https://expressjs.com/en/4x/api.html#express.static for details. + +{% include warning.html content="The static assets are served before LoopBack sequence of actions. If an error is thrown, the `reject` action will NOT be triggered." %} + +### Use unique bindings + +Use binding names that are prefixed with a unique string that does not overlap +with LoopBack's bindings. As an example, if your application is built for your +employer FooCorp, you can prefix your bindings with `fooCorp`. + +```ts +// This is unlikely to conflict with keys used by other component developers +// or within loopback itself! +app.bind('fooCorp.widgetServer.config').to(widgetServerConfig); +``` + +### Avoid use of `getSync` + +We provide the +[`getSync`](https://loopback.io/doc/en/lb4/apidocs.context.context.getsync_1.html) +function for scenarios where you cannot asynchronously retrieve your bindings, +such as in constructor bodies. + +However, the number of scenarios in which you must do this are limited, and you +should avoid potential race conditions and retrieve your bindings asynchronously +using the +[`get`](https://loopback.io/doc/en/lb4/apidocs.context.context.get_1.html) +function whenever possible. + +### Use caution with singleton binding scopes + +By default, bindings for controllers will instantiate a new instance whenever +they are injected or retrieved from their binding. Your application should only +set singleton binding scopes on controllers when it makes sense to do so. diff --git a/docs/site/Application.md b/docs/site/Application.md index aa4a2946d926..d4fd31867676 100644 --- a/docs/site/Application.md +++ b/docs/site/Application.md @@ -1,7 +1,9 @@ --- lang: en title: 'Application' -keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Concepts +keywords: + LoopBack 4.0, LoopBack 4, Node.js, TypeScript, Application, Configuring + Applications sidebar: lb4_sidebar permalink: /doc/en/lb4/Application.html --- @@ -18,251 +20,6 @@ and its associated servers. When using LoopBack 4, we strongly encourage you to create your own subclass of `Application` to better organize your configuration and setup. -## Making your own application class +## Common tasks -By making your own application class, you can perform several additional tasks -as a part of your setup: - -- Pass the configuration into the base class constructor -- Perform asynchronous startup functions before starting the application -- Perform graceful cleanup functions when the application stops - -{% include code-caption.html content="src/widget.application.ts" %} - -```ts -import {Application} from '@loopback/core'; -import {RestComponent} from '@loopback/rest'; -import {UserController, ShoppingCartController} from './controllers'; - -export class WidgetApplication extends Application { - constructor() { - // This is where you would pass configuration to the base constructor - // (as well as handle your own!) - super({ - rest: { - port: 8080, - }, - }); - - const app = this; // For clarity. - // You can bind to the Application-level context here. - // app.bind('foo').to(bar); - app.component(RestComponent); - app.controller(UserController); - app.controller(ShoppingCartController); - } - - async stop() { - // This is where you would do whatever is necessary before stopping your - // app (graceful closing of connections, flushing buffers, etc) - console.log('Widget application is shutting down...'); - // The superclass stop method will call stop on all servers that are - // bound to the application. - await super.stop(); - } -} -``` - -## Configuring your application - -Your application can be configured with constructor arguments, bindings, or a -combination of both. - -### Binding configuration - -Binding is the most commonly-demonstrated form of application configuration -throughout our examples. Binding is the recommended method for setting up your -application. - -In addition to the binding functions provided by [Context](Context.md), the -`Application` class also provides some sugar functions for commonly used -bindings, like `component`, `server` and `controller`: - -```ts -export class MyApplication extends Application { - constructor() { - super(); - this.component(MagicSuite); - this.server(RestServer, 'public'); - this.server(RestServer, 'private'); - - this.controller(FooController); - this.controller(BarController); - this.controller(BazController); - } -} -``` - -You can find a complete list of these functions on the -[`Application`](https://loopback.io/doc/en/lb4/apidocs.core.application.html) -API docs page. - -Additionally, you can use more advanced forms of binding to fine-tune your -application's configuration: - -```ts -export class MyApplication extends Application { - constructor() { - super(); - this.server(RestServer); - this.controller(FooController); - this.bind('fooCorp.logger').toProvider(LogProvider); - this.bind('repositories.widget') - .toClass(WidgetRepository) - .inScope(BindingScope.SINGLETON); - } -} -``` - -In the above example: - -- injection calls for `fooCorp.logger` will be handled by the `LogProvider` - class. -- injection calls for `repositories.widget` will be handled by a singleton - instance of the `WidgetRepository` class. - -#### Components - -```ts -app.component(MyComponent); -app.component(RestComponent); -``` - -The `component` function allows binding of component constructors within your -`Application` instance's context. - -For more information on how to make use of components, see -[Using Components](Component.md#using-components). - -#### Controllers - -```ts -app.controller(FooController); -app.controller(BarController); -``` - -Much like the component function, the `controller` function allows binding of -[Controllers](Controller.md) to the `Application` context. - -#### Servers - -```ts -app.server(RestServer); -app.servers([MyServer, GrpcServer]); -``` - -The `server` function is much like the previous functions, but bulk bindings are -possible with [Servers](Server.md) through the function `servers`. - -```ts -const app = new Application(); -app.server(RestServer, 'public'); // {'public': RestServer} -app.server(RestServer, 'private'); // {'private': RestServer} -``` - -In the above example, the two server instances would be bound to the Application -context under the keys `servers.public` and `servers.private`, respectively. - -### Constructor configuration - -The `Application` class constructor also accepts an -[`ApplicationConfig`](https://loopback.io/doc/en/lb4/apidocs.core.applicationconfig.html) -object which contains component-level configurations such as -[`RestServerConfig`](https://loopback.io/doc/en/lb4/apidocs.rest.restserverconfig.html). -It will automatically create bindings for these configurations and later be -injected through dependency injections. Visit -[Dependency Injection](Dependency-injection.md) for more information. - -{% include note.html content=" -Binding configuration such as component binding, -provider binding, or binding scopes are not possible with the constructor-based -configuration approach. -" %} - -```ts -export class MyApplication extends RestApplication { - constructor() { - super({ - rest: { - port: 4000, - host: 'my-host', - }, - }); - } -} -``` - -## Tips for application setup - -Here are some tips for application setup to help avoid common pitfalls and -mistakes. - -### Extend from `RestApplication` when using `RestServer` - -If you want to use `RestServer` from the `@loopback/rest` package, we recommend -extending `RestApplication` in your app instead of manually binding `RestServer` -or `RestComponent`. `RestApplication` already uses `RestComponent` and makes -useful functions in `RestServer` like `handler()` available at the app level. -This means you can call the `RestServer` functions to perform all of your -server-level setups in the app constructor without having to explicitly retrieve -an instance of your server. - -### Serve static files - -The `RestServer` allows static files to be served. It can be set up by calling -the `static()` API. - -```ts -app.static('/html', rootDirForHtml); -``` - -or - -```ts -server.static(['/html', '/public'], rootDirForHtml); -``` - -Static assets are not allowed to be mounted on `/` to avoid performance penalty -as `/` matches all paths and incurs file system access for each HTTP request. - -The static() API delegates to -[serve-static](https://expressjs.com/en/resources/middleware/serve-static.html) -to serve static files. Please see -https://expressjs.com/en/starter/static-files.html and -https://expressjs.com/en/4x/api.html#express.static for details. - -**WARNING**: - -> The static assets are served before LoopBack sequence of actions. If an error -> is thrown, the `reject` action will NOT be triggered. - -### Use unique bindings - -Use binding names that are prefixed with a unique string that does not overlap -with LoopBack's bindings. As an example, if your application is built for your -employer FooCorp, you can prefix your bindings with `fooCorp`. - -```ts -// This is unlikely to conflict with keys used by other component developers -// or within loopback itself! -app.bind('fooCorp.widgetServer.config').to(widgetServerConfig); -``` - -### Avoid use of `getSync` - -We provide the -[`getSync`](https://loopback.io/doc/en/lb4/apidocs.context.context.getsync_1.html) -function for scenarios where you cannot asynchronously retrieve your bindings, -such as in constructor bodies. - -However, the number of scenarios in which you must do this are limited, and you -should avoid potential race conditions and retrieve your bindings asynchronously -using the -[`get`](https://loopback.io/doc/en/lb4/apidocs.context.context.get_1.html) -function whenever possible. - -### Use caution with singleton binding scopes - -By default, bindings for controllers will instantiate a new instance whenever -they are injected or retrieved from their binding. Your application should only -set singleton binding scopes on controllers when it makes sense to do so. +- [Configuring Applications](Configuring-applications.md) diff --git a/docs/site/Binding.md b/docs/site/Binding.md index 56906be0bd92..17465079062c 100644 --- a/docs/site/Binding.md +++ b/docs/site/Binding.md @@ -1074,7 +1074,7 @@ Now we can register a binding listener to be triggered when tags are changed: ```ts const bindingListener: BindingEventListener = ({binding, operation}) => { - if (event === 'tag') { + if (operation === 'tag') { console.log('Binding tags for %s %j', binding.key, binding.tagMap); } }); diff --git a/docs/site/Configuring-applications.md b/docs/site/Configuring-applications.md new file mode 100644 index 000000000000..15fb63420a9a --- /dev/null +++ b/docs/site/Configuring-applications.md @@ -0,0 +1,214 @@ +--- +lang: en +title: 'Configuring Applications' +keywords: LoopBack 4.0, LoopBack 4, Node.js, TypeScript, OpenAPI, Concepts +sidebar: lb4_sidebar +permalink: /doc/en/lb4/Configuring-applications.html +--- + +## Making your own application class + +By making your own application class, you can perform several additional tasks +as a part of your setup: + +- Pass the configuration into the base class constructor +- Perform asynchronous startup functions before starting the application +- Perform graceful cleanup functions when the application stops + +{% include code-caption.html content="src/widget.application.ts" %} + +```ts +import {Application} from '@loopback/core'; +import {RestComponent} from '@loopback/rest'; +import {UserController, ShoppingCartController} from './controllers'; + +export class WidgetApplication extends Application { + constructor() { + // This is where you would pass configuration to the base constructor + // (as well as handle your own!) + super({ + rest: { + port: 8080, + }, + }); + + const app = this; // For clarity. + // You can bind to the Application-level context here. + // app.bind('foo').to(bar); + app.component(RestComponent); + app.controller(UserController); + app.controller(ShoppingCartController); + } + + async stop() { + // This is where you would do whatever is necessary before stopping your + // app (graceful closing of connections, flushing buffers, etc) + console.log('Widget application is shutting down...'); + // The superclass stop method will call stop on all servers that are + // bound to the application. + await super.stop(); + } +} +``` + +## Configuring your application + +Your application can be configured with constructor arguments, bindings, or a +combination of both. + +Let's see how these configurations work below. + +### Manual binding configuration + +Binding is the most commonly-demonstrated form of application configuration +throughout our examples. Binding is the recommended method for setting up your +application. + +In addition to the binding functions provided by [Context](Context.md), the +`Application` class also provides some sugar functions for commonly used +bindings, like `component`, `server` and `controller`: + +```ts +export class MyApplication extends Application { + constructor() { + super(); + this.component(MagicSuite); + this.server(RestServer, 'public'); + this.server(RestServer, 'private'); + + this.controller(FooController); + this.controller(BarController); + this.controller(BazController); + } +} +``` + +You can find a complete list of these functions on the +[`Application`](https://loopback.io/doc/en/lb4/apidocs.core.application.html) +API docs page. + +Additionally, you can use more advanced forms of binding to fine-tune your +application's configuration: + +```ts +export class MyApplication extends Application { + constructor() { + super(); + this.server(RestServer); + this.controller(FooController); + this.bind('fooCorp.logger').toProvider(LogProvider); + this.bind('repositories.widget') + .toClass(WidgetRepository) + .inScope(BindingScope.SINGLETON); + } +} +``` + +In the above example: + +- injection calls for `fooCorp.logger` will be handled by the `LogProvider` + class. +- injection calls for `repositories.widget` will be handled by a singleton + instance of the `WidgetRepository` class. + +#### Components + +```ts +app.component(MyComponent); +app.component(RestComponent); +``` + +The `component` function allows binding of component constructors within your +`Application` instance's context. + +For more information on how to make use of components, see +[Using Components](Component.md#using-components). + +#### Controllers + +```ts +app.controller(FooController); +app.controller(BarController); +``` + +Much like the component function, the `controller` function allows binding of +[Controllers](Controller.md) to the `Application` context. + +#### Servers + +```ts +app.server(RestServer); +app.servers([MyServer, GrpcServer]); +``` + +The `server` function is much like the previous functions, but bulk bindings are +possible with [Servers](Server.md) through the function `servers`. + +```ts +const app = new Application(); +app.server(RestServer, 'public'); // {'public': RestServer} +app.server(RestServer, 'private'); // {'private': RestServer} +``` + +In the above example, the two server instances would be bound to the Application +context under the keys `servers.public` and `servers.private`, respectively. + +The above examples of binding demonstrate manual binding where LoopBack does not +automatically register the above artifacts on your behalf. Alternatively, +LoopBack can automatically register artifacts for you. Let's see how this is +done with [DataSources](DataSource.md) and [Repositories](Repository.md) below. + +#### DataSources + +### Automatic binding configuration + +Alternative to manually binding artifacts in your application LoopBack 4 comes +with an automatic approach to binding artifacts like Controllers, DataSources, +Models and Repositories. Using a +[Booter class](https://loopback.io/doc/en/lb4/Booting-an-Application.html#booters) +LoopBack automatically discovers the above artifacts, as per the folder +structure illustrated in the table below: + +| Artifact | Directory | File extension | +| ------------ | -------------- | ---------------- | +| `Controller` | `controllers` | `.controller.ts` | +| `DataSource` | `datasources` | `.datasource.ts` | +| `Repository` | `repositories` | `.repository.ts` | +| `Model` | `models` | `.model.ts` | + +{% include tip.html content=" +Automatic binding configuration is by default supported when using the [Command-line interface](Command-line-interface.md) tools +" %} + +### Constructor configuration + +The `Application` class constructor also accepts an +[`ApplicationConfig`](https://loopback.io/doc/en/lb4/apidocs.core.applicationconfig.html) +object which contains component-level configurations such as +[`RestServerConfig`](https://loopback.io/doc/en/lb4/apidocs.rest.restserverconfig.html). +It will automatically create bindings for these configurations and later be +injected through dependency injections. Visit +[Dependency Injection](Dependency-injection.md) for more information. + +{% include note.html content=" +Binding configuration such as component binding, +provider binding, or binding scopes are not possible with the constructor-based +configuration approach. +" %} + +```ts +export class MyApplication extends RestApplication { + constructor() { + super({ + rest: { + port: 4000, + host: 'my-host', + }, + }); + } +} +``` + +## Further Reading + +- [Booting an Application](Booting-an-Application.md) diff --git a/docs/site/Creating-datasource-runtime.md b/docs/site/Creating-datasource-runtime.md index 21f054600284..21def5c4db7c 100644 --- a/docs/site/Creating-datasource-runtime.md +++ b/docs/site/Creating-datasource-runtime.md @@ -23,9 +23,8 @@ await bookDs.connect(); app.dataSource(bookDs, dsName); ``` -For details about datasource options, refer to the [DataSource -documentation])(https://apidocs.strongloop.com/loopback-datasource-juggler/#datasource) -. +For details about datasource options, refer to the +[DataSource documentation](https://apidocs.strongloop.com/loopback-datasource-juggler/#datasource). Attach the newly created datasource to the app by calling `app.dataSource()`. diff --git a/docs/site/Include-filter.md b/docs/site/Include-filter.md index 35a029965c8e..55b9c6bf763e 100644 --- a/docs/site/Include-filter.md +++ b/docs/site/Include-filter.md @@ -110,7 +110,7 @@ const inclusionFilter = { }, }, }; -const encodedFilter = encodeURIComponent(JSON.stringify(filter)); +const encodedFilter = encodeURIComponent(JSON.stringify(inclusionFilter)); ``` and call `/modelName?filter=` diff --git a/docs/site/Interceptor.md b/docs/site/Interceptor.md index 3cfcbaa1c6c2..f51452ce8b07 100644 --- a/docs/site/Interceptor.md +++ b/docs/site/Interceptor.md @@ -360,6 +360,8 @@ The registration can be further simplified as: app.interceptor(MetricsInterceptorProvider, {global: true, group: 'metrics'}); ``` +{% include tip.html content="If you need to intercept all requests, including these destinated to a LB3-mounted app, you can use a [LoopBack Middleware](./Middleware.md#loopback-style-middleware)." %} + ### Order of invocation for interceptors Multiple `@intercept` decorators can be applied to a class or a method. The diff --git a/docs/site/LoopBack-types.md b/docs/site/LoopBack-types.md index 7b871b4fd657..9693a9869c6b 100644 --- a/docs/site/LoopBack-types.md +++ b/docs/site/LoopBack-types.md @@ -130,6 +130,9 @@ value is provided.  The type name is case-insensitive; so for example you can use either \"Number\" or \"number\". " %} +{% include note.html content="`GeoPoint` is not supported. See GitHub issue +[#1981](https://github.com/strongloop/loopback-next/issues/1981)" %} + ## Array types The following are examples of how you can define array type properties: diff --git a/docs/site/MONOREPO.md b/docs/site/MONOREPO.md index be58f641742e..6d2251913d6b 100644 --- a/docs/site/MONOREPO.md +++ b/docs/site/MONOREPO.md @@ -82,7 +82,7 @@ one in the monorepo: `npm run update-monorepo-file` | [packages/security](https://github.com/strongloop/loopback-next/tree/master/packages/security) | @loopback/security | A LoopBack component for security support. | | [packages/service-proxy](https://github.com/strongloop/loopback-next/tree/master/packages/service-proxy) | @loopback/service-proxy | A common set of interfaces for interacting with service oriented backends such as REST APIs, SOAP Web Services, and gRPC microservices | | [packages/testlab](https://github.com/strongloop/loopback-next/tree/master/packages/testlab) | @loopback/testlab | A collection of test utilities we use to write LoopBack tests. | -| [packages/tsdocs](https://github.com/strongloop/loopback-next/tree/master/packages/tsdocs) | _(private)_ | An internal package to generate api docs using Microsoft api-extractor and api-documenter | +| [packages/tsdocs](https://github.com/strongloop/loopback-next/tree/master/packages/tsdocs) | @loopback/tsdocs | An package to generate api docs using Microsoft api-extractor and api-documenter | | [sandbox/example](https://github.com/strongloop/loopback-next/tree/master/sandbox/example) | _(private)_ | Sample project for sandbox | We use npm scripts declared in diff --git a/docs/site/Relation-generator.md b/docs/site/Relation-generator.md index f2445da55dbb..90cebeb2f117 100644 --- a/docs/site/Relation-generator.md +++ b/docs/site/Relation-generator.md @@ -33,6 +33,13 @@ lb4 relation [options] - `--sourceModel`: Source model. - `--destinationModel`: Destination model. - `--throughModel`: Through model. For HasManyThrough relation only. +- `--sourceModelPrimaryKey`: The name of the primary key of the source model. +- `--sourceModelPrimaryKeyType`: The type of the primary key of the source + model. +- `--destinationModelPrimaryKey`: The name of the primary key of the destination + model. +- `--destinationModelPrimaryKeyType`: The type of the primary key of the + destination model. - `--foreignKeyName`: Destination/Source model foreign key name for HasMany,HasOne/BelongsTo relation, respectively. - `--relationName`: Relation name. @@ -51,7 +58,12 @@ Defining lb4 relation in one command line interface (cli): ```sh lb4 relation --sourceModel= --destinationModel= --foreignKeyName= ---relationType= [--relationName=] [--format] +--relationType= [--relationName=] +[--sourceModelPrimaryKey=] +[--sourceModelPrimaryKeyType=] +[--destinationModelPrimaryKey=] +[--destinationModelPrimaryKeyType=] +[--format] ``` - `` - Type of the relation that will be created between the @@ -61,6 +73,17 @@ lb4 relation --sourceModel= - `` - Name of the model to create a relationship with. +- `` - Name of the id property on the model to create the + relationship from. + +- `` - Type of the id property on the source model. + +- `` - Name of the id property on the model to + create a relationship with. + +- `` - Type of the id property on the + destination model. + - `` - Property that references the primary key property of the destination model. @@ -86,7 +109,12 @@ HasMany, HasOne, or BelongsTo relations. lb4 relation --sourceModel= --destinationModel= --throughModel= --relationType= [--relationName=] +[--sourceModelPrimaryKey=] +[--sourceModelPrimaryKeyType=] +[--destinationModelPrimaryKey=] +[--destinationModelPrimaryKeyType=] [--sourceKeyOnThrough=] [--targetKeyOnThrough] +[--format] ``` - `` - Name of the model to reference the source model and target @@ -147,6 +175,9 @@ The tool will prompt you for: the `belongsTo` relation. E.g. when the foreign key is the default name, `categoryId` for example, the default relation name is `category`. +It might also prompt for names and types of the source/destination models if +they cannot be detected from model files. + {% include warning.html content="Based on your input, the default foreign key name might be the same as the default relation name, especially for belongsTo relation. Please name them differently to avoid a known issue [Navigational Property Error](https://github.com/strongloop/loopback-next/issues/4392) " lang=page.lang %} diff --git a/docs/site/Setting-debug-strings.md b/docs/site/Setting-debug-strings.md index 994d7c8e02f3..cdc7d5d05879 100644 --- a/docs/site/Setting-debug-strings.md +++ b/docs/site/Setting-debug-strings.md @@ -197,18 +197,53 @@ of the `@loopback/cli` module. @loopback/repository - src/relations/belongs-to/belongs-to-accessor.ts - loopback:repository:belongs-to-accessor + src/relations/belongs-to/belongs-to.accessor.ts + loopback:repository:relations:belongs-to:accessor - src/relations/has-many/has-many-repository-factory.ts - loopback:repository:has-many-repository-factory + src/relations/belongs-to/belongs-to.accessor.ts + loopback:repository:relations:belongs-to:accessor - src/relations/has-one/has-one-repository-factory.ts - loopback:repository:has-one-repository-factory + src/relations/belongs-to/belongs-to.helpers.ts + loopback:repository:relations:belongs-to:helpers + + + + src/relations/has-many/has-many.helpers.ts + loopback:repository:relations:has-many:helpers + + + + src/relations/has-many/has-many.inclusion-resolver.ts + loopback:repository:relations:has-many:inclusion-resolver + + + + src/relations/has-many/has-many.repository-factory.ts + loopback:repository:relations:has-many:repository-factory + + + + src/relations/has-many/has-many-through.helpers.ts + loopback:repository:relations:has-many-through:helpers + + + + src/relations/has-many/has-many-through.inclusion-resolver.ts + loopback:repository:relations:has-many-through:inclusion-resolver + + + + src/relations/has-one/has-one.helpers.ts + loopback:repository:relations:has-one:helpers + + + + src/relations/has-one/has-one.repository-factory.ts + loopback:repository:relations:has-one:repository-factory @loopback/repository-json-schema diff --git a/docs/site/Validation-REST-layer.md b/docs/site/Validation-REST-layer.md index 0b3e711ba666..35a82e6b3d51 100644 --- a/docs/site/Validation-REST-layer.md +++ b/docs/site/Validation-REST-layer.md @@ -178,6 +178,11 @@ of 10 digits separated by `-` after the 3rd and 6th digits. ## Customize validation errors +{% include note.html content="This section describes customization for legacy +[Action-based sequences](./REST-Action-sequence.md). Most LoopBack 4 +applications utilize the new +[Middleware-based sequences](./REST-Middleware-sequence.md)." %} + Since the error is being caught at the REST layer, the simplest way to customize the errors is to customize the [sequence](https://loopback.io/doc/en/lb4/Sequence.html). It exists in all diff --git a/docs/site/migration/models/operation-hooks.md b/docs/site/migration/models/operation-hooks.md index 972a1b86d275..d868f5c1aa4a 100644 --- a/docs/site/migration/models/operation-hooks.md +++ b/docs/site/migration/models/operation-hooks.md @@ -48,6 +48,11 @@ class ProductRepository extends DefaultCrudRepository< } ``` +{% include warning.html content="Do not use `this` inside of the observer +callback function. The `this` keyword will only reference the repository state +of the first request and may result in unexpected behaviour. See GitHub issue +[#6962](https://github.com/strongloop/loopback-next/issues/6962)." %} + Although possible, we are not providing an API which directly exposes the `observe` method of the model class. The current API makes the registration of operation hooks a process that is possible only at the time when the model class diff --git a/docs/site/sidebars/lb4_sidebar.yml b/docs/site/sidebars/lb4_sidebar.yml index a17b1951a63b..ca48df68c1a5 100644 --- a/docs/site/sidebars/lb4_sidebar.yml +++ b/docs/site/sidebars/lb4_sidebar.yml @@ -386,6 +386,14 @@ children: url: Validation-ORM-layer.html output: 'web, pdf' + - title: 'Configuring Applications' + url: Configuring-applications.html + output: 'web, pdf' + children: + - title: 'Tips for Application Setup' + url: Application-setup-tips.html + output: 'web, pdf' + - title: 'Securing Applications' output: 'web, pdf' children: diff --git a/docs/site/tutorials/todo-list/todo-list-tutorial-sqldb.md b/docs/site/tutorials/todo-list/todo-list-tutorial-sqldb.md index 32fffaefc3d8..67f41d56d405 100644 --- a/docs/site/tutorials/todo-list/todo-list-tutorial-sqldb.md +++ b/docs/site/tutorials/todo-list/todo-list-tutorial-sqldb.md @@ -66,7 +66,7 @@ decorator. name: 'fk_todo_todoListId', entity: 'TodoList', entityKey: 'id', - foreignKey: 'todolistid', + foreignKey: 'todoListId', }, }, }, @@ -95,7 +95,7 @@ Similar to the `Todo` model, we will specify the constraints in the `settings`. name: 'fk_todoListImage_todoListId', entity: 'TodoList', entityKey: 'id', - foreignKey: 'todolistid', + foreignKey: 'todoListId', }, }, }, diff --git a/examples/access-control-migration/CHANGELOG.md b/examples/access-control-migration/CHANGELOG.md index 62aa47f2b2b8..5db8d39bcbe2 100644 --- a/examples/access-control-migration/CHANGELOG.md +++ b/examples/access-control-migration/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.3.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-access-control-migration@2.3.3...@loopback/example-access-control-migration@2.3.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-access-control-migration + + + + + ## [2.3.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-access-control-migration@2.3.2...@loopback/example-access-control-migration@2.3.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-access-control-migration diff --git a/examples/access-control-migration/package-lock.json b/examples/access-control-migration/package-lock.json index 24172515613e..342786043b3c 100644 --- a/examples/access-control-migration/package-lock.json +++ b/examples/access-control-migration/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-access-control-migration", - "version": "2.3.3", + "version": "2.3.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -67,9 +67,9 @@ "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==" }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -153,9 +153,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -230,9 +230,9 @@ "dev": true }, "casbin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.2.2.tgz", - "integrity": "sha512-NY+y3eGf+t/QYjRibaQnOAPFVZEL7VeR7fKirgxbGvC1hJPOF5vxBUKAr7Z/solD1V2F1GEvlOiBUbDJb3dgOA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.2.3.tgz", + "integrity": "sha512-bPtx61LbQflFyrTME/DpshBSfHhc/JBiykL4P6Z79m7KjlF6LVHkVsJhJQw7D55OXnzvPp2S2JixibMki2Dqxg==", "requires": { "await-lock": "^2.0.1", "expression-eval": "^2.0.0", @@ -408,9 +408,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -437,13 +437,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -467,7 +467,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -476,7 +476,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -674,9 +674,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -802,9 +802,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -853,9 +853,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -899,9 +899,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1336,6 +1336,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1385,14 +1391,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1422,31 +1454,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1494,15 +1509,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1562,9 +1597,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { diff --git a/examples/access-control-migration/package.json b/examples/access-control-migration/package.json index ed61add8e7e1..565e2aad577a 100644 --- a/examples/access-control-migration/package.json +++ b/examples/access-control-migration/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-access-control-migration", - "version": "2.3.3", + "version": "2.3.4", "description": "Tutorial example on how to migrate the access control example with LoopBack 4.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,31 +14,31 @@ "access": "public" }, "dependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/authorization": "^0.7.5", - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/security": "^0.3.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/authentication": "^7.0.6", + "@loopback/authorization": "^0.7.6", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/security": "^0.3.6", + "@loopback/service-proxy": "^3.0.6", "@types/bcryptjs": "2.4.2", "bcryptjs": "^2.4.3", - "casbin": "^5.2.2", + "casbin": "^5.2.3", "jsonwebtoken": "^8.5.1", "loopback-connector-rest": "^4.0.1" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/binding-resolution/CHANGELOG.md b/examples/binding-resolution/CHANGELOG.md index f264c6f64ea6..cebc53fc0806 100644 --- a/examples/binding-resolution/CHANGELOG.md +++ b/examples/binding-resolution/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-binding-resolution@0.1.3...@loopback/example-binding-resolution@0.1.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-binding-resolution + + + + + ## [0.1.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-binding-resolution@0.1.2...@loopback/example-binding-resolution@0.1.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-binding-resolution diff --git a/examples/binding-resolution/package-lock.json b/examples/binding-resolution/package-lock.json index 9849fbec99f7..2df85b2c4183 100644 --- a/examples/binding-resolution/package-lock.json +++ b/examples/binding-resolution/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-binding-resolution", - "version": "0.1.3", + "version": "0.1.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -128,9 +128,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -268,9 +268,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -289,13 +289,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -319,7 +319,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -328,7 +328,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -475,9 +475,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -537,9 +537,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -575,9 +575,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -602,9 +602,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -736,6 +736,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -776,14 +782,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-map": { @@ -809,31 +841,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -861,15 +876,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -899,15 +934,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/binding-resolution/package.json b/examples/binding-resolution/package.json index 77b0e3d76709..e5dfc5f8974b 100644 --- a/examples/binding-resolution/package.json +++ b/examples/binding-resolution/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-binding-resolution", - "version": "0.1.3", + "version": "0.1.4", "description": "An example application to demonstrate binding resolution and dependency injection within a context hierarchy", "keywords": [ "loopback-application", @@ -13,7 +13,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -37,21 +37,21 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.34", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "files": [ "README.md", diff --git a/examples/context/CHANGELOG.md b/examples/context/CHANGELOG.md index 28489a8de9e4..345f4aefb65c 100644 --- a/examples/context/CHANGELOG.md +++ b/examples/context/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/example-context@2.1.15...@loopback/example-context@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-context + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/example-context@2.1.14...@loopback/example-context@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/example-context diff --git a/examples/context/package-lock.json b/examples/context/package-lock.json index b38fcb79ee48..514a1015856a 100644 --- a/examples/context/package-lock.json +++ b/examples/context/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-context", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -122,9 +122,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -257,9 +257,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -278,13 +278,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -308,7 +308,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -317,7 +317,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -464,9 +464,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -526,9 +526,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -564,9 +564,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -591,9 +591,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -726,6 +726,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -766,14 +772,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -783,31 +815,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -835,15 +850,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -873,15 +908,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/context/package.json b/examples/context/package.json index 7da96184cfb4..91f16a6d0510 100644 --- a/examples/context/package.json +++ b/examples/context/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-context", - "version": "2.1.15", + "version": "2.1.16", "description": "Standalone examples to illustrate features provided by @loopback/context", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,16 +14,16 @@ "access": "public" }, "dependencies": { - "@loopback/context": "^3.13.2", + "@loopback/context": "^3.14.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", diff --git a/examples/express-composition/CHANGELOG.md b/examples/express-composition/CHANGELOG.md index f2a9a9b8eaf7..f88f8d26ae0e 100644 --- a/examples/express-composition/CHANGELOG.md +++ b/examples/express-composition/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.5.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-express-composition@2.5.3...@loopback/example-express-composition@2.5.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-express-composition + + + + + ## [2.5.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-express-composition@2.5.2...@loopback/example-express-composition@2.5.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-express-composition diff --git a/examples/express-composition/package-lock.json b/examples/express-composition/package-lock.json index b66a8e689f34..16aef1e03a15 100644 --- a/examples/express-composition/package-lock.json +++ b/examples/express-composition/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-express-composition", - "version": "2.5.3", + "version": "2.5.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -89,30 +89,30 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -121,9 +121,9 @@ } }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { @@ -145,12 +145,12 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "dev": true, "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, @@ -223,9 +223,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -417,9 +417,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encodeurl": { @@ -448,13 +448,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -478,7 +478,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -487,7 +487,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -707,9 +707,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forwarded": { @@ -799,9 +799,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -841,9 +841,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -868,9 +868,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1088,6 +1088,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1181,14 +1187,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1203,31 +1235,14 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1255,15 +1270,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1307,9 +1342,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "unpipe": { @@ -1318,9 +1353,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/express-composition/package.json b/examples/express-composition/package.json index 5892cab5ab59..a8c946b8052f 100644 --- a/examples/express-composition/package.json +++ b/examples/express-composition/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-express-composition", - "version": "2.5.3", + "version": "2.5.4", "description": "LoopBack 4 REST API on Express", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "express" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -47,22 +47,22 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "express": "^4.17.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@types/express": "^4.17.9", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@types/express": "^4.17.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" } } diff --git a/examples/file-transfer/CHANGELOG.md b/examples/file-transfer/CHANGELOG.md index 1aefa02cf176..df523845568d 100644 --- a/examples/file-transfer/CHANGELOG.md +++ b/examples/file-transfer/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.5.9](https://github.com/strongloop/loopback-next/compare/@loopback/example-file-transfer@1.5.8...@loopback/example-file-transfer@1.5.9) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-file-transfer + + + + + ## [1.5.8](https://github.com/strongloop/loopback-next/compare/@loopback/example-file-transfer@1.5.7...@loopback/example-file-transfer@1.5.8) (2020-12-07) **Note:** Version bump only for package @loopback/example-file-transfer diff --git a/examples/file-transfer/package-lock.json b/examples/file-transfer/package-lock.json index d9cc6bb42384..a58d2780dc32 100644 --- a/examples/file-transfer/package-lock.json +++ b/examples/file-transfer/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-file-transfer", - "version": "1.5.8", + "version": "1.5.9", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -72,9 +72,9 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" @@ -93,9 +93,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -110,9 +110,9 @@ "dev": true }, "@types/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-wdfkiKBBEMTODNbuF3J+qDDSqJxt50yB9pgDiTcFew7f97Gcc7/sM4HR66ofGgpJPOALWOqKAch4gPyqEXSkeQ==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.5.tgz", + "integrity": "sha512-9b/0a8JyrR0r2nQhL73JR86obWL7cogfX12augvlrvcpciCo/hkvEsgu80Z4S2g2DHGVXHr8pUIi1VhqFJ8Ufw==", "dev": true, "requires": { "@types/express": "*" @@ -206,9 +206,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -414,9 +414,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -435,13 +435,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -465,7 +465,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -474,7 +474,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -621,9 +621,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -683,9 +683,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -720,9 +720,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -752,9 +752,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -962,6 +962,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1007,14 +1013,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1029,31 +1061,14 @@ "integrity": "sha1-gIudDlb8Jz2Am6VzOOkpkZoanxo=" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "string_decoder": { @@ -1086,15 +1101,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1138,15 +1173,15 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/file-transfer/package.json b/examples/file-transfer/package.json index edf6158d446f..3789b4879454 100644 --- a/examples/file-transfer/package.json +++ b/examples/file-transfer/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-file-transfer", - "version": "1.5.8", + "version": "1.5.9", "description": "Example application for file upload/download with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,22 +14,22 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", "multer": "^1.4.2", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@types/express-serve-static-core": "^4.17.14", - "@types/multer": "^1.4.4", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@types/express-serve-static-core": "^4.17.18", + "@types/multer": "^1.4.5", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", diff --git a/examples/graphql/CHANGELOG.md b/examples/graphql/CHANGELOG.md index 1c606faee56f..a24c12869851 100644 --- a/examples/graphql/CHANGELOG.md +++ b/examples/graphql/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.6](https://github.com/strongloop/loopback-next/compare/@loopback/example-graphql@0.1.5...@loopback/example-graphql@0.1.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-graphql + + + + + ## [0.1.5](https://github.com/strongloop/loopback-next/compare/@loopback/example-graphql@0.1.4...@loopback/example-graphql@0.1.5) (2020-12-07) **Note:** Version bump only for package @loopback/example-graphql diff --git a/examples/graphql/package-lock.json b/examples/graphql/package-lock.json index bfe0c76d9267..f2790663cb65 100644 --- a/examples/graphql/package-lock.json +++ b/examples/graphql/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-graphql", - "version": "0.1.5", + "version": "0.1.6", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -72,9 +72,9 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" @@ -93,9 +93,9 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.15", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.15.tgz", + "integrity": "sha512-pb71P0BrBAx7cQE+/7QnA1HTQUkdBKMlkPY7lHUMn0YvPJkL2UA+KW3BdWQ309IT+i9En/qm45ZxpjIcpgEhNQ==", "dev": true, "requires": { "@types/node": "*", @@ -110,9 +110,9 @@ "dev": true }, "@types/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-wdfkiKBBEMTODNbuF3J+qDDSqJxt50yB9pgDiTcFew7f97Gcc7/sM4HR66ofGgpJPOALWOqKAch4gPyqEXSkeQ==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.5.tgz", + "integrity": "sha512-9b/0a8JyrR0r2nQhL73JR86obWL7cogfX12augvlrvcpciCo/hkvEsgu80Z4S2g2DHGVXHr8pUIi1VhqFJ8Ufw==", "dev": true, "requires": { "@types/express": "*" @@ -201,9 +201,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -286,9 +286,9 @@ } }, "class-transformer": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.1.tgz", - "integrity": "sha512-cKFwohpJbuMovS8xVLmn8N2AUbAuc8pVo4zEfsUVo8qgECOogns1WVk/FkOZoxhOPTyTYFckuoH+13FO+MQ8GA==" + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.2.tgz", + "integrity": "sha512-9QY6QXBH/+Gt1C3HBmJCrgY6+EFpIa6aLjfDnlXFx0zQl/HjrCE7qoaI0srNrxpMIfsobCpgUdDG5JYtJOpVsw==" }, "color-convert": { "version": "1.9.3", @@ -347,9 +347,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -368,13 +368,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -398,7 +398,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -407,7 +407,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -554,9 +554,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -616,9 +616,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -654,9 +654,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -681,9 +681,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -816,6 +816,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -856,14 +862,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-map": { @@ -889,31 +921,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -941,15 +956,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -979,15 +1014,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/graphql/package.json b/examples/graphql/package.json index 400104a06327..966cc85119f0 100644 --- a/examples/graphql/package.json +++ b/examples/graphql/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-graphql", - "version": "0.1.5", + "version": "0.1.6", "description": "GraphQL Example Application", "keywords": [ "loopback-application", @@ -9,30 +9,30 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "publishConfig": { "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/graphql": "^0.2.3", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "class-transformer": "^0.3.1", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/graphql": "^0.2.4", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "class-transformer": "^0.3.2", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@types/multer": "^1.4.3", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@types/multer": "^1.4.5", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "rimraf": "^3.0.2", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", diff --git a/examples/greeter-extension/CHANGELOG.md b/examples/greeter-extension/CHANGELOG.md index cdb8b7c0430d..1fe57e800b3b 100644 --- a/examples/greeter-extension/CHANGELOG.md +++ b/examples/greeter-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/example-greeter-extension@2.1.15...@loopback/example-greeter-extension@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-greeter-extension + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/example-greeter-extension@2.1.14...@loopback/example-greeter-extension@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/example-greeter-extension diff --git a/examples/greeter-extension/package-lock.json b/examples/greeter-extension/package-lock.json index 9da1c62a38cb..59b304443647 100644 --- a/examples/greeter-extension/package-lock.json +++ b/examples/greeter-extension/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-greeter-extension", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -83,9 +83,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -95,7 +95,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -166,9 +166,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -256,9 +256,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -277,13 +277,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -307,7 +307,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -316,7 +316,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -463,9 +463,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -524,9 +524,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -562,9 +562,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -589,9 +589,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -723,6 +723,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -763,40 +769,14 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "sprintf-js": { @@ -806,31 +786,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -857,15 +820,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -895,15 +878,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/greeter-extension/package.json b/examples/greeter-extension/package.json index 503189dbb489..0d9cd29baf56 100644 --- a/examples/greeter-extension/package.json +++ b/examples/greeter-extension/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-greeter-extension", - "version": "2.1.15", + "version": "2.1.16", "description": "An example showing how to implement the extension point/extension pattern using LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -43,19 +43,19 @@ "access": "public" }, "dependencies": { - "@loopback/core": "^2.13.1", + "@loopback/core": "^2.14.0", "chalk": "^4.1.0", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "4.1.5", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "bugs": { "url": "https://github.com/strongloop/loopback-next/issues" diff --git a/examples/greeting-app/CHANGELOG.md b/examples/greeting-app/CHANGELOG.md index 878f4ee419bb..8b610e520e16 100644 --- a/examples/greeting-app/CHANGELOG.md +++ b/examples/greeting-app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.14](https://github.com/strongloop/loopback-next/compare/@loopback/example-greeting-app@2.2.13...@loopback/example-greeting-app@2.2.14) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-greeting-app + + + + + ## [2.2.13](https://github.com/strongloop/loopback-next/compare/@loopback/example-greeting-app@2.2.12...@loopback/example-greeting-app@2.2.13) (2020-12-07) **Note:** Version bump only for package @loopback/example-greeting-app diff --git a/examples/greeting-app/package-lock.json b/examples/greeting-app/package-lock.json index b32ea4a273ed..58438429ffac 100644 --- a/examples/greeting-app/package-lock.json +++ b/examples/greeting-app/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-greeting-app", - "version": "2.2.13", + "version": "2.2.14", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -83,9 +83,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -95,7 +95,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -166,9 +166,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -256,9 +256,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -277,13 +277,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -307,7 +307,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -316,7 +316,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -463,9 +463,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -524,9 +524,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -562,9 +562,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -589,9 +589,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -723,6 +723,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -763,40 +769,14 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "sprintf-js": { @@ -806,31 +786,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -857,15 +820,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -895,15 +878,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/greeting-app/package.json b/examples/greeting-app/package.json index 124f956dbf30..1b88c41553d6 100644 --- a/examples/greeting-app/package.json +++ b/examples/greeting-app/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-greeting-app", - "version": "2.2.13", + "version": "2.2.14", "description": "An example greeting application for LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -44,22 +44,22 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/example-greeter-extension": "^2.1.15", - "@loopback/rest": "^9.1.1", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/example-greeter-extension": "^2.1.16", + "@loopback/rest": "^9.1.2", "chalk": "^4.1.0", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "4.1.5", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "bugs": { "url": "https://github.com/strongloop/loopback-next/issues" diff --git a/examples/hello-world/CHANGELOG.md b/examples/hello-world/CHANGELOG.md index 32b38e3bab7c..15c9a46b324e 100644 --- a/examples/hello-world/CHANGELOG.md +++ b/examples/hello-world/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/example-hello-world@2.1.15...@loopback/example-hello-world@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-hello-world + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/example-hello-world@2.1.14...@loopback/example-hello-world@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/example-hello-world diff --git a/examples/hello-world/package-lock.json b/examples/hello-world/package-lock.json index d4bef1273790..79378e249d38 100644 --- a/examples/hello-world/package-lock.json +++ b/examples/hello-world/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-hello-world", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -122,9 +122,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -257,9 +257,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -278,13 +278,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -308,7 +308,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -317,7 +317,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -464,9 +464,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -526,9 +526,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -564,9 +564,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -591,9 +591,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -726,6 +726,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -766,14 +772,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -783,31 +815,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -835,15 +850,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -873,15 +908,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/hello-world/package.json b/examples/hello-world/package.json index c0f2b83ff87a..6b5f4e709cac 100644 --- a/examples/hello-world/package.json +++ b/examples/hello-world/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-hello-world", - "version": "2.1.15", + "version": "2.1.16", "description": "A simple hello-world Application using LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,17 +14,17 @@ "access": "public" }, "dependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", diff --git a/examples/lb3-application/CHANGELOG.md b/examples/lb3-application/CHANGELOG.md index b86125465135..17f0eec42e6d 100644 --- a/examples/lb3-application/CHANGELOG.md +++ b/examples/lb3-application/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.5.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-lb3-application@2.5.3...@loopback/example-lb3-application@2.5.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-lb3-application + + + + + ## [2.5.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-lb3-application@2.5.2...@loopback/example-lb3-application@2.5.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-lb3-application diff --git a/examples/lb3-application/README.md b/examples/lb3-application/README.md index d57b4dd8ce7b..10bc5af489bc 100644 --- a/examples/lb3-application/README.md +++ b/examples/lb3-application/README.md @@ -95,10 +95,10 @@ applications can use them. Start the new LB4 application - ```sh - $ npm start - Server is running at http://127.0.0.1:3000 - ``` +```sh +$ npm start +Server is running at http://127.0.0.1:3000 +``` Open the URL printed to console to view your front-end served from `public` directory or go to `http://127.0.0.1:3000/explorer` to explore the REST API. diff --git a/examples/lb3-application/package-lock.json b/examples/lb3-application/package-lock.json index 9e681141a75d..e2c67e12a1d1 100644 --- a/examples/lb3-application/package-lock.json +++ b/examples/lb3-application/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-lb3-application", - "version": "2.5.3", + "version": "2.5.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -31,9 +31,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -43,7 +43,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -87,9 +87,9 @@ } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/mime": { @@ -218,9 +218,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -589,9 +589,9 @@ "integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encodeurl": { @@ -640,13 +640,13 @@ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==" }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -670,7 +670,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -679,7 +679,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -1009,9 +1009,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -1125,9 +1125,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "helmet": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.2.0.tgz", - "integrity": "sha512-aoiSxXMd0ks1ojYpSCFoCRzgv4rY/uB9jKStaw8PkXwsdLYa/Gq+Nc5l0soH0cwBIsLAlujPnx4HLQs+LaXCrQ==" + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.4.1.tgz", + "integrity": "sha512-G8tp0wUMI7i8wkMk2xLcEvESg5PiCitFMYgGRc/PwULB0RVhTP5GFdxOwvJwp9XVha8CuS8mnhmE8I/8dx/pbw==" }, "http-errors": { "version": "1.7.2", @@ -1190,9 +1190,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1246,9 +1246,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -1333,9 +1333,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -2090,6 +2090,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -2288,14 +2294,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "smtp-connection": { @@ -2360,31 +2392,14 @@ "integrity": "sha1-wfl9FdolH1lK4n1B7IraCahG408=" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "string_decoder": { @@ -2664,15 +2679,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -2758,9 +2793,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uid2": { diff --git a/examples/lb3-application/package.json b/examples/lb3-application/package.json index 689d6a578cf8..ceec6ce7fda6 100644 --- a/examples/lb3-application/package.json +++ b/examples/lb3-application/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-lb3-application", - "version": "2.5.3", + "version": "2.5.4", "description": "Tutorial example on how to add existing an LB3 application to a LB4 project", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,32 +14,32 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/booter-lb3app": "^2.2.15", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/booter-lb3app": "^2.2.16", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", "compression": "^1.7.4", "cors": "^2.8.5", "debug": "^4.3.1", "express": "^4.17.1", - "helmet": "^4.2.0", + "helmet": "^4.4.1", "loopback": "^3.28.0", "loopback-boot": "^3.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", "should": "^13.2.3", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/log-extension/CHANGELOG.md b/examples/log-extension/CHANGELOG.md index 69d4f9194105..43f695d6dc74 100644 --- a/examples/log-extension/CHANGELOG.md +++ b/examples/log-extension/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/example-log-extension@2.1.15...@loopback/example-log-extension@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-log-extension + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/example-log-extension@2.1.14...@loopback/example-log-extension@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/example-log-extension diff --git a/examples/log-extension/package-lock.json b/examples/log-extension/package-lock.json index ae3c0ea7ad05..002b7df9c2ee 100644 --- a/examples/log-extension/package-lock.json +++ b/examples/log-extension/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-log-extension", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -83,9 +83,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -95,7 +95,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -166,9 +166,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -256,9 +256,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -277,13 +277,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -307,7 +307,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -316,7 +316,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -463,9 +463,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -524,9 +524,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -562,9 +562,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -589,9 +589,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -723,6 +723,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -763,40 +769,14 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "sprintf-js": { @@ -806,31 +786,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -857,15 +820,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -895,15 +878,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/log-extension/package.json b/examples/log-extension/package.json index 574ace2af6f1..3b9cf22f047d 100644 --- a/examples/log-extension/package.json +++ b/examples/log-extension/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-log-extension", - "version": "2.1.15", + "version": "2.1.16", "description": "An example showing how to write a complex log extension for LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,20 +14,20 @@ "access": "public" }, "dependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", "chalk": "^4.1.0", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/metrics-prometheus/CHANGELOG.md b/examples/metrics-prometheus/CHANGELOG.md index dec4dcc384bf..f32e017233fc 100644 --- a/examples/metrics-prometheus/CHANGELOG.md +++ b/examples/metrics-prometheus/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.6](https://github.com/strongloop/loopback-next/compare/@loopback/example-metrics-prometheus@0.4.5...@loopback/example-metrics-prometheus@0.4.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-metrics-prometheus + + + + + ## [0.4.5](https://github.com/strongloop/loopback-next/compare/@loopback/example-metrics-prometheus@0.4.4...@loopback/example-metrics-prometheus@0.4.5) (2020-12-07) **Note:** Version bump only for package @loopback/example-metrics-prometheus diff --git a/examples/metrics-prometheus/package-lock.json b/examples/metrics-prometheus/package-lock.json index 95967b1bcac3..7efbacdac482 100644 --- a/examples/metrics-prometheus/package-lock.json +++ b/examples/metrics-prometheus/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-metrics-prometheus", - "version": "0.4.5", + "version": "0.4.6", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -122,9 +122,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -257,9 +257,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -278,13 +278,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -308,7 +308,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -317,7 +317,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -464,9 +464,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -526,9 +526,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -564,9 +564,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -591,9 +591,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -726,6 +726,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -766,14 +772,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -783,31 +815,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -835,15 +850,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -873,15 +908,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/metrics-prometheus/package.json b/examples/metrics-prometheus/package.json index cceb39a67c78..1c6d7b4a9160 100644 --- a/examples/metrics-prometheus/package.json +++ b/examples/metrics-prometheus/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-metrics-prometheus", - "version": "0.4.5", + "version": "0.4.6", "description": "An example to illustrate metrics provided by @loopback/metrics and Prometheus", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,19 +14,19 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/metrics": "^0.5.2", - "@loopback/rest": "^9.1.1", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/metrics": "^0.6.0", + "@loopback/rest": "^9.1.2", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", diff --git a/examples/multi-tenancy/CHANGELOG.md b/examples/multi-tenancy/CHANGELOG.md index 63ac1efd3df1..2ff857d6b01c 100644 --- a/examples/multi-tenancy/CHANGELOG.md +++ b/examples/multi-tenancy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-multi-tenancy@0.7.3...@loopback/example-multi-tenancy@0.7.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-multi-tenancy + + + + + ## [0.7.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-multi-tenancy@0.7.2...@loopback/example-multi-tenancy@0.7.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-multi-tenancy diff --git a/examples/multi-tenancy/package-lock.json b/examples/multi-tenancy/package-lock.json index b833af0e963f..63716c91f311 100644 --- a/examples/multi-tenancy/package-lock.json +++ b/examples/multi-tenancy/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-multi-tenancy", - "version": "0.7.3", + "version": "0.7.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -131,9 +131,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -285,9 +285,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "enquirer": { @@ -306,13 +306,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -336,7 +336,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -345,7 +345,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -503,9 +503,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -565,9 +565,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -603,9 +603,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -630,9 +630,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -835,6 +835,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -876,14 +882,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-map": { @@ -909,31 +941,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -961,15 +976,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -999,15 +1034,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/multi-tenancy/package.json b/examples/multi-tenancy/package.json index fcfae3be383a..f3bee13f6b8e 100644 --- a/examples/multi-tenancy/package.json +++ b/examples/multi-tenancy/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-multi-tenancy", - "version": "0.7.3", + "version": "0.7.4", "description": "An example to illustrate how to enable multi-tenancy with LoopBack's IoC and DI container", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -10,7 +10,7 @@ "multi-tenancy" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -48,24 +48,24 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "jsonwebtoken": "^8.5.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/jsonwebtoken": "^8.5.0", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "files": [ "README.md", diff --git a/examples/passport-login/CHANGELOG.md b/examples/passport-login/CHANGELOG.md index 27cf80fc76f6..a8585ed94bc8 100644 --- a/examples/passport-login/CHANGELOG.md +++ b/examples/passport-login/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.9.1](https://github.com/strongloop/loopback-next/compare/@loopback/example-passport-login@1.9.0...@loopback/example-passport-login@1.9.1) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-passport-login + + + + + # [1.9.0](https://github.com/strongloop/loopback-next/compare/@loopback/example-passport-login@1.8.1...@loopback/example-passport-login@1.9.0) (2020-12-07) diff --git a/examples/passport-login/package-lock.json b/examples/passport-login/package-lock.json index 6a268bf1c4de..229952b582ce 100644 --- a/examples/passport-login/package-lock.json +++ b/examples/passport-login/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-passport-login", - "version": "1.9.0", + "version": "1.9.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -68,56 +68,35 @@ "requires": { "@types/connect": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/jsonwebtoken": { @@ -136,20 +115,19 @@ } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==" + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==", - "dev": true + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/oauth": { "version": "0.9.1", @@ -167,9 +145,9 @@ } }, "@types/passport": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.4.tgz", - "integrity": "sha512-h5OfAbfBBYSzjeU0GTuuqYEk9McTgWeGQql9g3gUw2/NNCfD7VgExVRYJVVeU13Twn202Mvk9BT0bUrl30sEgA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.5.tgz", + "integrity": "sha512-wNL4kT/5rnZgyGkqX7V2qH/R/te+bklv+nXcvHzyX99vNggx9DGN+F8CEOW3P/gRi7Cjm991uidRgTHsYkSuMg==", "requires": { "@types/express": "*" } @@ -220,9 +198,9 @@ } }, "@types/passport-oauth2": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz", - "integrity": "sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.10.tgz", + "integrity": "sha512-klShWm9xAqjM3rU31KyMMiB9M8jmJPkStUvCJ/kIv73/Vh3OVnfeTExrkMCM2wA+94MliExqwHVL3J0WD2kbnQ==", "requires": { "@types/express": "*", "@types/oauth": "*", @@ -258,19 +236,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "accepts": { @@ -369,9 +340,9 @@ "integrity": "sha1-sqRdpf36ILBJb8N2jMJ8EvqRan0=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "axios": { @@ -703,9 +674,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encodeurl": { @@ -734,13 +705,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -764,7 +735,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -773,7 +744,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -1037,9 +1008,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "follow-redirects": { @@ -1140,9 +1111,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1187,9 +1158,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -1236,9 +1207,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1672,6 +1643,12 @@ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1788,14 +1765,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-map": { @@ -1818,31 +1821,14 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1870,15 +1856,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1964,9 +1970,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uglify-js": { @@ -2011,9 +2017,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/passport-login/package.json b/examples/passport-login/package.json index 3bacf1c5bbc5..4c530f0334c7 100644 --- a/examples/passport-login/package.json +++ b/examples/passport-login/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-passport-login", - "version": "1.9.0", + "version": "1.9.1", "description": "An example to demonstrate authentication with passport strategies", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -39,26 +39,26 @@ "access": "public" }, "dependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/authentication-passport": "^3.0.5", - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/mock-oauth2-provider": "^0.1.13", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-crud": "^0.8.19", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/security": "^0.3.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/authentication": "^7.0.6", + "@loopback/authentication-passport": "^3.0.6", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/mock-oauth2-provider": "^0.1.14", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-crud": "^0.8.20", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/security": "^0.3.6", + "@loopback/service-proxy": "^3.0.6", "@types/jsonwebtoken": "8.5.0", - "@types/lodash": "^4.14.165", - "@types/passport": "^1.0.4", + "@types/lodash": "^4.14.168", + "@types/passport": "^1.0.5", "@types/passport-facebook": "^2.1.10", "@types/passport-google-oauth": "^1.0.41", "@types/passport-google-oauth2": "^0.1.3", "@types/passport-http": "^0.3.8", "@types/passport-local": "^1.0.33", - "@types/passport-oauth2": "^1.4.9", + "@types/passport-oauth2": "^1.4.10", "@types/passport-twitter": "1.0.36", "body-parser": "^1.19.0", "client-sessions": "^0.8.0", @@ -79,17 +79,17 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/testlab": "^3.2.10", - "@types/express": "^4.17.9", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/testlab": "^3.2.11", + "@types/express": "^4.17.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", "axios": "^0.21.0", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "keywords": [ "loopback", diff --git a/examples/rest-crud/CHANGELOG.md b/examples/rest-crud/CHANGELOG.md index d07f6d6e69c3..570caa053ae1 100644 --- a/examples/rest-crud/CHANGELOG.md +++ b/examples/rest-crud/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.7.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-rest-crud@1.7.3...@loopback/example-rest-crud@1.7.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-rest-crud + + + + + ## [1.7.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-rest-crud@1.7.2...@loopback/example-rest-crud@1.7.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-rest-crud diff --git a/examples/rest-crud/package-lock.json b/examples/rest-crud/package-lock.json index b16d2c2a3036..640da9c90c0f 100644 --- a/examples/rest-crud/package-lock.json +++ b/examples/rest-crud/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-rest-crud", - "version": "1.7.3", + "version": "1.7.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,15 +56,15 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -148,9 +148,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -361,9 +361,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -390,13 +390,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -420,7 +420,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -429,7 +429,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -600,9 +600,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -728,9 +728,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -774,9 +774,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -815,9 +815,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1162,6 +1162,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1215,14 +1221,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1252,31 +1284,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1324,15 +1339,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1389,9 +1424,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { diff --git a/examples/rest-crud/package.json b/examples/rest-crud/package.json index ab461666477f..8aacf964f85d 100644 --- a/examples/rest-crud/package.json +++ b/examples/rest-crud/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-rest-crud", - "version": "1.7.3", + "version": "1.7.4", "description": "An example showing how to use @loopback/rest-crud to define default repository and controller classes", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,25 +14,25 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-crud": "^0.8.19", - "@loopback/rest-explorer": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-crud": "^0.8.20", + "@loopback/rest-explorer": "^3.0.6", "loopback-connector-rest": "^4.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/rpc-server/CHANGELOG.md b/examples/rpc-server/CHANGELOG.md index 3968fc8d97c9..5e478a1c1d8b 100644 --- a/examples/rpc-server/CHANGELOG.md +++ b/examples/rpc-server/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.16](https://github.com/strongloop/loopback-next/compare/@loopback/example-rpc-server@2.1.15...@loopback/example-rpc-server@2.1.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-rpc-server + + + + + ## [2.1.15](https://github.com/strongloop/loopback-next/compare/@loopback/example-rpc-server@2.1.14...@loopback/example-rpc-server@2.1.15) (2020-12-07) **Note:** Version bump only for package @loopback/example-rpc-server diff --git a/examples/rpc-server/package-lock.json b/examples/rpc-server/package-lock.json index 1fe19b94a1c2..35c318bd2e2f 100644 --- a/examples/rpc-server/package-lock.json +++ b/examples/rpc-server/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-rpc-server", - "version": "2.1.15", + "version": "2.1.16", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -89,30 +89,30 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -121,9 +121,9 @@ } }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { @@ -145,12 +145,12 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "dev": true, "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, @@ -223,9 +223,9 @@ "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "balanced-match": { @@ -417,9 +417,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "encodeurl": { @@ -448,13 +448,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -478,7 +478,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -487,7 +487,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -707,9 +707,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forwarded": { @@ -799,9 +799,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -841,9 +841,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -868,9 +868,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1088,6 +1088,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1181,14 +1187,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1203,31 +1235,14 @@ "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1255,15 +1270,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1307,9 +1342,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "unpipe": { @@ -1318,9 +1353,9 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/rpc-server/package.json b/examples/rpc-server/package.json index db7776e6cd75..61e96b1cee32 100644 --- a/examples/rpc-server/package.json +++ b/examples/rpc-server/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-rpc-server", - "version": "2.1.15", + "version": "2.1.16", "description": "An example RPC server and application to demonstrate the creation of your own custom server", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -9,7 +9,7 @@ "loopback" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -42,17 +42,17 @@ "access": "public" }, "dependencies": { - "@loopback/core": "^2.13.1", + "@loopback/core": "^2.14.0", "express": "^4.17.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@types/express": "^4.17.9", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@types/express": "^4.17.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", - "typescript": "~4.1.2" + "eslint": "^7.18.0", + "typescript": "~4.1.3" } } diff --git a/examples/soap-calculator/CHANGELOG.md b/examples/soap-calculator/CHANGELOG.md index 4b1b21e9c825..eb43500771d3 100644 --- a/examples/soap-calculator/CHANGELOG.md +++ b/examples/soap-calculator/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.4.9](https://github.com/strongloop/loopback-next/compare/@loopback/example-soap-calculator@2.4.8...@loopback/example-soap-calculator@2.4.9) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-soap-calculator + + + + + ## [2.4.8](https://github.com/strongloop/loopback-next/compare/@loopback/example-soap-calculator@2.4.7...@loopback/example-soap-calculator@2.4.8) (2020-12-07) **Note:** Version bump only for package @loopback/example-soap-calculator diff --git a/examples/soap-calculator/package-lock.json b/examples/soap-calculator/package-lock.json index 879ccfe346f1..9603e1d3644f 100644 --- a/examples/soap-calculator/package-lock.json +++ b/examples/soap-calculator/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-soap-calculator", - "version": "2.4.8", + "version": "2.4.9", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,15 +56,15 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, "@types/mocha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.4.tgz", - "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==", "dev": true }, "@types/node": { @@ -164,9 +164,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -518,13 +518,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -548,7 +548,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -557,7 +557,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -758,9 +758,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -925,9 +925,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1516,6 +1516,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -1621,14 +1627,46 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + } } }, "source-map": { @@ -1772,15 +1810,58 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } } }, "text-table": { @@ -1841,9 +1922,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "underscore": { diff --git a/examples/soap-calculator/package.json b/examples/soap-calculator/package.json index d7e0e487c7cc..6d8c979e3092 100644 --- a/examples/soap-calculator/package.json +++ b/examples/soap-calculator/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-soap-calculator", - "version": "2.4.8", + "version": "2.4.9", "description": "A tutorial demonstrating integration SOAP webservice with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -12,7 +12,7 @@ "soap" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -21,25 +21,25 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "loopback-connector-soap": "^6.0.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@types/mocha": "^8.0.4", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@types/mocha": "^8.2.0", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "mocha": "^8.2.1", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/socketio/CHANGELOG.md b/examples/socketio/CHANGELOG.md index 577df3fc9beb..637603336024 100644 --- a/examples/socketio/CHANGELOG.md +++ b/examples/socketio/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-socketio@0.1.2...@loopback/example-socketio@0.1.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-socketio + + + + + ## [0.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/example-socketio@0.1.1...@loopback/example-socketio@0.1.2) (2020-12-07) **Note:** Version bump only for package @loopback/example-socketio diff --git a/examples/socketio/package-lock.json b/examples/socketio/package-lock.json index 0eceadd2ea93..3cd9c10f8760 100644 --- a/examples/socketio/package-lock.json +++ b/examples/socketio/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-socketio", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -85,9 +85,9 @@ } }, "@types/socket.io-client": { - "version": "1.4.34", - "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.34.tgz", - "integrity": "sha512-Lzia5OTQFJZJ5R4HsEEldywiiqT9+W2rDbyHJiiTGqOcju89sCsQ8aUXDljY6Ls33wKZZGC0bfMhr/VpOyjtXg==" + "version": "1.4.35", + "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.35.tgz", + "integrity": "sha512-MI8YmxFS+jMkIziycT5ickBWK1sZwDwy16mgH/j99Mcom6zRG/NimNGQ3vJV0uX5G6g/hEw0FG3w3b3sT5OUGw==" }, "@types/socket.io-parser": { "version": "2.2.1", @@ -171,9 +171,9 @@ "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async-limiter": { @@ -369,9 +369,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "engine.io": { @@ -471,13 +471,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -501,7 +501,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -510,7 +510,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -657,9 +657,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -732,9 +732,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -775,9 +775,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -807,9 +807,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1001,6 +1001,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1041,14 +1047,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "socket.io": { @@ -1220,31 +1252,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1272,15 +1287,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1315,15 +1350,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/socketio/package.json b/examples/socketio/package.json index 38b18a2f328e..eedc9a5a9241 100644 --- a/examples/socketio/package.json +++ b/examples/socketio/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/example-socketio", - "version": "0.1.2", + "version": "0.1.3", "description": "This is an example for spinning up socket server.", "keywords": [ "loopback-application", @@ -9,7 +9,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -50,26 +50,26 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/socketio": "^0.1.2", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/socketio": "^0.1.3", "@types/socket.io": "^2.1.12", - "@types/socket.io-client": "^1.4.34", + "@types/socket.io-client": "^1.4.35", "p-event": "^4.2.0", "socket.io": "^2.3.0", "socket.io-client": "^2.3.1", "tslib": "^2.0.0" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "copyright.owner": "IBM Corp." } diff --git a/examples/todo-jwt/CHANGELOG.md b/examples/todo-jwt/CHANGELOG.md index 7582c166783d..283f09fa58fa 100644 --- a/examples/todo-jwt/CHANGELOG.md +++ b/examples/todo-jwt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.4.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo-jwt@1.4.3...@loopback/example-todo-jwt@1.4.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-todo-jwt + + + + + ## [1.4.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo-jwt@1.4.2...@loopback/example-todo-jwt@1.4.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-todo-jwt diff --git a/examples/todo-jwt/package-lock.json b/examples/todo-jwt/package-lock.json index adfaf38821a0..103af9983a24 100644 --- a/examples/todo-jwt/package-lock.json +++ b/examples/todo-jwt/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-todo-jwt", - "version": "1.4.3", + "version": "1.4.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -67,9 +67,9 @@ "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==" }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -153,9 +153,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -371,9 +371,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -400,13 +400,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -430,7 +430,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -439,7 +439,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -610,9 +610,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -738,9 +738,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -784,9 +784,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -825,9 +825,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1172,6 +1172,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1225,14 +1231,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1262,31 +1294,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1334,15 +1349,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1399,9 +1434,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { diff --git a/examples/todo-jwt/package.json b/examples/todo-jwt/package.json index 2c5c5ae16ce4..ae3cf014da49 100644 --- a/examples/todo-jwt/package.json +++ b/examples/todo-jwt/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-todo-jwt", - "version": "1.4.3", + "version": "1.4.4", "description": "A modified Todo tutorial how to build an application with JWT authentication and LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,30 +14,30 @@ "access": "public" }, "dependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/authentication-jwt": "^0.7.5", - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/security": "^0.3.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/authentication": "^7.0.6", + "@loopback/authentication-jwt": "^0.7.6", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/security": "^0.3.6", + "@loopback/service-proxy": "^3.0.6", "@types/bcryptjs": "^2.4.2", "bcryptjs": "^2.4.3", "loopback-connector-rest": "^4.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "repository": { "type": "git", diff --git a/examples/todo-list/CHANGELOG.md b/examples/todo-list/CHANGELOG.md index 8cf789665a96..7b115f0bfa9c 100644 --- a/examples/todo-list/CHANGELOG.md +++ b/examples/todo-list/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.7.1](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo-list@3.7.0...@loopback/example-todo-list@3.7.1) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-todo-list + + + + + # [3.7.0](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo-list@3.6.2...@loopback/example-todo-list@3.7.0) (2020-12-07) diff --git a/examples/todo-list/package-lock.json b/examples/todo-list/package-lock.json index a432b4a9821e..d47a89a89b1c 100644 --- a/examples/todo-list/package-lock.json +++ b/examples/todo-list/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-todo-list", - "version": "3.7.0", + "version": "3.7.1", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,15 +56,15 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -148,9 +148,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -361,9 +361,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -390,13 +390,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -420,7 +420,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -429,7 +429,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -600,9 +600,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -728,9 +728,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -774,9 +774,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -815,9 +815,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1162,6 +1162,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1215,14 +1221,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1252,31 +1284,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1324,15 +1339,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1389,9 +1424,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { diff --git a/examples/todo-list/package.json b/examples/todo-list/package.json index 7a7a577e66af..4ef4baf0122a 100644 --- a/examples/todo-list/package.json +++ b/examples/todo-list/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-todo-list", - "version": "3.7.0", + "version": "3.7.1", "description": "Continuation of the todo example using relations in LoopBack 4.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,26 +14,26 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "loopback-connector-rest": "^4.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/repository": "^3.3.0", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/repository": "^3.4.0", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/todo/CHANGELOG.md b/examples/todo/CHANGELOG.md index 9a016ad2eb90..b7be604e263b 100644 --- a/examples/todo/CHANGELOG.md +++ b/examples/todo/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.9.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo@3.9.2...@loopback/example-todo@3.9.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-todo + + + + + ## [3.9.2](https://github.com/strongloop/loopback-next/compare/@loopback/example-todo@3.9.1...@loopback/example-todo@3.9.2) (2020-12-07) **Note:** Version bump only for package @loopback/example-todo diff --git a/examples/todo/package-lock.json b/examples/todo/package-lock.json index 8b8b812a88f3..8a99a4191551 100644 --- a/examples/todo/package-lock.json +++ b/examples/todo/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-todo", - "version": "3.9.2", + "version": "3.9.3", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,15 +56,15 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/morgan": { @@ -157,9 +157,9 @@ "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -395,9 +395,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -424,13 +424,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -454,7 +454,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -463,7 +463,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -634,9 +634,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "forever-agent": { @@ -762,9 +762,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -808,9 +808,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -849,9 +849,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1236,6 +1236,12 @@ } } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1289,14 +1295,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "sprintf-js": { @@ -1326,31 +1358,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1398,15 +1413,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1463,9 +1498,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { diff --git a/examples/todo/package.json b/examples/todo/package.json index 6069011b3de6..4eddfb7d6c7d 100644 --- a/examples/todo/package.json +++ b/examples/todo/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-todo", - "version": "3.9.2", + "version": "3.9.3", "description": "Tutorial example on how to build an application with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,27 +14,27 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "loopback-connector-rest": "^4.0.1", "morgan": "^1.10.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/morgan": "^1.9.2", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/validation-app/CHANGELOG.md b/examples/validation-app/CHANGELOG.md index 70ae455de98b..5d27dcf6ac9a 100644 --- a/examples/validation-app/CHANGELOG.md +++ b/examples/validation-app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.8.4](https://github.com/strongloop/loopback-next/compare/@loopback/example-validation-app@1.8.3...@loopback/example-validation-app@1.8.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-validation-app + + + + + ## [1.8.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-validation-app@1.8.2...@loopback/example-validation-app@1.8.3) (2020-12-07) **Note:** Version bump only for package @loopback/example-validation-app diff --git a/examples/validation-app/package-lock.json b/examples/validation-app/package-lock.json index 9e93ffc8524c..931636120cba 100644 --- a/examples/validation-app/package-lock.json +++ b/examples/validation-app/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-validation-app", - "version": "1.8.3", + "version": "1.8.4", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -31,9 +31,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -43,7 +43,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -215,9 +215,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async": { @@ -341,9 +341,9 @@ } }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -369,13 +369,13 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -399,7 +399,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -408,7 +408,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -635,9 +635,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "fs.realpath": { @@ -720,9 +720,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -766,9 +766,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-glob": { @@ -808,9 +808,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -1059,6 +1059,12 @@ "integrity": "sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "resolve-from": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", @@ -1102,14 +1108,40 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-map": { @@ -1139,31 +1171,14 @@ "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { @@ -1225,15 +1240,35 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "text-table": { @@ -1263,15 +1298,15 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "requires": { "punycode": "^2.1.0" diff --git a/examples/validation-app/package.json b/examples/validation-app/package.json index a4cc76b8b76a..72a7f1277158 100644 --- a/examples/validation-app/package.json +++ b/examples/validation-app/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/example-validation-app", - "version": "1.8.3", + "version": "1.8.4", "description": "An example demonstrating how to add validation in a LoopBack 4 application", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -14,23 +14,23 @@ "access": "public" }, "dependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", "strong-error-handler": "^4.0.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "scripts": { "build": "lb-tsc", diff --git a/examples/webpack/CHANGELOG.md b/examples/webpack/CHANGELOG.md index c21ad6fd5a2e..030c495f00a8 100644 --- a/examples/webpack/CHANGELOG.md +++ b/examples/webpack/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.3](https://github.com/strongloop/loopback-next/compare/@loopback/example-webpack@0.2.2...@loopback/example-webpack@0.2.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/example-webpack + + + + + ## [0.2.2](https://github.com/strongloop/loopback-next/compare/@loopback/example-webpack@0.2.1...@loopback/example-webpack@0.2.2) (2020-12-07) **Note:** Version bump only for package @loopback/example-webpack diff --git a/examples/webpack/package-lock.json b/examples/webpack/package-lock.json index 7662b8b9c786..a10873df0a4b 100644 --- a/examples/webpack/package-lock.json +++ b/examples/webpack/package-lock.json @@ -1,22 +1,22 @@ { "name": "@loopback/example-webpack", - "version": "0.2.2", + "version": "0.2.3", "lockfileVersion": 1, "requires": true, "dependencies": { "@babel/code-frame": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.4.tgz", - "integrity": "sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { "@babel/highlight": "^7.10.4" } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, "@babel/highlight": { @@ -44,9 +44,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -56,7 +56,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -100,177 +100,177 @@ "dev": true }, "@webassemblyjs/ast": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz", - "integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.1.tgz", + "integrity": "sha512-uMu1nCWn2Wxyy126LlGqRVlhdTOsO/bsBRI4dNq3+6SiSuRKRQX6ejjKgh82LoGAPSq72lDUiQ4FWVaf0PecYw==", "dev": true, "requires": { - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0" + "@webassemblyjs/helper-module-context": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/wast-parser": "1.9.1" } }, "@webassemblyjs/floating-point-hex-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz", - "integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.1.tgz", + "integrity": "sha512-5VEKu024RySmLKTTBl9q1eO/2K5jk9ZS+2HXDBLA9s9p5IjkaXxWiDb/+b7wSQp6FRdLaH1IVGIfOex58Na2pg==", "dev": true }, "@webassemblyjs/helper-api-error": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz", - "integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.1.tgz", + "integrity": "sha512-y1lGmfm38djrScwpeL37rRR9f1D6sM8RhMpvM7CYLzOlHVboouZokXK/G88BpzW0NQBSvCCOnW5BFhten4FPfA==", "dev": true }, "@webassemblyjs/helper-buffer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz", - "integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.1.tgz", + "integrity": "sha512-uS6VSgieHbk/m4GSkMU5cqe/5TekdCzQso4revCIEQ3vpGZgqSSExi4jWpTWwDpAHOIAb1Jfrs0gUB9AA4n71w==", "dev": true }, "@webassemblyjs/helper-code-frame": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz", - "integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.1.tgz", + "integrity": "sha512-ZQ2ZT6Evk4DPIfD+92AraGYaFIqGm4U20e7FpXwl7WUo2Pn1mZ1v8VGH8i+Y++IQpxPbQo/UyG0Khs7eInskzA==", "dev": true, "requires": { - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/wast-printer": "1.9.1" } }, "@webassemblyjs/helper-fsm": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz", - "integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.1.tgz", + "integrity": "sha512-J32HGpveEqqcKFS0YbgicB0zAlpfIxJa5MjxDxhu3i5ltPcVfY5EPvKQ1suRguFPehxiUs+/hfkwPEXom/l0lw==", "dev": true }, "@webassemblyjs/helper-module-context": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz", - "integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.1.tgz", + "integrity": "sha512-IEH2cMmEQKt7fqelLWB5e/cMdZXf2rST1JIrzWmf4XBt3QTxGdnnLvV4DYoN8pJjOx0VYXsWg+yF16MmJtolZg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0" + "@webassemblyjs/ast": "1.9.1" } }, "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz", - "integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.1.tgz", + "integrity": "sha512-i2rGTBqFUcSXxyjt2K4vm/3kkHwyzG6o427iCjcIKjOqpWH8SEem+xe82jUk1iydJO250/CvE5o7hzNAMZf0dQ==", "dev": true }, "@webassemblyjs/helper-wasm-section": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz", - "integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.1.tgz", + "integrity": "sha512-FetqzjtXZr2d57IECK+aId3D0IcGweeM0CbAnJHkYJkcRTHP+YcMb7Wmc0j21h5UWBpwYGb9dSkK/93SRCTrGg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0" + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1" } }, "@webassemblyjs/ieee754": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz", - "integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.1.tgz", + "integrity": "sha512-EvTG9M78zP1MmkBpUjGQHZc26DzPGZSLIPxYHCjQsBMo60Qy2W34qf8z0exRDtxBbRIoiKa5dFyWer/7r1aaSQ==", "dev": true, "requires": { "@xtuc/ieee754": "^1.2.0" } }, "@webassemblyjs/leb128": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz", - "integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.1.tgz", + "integrity": "sha512-Oc04ub0vFfLnF+2/+ki3AE+anmW4sv9uNBqb+79fgTaPv6xJsOT0dhphNfL3FrME84CbX/D1T9XT8tjFo0IIiw==", "dev": true, "requires": { "@xtuc/long": "4.2.2" } }, "@webassemblyjs/utf8": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz", - "integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.1.tgz", + "integrity": "sha512-llkYtppagjCodFjo0alWOUhAkfOiQPQDIc5oA6C9sFAXz7vC9QhZf/f8ijQIX+A9ToM3c9Pq85X0EX7nx9gVhg==", "dev": true }, "@webassemblyjs/wasm-edit": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz", - "integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.1.tgz", + "integrity": "sha512-S2IaD6+x9B2Xi8BCT0eGsrXXd8UxAh2LVJpg1ZMtHXnrDcsTtIX2bDjHi40Hio6Lc62dWHmKdvksI+MClCYbbw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/helper-wasm-section": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-opt": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", - "@webassemblyjs/wast-printer": "1.9.0" + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/helper-wasm-section": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1", + "@webassemblyjs/wasm-opt": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1", + "@webassemblyjs/wast-printer": "1.9.1" } }, "@webassemblyjs/wasm-gen": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz", - "integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.1.tgz", + "integrity": "sha512-bqWI0S4lBQsEN5FTZ35vYzfKUJvtjNnBobB1agCALH30xNk1LToZ7Z8eiaR/Z5iVECTlBndoRQV3F6mbEqE/fg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/ieee754": "1.9.1", + "@webassemblyjs/leb128": "1.9.1", + "@webassemblyjs/utf8": "1.9.1" } }, "@webassemblyjs/wasm-opt": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz", - "integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.1.tgz", + "integrity": "sha512-gSf7I7YWVXZ5c6XqTEqkZjVs8K1kc1k57vsB6KBQscSagDNbAdxt6MwuJoMjsE1yWY1tsuL+pga268A6u+Fdkg==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-buffer": "1.9.0", - "@webassemblyjs/wasm-gen": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0" + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-buffer": "1.9.1", + "@webassemblyjs/wasm-gen": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1" } }, "@webassemblyjs/wasm-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz", - "integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.1.tgz", + "integrity": "sha512-ImM4N2T1MEIond0MyE3rXvStVxEmivQrDKf/ggfh5pP6EHu3lL/YTAoSrR7shrbKNPpeKpGesW1LIK/L4kqduw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-wasm-bytecode": "1.9.0", - "@webassemblyjs/ieee754": "1.9.0", - "@webassemblyjs/leb128": "1.9.0", - "@webassemblyjs/utf8": "1.9.0" + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-api-error": "1.9.1", + "@webassemblyjs/helper-wasm-bytecode": "1.9.1", + "@webassemblyjs/ieee754": "1.9.1", + "@webassemblyjs/leb128": "1.9.1", + "@webassemblyjs/utf8": "1.9.1" } }, "@webassemblyjs/wast-parser": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz", - "integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.1.tgz", + "integrity": "sha512-2xVxejXSvj3ls/o2TR/zI6p28qsGupjHhnHL6URULQRcXmryn3w7G83jQMcT7PHqUfyle65fZtWLukfdLdE7qw==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/floating-point-hex-parser": "1.9.0", - "@webassemblyjs/helper-api-error": "1.9.0", - "@webassemblyjs/helper-code-frame": "1.9.0", - "@webassemblyjs/helper-fsm": "1.9.0", + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/floating-point-hex-parser": "1.9.1", + "@webassemblyjs/helper-api-error": "1.9.1", + "@webassemblyjs/helper-code-frame": "1.9.1", + "@webassemblyjs/helper-fsm": "1.9.1", "@xtuc/long": "4.2.2" } }, "@webassemblyjs/wast-printer": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz", - "integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==", + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.1.tgz", + "integrity": "sha512-tDV8V15wm7mmbAH6XvQRU1X+oPGmeOzYsd6h7hlRLz6QpV4Ec/KKxM8OpLtFmQPLCreGxTp+HuxtH4pRIZyL9w==", "dev": true, "requires": { - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/wast-parser": "1.9.0", + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/wast-parser": "1.9.1", "@xtuc/long": "4.2.2" } }, @@ -437,9 +437,9 @@ "dev": true }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "async-limiter": { @@ -529,14 +529,14 @@ "dev": true }, "browserslist": { - "version": "4.15.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.15.0.tgz", - "integrity": "sha512-IJ1iysdMkGmjjYeRlDU8PQejVwxvVO5QOfXH7ylW31GO6LwNRSmm/SgRXtNsEXqMLl2e+2H5eEJ7sfynF8TCaQ==", + "version": "4.16.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.0.tgz", + "integrity": "sha512-/j6k8R0p3nxOC6kx5JGAxsnhc9ixaWJfYc+TNTzxg6+ARaESAvQGV7h0uNOB4t+pLQJZWzcrMxXOxjgsCj3dqQ==", "dev": true, "requires": { - "caniuse-lite": "^1.0.30001164", + "caniuse-lite": "^1.0.30001165", "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.612", + "electron-to-chromium": "^1.3.621", "escalade": "^3.1.1", "node-releases": "^1.1.67" } @@ -574,9 +574,9 @@ "dev": true }, "caniuse-lite": { - "version": "1.0.30001165", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001165.tgz", - "integrity": "sha512-8cEsSMwXfx7lWSUMA2s08z9dIgsnR5NAqjXP23stdsU3AUWkCr/rr4s4OFtHXn5XXr6+7kam3QFVoYyXNPdJPA==", + "version": "1.0.30001170", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz", + "integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA==", "dev": true }, "caseless": { @@ -856,15 +856,15 @@ } }, "electron-to-chromium": { - "version": "1.3.616", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.616.tgz", - "integrity": "sha512-CI8L38UN2BEnqXw3/oRIQTmde0LiSeqWSRlPA42ZTYgJQ8fYenzAM2Z3ni+jtILTcrs5aiXZCGJ96Pm+3/yGyQ==", + "version": "1.3.632", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.632.tgz", + "integrity": "sha512-LkaEH9HHr9fodmm3txF4nFMyHN3Yr50HcpD/DBHpLCxzM9doV8AV0er6aBWva4IDs2aA9kGguces0rp+WKL7rg==", "dev": true }, "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "end-of-stream": { @@ -877,13 +877,13 @@ } }, "enhanced-resolve": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.0.tgz", - "integrity": "sha512-ZmqfWURB2lConOBM1JdCVfPyMRv5RdKWktLXO6123p97ovVm2CLBgw9t5MBj3jJWA6eHyOeIws9iJQoGFR4euQ==", + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.4.1.tgz", + "integrity": "sha512-4GbyIMzYktTFoRSmkbgZ1LU+RXwf4AQ8Z+rSuuh1dC8plp0PPeaWvx6+G4hh4KnUJ48VoxKbNyA1QQQIUpXjYA==", "dev": true, "requires": { "graceful-fs": "^4.2.4", - "tapable": "^2.0.0" + "tapable": "^2.2.0" } }, "enquirer": { @@ -1005,13 +1005,13 @@ } }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -1035,7 +1035,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -1044,7 +1044,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -1245,9 +1245,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "foreach": { @@ -1449,9 +1449,9 @@ "dev": true }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { "parent-module": "^1.0.0", @@ -1581,9 +1581,9 @@ "dev": true }, "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "is-generator-function": { @@ -1706,9 +1706,9 @@ "dev": true }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { "argparse": "^1.0.7", @@ -2254,6 +2254,12 @@ "tough-cookie": "^2.3.3" } }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -2371,14 +2377,40 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + } } }, "source-list-map": { @@ -2433,31 +2465,14 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "string.prototype.trimend": { @@ -2517,15 +2532,35 @@ "dev": true }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } } }, "table-layout": { @@ -2640,9 +2675,9 @@ "dev": true }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "typical": { @@ -2717,9 +2752,9 @@ } }, "watchpack": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.1.tgz", - "integrity": "sha512-vO8AKGX22ZRo6PiOFM9dC0re8IcKh8Kd/aH2zeqUc6w4/jBGlTy2P7fTC6ekT0NjVeGjgU2dGC5rNstKkeLEQg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.1.0.tgz", + "integrity": "sha512-UjgD1mqjkG99+3lgG36at4wPnUXNvis2v1utwTgQ43C22c4LD71LsYMExdWXh4HZ+RmW+B0t1Vrg2GpXAkTOQw==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -2733,17 +2768,17 @@ "dev": true }, "webpack": { - "version": "5.10.0", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.10.0.tgz", - "integrity": "sha512-P0bHAXmIz0zsNcHNLqFmLY1ZtrT+jtBr7FqpuDtA2o7GiHC+zBsfhgK7SmJ1HG7BAEb3G9JoMdSVi7mEDvG3Zg==", + "version": "5.11.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.11.0.tgz", + "integrity": "sha512-ubWv7iP54RqAC/VjixgpnLLogCFbAfSOREcSWnnOlZEU8GICC5eKmJSu6YEnph2N2amKqY9rvxSwgyHxVqpaRw==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", "@types/estree": "^0.0.45", - "@webassemblyjs/ast": "1.9.0", - "@webassemblyjs/helper-module-context": "1.9.0", - "@webassemblyjs/wasm-edit": "1.9.0", - "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/ast": "1.9.1", + "@webassemblyjs/helper-module-context": "1.9.1", + "@webassemblyjs/wasm-edit": "1.9.1", + "@webassemblyjs/wasm-parser": "1.9.1", "acorn": "^8.0.4", "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", diff --git a/examples/webpack/package.json b/examples/webpack/package.json index 9310de7c3ba0..4ddc81e83804 100644 --- a/examples/webpack/package.json +++ b/examples/webpack/package.json @@ -1,12 +1,12 @@ { "name": "@loopback/example-webpack", - "version": "0.2.2", + "version": "0.2.3", "description": "An example to bundle @loopback/core using webpack", "main": "dist/index.js", "types": "dist/index.d.ts", "unpkg": "dist/bundle-web.js", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", @@ -15,22 +15,22 @@ "access": "public" }, "dependencies": { - "@loopback/core": "^2.13.1", + "@loopback/core": "^2.14.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.34", "assert": "^2.0.0", "buffer": "^6.0.3", - "eslint": "^7.15.0", + "eslint": "^7.18.0", "events": "^3.2.0", "process": "^0.11.10", - "typescript": "~4.1.2", + "typescript": "~4.1.3", "util": "^0.12.3", - "webpack": "^5.10.0", + "webpack": "^5.11.0", "webpack-cli": "^4.2.0", "zombie": "^6.1.4" }, diff --git a/extensions/apiconnect/CHANGELOG.md b/extensions/apiconnect/CHANGELOG.md index a90a43252aad..27c0a538a888 100644 --- a/extensions/apiconnect/CHANGELOG.md +++ b/extensions/apiconnect/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.5.6](https://github.com/strongloop/loopback-next/compare/@loopback/apiconnect@0.5.5...@loopback/apiconnect@0.5.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/apiconnect + + + + + ## [0.5.5](https://github.com/strongloop/loopback-next/compare/@loopback/apiconnect@0.5.4...@loopback/apiconnect@0.5.5) (2020-12-07) **Note:** Version bump only for package @loopback/apiconnect diff --git a/extensions/apiconnect/package-lock.json b/extensions/apiconnect/package-lock.json index 4c6fabf62418..e9fb33260c82 100644 --- a/extensions/apiconnect/package-lock.json +++ b/extensions/apiconnect/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/apiconnect", - "version": "0.5.5", + "version": "0.5.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/extensions/apiconnect/package.json b/extensions/apiconnect/package.json index 7b62ca2e6b29..f602d13aa288 100644 --- a/extensions/apiconnect/package.json +++ b/extensions/apiconnect/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/apiconnect", - "version": "0.5.5", + "version": "0.5.6", "description": "An extension for IBM API Connect", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,18 +24,18 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/extensions/authentication-jwt/CHANGELOG.md b/extensions/authentication-jwt/CHANGELOG.md index a5d92a36a068..24504fc14a24 100644 --- a/extensions/authentication-jwt/CHANGELOG.md +++ b/extensions/authentication-jwt/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.6](https://github.com/strongloop/loopback-next/compare/@loopback/authentication-jwt@0.7.5...@loopback/authentication-jwt@0.7.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/authentication-jwt + + + + + ## [0.7.5](https://github.com/strongloop/loopback-next/compare/@loopback/authentication-jwt@0.7.4...@loopback/authentication-jwt@0.7.5) (2020-12-07) **Note:** Version bump only for package @loopback/authentication-jwt diff --git a/extensions/authentication-jwt/README.md b/extensions/authentication-jwt/README.md index 28d1b0d8eec8..c48c8243c76c 100644 --- a/extensions/authentication-jwt/README.md +++ b/extensions/authentication-jwt/README.md @@ -125,7 +125,7 @@ export class TestApplication extends BootMixin( // Bind datasource for user this.dataSource(DbDataSource, UserServiceBindings.DATASOURCE_NAME); // Bind datasource for refresh token - this.dataSource(DbDataSource, RefreshTokenBindings.DATASOURCE_NAME); + this.dataSource(DbDataSource, RefreshTokenServiceBindings.DATASOURCE_NAME); this.component(RestExplorerComponent); this.projectRoot = __dirname; diff --git a/extensions/authentication-jwt/package-lock.json b/extensions/authentication-jwt/package-lock.json index 96e4edabd023..1edfce70c392 100644 --- a/extensions/authentication-jwt/package-lock.json +++ b/extensions/authentication-jwt/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/authentication-jwt", - "version": "0.7.5", + "version": "0.7.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha512-LiMQ6EOPob/4yUL66SZzu6Yh77cbzJFYll+ZfaPiPPFswtIlA/Fs1MzdKYA7JApHU49zQTbJGX3PDmCpIdDBRQ==" }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -132,9 +132,9 @@ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true } } diff --git a/extensions/authentication-jwt/package.json b/extensions/authentication-jwt/package.json index 831051718624..6c7480b8c2bf 100644 --- a/extensions/authentication-jwt/package.json +++ b/extensions/authentication-jwt/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/authentication-jwt", - "version": "0.7.5", + "version": "0.7.6", "description": "Extension for the prototype of JWT authentication", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,31 +21,31 @@ "access": "public" }, "peerDependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/authentication": "^7.0.6", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "@loopback/security": "^0.3.5", + "@loopback/security": "^0.3.6", "@types/bcryptjs": "2.4.2", "bcryptjs": "^2.4.3", "jsonwebtoken": "^8.5.1" }, "devDependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/service-proxy": "^3.0.5", - "@loopback/testlab": "^3.2.10", - "@types/lodash": "^4.14.165", + "@loopback/authentication": "^7.0.6", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/service-proxy": "^3.0.6", + "@loopback/testlab": "^3.2.11", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", "lodash": "^4.17.20", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "keywords": [ "LoopBack", diff --git a/extensions/authentication-passport/CHANGELOG.md b/extensions/authentication-passport/CHANGELOG.md index 5df1c4159d68..b8db59fe3d25 100644 --- a/extensions/authentication-passport/CHANGELOG.md +++ b/extensions/authentication-passport/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.6](https://github.com/strongloop/loopback-next/compare/@loopback/authentication-passport@3.0.5...@loopback/authentication-passport@3.0.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/authentication-passport + + + + + ## [3.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/authentication-passport@3.0.4...@loopback/authentication-passport@3.0.5) (2020-12-07) **Note:** Version bump only for package @loopback/authentication-passport diff --git a/extensions/authentication-passport/package-lock.json b/extensions/authentication-passport/package-lock.json index 314a2f9e3e1b..1500aa6c0782 100644 --- a/extensions/authentication-passport/package-lock.json +++ b/extensions/authentication-passport/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/authentication-passport", - "version": "3.0.5", + "version": "3.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -56,9 +56,9 @@ } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/mime": { @@ -83,9 +83,9 @@ } }, "@types/passport": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.4.tgz", - "integrity": "sha512-h5OfAbfBBYSzjeU0GTuuqYEk9McTgWeGQql9g3gUw2/NNCfD7VgExVRYJVVeU13Twn202Mvk9BT0bUrl30sEgA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/passport/-/passport-1.0.5.tgz", + "integrity": "sha512-wNL4kT/5rnZgyGkqX7V2qH/R/te+bklv+nXcvHzyX99vNggx9DGN+F8CEOW3P/gRi7Cjm991uidRgTHsYkSuMg==", "dev": true, "requires": { "@types/express": "*" @@ -102,9 +102,9 @@ } }, "@types/passport-oauth2": { - "version": "1.4.9", - "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.9.tgz", - "integrity": "sha512-QP0q+NVQOaIu2r0e10QWkiUA0Ya5mOBHRJN0UrI+LolMLOP1/VN4EVIpJ3xVwFo+xqNFRoFvFwJhBvKnk7kpUA==", + "version": "1.4.10", + "resolved": "https://registry.npmjs.org/@types/passport-oauth2/-/passport-oauth2-1.4.10.tgz", + "integrity": "sha512-klShWm9xAqjM3rU31KyMMiB9M8jmJPkStUvCJ/kIv73/Vh3OVnfeTExrkMCM2wA+94MliExqwHVL3J0WD2kbnQ==", "dev": true, "requires": { "@types/express": "*", @@ -687,9 +687,9 @@ } }, "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==", + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", "dev": true }, "range-parser": { diff --git a/extensions/authentication-passport/package.json b/extensions/authentication-passport/package.json index e728963d8768..c08dfbf15a41 100644 --- a/extensions/authentication-passport/package.json +++ b/extensions/authentication-passport/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/authentication-passport", - "version": "3.0.5", + "version": "3.0.6", "description": "A package creating adapters between the passport module and @loopback/authentication", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,31 +24,31 @@ "access": "public" }, "peerDependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/authentication": "^7.0.6", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "@loopback/security": "^0.3.5", + "@loopback/security": "^0.3.6", "passport": "^0.4.1", "tslib": "^2.0.3", "util-promisifyall": "^1.0.6" }, "devDependencies": { - "@loopback/authentication": "^7.0.5", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/mock-oauth2-provider": "^0.1.13", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/authentication": "^7.0.6", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/mock-oauth2-provider": "^0.1.14", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/jsonwebtoken": "^8.5.0", - "@types/lodash": "^4.14.165", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", - "@types/passport": "^1.0.4", + "@types/passport": "^1.0.5", "@types/passport-http": "^0.3.8", - "@types/passport-oauth2": "^1.4.9", + "@types/passport-oauth2": "^1.4.10", "@types/qs": "^6.9.5", "axios": "^0.21.0", "body-parser": "^1.19.0", @@ -58,7 +58,7 @@ "lodash": "^4.17.20", "passport-http": "^0.3.0", "passport-oauth2": "^1.5.0", - "qs": "^6.9.4", + "qs": "^6.9.6", "supertest": "^6.0.1" }, "keywords": [ diff --git a/extensions/context-explorer/CHANGELOG.md b/extensions/context-explorer/CHANGELOG.md index 17a48c966caf..e2c318d58014 100644 --- a/extensions/context-explorer/CHANGELOG.md +++ b/extensions/context-explorer/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/context-explorer@0.2.5...@loopback/context-explorer@0.3.0) (2021-01-21) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + ## [0.2.5](https://github.com/strongloop/loopback-next/compare/@loopback/context-explorer@0.2.4...@loopback/context-explorer@0.2.5) (2020-12-07) **Note:** Version bump only for package @loopback/context-explorer diff --git a/extensions/context-explorer/package-lock.json b/extensions/context-explorer/package-lock.json index 0cf6eebdf150..5a581e8aa8fb 100644 --- a/extensions/context-explorer/package-lock.json +++ b/extensions/context-explorer/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/context-explorer", - "version": "0.2.5", + "version": "0.3.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/extensions/context-explorer/package.json b/extensions/context-explorer/package.json index f9e99a5b6c76..99493685cfa3 100644 --- a/extensions/context-explorer/package.json +++ b/extensions/context-explorer/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/context-explorer", - "version": "0.2.5", + "version": "0.3.0", "description": "Visualize context hierarchy, bindings, configurations, and dependencies", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,19 +21,19 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "ts-graphviz": "^0.13.2", "viz.js": "^2.1.2" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/extensions/context-explorer/src/__tests__/acceptance/context-explorer.acceptance.ts b/extensions/context-explorer/src/__tests__/acceptance/context-explorer.acceptance.ts index c034221a802b..086837d871b0 100644 --- a/extensions/context-explorer/src/__tests__/acceptance/context-explorer.acceptance.ts +++ b/extensions/context-explorer/src/__tests__/acceptance/context-explorer.acceptance.ts @@ -67,7 +67,8 @@ describe('Context Explorer (acceptance)', function (this: Mocha.Suite) { ); }); - it('invokes GET /graph', async () => { + it('invokes GET /graph', async function (this: Mocha.Context) { + if ((process.platform as string) === 'os390') return this.skip(); const res = await request.get('/context-explorer/graph').expect(200); expect(res.get('content-type')).to.match(/^image\/svg\+xml/); }); diff --git a/extensions/context-explorer/src/__tests__/integration/visualizer.integration.ts b/extensions/context-explorer/src/__tests__/integration/visualizer.integration.ts index 87f2721f693a..f73264444128 100644 --- a/extensions/context-explorer/src/__tests__/integration/visualizer.integration.ts +++ b/extensions/context-explorer/src/__tests__/integration/visualizer.integration.ts @@ -14,7 +14,8 @@ describe('Visualizer', () => { beforeEach(givenContexts); - it('creates a dot graph with bindings', async () => { + it('creates a dot graph with bindings', async function (this: Mocha.Context) { + if ((process.platform as string) === 'os390') return this.skip(); server.bind('port').to(3000); app.bind('now').toDynamicValue(() => new Date()); const json = server.inspect(); diff --git a/extensions/context-explorer/src/visualizer.ts b/extensions/context-explorer/src/visualizer.ts index 3a43f046da9b..f3962bc2477c 100644 --- a/extensions/context-explorer/src/visualizer.ts +++ b/extensions/context-explorer/src/visualizer.ts @@ -4,7 +4,6 @@ // License text available at https://opensource.org/licenses/MIT const Viz = require('viz.js'); -// eslint-disable-next-line @typescript-eslint/naming-convention let vizOptions: {Module: Function; render: Function}; /** diff --git a/extensions/cron/CHANGELOG.md b/extensions/cron/CHANGELOG.md index b6e3aa484263..c848774479dd 100644 --- a/extensions/cron/CHANGELOG.md +++ b/extensions/cron/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.6](https://github.com/strongloop/loopback-next/compare/@loopback/cron@0.3.5...@loopback/cron@0.3.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/cron + + + + + ## [0.3.5](https://github.com/strongloop/loopback-next/compare/@loopback/cron@0.3.4...@loopback/cron@0.3.5) (2020-12-07) **Note:** Version bump only for package @loopback/cron diff --git a/extensions/cron/package-lock.json b/extensions/cron/package-lock.json index 267de60a9331..ff44270414c1 100644 --- a/extensions/cron/package-lock.json +++ b/extensions/cron/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/cron", - "version": "0.3.5", + "version": "0.3.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/extensions/cron/package.json b/extensions/cron/package.json index 708482f86536..ebc294a61223 100644 --- a/extensions/cron/package.json +++ b/extensions/cron/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/cron", - "version": "0.3.5", + "version": "0.3.6", "description": "Schedule tasks using cron-like syntax", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,7 +21,7 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { "@types/cron": "^1.7.2", @@ -31,10 +31,10 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/extensions/graphql/CHANGELOG.md b/extensions/graphql/CHANGELOG.md index 6e5ef73d5328..5af181b71d23 100644 --- a/extensions/graphql/CHANGELOG.md +++ b/extensions/graphql/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.4](https://github.com/strongloop/loopback-next/compare/@loopback/graphql@0.2.3...@loopback/graphql@0.2.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/graphql + + + + + ## [0.2.3](https://github.com/strongloop/loopback-next/compare/@loopback/graphql@0.2.2...@loopback/graphql@0.2.3) (2020-12-07) **Note:** Version bump only for package @loopback/graphql diff --git a/extensions/graphql/package-lock.json b/extensions/graphql/package-lock.json index 0bbcb9f88bad..25f1160a34ab 100644 --- a/extensions/graphql/package-lock.json +++ b/extensions/graphql/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/graphql", - "version": "0.2.3", + "version": "0.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -100,13 +100,6 @@ "integrity": "sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/body-parser": { @@ -116,28 +109,14 @@ "requires": { "@types/connect": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/content-disposition": { @@ -146,21 +125,14 @@ "integrity": "sha512-P1bffQfhD3O4LW0ioENXUhZ9OIa0Zn+P7M+pWgkCKaT53wVLSq0mrKksCID/FGHpFhRSxRGhgrQmfhRuzwtKdg==" }, "@types/cookies": { - "version": "0.7.5", - "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.5.tgz", - "integrity": "sha512-3+TAFSm78O7/bAeYdB8FoYGntuT87vVP9JKuQRL8sRhv9313LP2SpHHL50VeFtnyjIcb3UELddMk5Yt0eOSOkg==", + "version": "0.7.6", + "resolved": "https://registry.npmjs.org/@types/cookies/-/cookies-0.7.6.tgz", + "integrity": "sha512-FK4U5Qyn7/Sc5ih233OuHO0qAkOpEcD/eG6584yEiLKizTFRny86qHLe/rej3HFQrkBuUjF4whFliAdODbVN/w==", "requires": { "@types/connect": "*", "@types/express": "*", "@types/keygrip": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/cors": { @@ -189,20 +161,13 @@ } }, "@types/express-serve-static-core": { - "version": "4.17.13", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.13.tgz", - "integrity": "sha512-RgDi5a4nuzam073lRGKTUIaL3eF2+H7LJvJ8eUnCI0wA6SNjXc44DCmWNiTLs/AZ7QlsFWZiw/gTG3nSQGL0fA==", + "version": "4.17.17", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.17.tgz", + "integrity": "sha512-YYlVaCni5dnHc+bLZfY908IG1+x5xuibKZMGv8srKkvtul3wUuanYvpIj9GXXoWkQbaAdR+kgX46IETKUALWNQ==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/fs-capacitor": { @@ -211,13 +176,6 @@ "integrity": "sha512-FKVPOCFbhCvZxpVAMhdBdTfVfXUpsh15wFHgqOKxh9N9vzWZVuWCSijZ5T4U34XYNnuj2oduh6xcs1i+LPI+BQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/glob": { @@ -268,13 +226,6 @@ "@types/keygrip": "*", "@types/koa-compose": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/koa-compose": { @@ -291,9 +242,9 @@ "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/minimatch": { "version": "3.0.3", @@ -312,13 +263,6 @@ "requires": { "@types/node": "*", "form-data": "^3.0.0" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/qs": { @@ -337,19 +281,12 @@ "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/ws": { @@ -358,13 +295,6 @@ "integrity": "sha512-Y29uQ3Uy+58bZrFLhX36hcI3Np37nqWE7ky5tjiDoy1GDZnIwVxS0CgF+s+1bXMzjKBFy+fqaRfb708iNzdinw==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@wry/equality": { @@ -385,21 +315,21 @@ } }, "apollo-cache-control": { - "version": "0.11.4", - "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.4.tgz", - "integrity": "sha512-FUKE8ASr8GxVq5rmky/tY8bsf++cleGT591lfLiqnPsP1fo3kAfgRfWA2QRHTCKFNlQxzUhVOEDv+PaysqiOjw==", + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/apollo-cache-control/-/apollo-cache-control-0.11.6.tgz", + "integrity": "sha512-YZ+uuIG+fPy+mkpBS2qKF0v1qlzZ3PW6xZVaDukeK3ed3iAs4L/2YnkTqau3OmoF/VPzX2FmSkocX/OVd59YSw==", "requires": { - "apollo-server-env": "^2.4.5", - "apollo-server-plugin-base": "^0.10.2" + "apollo-server-env": "^3.0.0", + "apollo-server-plugin-base": "^0.10.4" } }, "apollo-datasource": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.2.tgz", - "integrity": "sha512-ibnW+s4BMp4K2AgzLEtvzkjg7dJgCaw9M5b5N0YKNmeRZRnl/I/qBTQae648FsRKgMwTbRQIvBhQ0URUFAqFOw==", + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/apollo-datasource/-/apollo-datasource-0.7.3.tgz", + "integrity": "sha512-PE0ucdZYjHjUyXrFWRwT02yLcx2DACsZ0jm1Mp/0m/I9nZu/fEkvJxfsryXB6JndpmQO77gQHixf/xGCN976kA==", "requires": { - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" } }, "apollo-env": { @@ -434,48 +364,48 @@ } }, "apollo-reporting-protobuf": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.1.tgz", - "integrity": "sha512-qr4DheFP154PGZsd93SSIS9RkqHnR5b6vT+eCloWjy3UIpY+yZ3cVLlttlIjYvOG4xTJ25XEwcHiAExatQo/7g==", + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/apollo-reporting-protobuf/-/apollo-reporting-protobuf-0.6.2.tgz", + "integrity": "sha512-WJTJxLM+MRHNUxt1RTl4zD0HrLdH44F2mDzMweBj1yHL0kSt8I1WwoiF/wiGVSpnG48LZrBegCaOJeuVbJTbtw==", "requires": { "@apollo/protobufjs": "^1.0.3" } }, "apollo-server-caching": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.2.tgz", - "integrity": "sha512-HUcP3TlgRsuGgeTOn8QMbkdx0hLPXyEJehZIPrcof0ATz7j7aTPA4at7gaiFHCo8gk07DaWYGB3PFgjboXRcWQ==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/apollo-server-caching/-/apollo-server-caching-0.5.3.tgz", + "integrity": "sha512-iMi3087iphDAI0U2iSBE9qtx9kQoMMEWr6w+LwXruBD95ek9DWyj7OeC2U/ngLjRsXM43DoBDXlu7R+uMjahrQ==", "requires": { - "lru-cache": "^5.0.0" + "lru-cache": "^6.0.0" } }, "apollo-server-core": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.0.tgz", - "integrity": "sha512-2aMKUVPyNbomJQaG2tkpfqvp1Tfgxgkdr7nX5zHudYNSzsPrHw+CcYlCbIVFFI/mTZsjoK9czNq1qerFRxZbJw==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/apollo-server-core/-/apollo-server-core-2.19.2.tgz", + "integrity": "sha512-liLgLhTIGWZtdQbxuxo3/Yv8j+faKQcI60kOL+uwfByGhoKLZEQp5nqi2IdMK6JXt1VuyKwKu7lTzj02a9S3jA==", "requires": { "@apollographql/apollo-tools": "^0.4.3", "@apollographql/graphql-playground-html": "1.6.26", "@types/graphql-upload": "^8.0.0", "@types/ws": "^7.0.0", - "apollo-cache-control": "^0.11.4", - "apollo-datasource": "^0.7.2", + "apollo-cache-control": "^0.11.6", + "apollo-datasource": "^0.7.3", "apollo-graphql": "^0.6.0", - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5", + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0", "apollo-server-errors": "^2.4.2", - "apollo-server-plugin-base": "^0.10.2", - "apollo-server-types": "^0.6.1", - "apollo-tracing": "^0.12.0", + "apollo-server-plugin-base": "^0.10.4", + "apollo-server-types": "^0.6.3", + "apollo-tracing": "^0.12.2", "async-retry": "^1.2.1", "fast-json-stable-stringify": "^2.0.0", - "graphql-extensions": "^0.12.6", - "graphql-tag": "^2.9.2", + "graphql-extensions": "^0.12.8", + "graphql-tag": "^2.11.0", "graphql-tools": "^4.0.0", "graphql-upload": "^8.0.2", "loglevel": "^1.6.7", - "lru-cache": "^5.0.0", + "lru-cache": "^6.0.0", "sha.js": "^2.4.11", "subscriptions-transport-ws": "^0.9.11", "uuid": "^8.0.0", @@ -483,9 +413,9 @@ } }, "apollo-server-env": { - "version": "2.4.5", - "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-2.4.5.tgz", - "integrity": "sha512-nfNhmGPzbq3xCEWT8eRpoHXIPNcNy3QcEoBlzVMjeglrBGryLG2LXwBSPnVmTRRrzUYugX0ULBtgE3rBFNoUgA==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/apollo-server-env/-/apollo-server-env-3.0.0.tgz", + "integrity": "sha512-tPSN+VttnPsoQAl/SBVUpGbLA97MXG990XIwq6YUnJyAixrrsjW1xYG7RlaOqetxm80y5mBZKLrRDiiSsW/vog==", "requires": { "node-fetch": "^2.1.2", "util.promisify": "^1.0.0" @@ -497,19 +427,19 @@ "integrity": "sha512-FeGxW3Batn6sUtX3OVVUm7o56EgjxDlmgpTLNyWcLb0j6P8mw9oLNyAm3B+deHA4KNdNHO5BmHS2g1SJYjqPCQ==" }, "apollo-server-express": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.19.0.tgz", - "integrity": "sha512-3rgSrTme1SlLoecAYtSa8ThH6vYvz29QecgZCigq5Vdc6bFP2SZrCk0ls6BAdD8OZbVKUtizzRxd0yd/uREPAw==", + "version": "2.19.2", + "resolved": "https://registry.npmjs.org/apollo-server-express/-/apollo-server-express-2.19.2.tgz", + "integrity": "sha512-1v2H6BgDkS4QzRbJ9djn2o0yv5m/filbpiupxAsCG9f+sAoSlY3eYSj84Sbex2r5+4itAvT9y84WI7d9RBYs/Q==", "requires": { "@apollographql/graphql-playground-html": "1.6.26", "@types/accepts": "^1.3.5", "@types/body-parser": "1.19.0", "@types/cors": "2.8.8", "@types/express": "4.17.7", - "@types/express-serve-static-core": "4.17.13", + "@types/express-serve-static-core": "4.17.17", "accepts": "^1.3.5", - "apollo-server-core": "^2.19.0", - "apollo-server-types": "^0.6.1", + "apollo-server-core": "^2.19.2", + "apollo-server-types": "^0.6.3", "body-parser": "^1.18.3", "cors": "^2.8.4", "express": "^4.17.1", @@ -521,30 +451,30 @@ } }, "apollo-server-plugin-base": { - "version": "0.10.2", - "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.2.tgz", - "integrity": "sha512-uM5uL1lOxbXdgvt/aEIbgs40fV9xA45Y3Mmh0VtQ/ddqq0MXR5aG92nnf8rM+URarBCUfxKJKaYzJJ/CXAnEdA==", + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/apollo-server-plugin-base/-/apollo-server-plugin-base-0.10.4.tgz", + "integrity": "sha512-HRhbyHgHFTLP0ImubQObYhSgpmVH4Rk1BinnceZmwudIVLKrqayIVOELdyext/QnSmmzg5W7vF3NLGBcVGMqDg==", "requires": { - "apollo-server-types": "^0.6.1" + "apollo-server-types": "^0.6.3" } }, "apollo-server-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.1.tgz", - "integrity": "sha512-IEQ37aYvMLiTUzsySVLOSuvvhxuyYdhI05f3cnH6u2aN1HgGp7vX6bg+U3Ue8wbHfdcifcGIk5UEU+Q+QO6InA==", + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/apollo-server-types/-/apollo-server-types-0.6.3.tgz", + "integrity": "sha512-aVR7SlSGGY41E1f11YYz5bvwA89uGmkVUtzMiklDhZ7IgRJhysT5Dflt5IuwDxp+NdQkIhVCErUXakopocFLAg==", "requires": { - "apollo-reporting-protobuf": "^0.6.1", - "apollo-server-caching": "^0.5.2", - "apollo-server-env": "^2.4.5" + "apollo-reporting-protobuf": "^0.6.2", + "apollo-server-caching": "^0.5.3", + "apollo-server-env": "^3.0.0" } }, "apollo-tracing": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.0.tgz", - "integrity": "sha512-cMUYGE6mOEwb9HDqhf4fiPEo2JMhjPIqEprAQEC57El76avRpRig5NM0bnqMZcYJZR5QmLlNcttNccOwf9WrNg==", + "version": "0.12.2", + "resolved": "https://registry.npmjs.org/apollo-tracing/-/apollo-tracing-0.12.2.tgz", + "integrity": "sha512-SYN4o0C0wR1fyS3+P0FthyvsQVHFopdmN3IU64IaspR/RZScPxZ3Ae8uu++fTvkQflAkglnFM0aX6DkZERBp6w==", "requires": { - "apollo-server-env": "^2.4.5", - "apollo-server-plugin-base": "^0.10.2" + "apollo-server-env": "^3.0.0", + "apollo-server-plugin-base": "^0.10.4" } }, "apollo-utilities": { @@ -663,18 +593,18 @@ "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==" }, "call-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.0.tgz", - "integrity": "sha512-AEXsYIyyDY3MCzbwdhzG3Jx1R0J2wetQyUynn6dYHAO+bg8l1k7jwZtRv4ryryFs7EP+NDlikJlVe59jr0cM2w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "requires": { "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.0" + "get-intrinsic": "^1.0.2" } }, "class-transformer": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.1.tgz", - "integrity": "sha512-cKFwohpJbuMovS8xVLmn8N2AUbAuc8pVo4zEfsUVo8qgECOogns1WVk/FkOZoxhOPTyTYFckuoH+13FO+MQ8GA==", + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.3.2.tgz", + "integrity": "sha512-9QY6QXBH/+Gt1C3HBmJCrgY6+EFpIa6aLjfDnlXFx0zQl/HjrCE7qoaI0srNrxpMIfsobCpgUdDG5JYtJOpVsw==", "dev": true }, "combined-stream": { @@ -726,9 +656,9 @@ "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, "core-js": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.1.tgz", - "integrity": "sha512-9Id2xHY1W7m8hCl8NkhQn5CufmF/WuR30BTRewvCXc1aZd3kMECwNZ69ndLbekKfakw9Rf2Xyc+QR6E7Gg+obg==" + "version": "3.8.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", + "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==" }, "cors": { "version": "2.8.5", @@ -806,21 +736,24 @@ "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" }, "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", + "version": "1.18.0-next.2", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", + "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", "requires": { + "call-bind": "^1.0.2", "es-to-primitive": "^1.2.1", "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2", "has": "^1.0.3", "has-symbols": "^1.0.1", "is-callable": "^1.2.2", + "is-negative-zero": "^2.0.1", "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", + "object-inspect": "^1.9.0", "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" + "object.assign": "^4.1.2", + "string.prototype.trimend": "^1.0.3", + "string.prototype.trimstart": "^1.0.3" } }, "es-to-primitive": { @@ -934,6 +867,14 @@ } } }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "requires": { + "is-callable": "^1.1.3" + } + }, "form-data": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.0.tgz", @@ -970,9 +911,9 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, "get-intrinsic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.1.tgz", - "integrity": "sha512-ZnWP+AmS1VUaLgTRy47+zKtjTxz+0xMpx3I52i+aalBK1QP19ggLF3Db89KJX7kjfOfP2eoa01qc++GwPgufPg==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", + "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", "requires": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -998,13 +939,13 @@ "integrity": "sha512-EB3zgGchcabbsU9cFe1j+yxdzKQKAbGUWRb13DsrsMN1yyfmmIq+2+L5MqVWcDCE4V89R5AyUOi7sMOGxdsYtA==" }, "graphql-extensions": { - "version": "0.12.6", - "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.6.tgz", - "integrity": "sha512-EUNw+OIRXYTPxToSoJjhJvS5aGa94KkdkZnL1I9DCZT64/+rzQNeLeGj+goj2RYuYvoQe1Bmcx0CNZ1GqwBhng==", + "version": "0.12.8", + "resolved": "https://registry.npmjs.org/graphql-extensions/-/graphql-extensions-0.12.8.tgz", + "integrity": "sha512-xjsSaB6yKt9jarFNNdivl2VOx52WySYhxPgf8Y16g6GKZyAzBoIFiwyGw5PJDlOSUa6cpmzn6o7z8fVMbSAbkg==", "requires": { "@apollographql/apollo-tools": "^0.4.3", - "apollo-server-env": "^2.4.5", - "apollo-server-types": "^0.6.1" + "apollo-server-env": "^3.0.0", + "apollo-server-types": "^0.6.3" } }, "graphql-query-complexity": { @@ -1167,11 +1108,11 @@ "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" }, "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "requires": { - "yallist": "^3.0.2" + "yallist": "^4.0.0" } }, "media-typer": { @@ -1269,27 +1210,6 @@ "call-bind": "^1.0.0", "define-properties": "^1.1.3", "es-abstract": "^1.18.0-next.1" - }, - "dependencies": { - "es-abstract": { - "version": "1.18.0-next.1", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", - "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.0", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } } }, "on-finished": { @@ -1609,14 +1529,15 @@ "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.1.1.tgz", + "integrity": "sha512-/s3UsZUrIfa6xDhr7zZhnE9SLQ5RIXyYfiVnMMyMDzOc8WhWN4Nbh36H842OyurKbCDAesZOJaVyvmSl6fhGQw==", "requires": { + "call-bind": "^1.0.0", "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", + "for-each": "^0.3.3", "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" + "object.getownpropertydescriptors": "^2.1.1" } }, "utils-merge": { @@ -1625,9 +1546,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "vary": { "version": "1.1.2", @@ -1657,9 +1578,9 @@ } }, "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==" + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" }, "zen-observable": { "version": "0.8.15", diff --git a/extensions/graphql/package.json b/extensions/graphql/package.json index 8a0b605767ab..67b4df9ebfd0 100644 --- a/extensions/graphql/package.json +++ b/extensions/graphql/package.json @@ -1,9 +1,9 @@ { "name": "@loopback/graphql", - "version": "0.2.3", + "version": "0.2.4", "description": "LoopBack's graphql integration", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "main": "dist/index.js", "types": "dist/index.d.ts", @@ -34,28 +34,28 @@ "access": "public" }, "peerDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1" + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/http-server": "^2.3.3", - "apollo-server-express": "^2.19.0", + "@loopback/http-server": "^2.3.4", + "apollo-server-express": "^2.19.2", "debug": "^4.3.1", "express": "^4.17.1", "graphql": "^15.4.0", "type-graphql": "^1.1.1" }, "devDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", - "class-transformer": "^0.3.1" + "class-transformer": "^0.3.2" }, "repository": { "type": "git", diff --git a/extensions/health/CHANGELOG.md b/extensions/health/CHANGELOG.md index 356d241b6506..62384afe3b9d 100644 --- a/extensions/health/CHANGELOG.md +++ b/extensions/health/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.6.3](https://github.com/strongloop/loopback-next/compare/@loopback/health@0.6.2...@loopback/health@0.6.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/health + + + + + ## [0.6.2](https://github.com/strongloop/loopback-next/compare/@loopback/health@0.6.1...@loopback/health@0.6.2) (2020-12-07) **Note:** Version bump only for package @loopback/health diff --git a/extensions/health/README.md b/extensions/health/README.md index 40c2773260c3..2bb08d7ad2ac 100644 --- a/extensions/health/README.md +++ b/extensions/health/README.md @@ -11,8 +11,6 @@ npm install --save @loopback/health ## Basic use -{% include note.html content="*this.configure()* must be called before *this.component()* to take effect. This is a [known limitation](https://github.com/strongloop/loopback-next/issues/4289#issuecomment-564617263)." %} - The component should be loaded in the constructor of your custom Application class. @@ -44,6 +42,11 @@ this.configure(HealthBindings.COMPONENT).to({ }); ``` +{% include note.html content="*this.configure()* must be called before +*this.component()* to take effect. This is a +[known limitation](https://github.com/strongloop/loopback-next/issues/4289#issuecomment-564617263) +." %} + http://localhost:3000/health returns health in JSON format, such as: ```json diff --git a/extensions/health/package-lock.json b/extensions/health/package-lock.json index 7b65098cafa8..5ffb9501956d 100644 --- a/extensions/health/package-lock.json +++ b/extensions/health/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/health", - "version": "0.6.2", + "version": "0.6.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/extensions/health/package.json b/extensions/health/package.json index 7946105d9561..c240d1958945 100644 --- a/extensions/health/package.json +++ b/extensions/health/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/health", - "version": "0.6.2", + "version": "0.6.3", "description": "An extension exposes health check related endpoints with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -22,19 +22,19 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "@cloudnative/health": "^2.1.2", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/extensions/health/src/controllers/health.controller.ts b/extensions/health/src/controllers/health.controller.ts index 0731d8d95b81..3719a6f799b1 100644 --- a/extensions/health/src/controllers/health.controller.ts +++ b/extensions/health/src/controllers/health.controller.ts @@ -20,7 +20,7 @@ function getHealthResponseObject() { /** * OpenAPI definition of health response schema */ - const healthResponseSchema: SchemaObject = { + const HEALTH_RESPONSE_SCHEMA: SchemaObject = { type: 'object', properties: { status: {type: 'string'}, @@ -46,22 +46,22 @@ function getHealthResponseObject() { /** * OpenAPI definition of health response */ - const healthResponse: ResponseObject = { + const HEALTH_RESPONSE: ResponseObject = { description: 'Health Response', content: { 'application/json': { - schema: healthResponseSchema, + schema: HEALTH_RESPONSE_SCHEMA, }, }, }; - return healthResponse; + return HEALTH_RESPONSE; } /** * OpenAPI spec for health endpoints */ -const healthSpec: OperationObject = { +const HEALTH_SPEC: OperationObject = { // response object needs to be cloned because the oas-validator throws an // error if the same object is referenced twice responses: { @@ -74,7 +74,7 @@ const healthSpec: OperationObject = { /** * OpenAPI spec to hide endpoints */ -const hiddenSpec: OperationObject = { +const HIDDEN_SPEC: OperationObject = { responses: {}, 'x-visibility': 'undocumented', }; @@ -89,7 +89,7 @@ const hiddenSpec: OperationObject = { export function createHealthController( options: HealthOptions = DEFAULT_HEALTH_OPTIONS, ): Constructor { - const spec = options.openApiSpec ? healthSpec : hiddenSpec; + const spec = options.openApiSpec ? HEALTH_SPEC : HIDDEN_SPEC; /** * Controller for health endpoints diff --git a/extensions/logging/CHANGELOG.md b/extensions/logging/CHANGELOG.md index b5d761d14d8a..776b6ab10841 100644 --- a/extensions/logging/CHANGELOG.md +++ b/extensions/logging/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.4.6](https://github.com/strongloop/loopback-next/compare/@loopback/logging@0.4.5...@loopback/logging@0.4.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/logging + + + + + ## [0.4.5](https://github.com/strongloop/loopback-next/compare/@loopback/logging@0.4.4...@loopback/logging@0.4.5) (2020-12-07) **Note:** Version bump only for package @loopback/logging diff --git a/extensions/logging/README.md b/extensions/logging/README.md index 564b85a072fa..846efcb16a4e 100644 --- a/extensions/logging/README.md +++ b/extensions/logging/README.md @@ -79,6 +79,9 @@ app.configure(LoggingBindings.COMPONENT).to({ }); ``` +{% include note.html content="this.configure() must be called before +this.component() to take effect." %} + - `enableFluent`: Enable logs to be sent to Fluentd - `enableHttpAccessLog`: Enable all http requests to be logged via a global interceptor diff --git a/extensions/logging/package-lock.json b/extensions/logging/package-lock.json index cfc3cfa619bf..29c6ad956518 100644 --- a/extensions/logging/package-lock.json +++ b/extensions/logging/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/logging", - "version": "0.4.5", + "version": "0.4.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/extensions/logging/package.json b/extensions/logging/package.json index aeb5ceb986a9..80bb274db091 100644 --- a/extensions/logging/package.json +++ b/extensions/logging/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/logging", - "version": "0.4.5", + "version": "0.4.6", "description": "An extension exposes logging for Winston and Fluentd with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,8 +21,8 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "fluent-logger": "^3.4.1", @@ -32,11 +32,11 @@ "winston-transport": "^4.4.0" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/morgan": "^1.9.2", "@types/node": "^10.17.35" }, diff --git a/extensions/metrics/CHANGELOG.md b/extensions/metrics/CHANGELOG.md index 45c51d293cb3..2fcf9cbd87ad 100644 --- a/extensions/metrics/CHANGELOG.md +++ b/extensions/metrics/CHANGELOG.md @@ -3,6 +3,25 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.6.0](https://github.com/strongloop/loopback-next/compare/@loopback/metrics@0.5.2...@loopback/metrics@0.6.0) (2021-01-21) + + +### Bug Fixes + +* **metrics:** fix error thrown by interceptor if invoked by proxy ([2fd2da2](https://github.com/strongloop/loopback-next/commit/2fd2da2a5664651675a7510910a674706d04d5f8)) +* **metrics:** use path pattern instead of raw path in path labels ([80a07bc](https://github.com/strongloop/loopback-next/commit/80a07bcb624fd60a72b7537d285723de3a7c04f8)) + + +### Features + +* **metrics:** add new Pushgateway options ([6d73fff](https://github.com/strongloop/loopback-next/commit/6d73fff0e19eb1d5646878d77c38463422607c22)) +* **metrics:** add option to configure static default labels ([8bce9e8](https://github.com/strongloop/loopback-next/commit/8bce9e81c916051633486dff2f4aa1af643ca15c)) +* **metrics:** additional method invocation labels ([cb3b9a5](https://github.com/strongloop/loopback-next/commit/cb3b9a58683a5cd9c707e77b6896eb5bb4de4db2)) + + + + + ## [0.5.2](https://github.com/strongloop/loopback-next/compare/@loopback/metrics@0.5.1...@loopback/metrics@0.5.2) (2020-12-07) **Note:** Version bump only for package @loopback/metrics diff --git a/extensions/metrics/README.md b/extensions/metrics/README.md index ebe2bfcae805..ca41485ce724 100644 --- a/extensions/metrics/README.md +++ b/extensions/metrics/README.md @@ -44,9 +44,16 @@ this.configure(MetricsBindings.COMPONENT).to({ defaultMetrics: { timeout: 5000, }, + defaultLabels: { + service: 'api', + version: '1.0.0', + }, }); ``` +{% include note.html content="this.configure() must be called before +this.component() to take effect." %} + It also has to be noted, that by default the OpenAPI spec is disabled and therefore the metrics endpoint will not be visible in the API explorer. The spec can be enabled by setting `openApiSpec` to `true`. @@ -70,12 +77,12 @@ There are three types of metrics being collected by this component: Prometheus supports two modes to collect metrics: -- pull - scraping from metrics http endpoint exposed by the system being - monitored -- push - pushing metrics from the system being monitored to a push gateway - -See -https://prometheus.io/docs/introduction/faq/#why-do-you-pull-rather-than-push +- **pull** - scraping from metrics http endpoint exposed by the system being + monitored. This is the usual mode of operation. See + [Why do you pull rather than push?](https://prometheus.io/docs/introduction/faq/#why-do-you-pull-rather-than-push) +- **push** - pushing metrics from the system being monitored to a push gateway. + Generally used for ephemeral jobs - see + [When to use the Pushgateway](https://prometheus.io/docs/practices/pushing/) ## Try it out @@ -172,13 +179,37 @@ nodejs_heap_space_size_available_bytes{space="new_large_object"} 1047952 1564508 nodejs_version_info{version="v12.4.0",major="12",minor="4",patch="0"} 1 # HELP loopback_invocation_duration_seconds method invocation # TYPE loopback_invocation_duration_seconds gauge +loopback_invocation_duration_seconds{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002056 # HELP loopback_invocation_duration_histogram method invocation histogram # TYPE loopback_invocation_duration_histogram histogram -# HELP loopback_invocation_total method invocation counts +loopback_invocation_duration_histogram_bucket{le="0.005",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.01",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.025",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.05",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.1",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.25",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="0.5",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="1",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="2.5",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="5",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="10",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_bucket{le="+Inf",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +loopback_invocation_duration_histogram_sum{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002112 +loopback_invocation_duration_histogram_count{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 +# HELP loopback_invocation_total method invocation count # TYPE loopback_invocation_total counter -loopback_invocation_total 1 +loopback_invocation_total{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1 # HELP loopback_invocation_duration_summary method invocation summary # TYPE loopback_invocation_duration_summary summary +loopback_invocation_duration_summary{quantile="0.01",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.05",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.5",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.9",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.95",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.99",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary{quantile="0.999",targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary_sum{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 0.0002363 +loopback_invocation_duration_summary_count{targetName="MockController.prototype.success",method="GET",path="/success",statusCode="204"} 1
diff --git a/extensions/metrics/package-lock.json b/extensions/metrics/package-lock.json index ab30f99b106a..268157416cfa 100644 --- a/extensions/metrics/package-lock.json +++ b/extensions/metrics/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/metrics", - "version": "0.5.2", + "version": "0.6.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -15,30 +15,30 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -47,9 +47,9 @@ } }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { @@ -71,12 +71,12 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "dev": true, "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, diff --git a/extensions/metrics/package.json b/extensions/metrics/package.json index b745b0eb9d15..d4b878e2673d 100644 --- a/extensions/metrics/package.json +++ b/extensions/metrics/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/metrics", - "version": "0.5.2", + "version": "0.6.0", "description": "An extension exposes metrics for Prometheus with LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,20 +21,20 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "prom-client": "^12.0.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", - "@types/express": "^4.17.9", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", + "@types/express": "^4.17.11", "@types/node": "^10.17.35", "express": "^4.17.1" }, diff --git a/extensions/metrics/src/__tests__/acceptance/metrics-push.acceptance.ts b/extensions/metrics/src/__tests__/acceptance/metrics-push.acceptance.ts index ec9c8009db45..1ef8c81ec6f6 100644 --- a/extensions/metrics/src/__tests__/acceptance/metrics-push.acceptance.ts +++ b/extensions/metrics/src/__tests__/acceptance/metrics-push.acceptance.ts @@ -31,24 +31,65 @@ describe('Metrics (with push gateway)', function () { afterEach(async () => { if (app) await app.stop(); (app as unknown) = undefined; + await promisify(setTimeout)(10); + gateway.reset(); }); - beforeEach(async () => { + it('pushes metrics to gateway', async () => { await givenAppWithCustomConfig({ // Push metrics each 10 ms pushGateway: {url: gwUrl, interval: 10}, }); - }); - it('pushes metrics to gateway', async () => { - // Wait for 100 ms + // Wait for 50 ms await promisify(setTimeout)(50); const request = supertest(gwUrl); // Now we expect to get LoopBack metrics from the push gateway await request.get('/metrics').expect(200, /job="loopback"/); + expect(gateway.puts).to.equal(0); + expect(gateway.posts).to.be.greaterThanOrEqual(1); + }); + + it('pushes metrics to gateway with grouping key', async () => { + await givenAppWithCustomConfig({ + pushGateway: { + url: gwUrl, + interval: 10, + jobName: 'my_job', + groupingKey: {env: 'test'}, + }, + }); + + await promisify(setTimeout)(50); + const request = supertest(gwUrl); + await request.get('/metrics').expect(200, /job="my_job",env="test"/); + expect(gateway.puts).to.equal(0); + expect(gateway.posts).to.be.greaterThanOrEqual(1); }); - it('adds MetricsPushObserver to the application', () => { + it('pushes metrics to gateway with replacement', async () => { + await givenAppWithCustomConfig({ + pushGateway: { + url: gwUrl, + interval: 10, + jobName: 'my_other_job', + groupingKey: {env: 'poc'}, + replaceAll: true, + }, + }); + + await promisify(setTimeout)(50); + const request = supertest(gwUrl); + await request.get('/metrics').expect(200, /job="my_other_job",env="poc"/); + expect(gateway.puts).to.be.greaterThanOrEqual(1); + expect(gateway.posts).to.equal(0); + }); + + it('adds MetricsPushObserver to the application', async () => { + await givenAppWithCustomConfig({ + pushGateway: {url: gwUrl}, + }); + expect( app.isBound( `${CoreBindings.LIFE_CYCLE_OBSERVERS}.${MetricsPushObserver.name}`, diff --git a/extensions/metrics/src/__tests__/acceptance/metrics.acceptance.ts b/extensions/metrics/src/__tests__/acceptance/metrics.acceptance.ts index 128721349d97..70c7add06276 100644 --- a/extensions/metrics/src/__tests__/acceptance/metrics.acceptance.ts +++ b/extensions/metrics/src/__tests__/acceptance/metrics.acceptance.ts @@ -3,8 +3,17 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -import {CoreBindings, GLOBAL_INTERCEPTOR_NAMESPACE} from '@loopback/core'; -import {RestApplication, RestServer, RestServerConfig} from '@loopback/rest'; +import { + CoreBindings, + createProxyWithInterceptors, + GLOBAL_INTERCEPTOR_NAMESPACE, +} from '@loopback/core'; +import { + RestApplication, + RestServer, + RestServerConfig, + SequenceActions, +} from '@loopback/rest'; import { Client, createRestAppClient, @@ -16,6 +25,7 @@ import {MetricsBindings, MetricsComponent, MetricsOptions} from '../..'; import {metricsControllerFactory} from '../../controllers'; import {MetricsInterceptor} from '../../interceptors'; import {MetricsObserver, MetricsPushObserver} from '../../observers'; +import {MockController} from './mock.controller'; describe('Metrics (acceptance)', () => { let app: RestApplication; @@ -169,6 +179,152 @@ describe('Metrics (acceptance)', () => { }); }); + context('with collected method invocation metrics', () => { + beforeEach(async () => { + await givenAppForMetricsCollection(); + }); + + it('reports metrics with targetName label', async () => { + await request.get('/success'); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match( + /targetName="MockController.prototype.success"/, + ); + }); + + it('reports metrics with method and path label', async () => { + await request.get('/success'); + await request.post('/success'); + await request.put('/success'); + await request.patch('/success'); + await request.delete('/success'); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match(/method="GET",path="\/success"/); + expect(res.text).to.match(/method="POST",path="\/success"/); + expect(res.text).to.match(/method="PUT",path="\/success"/); + expect(res.text).to.match(/method="PATCH",path="\/success"/); + expect(res.text).to.match(/method="DELETE",path="\/success"/); + }); + + it('reports metrics with status code label', async () => { + await request.get('/success-with-data').expect(200); + await request.get('/success').expect(204); + await request.get('/redirect').expect(302); + await request.get('/bad-request').expect(400); + await request.get('/entity-not-found').expect(404); + await request.get('/server-error').expect(500); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match(/path="\/success-with-data",statusCode="200"/); + expect(res.text).to.match(/path="\/success",statusCode="204"/); + expect(res.text).to.match(/path="\/redirect",statusCode="302"/); + expect(res.text).to.match(/path="\/bad-request",statusCode="400"/); + expect(res.text).to.match(/path="\/entity-not-found",statusCode="404"/); + expect(res.text).to.match(/path="\/server-error",statusCode="500"/); + }); + + it('adds the labels to all metric types', async () => { + await request.get('/success').expect(204); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match( + /loopback_invocation_duration_seconds{targetName="MockController.prototype.success",method="GET",path="\/success",statusCode="204"}/, + ); + expect(res.text).to.match( + /loopback_invocation_duration_histogram_bucket{le="0.01",targetName="MockController.prototype.success",method="GET",path="\/success",statusCode="204"}/, + ); + expect(res.text).to.match( + /loopback_invocation_total{targetName="MockController.prototype.success",method="GET",path="\/success",statusCode="204"}/, + ); + expect(res.text).to.match( + /loopback_invocation_duration_summary{quantile="0.01",targetName="MockController.prototype.success",method="GET",path="\/success",statusCode="204"}/, + ); + }); + + it('uses the path pattern instead of the raw path in path labels', async () => { + await request.get('/path/1'); + await request.get('/path/1/2'); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match(/path="\/path\/{param}"/); + expect(res.text).to.match(/path="\/path\/{firstParam}\/{secondParam}"/); + }); + + it('only adds targetName label if the invocation source is an interception proxy', async () => { + const proxy = createProxyWithInterceptors(new MockController(), app); + await proxy.success(); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match( + /targetName="MockController.prototype.success"/, + ); + expect(res.text).to.not.match(/method=/); + expect(res.text).to.not.match(/path=/); + expect(res.text).to.not.match(/statusCode=/); + }); + }); + + context('with configured default labels', () => { + beforeEach(async () => { + await givenAppForMetricsCollection({ + defaultLabels: { + service: 'api', + version: '1.0.0', + }, + }); + }); + + it('adds static labels to default metrics', async () => { + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match( + /process_cpu_user_seconds_total{service="api",version="1.0.0"}/, + ); + }); + + it('adds static labels to method invocation metrics', async () => { + await request.get('/success').expect(204); + + const res = await request + .get('/metrics') + .expect(200) + .expect('content-type', /text/); + + expect(res.text).to.match( + /loopback_invocation_total{targetName="MockController.prototype.success",method="GET",path="\/success",statusCode="204",service="api",version="1.0.0"}/, + ); + }); + }); + async function givenAppWithCustomConfig(config: MetricsOptions) { app = givenRestApplication(); app.configure(MetricsBindings.COMPONENT).to(config); @@ -177,6 +333,16 @@ describe('Metrics (acceptance)', () => { request = createRestAppClient(app); } + async function givenAppForMetricsCollection(config?: MetricsOptions) { + app = givenRestApplication(); + app.configure(MetricsBindings.COMPONENT).to(config); + app.component(MetricsComponent); + app.controller(MockController); + app.bind(SequenceActions.LOG_ERROR).to(() => {}); + await app.start(); + request = createRestAppClient(app); + } + function givenRestApplication(config?: RestServerConfig) { const rest = Object.assign({}, givenHttpServerConfig(), config); return new RestApplication({rest}); diff --git a/extensions/metrics/src/__tests__/acceptance/mock-pushgateway.ts b/extensions/metrics/src/__tests__/acceptance/mock-pushgateway.ts index 30f28face4ee..1973bfdb5e72 100644 --- a/extensions/metrics/src/__tests__/acceptance/mock-pushgateway.ts +++ b/extensions/metrics/src/__tests__/acceptance/mock-pushgateway.ts @@ -4,7 +4,7 @@ // License text available at https://opensource.org/licenses/MIT import {once} from 'events'; -import express from 'express'; +import express, {Request} from 'express'; import {Server} from 'http'; /** @@ -12,7 +12,9 @@ import {Server} from 'http'; */ export class PushGateway { private server?: Server; - private metrics: string[] = []; + private metrics = new Map(); + puts = 0; + posts = 0; async start(port = 9091) { const app = express(); @@ -24,18 +26,58 @@ export class PushGateway { }); app.use(express.text({type: '*/*'})); app.get('/metrics', (req, res) => { - res.send(this.metrics.join('\n')); + // The actual metrics format appends the grouping key as labels, but this + // will do for the tests + const output: string[] = []; + this.metrics.forEach((value, key) => { + output.push(`${key}\n${value}`); + }); + res.send(output.join('\n')); }); - app.post('/metrics/job/:jobName', (req, res) => { - this.metrics.push(`job="${req.params.jobName}"\n${req.body}`); - res.send('\n'); - }); + app.put( + ['/metrics/job/:jobName', '/metrics/job/:jobName/:labelName/:labelValue'], + (req, res) => { + this.metrics.set(this.groupingKey(req), req.body); + res.send('\n'); + ++this.puts; + }, + ); + + app.post( + ['/metrics/job/:jobName', '/metrics/job/:jobName/:labelName/:labelValue'], + (req, res) => { + // Not quite the real behaviour of Pushgateway's POST, but this will + // also do for the tests + const key = this.groupingKey(req); + if (this.metrics.has(key)) { + this.metrics.set(key, this.metrics.get(key)!.concat('\n', req.body)); + } else { + this.metrics.set(key, req.body); + } + res.send('\n'); + ++this.posts; + }, + ); + this.server = app.listen(port); await once(this.server, 'listening'); return this.server; } + private groupingKey(req: Request): string { + const key = `job="${req.params.jobName}"`; + return req.params.labelName + ? key.concat(`,${req.params.labelName}="${req.params.labelValue}"`) + : key; + } + + reset() { + this.metrics.clear(); + this.puts = 0; + this.posts = 0; + } + async stop() { if (!this.server) return; this.server.close(); diff --git a/extensions/metrics/src/__tests__/acceptance/mock.controller.ts b/extensions/metrics/src/__tests__/acceptance/mock.controller.ts new file mode 100644 index 000000000000..a7454750c2b7 --- /dev/null +++ b/extensions/metrics/src/__tests__/acceptance/mock.controller.ts @@ -0,0 +1,76 @@ +// Copyright IBM Corp. 2021. All Rights Reserved. +// Node module: @loopback/metrics +// This file is licensed under the MIT License. +// License text available at https://opensource.org/licenses/MIT + +import {inject} from '@loopback/core'; +import { + del, + get, + HttpErrors, + param, + patch, + post, + put, + Response, + RestBindings, +} from '@loopback/rest'; + +/** + * A mockup controller to collect different method invocation metrics + */ +export class MockController { + constructor() {} + + @get('/success') + success() {} + + @post('/success') + postSuccess() {} + + @put('/success') + putSuccess() {} + + @patch('/success') + patchSuccess() {} + + @del('/success') + deleteSuccess() {} + + @get('/success-with-data') + successWithData() { + return {key: 'value'}; + } + + @get('/redirect') + redirect( + @inject(RestBindings.Http.RESPONSE) + response: Response, + ) { + return response.redirect('/some-path'); + } + + @get('/bad-request') + badRequest() { + throw new HttpErrors.BadRequest(); + } + + @get('/entity-not-found') + entityNotFound() { + throw Object.assign(new Error(), {code: 'ENTITY_NOT_FOUND'}); + } + + @get('/server-error') + serverError() { + throw new Error(); + } + + @get('/path/{param}') + pathWithParam(@param.path.string('param') _param: string) {} + + @get('/path/{firstParam}/{secondParam}') + pathWithParams( + @param.path.string('firstParam') _firstParam: string, + @param.path.string('secondParam') _secondParam: string, + ) {} +} diff --git a/extensions/metrics/src/controllers/metrics.controller.ts b/extensions/metrics/src/controllers/metrics.controller.ts index 6da1fe2699ec..74838b989f29 100644 --- a/extensions/metrics/src/controllers/metrics.controller.ts +++ b/extensions/metrics/src/controllers/metrics.controller.ts @@ -17,7 +17,7 @@ import {DEFAULT_METRICS_OPTIONS, MetricsOptions} from '../types'; /** * OpenAPI definition of metrics response */ -const metricsResponse: ResponseObject = { +const METRICS_RESPONSE: ResponseObject = { description: 'Metrics Response', content: { 'text/plain': { @@ -31,16 +31,16 @@ const metricsResponse: ResponseObject = { /** * OpenAPI spec for metrics endpoint */ -const metricsSpec: OperationObject = { +const METRICS_SPEC: OperationObject = { responses: { - '200': metricsResponse, + '200': METRICS_RESPONSE, }, }; /** * OpenAPI spec to hide endpoints */ -const hiddenSpec: OperationObject = { +const HIDDEN_SPEC: OperationObject = { responses: {}, 'x-visibility': 'undocumented', }; @@ -49,7 +49,7 @@ export function metricsControllerFactory( options: MetricsOptions = DEFAULT_METRICS_OPTIONS, ): Constructor { const basePath = options.endpoint?.basePath ?? '/metrics'; - const spec = options.openApiSpec ? metricsSpec : hiddenSpec; + const spec = options.openApiSpec ? METRICS_SPEC : HIDDEN_SPEC; /** * Controller for metrics endpoint diff --git a/extensions/metrics/src/interceptors/metrics.interceptor.ts b/extensions/metrics/src/interceptors/metrics.interceptor.ts index 9d1312956c29..5eaa78f51326 100644 --- a/extensions/metrics/src/interceptors/metrics.interceptor.ts +++ b/extensions/metrics/src/interceptors/metrics.interceptor.ts @@ -9,10 +9,28 @@ import { injectable, Interceptor, InvocationContext, + InvocationSource, Provider, ValueOrPromise, } from '@loopback/core'; -import {Counter, Gauge, Histogram, register, Summary} from 'prom-client'; +import { + HttpErrors, + RequestContext, + Response, + RouteSource, +} from '@loopback/rest'; +import { + Counter, + Gauge, + Histogram, + LabelValues, + register, + Summary, +} from 'prom-client'; + +type LabelNames = 'targetName' | 'method' | 'path' | 'statusCode'; + +const labelNames: LabelNames[] = ['targetName', 'method', 'path', 'statusCode']; /** * This interceptor captures metrics for method invocations, @@ -22,13 +40,13 @@ import {Counter, Gauge, Histogram, register, Summary} from 'prom-client'; */ @injectable(asGlobalInterceptor('metrics'), {scope: BindingScope.SINGLETON}) export class MetricsInterceptor implements Provider { - private static gauge: Gauge<'targetName'>; + private static gauge: Gauge; - private static histogram: Histogram<'targetName'>; + private static histogram: Histogram; - private static counter: Counter<'targetName'>; + private static counter: Counter; - private static summary: Summary<'targetName'>; + private static summary: Summary; private static setup() { // Check if the gauge is registered @@ -41,25 +59,25 @@ export class MetricsInterceptor implements Provider { this.gauge = new Gauge({ name: 'loopback_invocation_duration_seconds', help: 'method invocation', - labelNames: ['targetName'], + labelNames, }); this.histogram = new Histogram({ name: 'loopback_invocation_duration_histogram', help: 'method invocation histogram', - labelNames: ['targetName'], + labelNames, }); this.counter = new Counter({ name: 'loopback_invocation_total', - help: 'method invocation counts', - labelNames: ['targetName'], + help: 'method invocation count', + labelNames, }); this.summary = new Summary({ name: 'loopback_invocation_duration_summary', help: 'method invocation summary', - labelNames: ['targetName'], + labelNames, }); } @@ -74,22 +92,67 @@ export class MetricsInterceptor implements Provider { next: () => ValueOrPromise, ) { MetricsInterceptor.setup(); - const endGauge = MetricsInterceptor.gauge.startTimer({ - targetName: invocationCtx.targetName, - }); - const endHistogram = MetricsInterceptor.histogram.startTimer({ - targetName: invocationCtx.targetName, - }); - const endSummary = MetricsInterceptor.summary.startTimer({ + const {source, parent} = invocationCtx; + const labelValues: LabelValues = { targetName: invocationCtx.targetName, - }); + }; + if (isRouteSource(source)) { + labelValues.method = getRequestMethod(source); + labelValues.path = getPathPattern(source); + } + const endGauge = MetricsInterceptor.gauge.startTimer(); + const endHistogram = MetricsInterceptor.histogram.startTimer(); + const endSummary = MetricsInterceptor.summary.startTimer(); try { - MetricsInterceptor.counter.inc(); - return await next(); + const result = await next(); + if (isRouteSource(source)) { + labelValues.statusCode = getStatusCodeFromResponse( + // parent context will be request context if invocation source is route + (parent as RequestContext).response, + result, + ); + } + return result; + } catch (err) { + if (isRouteSource(source)) { + labelValues.statusCode = getStatusCodeFromError(err); + } + throw err; } finally { - endGauge(); - endHistogram(); - endSummary(); + MetricsInterceptor.counter.inc(labelValues); + endGauge(labelValues); + endHistogram(labelValues); + endSummary(labelValues); } } } + +function getPathPattern(source: RouteSource) { + // make sure to use path pattern instead of raw path + // this is important since paths can contain unbounded sets of values + // such as IDs which would create a new time series for each unique value + return source.value.path; +} + +function getRequestMethod(source: RouteSource) { + // request methods should be all-uppercase + return source.value.verb.toUpperCase(); +} + +function getStatusCodeFromResponse(response: Response, result?: unknown) { + // interceptors are invoked before result is written to response, + // the status code for 200 responses without a result should be 204 + const noContent = response.statusCode === 200 && result === undefined; + return noContent ? 204 : response.statusCode; +} + +function getStatusCodeFromError(err: HttpErrors.HttpError) { + // interceptors are invoked before error is written to response, + // it is required to retrieve the status code from the error + const notFound = err.code === 'ENTITY_NOT_FOUND'; + return err.statusCode ?? err.status ?? (notFound ? 404 : 500); +} + +function isRouteSource(source?: InvocationSource): source is RouteSource { + return source?.type === 'route'; +} diff --git a/extensions/metrics/src/metrics.component.ts b/extensions/metrics/src/metrics.component.ts index 2c04aa04cc37..c47b1ed63edf 100644 --- a/extensions/metrics/src/metrics.component.ts +++ b/extensions/metrics/src/metrics.component.ts @@ -13,6 +13,7 @@ import { inject, injectable, } from '@loopback/core'; +import {register} from 'prom-client'; import {metricsControllerFactory} from './controllers'; import {MetricsInterceptor} from './interceptors'; import {MetricsBindings} from './keys'; @@ -44,5 +45,8 @@ export class MetricsComponent implements Component { if (options.endpoint && !options.endpoint.disabled) { this.application.controller(metricsControllerFactory(options)); } + if (options.defaultLabels) { + register.setDefaultLabels(options.defaultLabels); + } } } diff --git a/extensions/metrics/src/observers/metrics.push.observer.ts b/extensions/metrics/src/observers/metrics.push.observer.ts index 6f98fa1d5036..56fdff6a2322 100644 --- a/extensions/metrics/src/observers/metrics.push.observer.ts +++ b/extensions/metrics/src/observers/metrics.push.observer.ts @@ -25,7 +25,15 @@ export class MetricsPushObserver implements LifeCycleObserver { if (!gwConfig) return; this.gateway = new Pushgateway(gwConfig.url); this.interval = setInterval(() => { - this.gateway.pushAdd({jobName: 'loopback'}, () => {}); + const params = { + jobName: gwConfig.jobName ?? 'loopback', + groupings: gwConfig.groupingKey, + }; + if (gwConfig.replaceAll) { + this.gateway.push(params, () => {}); + } else { + this.gateway.pushAdd(params, () => {}); + } }, gwConfig.interval ?? 5000); } diff --git a/extensions/metrics/src/types.ts b/extensions/metrics/src/types.ts index 2417db67ecda..9696070b2f07 100644 --- a/extensions/metrics/src/types.ts +++ b/extensions/metrics/src/types.ts @@ -18,10 +18,19 @@ export interface MetricsOptions { disabled?: boolean; } & DefaultMetricsCollectorConfiguration; + defaultLabels?: { + [labelName: string]: string; + }; + pushGateway?: { disabled?: boolean; url: string; interval?: number; + jobName?: string; + groupingKey?: { + [key: string]: string; + }; + replaceAll?: boolean; }; openApiSpec?: boolean; diff --git a/extensions/pooling/CHANGELOG.md b/extensions/pooling/CHANGELOG.md index df7576ca84ee..a5b4a1fa961f 100644 --- a/extensions/pooling/CHANGELOG.md +++ b/extensions/pooling/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.6](https://github.com/strongloop/loopback-next/compare/@loopback/pooling@0.3.5...@loopback/pooling@0.3.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/pooling + + + + + ## [0.3.5](https://github.com/strongloop/loopback-next/compare/@loopback/pooling@0.3.4...@loopback/pooling@0.3.5) (2020-12-07) **Note:** Version bump only for package @loopback/pooling diff --git a/extensions/pooling/package-lock.json b/extensions/pooling/package-lock.json index b5c91764b3cf..daf2988246e3 100644 --- a/extensions/pooling/package-lock.json +++ b/extensions/pooling/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/pooling", - "version": "0.3.5", + "version": "0.3.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -36,9 +36,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true } } diff --git a/extensions/pooling/package.json b/extensions/pooling/package.json index a68a1f7e51ad..6d620f8579b8 100644 --- a/extensions/pooling/package.json +++ b/extensions/pooling/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/pooling", - "version": "0.3.5", + "version": "0.3.6", "description": "Resource pooling service for LoopBack 4", "keywords": [ "loopback-extension", @@ -9,7 +9,7 @@ "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -36,7 +36,7 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { "@types/generic-pool": "^3.1.9", @@ -44,10 +44,10 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "typescript": "~4.1.2" + "typescript": "~4.1.3" } } diff --git a/extensions/socketio/CHANGELOG.md b/extensions/socketio/CHANGELOG.md index c8fe8434e6d9..c0587b628004 100644 --- a/extensions/socketio/CHANGELOG.md +++ b/extensions/socketio/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.3](https://github.com/strongloop/loopback-next/compare/@loopback/socketio@0.1.2...@loopback/socketio@0.1.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/socketio + + + + + ## [0.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/socketio@0.1.1...@loopback/socketio@0.1.2) (2020-12-07) **Note:** Version bump only for package @loopback/socketio diff --git a/extensions/socketio/package-lock.json b/extensions/socketio/package-lock.json index de78b796c3e4..f628d0bcae58 100644 --- a/extensions/socketio/package-lock.json +++ b/extensions/socketio/package-lock.json @@ -1,33 +1,13 @@ { "name": "@loopback/socketio", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { - "@types/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ==", - "requires": { - "@types/connect": "*", - "@types/node": "*" - } - }, - "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", - "requires": { - "@types/node": "*" - } - }, "@types/cors": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.8.tgz", - "integrity": "sha512-fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==", - "requires": { - "@types/express": "*" - } + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz", + "integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==" }, "@types/debug": { "version": "4.1.5", @@ -44,60 +24,16 @@ "@types/node": "*" } }, - "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", - "requires": { - "@types/body-parser": "*", - "@types/express-serve-static-core": "*", - "@types/qs": "*", - "@types/serve-static": "*" - } - }, - "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", - "requires": { - "@types/node": "*", - "@types/qs": "*", - "@types/range-parser": "*" - } - }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==" - }, - "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" }, "@types/node": { "version": "14.14.10", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - }, - "@types/qs": { - "version": "6.9.5", - "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz", - "integrity": "sha512-/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ==" - }, - "@types/range-parser": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz", - "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" - }, - "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", - "requires": { - "@types/mime": "*", - "@types/node": "*" - } + "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==", + "dev": true }, "@types/socket.io": { "version": "2.1.12", @@ -111,9 +47,9 @@ } }, "@types/socket.io-client": { - "version": "1.4.34", - "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.34.tgz", - "integrity": "sha512-Lzia5OTQFJZJ5R4HsEEldywiiqT9+W2rDbyHJiiTGqOcju89sCsQ8aUXDljY6Ls33wKZZGC0bfMhr/VpOyjtXg==", + "version": "1.4.35", + "resolved": "https://registry.npmjs.org/@types/socket.io-client/-/socket.io-client-1.4.35.tgz", + "integrity": "sha512-MI8YmxFS+jMkIziycT5ickBWK1sZwDwy16mgH/j99Mcom6zRG/NimNGQ3vJV0uX5G6g/hEw0FG3w3b3sT5OUGw==", "dev": true }, "@types/socket.io-parser": { diff --git a/extensions/socketio/package.json b/extensions/socketio/package.json index e6b20e3f4f6a..7f814a41afd5 100644 --- a/extensions/socketio/package.json +++ b/extensions/socketio/package.json @@ -1,9 +1,9 @@ { "name": "@loopback/socketio", - "version": "0.1.2", + "version": "0.1.3", "description": "LoopBack's WebSocket server based on socket.io", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "types": "dist/index.d.ts", "main": "dist/index.js", @@ -37,28 +37,28 @@ "access": "public" }, "peerDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1" + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/http-server": "^2.3.3", - "@types/cors": "^2.8.8", - "@types/lodash": "^4.14.165", + "@loopback/http-server": "^2.3.4", + "@types/cors": "^2.8.9", + "@types/lodash": "^4.14.168", "cors": "^2.8.5", "debug": "^4.3.1", "lodash": "^4.17.20", "socket.io": "^2.3.0" }, "devDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/socket.io": "^2.1.12", - "@types/socket.io-client": "^1.4.34", - "p-event": "^4.1.0", + "@types/socket.io-client": "^1.4.35", + "p-event": "^4.2.0", "socket.io-client": "^2.3.1" }, "repository": { diff --git a/extensions/socketio/src/booters/socketio.booter.ts b/extensions/socketio/src/booters/socketio.booter.ts index b670f9e18082..e21f63c6da08 100644 --- a/extensions/socketio/src/booters/socketio.booter.ts +++ b/extensions/socketio/src/booters/socketio.booter.ts @@ -16,13 +16,18 @@ import {SocketIoBindings} from '../keys'; import {SocketIoServer} from '../socketio.server'; /** - * A class that extends BaseArtifactBooter to boot the 'SocketIoController' artifact type. - * Discovered controllers are bound using `app.controller()`. + * A class that extends {@link @loopback/boot#BaseArtifactBooter} to boot the + * {@link SocketIoController} artifact type. * - * Supported phases: configure, discover, load + * @remarks + * Discovered controllers are bound using + * {@link @loopback/core#Application.controller}. * - * @param app - Application instance - * @param projectRoot - Root of User Project relative to which all paths are resolved + * Supported phases: `configure`, `discover`, `load` + * + * @param app - {@link @loopback/core#Application} instance + * @param projectRoot - Root of User Project relative to which all paths are + * resolved * @param socketioControllerConfig - Controller Artifact Options Object */ @booter('socketioControllers') diff --git a/extensions/socketio/src/decorators/socketio.decorator.ts b/extensions/socketio/src/decorators/socketio.decorator.ts index 8a09e4266617..d6159df32d93 100644 --- a/extensions/socketio/src/decorators/socketio.decorator.ts +++ b/extensions/socketio/src/decorators/socketio.decorator.ts @@ -37,8 +37,9 @@ export const SOCKET_IO_CONNECT_METADATA = MetadataAccessor.create< >('socketio:connect'); /** - * Decorate a socketio controller class to specify the namespace - * For example, + * Decorate a socketio controller class to specify the namespace. + * + * @example * ```ts * @socketio({namespace: '/chats'}) * export class SocketIoController {} diff --git a/extensions/typeorm/CHANGELOG.md b/extensions/typeorm/CHANGELOG.md index d28fefcccd66..fbeda6c3b0c5 100644 --- a/extensions/typeorm/CHANGELOG.md +++ b/extensions/typeorm/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.2.6](https://github.com/strongloop/loopback-next/compare/@loopback/typeorm@0.2.5...@loopback/typeorm@0.2.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/typeorm + + + + + ## [0.2.5](https://github.com/strongloop/loopback-next/compare/@loopback/typeorm@0.2.4...@loopback/typeorm@0.2.5) (2020-12-07) **Note:** Version bump only for package @loopback/typeorm diff --git a/extensions/typeorm/package-lock.json b/extensions/typeorm/package-lock.json index 6bce8f07d452..4c15590895aa 100644 --- a/extensions/typeorm/package-lock.json +++ b/extensions/typeorm/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/typeorm", - "version": "0.2.5", + "version": "0.2.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha512-/5O7Fq6Vnv8L6ucmPjaWbVG1XkP4FO+w5glqfkIsq3Xw4oyNAdJddbnYodNDAfjVUvo/rrSCTom4kAND7T1o5Q==" }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/node": { diff --git a/extensions/typeorm/package.json b/extensions/typeorm/package.json index 50bb427c39fb..c876df24cc32 100644 --- a/extensions/typeorm/package.json +++ b/extensions/typeorm/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/typeorm", - "version": "0.2.5", + "version": "0.2.6", "description": "Adds support for TypeORM in LoopBack", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -22,23 +22,23 @@ "access": "public" }, "peerDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "tslib": "^2.0.3", "typeorm": "^0.2.29" }, "devDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", - "@types/json-schema": "^7.0.6", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", + "@types/json-schema": "^7.0.7", "@types/node": "^10.17.35", "sqlite3": "^5.0.0" }, diff --git a/fixtures/mock-oauth2-provider/CHANGELOG.md b/fixtures/mock-oauth2-provider/CHANGELOG.md index 5c65753bded5..d151e6648ada 100644 --- a/fixtures/mock-oauth2-provider/CHANGELOG.md +++ b/fixtures/mock-oauth2-provider/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.14](https://github.com/strongloop/loopback-next/compare/@loopback/mock-oauth2-provider@0.1.13...@loopback/mock-oauth2-provider@0.1.14) (2021-01-21) + +**Note:** Version bump only for package @loopback/mock-oauth2-provider + + + + + ## [0.1.13](https://github.com/strongloop/loopback-next/compare/@loopback/mock-oauth2-provider@0.1.12...@loopback/mock-oauth2-provider@0.1.13) (2020-12-07) **Note:** Version bump only for package @loopback/mock-oauth2-provider diff --git a/fixtures/mock-oauth2-provider/package-lock.json b/fixtures/mock-oauth2-provider/package-lock.json index 46f36230ddc9..32a4768f7169 100644 --- a/fixtures/mock-oauth2-provider/package-lock.json +++ b/fixtures/mock-oauth2-provider/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/mock-oauth2-provider", - "version": "0.1.13", + "version": "0.1.14", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -22,20 +22,20 @@ } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", @@ -51,19 +51,19 @@ } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==" + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { - "version": "10.17.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" + "version": "10.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz", + "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==" }, "@types/qs": { "version": "6.9.5", @@ -76,11 +76,11 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, diff --git a/fixtures/mock-oauth2-provider/package.json b/fixtures/mock-oauth2-provider/package.json index 8253ef439c83..7b68049acf83 100644 --- a/fixtures/mock-oauth2-provider/package.json +++ b/fixtures/mock-oauth2-provider/package.json @@ -1,9 +1,9 @@ { "name": "@loopback/mock-oauth2-provider", - "version": "0.1.13", + "version": "0.1.14", "description": "An internal application to mock the OAuth2 authorization flow login with a social app like facebook, google etc", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "main": "dist/index.js", "types": "dist/index.d.ts", @@ -36,10 +36,10 @@ }, "dependencies": { "@types/body-parser": "^1.19.0", - "@types/express": "^4.17.9", + "@types/express": "^4.17.11", "@types/jsonwebtoken": "^8.5.0", - "@types/lodash": "^4.14.165", - "@types/node": "^10.17.48", + "@types/lodash": "^4.14.168", + "@types/node": "^10.17.51", "axios": "^0.21.0", "body-parser": "^1.19.0", "express": "^4.17.1", @@ -49,8 +49,8 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10" + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11" } } diff --git a/fixtures/tsdocs-monorepo/CHANGELOG.md b/fixtures/tsdocs-monorepo/CHANGELOG.md index 290ed9dce536..2a7e874b142c 100644 --- a/fixtures/tsdocs-monorepo/CHANGELOG.md +++ b/fixtures/tsdocs-monorepo/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.0.14](https://github.com/strongloop/loopback-next/compare/@loopback/tsdocs-monorepo@0.0.13...@loopback/tsdocs-monorepo@0.0.14) (2021-01-21) + +**Note:** Version bump only for package @loopback/tsdocs-monorepo + + + + + ## [0.0.13](https://github.com/strongloop/loopback-next/compare/@loopback/tsdocs-monorepo@0.0.12...@loopback/tsdocs-monorepo@0.0.13) (2020-12-07) **Note:** Version bump only for package @loopback/tsdocs-monorepo diff --git a/fixtures/tsdocs-monorepo/package.json b/fixtures/tsdocs-monorepo/package.json index a89d1fea639b..777816149653 100644 --- a/fixtures/tsdocs-monorepo/package.json +++ b/fixtures/tsdocs-monorepo/package.json @@ -1,8 +1,8 @@ { "name": "@loopback/tsdocs-monorepo", - "version": "0.0.13", + "version": "0.0.14", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "private": true, "description": "A monorepo for tsdocs testing", @@ -16,7 +16,7 @@ "author": "IBM Corp.", "license": "MIT", "devDependencies": { - "@loopback/build": "^6.2.8" + "@loopback/build": "^6.2.9" }, "repository": { "type": "git", diff --git a/package-lock.json b/package-lock.json index 6b25c8d0980f..0d72e422bd70 100644 --- a/package-lock.json +++ b/package-lock.json @@ -306,9 +306,9 @@ "dev": true }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "dev": true, "requires": { "ajv": "^6.12.4", @@ -318,7 +318,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" }, @@ -2870,28 +2870,28 @@ } }, "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", "dev": true, "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==", + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==", "dev": true }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", "dev": true, "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" } }, @@ -3108,9 +3108,9 @@ } }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/minimatch": { @@ -3126,9 +3126,9 @@ "dev": true }, "@types/mocha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.4.tgz", - "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==", "dev": true }, "@types/node": { @@ -3150,70 +3150,71 @@ "dev": true }, "@typescript-eslint/eslint-plugin": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.0.tgz", - "integrity": "sha512-WrVzGMzzCrgrpnQMQm4Tnf+dk+wdl/YbgIgd5hKGa2P+lnJ2MON+nQnbwgbxtN9QDLi8HO+JAq0/krMnjQK6Cw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", + "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", "dev": true, "requires": { - "@typescript-eslint/experimental-utils": "4.9.0", - "@typescript-eslint/scope-manager": "4.9.0", + "@typescript-eslint/experimental-utils": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.0.tgz", - "integrity": "sha512-0p8GnDWB3R2oGhmRXlEnCvYOtaBCijtA5uBfH5GxQKsukdSQyI4opC4NGTUb88CagsoNQ4rb/hId2JuMbzWKFQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", + "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", "dev": true, "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.9.0", - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/typescript-estree": "4.9.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.9.0.tgz", - "integrity": "sha512-QRSDAV8tGZoQye/ogp28ypb8qpsZPV6FOLD+tbN4ohKUWHD2n/u0Q2tIBnCsGwQCiD94RdtLkcqpdK4vKcLCCw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", + "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", "dev": true, "requires": { - "@typescript-eslint/scope-manager": "4.9.0", - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/typescript-estree": "4.9.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.9.0.tgz", - "integrity": "sha512-q/81jtmcDtMRE+nfFt5pWqO0R41k46gpVLnuefqVOXl4QV1GdQoBWfk5REcipoJNQH9+F5l+dwa9Li5fbALjzg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", + "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", "dev": true, "requires": { - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/visitor-keys": "4.9.0" + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0" } }, "@typescript-eslint/types": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.9.0.tgz", - "integrity": "sha512-luzLKmowfiM/IoJL/rus1K9iZpSJK6GlOS/1ezKplb7MkORt2dDcfi8g9B0bsF6JoRGhqn0D3Va55b+vredFHA==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", + "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==", "dev": true }, "@typescript-eslint/typescript-estree": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.0.tgz", - "integrity": "sha512-rmDR++PGrIyQzAtt3pPcmKWLr7MA+u/Cmq9b/rON3//t5WofNR4m/Ybft2vOLj0WtUzjn018ekHjTsnIyBsQug==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", + "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", "dev": true, "requires": { - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/visitor-keys": "4.9.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -3223,12 +3224,12 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.0.tgz", - "integrity": "sha512-sV45zfdRqQo1A97pOSx3fsjR+3blmwtdCt8LDrXgCX36v4Vmz4KHrhpV6Fo2cRdXmyumxx11AHw0pNJqCNpDyg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", + "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", "dev": true, "requires": { - "@typescript-eslint/types": "4.9.0", + "@typescript-eslint/types": "4.14.0", "eslint-visitor-keys": "^2.0.0" } }, @@ -3457,9 +3458,9 @@ "dev": true }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", "dev": true }, "asynckit": { @@ -5348,13 +5349,13 @@ "dev": true }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "dev": true, "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -5378,7 +5379,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -5387,7 +5388,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" }, @@ -5407,9 +5408,9 @@ } }, "eslint-config-prettier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", - "integrity": "sha512-8Y8lGLVPPZdaNA7JXqnvETVC7IiVRgAP6afQu9gOQRn90YY3otMNh+x7Vr2vMePQntF+5erdSUBqSzCmU/AxaQ==", + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==", "dev": true }, "eslint-plugin-eslint-plugin": { @@ -5429,9 +5430,9 @@ } }, "eslint-plugin-prettier": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.2.0.tgz", - "integrity": "sha512-kOUSJnFjAUFKwVxuzy6sA5yyMx6+o9ino4gCdShzBNx4eyFRudWRYKCFolKjoM40PEiuU6Cn7wBLfq3WsGg7qg==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-3.3.1.tgz", + "integrity": "sha512-Rq3jkcFY8RYeQLgk2cCwuc0P7SEFwDravPhsJZOQ5N4YI4DSg50NyqJ/9gdZHzQlHf8MvafSesbNJCcP/FF6pQ==", "dev": true, "requires": { "prettier-linter-helpers": "^1.0.0" @@ -5760,9 +5761,9 @@ "dev": true }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "dev": true, "requires": { "@nodelib/fs.stat": "^2.0.2", @@ -5786,9 +5787,9 @@ "dev": true }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", "dev": true, "requires": { "reusify": "^1.0.4" @@ -5866,12 +5867,12 @@ } }, "find-versions": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-3.2.0.tgz", - "integrity": "sha512-P8WRou2S+oe222TOCHitLy8zj+SIsVJh52VP4lvXkaFVnOFFdoWv1H1Jjvel1aI6NCFOAaeAVm8qrI0odiLcww==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/find-versions/-/find-versions-4.0.0.tgz", + "integrity": "sha512-wgpWy002tA+wgmO27buH/9KzyEOQnKsG/R0yrcjPT9BOFm0zRBVQbZ95nRGXWMywS8YR5knRbpohio0bcJABxQ==", "dev": true, "requires": { - "semver-regex": "^2.0.0" + "semver-regex": "^3.1.2" } }, "findup-sync": { @@ -6002,9 +6003,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==", "dev": true }, "flush-write-stream": { @@ -6066,15 +6067,15 @@ } }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "dev": true, "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "fs-minipass": { @@ -6842,9 +6843,9 @@ } }, "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", "dev": true, "requires": { "array-union": "^2.1.0", @@ -7082,18 +7083,18 @@ } }, "husky": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.5.tgz", - "integrity": "sha512-E5S/1HMoDDaqsH8kDF5zeKEQbYqe3wL9zJDyqyYqc8I4vHBtAoxkDBGXox0lZ9RI+k5GyB728vZdmnM4bYap+g==", + "version": "4.3.8", + "resolved": "https://registry.npmjs.org/husky/-/husky-4.3.8.tgz", + "integrity": "sha512-LCqqsB0PzJQ/AlCgfrfzRe3e3+NvmefAdKQhRYpxS4u6clblBoDdzzvHi8fmxKRzvMxPY/1WZWzomPZww0Anow==", "dev": true, "requires": { "chalk": "^4.0.0", "ci-info": "^2.0.0", "compare-versions": "^3.6.0", "cosmiconfig": "^7.0.0", - "find-versions": "^3.2.0", + "find-versions": "^4.0.0", "opencollective-postinstall": "^2.0.2", - "pkg-dir": "^4.2.0", + "pkg-dir": "^5.0.0", "please-upgrade-node": "^3.2.0", "slash": "^3.0.0", "which-pm-runs": "^1.0.0" @@ -7754,14 +7755,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - } } }, "jsonparse": { @@ -9299,12 +9292,51 @@ } }, "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-5.0.0.tgz", + "integrity": "sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA==", "dev": true, "requires": { - "find-up": "^4.0.0" + "find-up": "^5.0.0" + }, + "dependencies": { + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + } } }, "please-upgrade-node": { @@ -9729,6 +9761,12 @@ "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", "dev": true }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -9911,9 +9949,9 @@ "dev": true }, "semver-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-2.0.0.tgz", - "integrity": "sha512-mUdIBBvdn0PLOeP3TEkMH7HHeUP3GjsXCwKarjv/kGmUFOYg1VqEemKhoQpWMu6X2I8kHeuVdGibLGkVK+/5Qw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/semver-regex/-/semver-regex-3.1.2.tgz", + "integrity": "sha512-bXWyL6EAKOJa81XG1OZ/Yyuq+oT0b2YLlxx7c+mrdYPaPbnj6WgVULXhinMIeZGufuUBu/eVRqXEhiv4imfwxA==", "dev": true }, "set-blocking": { @@ -9988,46 +10026,14 @@ "dev": true }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - } + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" } }, "slide": { @@ -10517,54 +10523,34 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", "dev": true, "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { + "ajv": { "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" } }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true } } }, @@ -10835,9 +10821,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "uglify-js": { @@ -10899,9 +10885,9 @@ } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true }, "unset-value": { diff --git a/package.json b/package.json index fb76f5963006..5faf1252ca82 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "license": "MIT", "copyright.owner": "IBM Corp.", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "repository": { "type": "git", @@ -63,26 +63,26 @@ "@commitlint/cli": "^11.0.0", "@commitlint/config-conventional": "^11.0.0", "@commitlint/travis-cli": "^11.0.0", - "@types/mocha": "^8.0.4", - "@typescript-eslint/eslint-plugin": "^4.9.0", - "@typescript-eslint/parser": "^4.9.0", + "@types/mocha": "^8.2.0", + "@typescript-eslint/eslint-plugin": "^4.14.0", + "@typescript-eslint/parser": "^4.14.0", "coveralls": "^3.1.0", "cross-env": "^7.0.3", "cz-conventional-changelog": "^3.3.0", - "eslint": "^7.15.0", - "eslint-config-prettier": "^7.0.0", + "eslint": "^7.18.0", + "eslint-config-prettier": "^7.2.0", "eslint-plugin-eslint-plugin": "^2.3.0", "eslint-plugin-mocha": "^8.0.0", - "eslint-plugin-prettier": "^3.2.0", - "fs-extra": "^9.0.1", - "husky": "^4.3.5", + "eslint-plugin-prettier": "^3.3.1", + "fs-extra": "^9.1.0", + "husky": "^4.3.8", "if-env": "^1.0.4", "lerna": "^3.22.1", "lint-staged": "^10.5.3", "markdown-table": "^2.0.0", "open-cli": "^6.0.1", "prettier": "^2.2.1", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "husky": { "hooks": { diff --git a/packages/authentication/CHANGELOG.md b/packages/authentication/CHANGELOG.md index 8381bcc46893..b23fa89f8cda 100644 --- a/packages/authentication/CHANGELOG.md +++ b/packages/authentication/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [7.0.6](https://github.com/strongloop/loopback-next/compare/@loopback/authentication@7.0.5...@loopback/authentication@7.0.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/authentication + + + + + ## [7.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/authentication@7.0.4...@loopback/authentication@7.0.5) (2020-12-07) **Note:** Version bump only for package @loopback/authentication diff --git a/packages/authentication/package-lock.json b/packages/authentication/package-lock.json index b28ecb6b4836..f2ccb0b7a93f 100644 --- a/packages/authentication/package-lock.json +++ b/packages/authentication/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/authentication", - "version": "7.0.5", + "version": "7.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -11,73 +11,51 @@ "requires": { "@types/connect": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==" + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==" }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==", - "dev": true + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/qs": { "version": "6.9.5", @@ -90,19 +68,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "buffer-equal-constant-time": { diff --git a/packages/authentication/package.json b/packages/authentication/package.json index 79c9adbd5620..2c15a7c68203 100644 --- a/packages/authentication/package.json +++ b/packages/authentication/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/authentication", - "version": "7.0.5", + "version": "7.0.6", "description": "A LoopBack component for authentication support.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,23 +24,23 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "@loopback/security": "^0.3.5", - "@types/express": "^4.17.9", - "@types/lodash": "^4.14.165", + "@loopback/security": "^0.3.6", + "@types/express": "^4.17.11", + "@types/lodash": "^4.14.168", "lodash": "^4.17.20", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", "jsonwebtoken": "^8.5.1" }, diff --git a/packages/authorization/CHANGELOG.md b/packages/authorization/CHANGELOG.md index 383eb5ec1c37..ae202e1a4214 100644 --- a/packages/authorization/CHANGELOG.md +++ b/packages/authorization/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.7.6](https://github.com/strongloop/loopback-next/compare/@loopback/authorization@0.7.5...@loopback/authorization@0.7.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/authorization + + + + + ## [0.7.5](https://github.com/strongloop/loopback-next/compare/@loopback/authorization@0.7.4...@loopback/authorization@0.7.5) (2020-12-07) **Note:** Version bump only for package @loopback/authorization diff --git a/packages/authorization/package-lock.json b/packages/authorization/package-lock.json index 804241e3b336..5bf6fcc0291d 100644 --- a/packages/authorization/package-lock.json +++ b/packages/authorization/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/authorization", - "version": "0.7.5", + "version": "0.7.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -32,9 +32,9 @@ } }, "casbin": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.2.2.tgz", - "integrity": "sha512-NY+y3eGf+t/QYjRibaQnOAPFVZEL7VeR7fKirgxbGvC1hJPOF5vxBUKAr7Z/solD1V2F1GEvlOiBUbDJb3dgOA==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/casbin/-/casbin-5.2.3.tgz", + "integrity": "sha512-bPtx61LbQflFyrTME/DpshBSfHhc/JBiykL4P6Z79m7KjlF6LVHkVsJhJQw7D55OXnzvPp2S2JixibMki2Dqxg==", "dev": true, "requires": { "await-lock": "^2.0.1", diff --git a/packages/authorization/package.json b/packages/authorization/package.json index 1424851365c7..3aded27338ca 100644 --- a/packages/authorization/package.json +++ b/packages/authorization/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/authorization", - "version": "0.7.5", + "version": "0.7.6", "description": "A LoopBack component for authorization support.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,20 +24,20 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/security": "^0.3.5", + "@loopback/security": "^0.3.6", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "10.17.35", - "casbin": "^5.2.2" + "casbin": "^5.2.3" }, "keywords": [ "LoopBack", diff --git a/packages/boot/CHANGELOG.md b/packages/boot/CHANGELOG.md index 879ae8f1909a..966f792c76dc 100644 --- a/packages/boot/CHANGELOG.md +++ b/packages/boot/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.2.0](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.1.2...@loopback/boot@3.2.0) (2021-01-21) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + ## [3.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/boot@3.1.1...@loopback/boot@3.1.2) (2020-12-07) **Note:** Version bump only for package @loopback/boot diff --git a/packages/boot/package-lock.json b/packages/boot/package-lock.json index 5fcb533839a5..9b90655ffa03 100644 --- a/packages/boot/package-lock.json +++ b/packages/boot/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/boot", - "version": "3.1.2", + "version": "3.2.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/boot/package.json b/packages/boot/package.json index 29ddea60b50f..3f44dd76f8d5 100644 --- a/packages/boot/package.json +++ b/packages/boot/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/boot", - "version": "3.1.2", + "version": "3.2.0", "description": "A collection of Booters for LoopBack 4 Applications", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,12 +24,12 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/model-api-builder": "^2.1.19", - "@loopback/repository": "^3.3.0", - "@loopback/service-proxy": "^3.0.5", + "@loopback/model-api-builder": "^2.1.20", + "@loopback/repository": "^3.4.0", + "@loopback/service-proxy": "^3.0.6", "@types/debug": "^4.1.5", "@types/glob": "^7.1.3", "debug": "^4.3.1", @@ -37,12 +37,12 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/rest-crud": "^0.8.19", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/rest-crud": "^0.8.20", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "files": [ diff --git a/packages/boot/src/__tests__/unit/booters/booter-utils.unit.ts b/packages/boot/src/__tests__/unit/booters/booter-utils.unit.ts index dc550feb44bc..44d5ef53886d 100644 --- a/packages/boot/src/__tests__/unit/booters/booter-utils.unit.ts +++ b/packages/boot/src/__tests__/unit/booters/booter-utils.unit.ts @@ -53,7 +53,6 @@ describe('booter-utils unit tests', () => { describe('isClass()', () => { it('returns true given a class', () => { - // eslint-disable-next-line @typescript-eslint/no-unused-vars expect(isClass(class Thing {})).to.be.True(); }); }); diff --git a/packages/booter-lb3app/CHANGELOG.md b/packages/booter-lb3app/CHANGELOG.md index ab35c71ecb78..aa7d81c13cbc 100644 --- a/packages/booter-lb3app/CHANGELOG.md +++ b/packages/booter-lb3app/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.2.16](https://github.com/strongloop/loopback-next/compare/@loopback/booter-lb3app@2.2.15...@loopback/booter-lb3app@2.2.16) (2021-01-21) + +**Note:** Version bump only for package @loopback/booter-lb3app + + + + + ## [2.2.15](https://github.com/strongloop/loopback-next/compare/@loopback/booter-lb3app@2.2.14...@loopback/booter-lb3app@2.2.15) (2020-12-07) **Note:** Version bump only for package @loopback/booter-lb3app diff --git a/packages/booter-lb3app/package-lock.json b/packages/booter-lb3app/package-lock.json index 0b6c21469678..11573fb67be0 100644 --- a/packages/booter-lb3app/package-lock.json +++ b/packages/booter-lb3app/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/booter-lb3app", - "version": "2.2.15", + "version": "2.2.16", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -16,28 +16,14 @@ "requires": { "@types/connect": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/debug": { @@ -47,43 +33,36 @@ "dev": true }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { "version": "10.17.48", @@ -101,19 +80,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "JSONStream": { @@ -845,9 +817,9 @@ "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" }, "helmet": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.2.0.tgz", - "integrity": "sha512-aoiSxXMd0ks1ojYpSCFoCRzgv4rY/uB9jKStaw8PkXwsdLYa/Gq+Nc5l0soH0cwBIsLAlujPnx4HLQs+LaXCrQ==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/helmet/-/helmet-4.4.1.tgz", + "integrity": "sha512-G8tp0wUMI7i8wkMk2xLcEvESg5PiCitFMYgGRc/PwULB0RVhTP5GFdxOwvJwp9XVha8CuS8mnhmE8I/8dx/pbw==", "dev": true }, "http-errors": { diff --git a/packages/booter-lb3app/package.json b/packages/booter-lb3app/package.json index bf2181e7e78a..b799b1458cf9 100644 --- a/packages/booter-lb3app/package.json +++ b/packages/booter-lb3app/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/booter-lb3app", - "version": "2.2.15", + "version": "2.2.16", "description": "A booter component for LoopBack 3 applications to expose their REST API via LoopBack 4", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,12 +21,12 @@ "access": "public" }, "peerDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/boot": "^3.2.0", + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "@types/express": "^4.17.9", + "@types/express": "^4.17.11", "debug": "^4.3.1", "loopback": "^3.28.0", "loopback-swagger": "^5.9.0", @@ -34,19 +34,19 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", - "@types/lodash": "^4.14.165", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", "compression": "^1.7.4", "cors": "^2.8.5", - "helmet": "^4.2.0", + "helmet": "^4.4.1", "loopback-boot": "^3.3.1" }, "keywords": [ diff --git a/packages/build/CHANGELOG.md b/packages/build/CHANGELOG.md index f1539a883c29..6beac3f7ebed 100644 --- a/packages/build/CHANGELOG.md +++ b/packages/build/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [6.2.9](https://github.com/strongloop/loopback-next/compare/@loopback/build@6.2.8...@loopback/build@6.2.9) (2021-01-21) + +**Note:** Version bump only for package @loopback/build + + + + + ## [6.2.8](https://github.com/strongloop/loopback-next/compare/@loopback/build@6.2.7...@loopback/build@6.2.8) (2020-12-07) **Note:** Version bump only for package @loopback/build diff --git a/packages/build/package-lock.json b/packages/build/package-lock.json index 9cf1d044c427..fb014470f6b4 100644 --- a/packages/build/package-lock.json +++ b/packages/build/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/build", - "version": "6.2.8", + "version": "6.2.9", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -223,9 +223,9 @@ } }, "@eslint/eslintrc": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.2.2.tgz", - "integrity": "sha512-EfB5OHNYp1F4px/LI/FEnGylop7nOqkQ1LRzCM0KccA2U8tvV8w01KBv37LbO7nW4H+YhKyo2LcJhRwjjV17QQ==", + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.3.0.tgz", + "integrity": "sha512-1JTKgrOKAHVivSvOYw+sJOunkBjUOvjqWk1DPja7ZFhIS2mX/4EgTT8M7eTK9jrKhL/FvXXEbQwIs3pg1xp3dg==", "requires": { "ajv": "^6.12.4", "debug": "^4.1.1", @@ -234,7 +234,7 @@ "ignore": "^4.0.6", "import-fresh": "^3.2.1", "js-yaml": "^3.13.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "strip-json-comments": "^3.1.1" } @@ -297,14 +297,14 @@ "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==" }, "@types/mocha": { - "version": "8.0.4", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.0.4.tgz", - "integrity": "sha512-M4BwiTJjHmLq6kjON7ZoI2JMlBvpY3BYSdiP6s/qCT3jb1s9/DeJF0JELpAxiVSIxXDzfNKe+r7yedMIoLbknQ==" + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-8.2.0.tgz", + "integrity": "sha512-/Sge3BymXo4lKc31C8OINJgXLaw+7vL1/L1pGiBNpGrBiT8FQiaFpSYV0uhTaG4y78vcMBTMFsWaHDvuD+xGzQ==" }, "@types/node": { - "version": "10.17.48", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" + "version": "10.17.51", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.51.tgz", + "integrity": "sha512-KANw+MkL626tq90l++hGelbl67irOJzGhUJk6a1Bt8QHOeh9tztJx+L0AqttraWKinmZn7Qi5lJZJzx45Gq0dg==" }, "@ungap/promise-all-settled": { "version": "1.1.2", @@ -390,9 +390,9 @@ } }, "astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==" }, "at-least-node": { "version": "1.0.0", @@ -658,12 +658,12 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "eslint": { - "version": "7.15.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.15.0.tgz", - "integrity": "sha512-Vr64xFDT8w30wFll643e7cGrIkPEU50yIiI36OdSIDoSGguIeaLzBo0vpGvzo9RECUqq7htURfwEtKqwytkqzA==", + "version": "7.18.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.18.0.tgz", + "integrity": "sha512-fbgTiE8BfUJZuBeq2Yi7J3RB3WGUQ9PNuNbmgi6jt9Iv8qrkxfy19Ds3OpL1Pm7zg3BtTVhvcUZbIRQ0wmSjAQ==", "requires": { "@babel/code-frame": "^7.0.0", - "@eslint/eslintrc": "^0.2.2", + "@eslint/eslintrc": "^0.3.0", "ajv": "^6.10.0", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -687,7 +687,7 @@ "js-yaml": "^3.13.1", "json-stable-stringify-without-jsonify": "^1.0.1", "levn": "^0.4.1", - "lodash": "^4.17.19", + "lodash": "^4.17.20", "minimatch": "^3.0.4", "natural-compare": "^1.4.0", "optionator": "^0.9.1", @@ -696,7 +696,7 @@ "semver": "^7.2.1", "strip-ansi": "^6.0.0", "strip-json-comments": "^3.1.0", - "table": "^5.2.3", + "table": "^6.0.4", "text-table": "^0.2.0", "v8-compile-cache": "^2.0.3" } @@ -857,9 +857,9 @@ } }, "flatted": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.0.tgz", - "integrity": "sha512-tW+UkmtNg/jv9CSofAKvgVcO7c2URjhTdW1ZTkcAritblu8tajiYy7YisnIflEwtKssCtOxpnBRoCB7iap0/TA==" + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.1.1.tgz", + "integrity": "sha512-zAoAQiudy+r5SvnSw3KJy5os/oRJYHzrzja/tBDqrZtNhUw8bt6y8OBzMWcjWr+8liV8Eb6yOhw8WZ7VFZ5ZzA==" }, "foreground-child": { "version": "2.0.0", @@ -876,14 +876,14 @@ "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==" }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "fs.realpath": { @@ -999,9 +999,9 @@ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==" }, "import-fresh": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.2.tgz", - "integrity": "sha512-cTPNrlvJT6twpYy+YmKUKrTSjWFs3bjYjAhCwm+z4EOCubZxAuO+hHpRN64TqjEaYSHs7tJAE0w1CKMGmsG/lw==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "requires": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" @@ -1235,13 +1235,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "levn": { @@ -1764,6 +1757,11 @@ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -1836,13 +1834,41 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "requires": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + } } }, "source-map": { @@ -1936,14 +1962,52 @@ } }, "table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "requires": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" + "version": "6.0.7", + "resolved": "https://registry.npmjs.org/table/-/table-6.0.7.tgz", + "integrity": "sha512-rxZevLGTUzWna/qBLObOe16kB2RTnnbhciwgPbMMlazz1yZGVEgnZK762xyVdVznhqxrfCeBMmMkgOOaPwjH7g==", + "requires": { + "ajv": "^7.0.2", + "lodash": "^4.17.20", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.0" + }, + "dependencies": { + "ajv": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-7.0.3.tgz", + "integrity": "sha512-R50QRlXSxqXcQP5SvKUrw8VZeypvo12i2IX0EeR5PiZ7bEKeHWgzgo264LDadUsCU42lTJVhFikTqJwNeH34gQ==", + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + } } }, "test-exclude": { @@ -1996,19 +2060,19 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==" }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "uri-js": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz", - "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==", + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "requires": { "punycode": "^2.1.0" } diff --git a/packages/build/package.json b/packages/build/package.json index e864cc78e22a..2f286588ef20 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -6,9 +6,9 @@ "url": "https://github.com/strongloop/loopback-next.git", "directory": "packages/build" }, - "version": "6.2.8", + "version": "6.2.9", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "main": "index.js", "author": "IBM Corp.", @@ -18,13 +18,13 @@ "access": "public" }, "dependencies": { - "@loopback/eslint-config": "^10.0.4", - "@types/mocha": "^8.0.4", - "@types/node": "^10.17.48", + "@loopback/eslint-config": "^10.0.5", + "@types/mocha": "^8.2.0", + "@types/node": "^10.17.51", "cross-spawn": "^7.0.3", "debug": "^4.3.1", - "eslint": "^7.15.0", - "fs-extra": "^9.0.1", + "eslint": "^7.18.0", + "fs-extra": "^9.1.0", "glob": "^7.1.6", "lodash": "^4.17.20", "mocha": "^8.2.1", @@ -32,7 +32,7 @@ "prettier": "^2.2.1", "rimraf": "^3.0.2", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "bin": { "lb-tsc": "./bin/compile-package.js", diff --git a/packages/cli/.yo-rc.json b/packages/cli/.yo-rc.json index 5412805dd307..08beb837f1f7 100644 --- a/packages/cli/.yo-rc.json +++ b/packages/cli/.yo-rc.json @@ -1343,6 +1343,34 @@ "name": "throughModel", "hide": false }, + "sourceModelPrimaryKey": { + "type": "String", + "required": false, + "description": "Primary key on source model", + "name": "sourceModelPrimaryKey", + "hide": false + }, + "sourceModelPrimaryKeyType": { + "type": "String", + "required": false, + "description": "Type of the primary key on source model", + "name": "sourceModelPrimaryKeyType", + "hide": false + }, + "destinationModelPrimaryKey": { + "type": "String", + "required": false, + "description": "Primary key on destination model", + "name": "destinationModelPrimaryKey", + "hide": false + }, + "destinationModelPrimaryKeyType": { + "type": "String", + "required": false, + "description": "Type of the primary key on destination model", + "name": "destinationModelPrimaryKeyType", + "hide": false + }, "sourceKeyOnThrough": { "type": "String", "required": false, diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index 012d6cafec90..149668d3d950 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.18.0](https://github.com/strongloop/loopback-next/compare/@loopback/cli@2.17.2...@loopback/cli@2.18.0) (2021-01-21) + + +### Bug Fixes + +* **cli:** copyright year git integration ([ce8fa66](https://github.com/strongloop/loopback-next/commit/ce8fa663e756d49cc1544752461f4b62b28a72ce)) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + ## [2.17.2](https://github.com/strongloop/loopback-next/compare/@loopback/cli@2.17.1...@loopback/cli@2.17.2) (2020-12-07) diff --git a/packages/cli/generators/app/index.js b/packages/cli/generators/app/index.js index 32abac51ab44..fa5914ece7bb 100644 --- a/packages/cli/generators/app/index.js +++ b/packages/cli/generators/app/index.js @@ -8,7 +8,6 @@ const ProjectGenerator = require('../../lib/project-generator'); const utils = require('../../lib/utils'); const g = require('../../lib/globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class AppGenerator extends ProjectGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/app/templates/src/controllers/ping.controller.ts.ejs b/packages/cli/generators/app/templates/src/controllers/ping.controller.ts.ejs index f8be13b7d943..2ff11ed72d7f 100644 --- a/packages/cli/generators/app/templates/src/controllers/ping.controller.ts.ejs +++ b/packages/cli/generators/app/templates/src/controllers/ping.controller.ts.ejs @@ -1,5 +1,11 @@ -import {Request, RestBindings, get, ResponseObject} from '@loopback/rest'; import {inject} from '@loopback/core'; +import { + Request, + RestBindings, + get, + response, + ResponseObject, +} from '@loopback/rest'; /** * OpenAPI response for ping() @@ -35,11 +41,8 @@ export class PingController { constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {} // Map to `GET /ping` - @get('/ping', { - responses: { - '200': PING_RESPONSE, - }, - }) + @get('/ping') + @response(200, PING_RESPONSE) ping(): object { // Reply with a greeting, the current time, the url, and request headers return { diff --git a/packages/cli/generators/controller/templates/src/controllers/controller-rest-template.ts.ejs b/packages/cli/generators/controller/templates/src/controllers/controller-rest-template.ts.ejs index 43114babc02e..857d4f9dd904 100644 --- a/packages/cli/generators/controller/templates/src/controllers/controller-rest-template.ts.ejs +++ b/packages/cli/generators/controller/templates/src/controllers/controller-rest-template.ts.ejs @@ -15,6 +15,7 @@ import { put, del, requestBody, + response, } from '@loopback/rest'; import {<%= modelName %>} from '../models'; import {<%= repositoryName %>} from '../repositories'; @@ -25,13 +26,10 @@ export class <%= className %>Controller { public <%= repositoryNameCamel %> : <%= repositoryName %>, ) {} - @post('<%= httpPathName %>', { - responses: { - '200': { - description: '<%= modelName %> model instance', - content: {'application/json': {schema: getModelSchemaRef(<%= modelName %>)}}, - }, - }, + @post('<%= httpPathName %>') + @response(200, { + description: '<%= modelName %> model instance', + content: {'application/json': {schema: getModelSchemaRef(<%= modelName %>)}}, }) async create( @requestBody({ @@ -49,13 +47,10 @@ export class <%= className %>Controller { return this.<%= repositoryNameCamel %>.create(<%= modelVariableName %>); } - @get('<%= httpPathName %>/count', { - responses: { - '200': { - description: '<%= modelName %> model count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @get('<%= httpPathName %>/count') + @response(200, { + description: '<%= modelName %> model count', + content: {'application/json': {schema: CountSchema}}, }) async count( @param.where(<%= modelName %>) where?: Where<<%= modelName %>>, @@ -63,17 +58,14 @@ export class <%= className %>Controller { return this.<%= repositoryNameCamel %>.count(where); } - @get('<%= httpPathName %>', { - responses: { - '200': { - description: 'Array of <%= modelName %> model instances', - content: { - 'application/json': { - schema: { - type: 'array', - items: getModelSchemaRef(<%= modelName %>, {includeRelations: true}), - }, - }, + @get('<%= httpPathName %>') + @response(200, { + description: 'Array of <%= modelName %> model instances', + content: { + 'application/json': { + schema: { + type: 'array', + items: getModelSchemaRef(<%= modelName %>, {includeRelations: true}), }, }, }, @@ -84,13 +76,10 @@ export class <%= className %>Controller { return this.<%= repositoryNameCamel %>.find(filter); } - @patch('<%= httpPathName %>', { - responses: { - '200': { - description: '<%= modelName %> PATCH success count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @patch('<%= httpPathName %>') + @response(200, { + description: '<%= modelName %> PATCH success count', + content: {'application/json': {schema: CountSchema}}, }) async updateAll( @requestBody({ @@ -106,15 +95,12 @@ export class <%= className %>Controller { return this.<%= repositoryNameCamel %>.updateAll(<%= modelVariableName %>, where); } - @get('<%= httpPathName %>/{id}', { - responses: { - '200': { - description: '<%= modelName %> model instance', - content: { - 'application/json': { - schema: getModelSchemaRef(<%= modelName %>, {includeRelations: true}), - }, - }, + @get('<%= httpPathName %>/{id}') + @response(200, { + description: '<%= modelName %> model instance', + content: { + 'application/json': { + schema: getModelSchemaRef(<%= modelName %>, {includeRelations: true}), }, }, }) @@ -125,12 +111,9 @@ export class <%= className %>Controller { return this.<%= repositoryNameCamel %>.findById(id, filter); } - @patch('<%= httpPathName %>/{id}', { - responses: { - '204': { - description: '<%= modelName %> PATCH success', - }, - }, + @patch('<%= httpPathName %>/{id}') + @response(204, { + description: '<%= modelName %> PATCH success', }) async updateById( @param.path.<%= idType %>('id') id: <%= idType %>, @@ -146,12 +129,9 @@ export class <%= className %>Controller { await this.<%= repositoryNameCamel %>.updateById(id, <%= modelVariableName %>); } - @put('<%= httpPathName %>/{id}', { - responses: { - '204': { - description: '<%= modelName %> PUT success', - }, - }, + @put('<%= httpPathName %>/{id}') + @response(204, { + description: '<%= modelName %> PUT success', }) async replaceById( @param.path.<%= idType %>('id') id: <%= idType %>, @@ -160,12 +140,9 @@ export class <%= className %>Controller { await this.<%= repositoryNameCamel %>.replaceById(id, <%= modelVariableName %>); } - @del('<%= httpPathName %>/{id}', { - responses: { - '204': { - description: '<%= modelName %> DELETE success', - }, - }, + @del('<%= httpPathName %>/{id}') + @response(204, { + description: '<%= modelName %> DELETE success', }) async deleteById(@param.path.<%= idType %>('id') id: <%= idType %>): Promise { await this.<%= repositoryNameCamel %>.deleteById(id); diff --git a/packages/cli/generators/copyright/git.js b/packages/cli/generators/copyright/git.js index d9a0ef2730f9..b3b0d1e9eac5 100644 --- a/packages/cli/generators/copyright/git.js +++ b/packages/cli/generators/copyright/git.js @@ -49,20 +49,24 @@ async function git(cwd, ...args) { */ async function getYears(file) { file = file || '.'; - let dates = await git( + const gitDates = await git( process.cwd(), '--no-pager log --pretty=%%ai --all -- %s', file, ); - debug('Dates for %s', file, dates); - if (_.isEmpty(dates)) { - // if the given path doesn't have any git history, assume it is new - dates = [new Date().toJSON()]; - } else { - dates = [_.head(dates), _.last(dates)]; - } - const years = _.map(dates, getYear); - return _.uniq(years).sort(); + + const currentYear = new Date().getFullYear(); + + if (!gitDates.length) return [currentYear]; + + const latestGitYear = getYear(gitDates[0]); + const oldestGitYear = getYear(gitDates.slice(-1)[0]); + const latestYear = currentYear > latestGitYear ? currentYear : latestGitYear; + const yearRange = [oldestGitYear]; + + if (latestYear !== yearRange[0]) yearRange.push(latestYear); + + return yearRange; } // assumes ISO-8601 (or similar) format diff --git a/packages/cli/generators/copyright/index.js b/packages/cli/generators/copyright/index.js index a599a1f483f6..49b777e5a0ba 100644 --- a/packages/cli/generators/copyright/index.js +++ b/packages/cli/generators/copyright/index.js @@ -12,7 +12,6 @@ const _ = require('lodash'); const chalk = require('chalk'); const autocomplete = require('inquirer-autocomplete-prompt'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class CopyrightGenerator extends BaseGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/datasource/index.js b/packages/cli/generators/datasource/index.js index 35a7f98d45f5..7cfff7f4f042 100644 --- a/packages/cli/generators/datasource/index.js +++ b/packages/cli/generators/datasource/index.js @@ -21,7 +21,6 @@ const g = require('../../lib/globalize'); * for the DataSource as well as a Class for a user to modify. Also installs the * appropriate connector from npm. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class DataSourceGenerator extends ArtifactGenerator { constructor(args, opts) { super(args, opts); diff --git a/packages/cli/generators/discover/index.js b/packages/cli/generators/discover/index.js index d051a39961da..eb56d31d9d71 100644 --- a/packages/cli/generators/discover/index.js +++ b/packages/cli/generators/discover/index.js @@ -15,7 +15,6 @@ const g = require('../../lib/globalize'); const rootDir = 'src'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class DiscoveryGenerator extends ArtifactGenerator { constructor(args, opts) { super(args, opts); diff --git a/packages/cli/generators/extension/index.js b/packages/cli/generators/extension/index.js index a861f1756472..32d00af14c0c 100644 --- a/packages/cli/generators/extension/index.js +++ b/packages/cli/generators/extension/index.js @@ -9,7 +9,6 @@ const utils = require('../../lib/utils'); const ProjectGenerator = require('../../lib/project-generator'); const g = require('../../lib/globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ExtensionGenerator extends ProjectGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/import-lb3-models/index.js b/packages/cli/generators/import-lb3-models/index.js index 5e2a797a7cdb..058b4d66cdce 100644 --- a/packages/cli/generators/import-lb3-models/index.js +++ b/packages/cli/generators/import-lb3-models/index.js @@ -16,7 +16,6 @@ const {importLb3ModelDefinition} = require('./migrate-model'); const {canImportModelName} = require('./model-names'); const g = require('../../lib/globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class Lb3ModelImporter extends BaseGenerator { constructor(args, opts) { super(args, opts); diff --git a/packages/cli/generators/interceptor/index.js b/packages/cli/generators/interceptor/index.js index 8d68a1c14d75..cec6d3af3e29 100644 --- a/packages/cli/generators/interceptor/index.js +++ b/packages/cli/generators/interceptor/index.js @@ -14,7 +14,6 @@ const utils = require('../../lib/utils'); const SCRIPT_TEMPLATE = 'interceptor-template.ts.ejs'; const g = require('../../lib/globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class InterceptorGenerator extends ArtifactGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/model/index.js b/packages/cli/generators/model/index.js index ab9acfd55d80..d49d3dac2efd 100644 --- a/packages/cli/generators/model/index.js +++ b/packages/cli/generators/model/index.js @@ -46,7 +46,6 @@ const MODEL_TEMPLATE_PATH = 'model.ts.ejs'; * entered. Will also ask if a property is required, the default value for the * property, if it's the ID (unless one has been selected), etc. */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ModelGenerator extends ArtifactGenerator { constructor(args, opts) { super(args, opts); diff --git a/packages/cli/generators/observer/index.js b/packages/cli/generators/observer/index.js index fe19af3d8f7b..f12cd3c8b732 100644 --- a/packages/cli/generators/observer/index.js +++ b/packages/cli/generators/observer/index.js @@ -13,7 +13,6 @@ const utils = require('../../lib/utils'); const SCRIPT_TEMPLATE = 'observer-template.ts.ejs'; const g = require('../../lib/globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ObserverGenerator extends ArtifactGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/openapi/index.js b/packages/cli/generators/openapi/index.js index fac0b2f24d0b..322b8b871e77 100644 --- a/packages/cli/generators/openapi/index.js +++ b/packages/cli/generators/openapi/index.js @@ -25,7 +25,6 @@ const json5 = require('json5'); const isWindows = process.platform === 'win32'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class OpenApiGenerator extends BaseGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/relation/base-relation.generator.js b/packages/cli/generators/relation/base-relation.generator.js index e03536123bec..7af1d3bdd563 100644 --- a/packages/cli/generators/relation/base-relation.generator.js +++ b/packages/cli/generators/relation/base-relation.generator.js @@ -11,7 +11,6 @@ const path = require('path'); const relationUtils = require('./utils.generator'); const utils = require('../../lib/utils'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class BaseRelationGenerator extends ArtifactGenerator { constructor(args, opts) { super(args, opts); @@ -181,9 +180,6 @@ module.exports = class BaseRelationGenerator extends ArtifactGenerator { this.artifactInfo.throughRepoClassName = utils.toClassName( options.throughModel + 'Repository', ); - this.artifactInfo.throughModelPrimaryKey = options.throughModelPrimaryKey; - this.artifactInfo.throughModelPrimaryKeyType = - options.throughModelPrimaryKeyType; } // relation configuration diff --git a/packages/cli/generators/relation/belongs-to-relation.generator.js b/packages/cli/generators/relation/belongs-to-relation.generator.js index 362257c115b1..f9a5cb37de98 100644 --- a/packages/cli/generators/relation/belongs-to-relation.generator.js +++ b/packages/cli/generators/relation/belongs-to-relation.generator.js @@ -13,7 +13,6 @@ const relationUtils = require('./utils.generator'); const CONTROLLER_TEMPLATE_PATH_BELONGS_TO = 'controller-relation-template-belongs-to.ts.ejs'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class BelongsToRelationGenerator extends ( BaseRelationGenerator ) { diff --git a/packages/cli/generators/relation/has-many-relation.generator.js b/packages/cli/generators/relation/has-many-relation.generator.js index c9dfb33e4c91..53a2bca0fb78 100644 --- a/packages/cli/generators/relation/has-many-relation.generator.js +++ b/packages/cli/generators/relation/has-many-relation.generator.js @@ -13,7 +13,6 @@ const utils = require('../../lib/utils'); const CONTROLLER_TEMPLATE_PATH_HAS_MANY = 'controller-relation-template-has-many.ts.ejs'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class HasManyRelationGenerator extends BaseRelationGenerator { constructor(args, opts) { super(args, opts); @@ -50,7 +49,8 @@ module.exports = class HasManyRelationGenerator extends BaseRelationGenerator { this.artifactInfo.sourceModelPrimaryKey = options.sourceModelPrimaryKey; this.artifactInfo.sourceModelPrimaryKeyType = options.sourceModelPrimaryKeyType; - this.artifactInfo.targetModelPrimaryKey = options.targetModelPrimaryKey; + this.artifactInfo.targetModelPrimaryKey = + options.destinationModelPrimaryKey; this.artifactInfo.foreignKeyName = options.foreignKeyName; const source = this.templatePath(CONTROLLER_TEMPLATE_PATH_HAS_MANY); diff --git a/packages/cli/generators/relation/has-many-through-relation.generator.js b/packages/cli/generators/relation/has-many-through-relation.generator.js index ebee9a780432..57b5a36a398f 100644 --- a/packages/cli/generators/relation/has-many-through-relation.generator.js +++ b/packages/cli/generators/relation/has-many-through-relation.generator.js @@ -14,7 +14,6 @@ const utils = require('../../lib/utils'); const CONTROLLER_TEMPLATE_PATH_HAS_MANY_THROUGH = 'controller-relation-template-has-many-through.ts.ejs'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class HasManyThroughRelationGenerator extends ( BaseRelationGenerator ) { @@ -68,10 +67,9 @@ module.exports = class HasManyThroughRelationGenerator extends ( this.artifactInfo.sourceModelPrimaryKey = options.sourceModelPrimaryKey; this.artifactInfo.sourceModelPrimaryKeyType = options.sourceModelPrimaryKeyType; - this.artifactInfo.throughModelPrimaryKey = options.throughModelPrimaryKey; - this.artifactInfo.throughModelPrimaryKeyType = - options.throughModelPrimaryKeyType; - this.artifactInfo.targetModelPrimaryKey = options.targetModelPrimaryKey; + + this.artifactInfo.targetModelPrimaryKey = + options.destinationModelPrimaryKey; this.artifactInfo.foreignKeyName = options.foreignKeyName; const source = this.templatePath(CONTROLLER_TEMPLATE_PATH_HAS_MANY_THROUGH); diff --git a/packages/cli/generators/relation/has-one-relation.generator.js b/packages/cli/generators/relation/has-one-relation.generator.js index 4a89b8310cd8..b5b6b063551f 100644 --- a/packages/cli/generators/relation/has-one-relation.generator.js +++ b/packages/cli/generators/relation/has-one-relation.generator.js @@ -13,7 +13,6 @@ const utils = require('../../lib/utils'); const CONTROLLER_TEMPLATE_PATH_HAS_ONE = 'controller-relation-template-has-one.ts.ejs'; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class HasOneRelationGenerator extends BaseRelationGenerator { constructor(args, opts) { super(args, opts); @@ -47,7 +46,8 @@ module.exports = class HasOneRelationGenerator extends BaseRelationGenerator { this.artifactInfo.sourceModelPrimaryKey = options.sourceModelPrimaryKey; this.artifactInfo.sourceModelPrimaryKeyType = options.sourceModelPrimaryKeyType; - this.artifactInfo.targetModelPrimaryKey = options.targetModelPrimaryKey; + this.artifactInfo.targetModelPrimaryKey = + options.destinationModelPrimaryKey; this.artifactInfo.foreignKeyName = options.foreignKeyName; const source = this.templatePath(CONTROLLER_TEMPLATE_PATH_HAS_ONE); diff --git a/packages/cli/generators/relation/index.js b/packages/cli/generators/relation/index.js index ded7504dfee9..5cf9525d1899 100644 --- a/packages/cli/generators/relation/index.js +++ b/packages/cli/generators/relation/index.js @@ -24,15 +24,6 @@ const g = require('../../lib/globalize'); const ERROR_INCORRECT_RELATION_TYPE = g.f('Incorrect relation type'); const ERROR_MODEL_DOES_NOT_EXIST = g.f('model does not exist.'); const ERROR_NO_MODELS_FOUND = g.f('No models found in'); -const ERROR_SOURCE_MODEL_PRIMARY_KEY_DOES_NOT_EXIST = g.f( - 'Source model primary key does not exist.', -); -const ERROR_DESTINATION_MODEL_PRIMARY_KEY_DOES_NOT_EXIST = g.f( - 'Target model primary key does not exist.', -); -const ERROR_THROUGH_MODEL_PRIMARY_KEY_DOES_NOT_EXIST = g.f( - 'Through model primary key does not exist.', -); const ERROR_REPOSITORY_DOES_NOT_EXIST = g.f( 'class does not exist. Please create repository first with "lb4 repository" command.', ); @@ -52,7 +43,6 @@ const PROMPT_MESSAGE_FOREIGN_KEY_NAME_BELONGSTO = g.f( 'Foreign key name to define on the source model', ); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class RelationGenerator extends ArtifactGenerator { constructor(args, opts) { super(args, opts); @@ -89,6 +79,30 @@ module.exports = class RelationGenerator extends ArtifactGenerator { description: g.f('Through model'), }); + this.option('sourceModelPrimaryKey', { + type: String, + required: false, + description: g.f('Primary key on source model'), + }); + + this.option('sourceModelPrimaryKeyType', { + type: String, + required: false, + description: g.f('Type of the primary key on source model'), + }); + + this.option('destinationModelPrimaryKey', { + type: String, + required: false, + description: g.f('Primary key on destination model'), + }); + + this.option('destinationModelPrimaryKeyType', { + type: String, + required: false, + description: g.f('Type of the primary key on destination model'), + }); + this.option('sourceKeyOnThrough', { type: String, required: false, @@ -371,74 +385,133 @@ module.exports = class RelationGenerator extends ArtifactGenerator { async promptForeignKey() { if (this.shouldExit()) return false; - this.artifactInfo.sourceModelPrimaryKey = await relationUtils.getModelPrimaryKeyProperty( - this.fs, - this.artifactInfo.modelDir, - this.artifactInfo.sourceModel, - ); + if (this.options.sourceModelPrimaryKey) { + this.artifactInfo.sourceModelPrimaryKey = this.options.sourceModelPrimaryKey; + } + if (this.options.sourceModelPrimaryKeyType) { + this.artifactInfo.sourceModelPrimaryKeyType = this.options.sourceModelPrimaryKeyType; + } + if (this.options.destinationModelPrimaryKey) { + this.artifactInfo.destinationModelPrimaryKey = this.options.destinationModelPrimaryKey; + } + if (this.options.destinationModelPrimaryKeyType) { + this.artifactInfo.destinationModelPrimaryKeyType = this.options.destinationModelPrimaryKeyType; + } + if (!this.artifactInfo.sourceModelPrimaryKey) { - /* istanbul ignore next */ - return this.exit( - new Error(ERROR_SOURCE_MODEL_PRIMARY_KEY_DOES_NOT_EXIST), - ); - } else { - this.artifactInfo.sourceModelPrimaryKeyType = relationUtils.getModelPropertyType( + const sourceModelPK = await relationUtils.getModelPrimaryKeyProperty( + this.fs, this.artifactInfo.modelDir, this.artifactInfo.sourceModel, - this.artifactInfo.sourceModelPrimaryKey, ); + if (sourceModelPK) { + this.artifactInfo.sourceModelPrimaryKey = sourceModelPK; + if (!this.artifactInfo.sourceModelPrimaryKeyType) { + const sourceModelPKType = relationUtils.getModelPropertyType( + this.artifactInfo.modelDir, + this.artifactInfo.sourceModel, + this.artifactInfo.sourceModelPrimaryKey, + ); + if (sourceModelPKType) { + this.artifactInfo.sourceModelPrimaryKeyType = sourceModelPKType; + } + } + } else { + const answer = await this.prompt([ + { + type: 'input', + name: 'sourceModelPrimaryKey', + message: g.f( + 'What is the name of ID property of the source model?', + ), + when: this.artifactInfo.sourceModelPrimaryKey === undefined, + default: 'id', + }, + ]); + this.artifactInfo.sourceModelPrimaryKey = answer.sourceModelPrimaryKey; + } + } + if (!this.artifactInfo.sourceModelPrimaryKeyType) { + const answer = await this.prompt([ + { + type: 'list', + name: 'sourceModelPrimaryKeyType', + message: g.f('What is the type of the source model primary key?'), + choices: ['number', 'string', 'object'], + when: this.artifactInfo.sourceModelPrimaryKeyType === undefined, + default: 'number', + }, + ]); + this.artifactInfo.sourceModelPrimaryKeyType = + answer.sourceModelPrimaryKeyType; } - this.artifactInfo.destinationModelPrimaryKey = await relationUtils.getModelPrimaryKeyProperty( - this.fs, - this.artifactInfo.modelDir, - this.artifactInfo.destinationModel, + debug( + `source model primary key and type: ${this.artifactInfo.destinationModelPrimaryKey} + ${this.artifactInfo.destinationModelPrimaryKeyType}`, ); + if (!this.artifactInfo.destinationModelPrimaryKey) { - /* istanbul ignore next */ - return this.exit( - new Error(ERROR_DESTINATION_MODEL_PRIMARY_KEY_DOES_NOT_EXIST), - ); - } else { - this.artifactInfo.destinationModelPrimaryKeyType = relationUtils.getModelPropertyType( + const destModelPK = await relationUtils.getModelPrimaryKeyProperty( + this.fs, this.artifactInfo.modelDir, this.artifactInfo.destinationModel, - this.artifactInfo.destinationModelPrimaryKey, ); + if (destModelPK) { + this.artifactInfo.destinationModelPrimaryKey = destModelPK; + if (!this.artifactInfo.destinationModelPrimaryKeyType) { + const destModelPKType = relationUtils.getModelPropertyType( + this.artifactInfo.modelDir, + this.artifactInfo.destinationModel, + this.artifactInfo.destinationModelPrimaryKey, + ); + if (destModelPKType) { + this.artifactInfo.destinationModelPrimaryKeyType = destModelPKType; + } + } + } else { + const answer = await this.prompt([ + { + type: 'input', + name: 'destinationModelPrimaryKey', + message: g.f( + 'What is the name of ID property of the target model?', + ), + when: this.artifactInfo.destinationModelPrimaryKey === undefined, + default: 'id', + }, + ]); + this.artifactInfo.destinationModelPrimaryKey = + answer.destinationModelPrimaryKey; + } + } + if (!this.artifactInfo.destinationModelPrimaryKeyType) { + const answer = await this.prompt([ + { + type: 'list', + name: 'destinationModelPrimaryKeyType', + message: g.f('What is the type of the target model primary key?'), + choices: ['number', 'string', 'object'], + when: this.artifactInfo.destinationModelPrimaryKeyType === undefined, + default: 'number', + }, + ]); + this.artifactInfo.destinationModelPrimaryKeyType = + answer.destinationModelPrimaryKeyType; } - // for controller usage; - this.artifactInfo.targetModelPrimaryKey = await relationUtils.getModelPrimaryKeyProperty( - this.fs, - this.artifactInfo.modelDir, - this.artifactInfo.destinationModel, + debug( + `destination model primary key and type: ${this.artifactInfo.destinationModelPrimaryKey} + ${this.artifactInfo.destinationModelPrimaryKeyType}`, ); // checks fks for hasManyThrough if (this.artifactInfo.relationType === 'hasManyThrough') { - this.artifactInfo.throughModelPrimaryKey = await relationUtils.getModelPrimaryKeyProperty( - this.fs, - this.artifactInfo.modelDir, - this.artifactInfo.throughModel, - ); - if (this.artifactInfo.throughModelPrimaryKey) { - this.artifactInfo.throughModelPrimaryKeyType = relationUtils.getModelPropertyType( - this.artifactInfo.modelDir, - this.artifactInfo.throughModel, - this.artifactInfo.throughModelPrimaryKey, - ); - // type: sourceModelPrimaryKeyType - this.artifactInfo.defaultSourceKeyOnThrough = - utils.camelCase(this.artifactInfo.sourceModel) + 'Id'; - this.artifactInfo.defaultTargetKeyOnThrough = - utils.camelCase(this.artifactInfo.destinationModel) + 'Id'; - return this._promptKeyFromOnThroughModel(); - } else { - /* istanbul ignore next */ - return this.exit( - new Error(ERROR_THROUGH_MODEL_PRIMARY_KEY_DOES_NOT_EXIST), - ); - } + this.artifactInfo.defaultSourceKeyOnThrough = + utils.camelCase(this.artifactInfo.sourceModel) + 'Id'; + this.artifactInfo.defaultTargetKeyOnThrough = + utils.camelCase(this.artifactInfo.destinationModel) + 'Id'; + return this._promptKeyFromOnThroughModel(); } if (this.options.foreignKeyName) { diff --git a/packages/cli/generators/repository/index.js b/packages/cli/generators/repository/index.js index 6f43bf85f4c5..3b2a5e1016be 100644 --- a/packages/cli/generators/repository/index.js +++ b/packages/cli/generators/repository/index.js @@ -58,7 +58,6 @@ const ERROR_NO_DATA_SOURCES_FOUND = g.f('No datasources found at'); const ERROR_NO_MODELS_FOUND = g.f('No models found at'); const ERROR_NO_MODEL_SELECTED = g.f('You did not select a valid model'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class RepositoryGenerator extends ArtifactGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/repository/templates/src/repositories/repository-crud-default-template.ts.ejs b/packages/cli/generators/repository/templates/src/repositories/repository-crud-default-template.ts.ejs index ba8a3ca29418..b150d57bb050 100644 --- a/packages/cli/generators/repository/templates/src/repositories/repository-crud-default-template.ts.ejs +++ b/packages/cli/generators/repository/templates/src/repositories/repository-crud-default-template.ts.ejs @@ -1,9 +1,9 @@ +import {inject} from '@loopback/core'; <%if (isRepositoryBaseBuiltin) { -%> import {<%= repositoryTypeClass %>} from '@loopback/repository'; <% } -%> -import {<%= modelName %>, <%= modelName %>Relations} from '../models'; import {<%= dataSourceClassName %>} from '../datasources'; -import {inject} from '@loopback/core'; +import {<%= modelName %>, <%= modelName %>Relations} from '../models'; <%if ( !isRepositoryBaseBuiltin ) { -%> import {<%=repositoryBaseClass %>} from './<%=repositoryBaseFile %>'; <% } -%> diff --git a/packages/cli/generators/repository/templates/src/repositories/repository-kv-template.ts.ejs b/packages/cli/generators/repository/templates/src/repositories/repository-kv-template.ts.ejs index 2f70bfdda13c..237a29d20351 100644 --- a/packages/cli/generators/repository/templates/src/repositories/repository-kv-template.ts.ejs +++ b/packages/cli/generators/repository/templates/src/repositories/repository-kv-template.ts.ejs @@ -1,9 +1,9 @@ +import {inject} from '@loopback/core'; <%if (isRepositoryBaseBuiltin) { -%> import {<%= repositoryTypeClass %>, juggler} from '@loopback/repository'; <% } -%> -import {<%= modelName %>} from '../models'; import {<%= dataSourceClassName %>} from '../datasources'; -import {inject} from '@loopback/core'; +import {<%= modelName %>} from '../models'; <%if ( !isRepositoryBaseBuiltin ) { -%> import {<%=repositoryBaseClass %>} from './<%=repositoryBaseFile %>'; <% } -%> diff --git a/packages/cli/generators/rest-crud/index.js b/packages/cli/generators/rest-crud/index.js index 26ba5538ade4..dd9ff01bef51 100644 --- a/packages/cli/generators/rest-crud/index.js +++ b/packages/cli/generators/rest-crud/index.js @@ -31,7 +31,6 @@ const ERROR_NO_DATA_SOURCES_FOUND = g.f('No datasources found at'); const ERROR_NO_MODELS_FOUND = g.f('No models found at'); const ERROR_NO_MODEL_SELECTED = g.f('You did not select a valid model'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class RestCrudGenerator extends ArtifactGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/service/index.js b/packages/cli/generators/service/index.js index 203a7e8df6da..6bd3f2194084 100644 --- a/packages/cli/generators/service/index.js +++ b/packages/cli/generators/service/index.js @@ -33,7 +33,6 @@ const TEMPLATES = { [LOCAL_SERVICE_PROVIDER]: LOCAL_PROVIDER_TEMPLATE, }; -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ServiceGenerator extends ArtifactGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/generators/service/templates/remote-service-proxy-template.ts.ejs b/packages/cli/generators/service/templates/remote-service-proxy-template.ts.ejs index 6ff122b90a4f..84964ab31c8f 100644 --- a/packages/cli/generators/service/templates/remote-service-proxy-template.ts.ejs +++ b/packages/cli/generators/service/templates/remote-service-proxy-template.ts.ejs @@ -1,5 +1,5 @@ -import {getService} from '@loopback/service-proxy'; import {inject, Provider} from '@loopback/core'; +import {getService} from '@loopback/service-proxy'; import {<%= dataSourceClassName %>} from '../datasources'; export interface <%= className %> { diff --git a/packages/cli/generators/update/index.js b/packages/cli/generators/update/index.js index 72188bd20464..60def2206939 100644 --- a/packages/cli/generators/update/index.js +++ b/packages/cli/generators/update/index.js @@ -10,7 +10,6 @@ const g = require('../../lib/globalize'); const link = require('terminal-link'); const chalk = require('chalk'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class UpdateGenerator extends BaseGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/lib/artifact-generator.js b/packages/cli/lib/artifact-generator.js index 352ceb8d4b36..6819189abec1 100644 --- a/packages/cli/lib/artifact-generator.js +++ b/packages/cli/lib/artifact-generator.js @@ -11,7 +11,6 @@ const path = require('path'); const chalk = require('chalk'); const g = require('./globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ArtifactGenerator extends BaseGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/lib/base-generator.js b/packages/cli/lib/base-generator.js index 118a904c046b..f876306038ea 100644 --- a/packages/cli/lib/base-generator.js +++ b/packages/cli/lib/base-generator.js @@ -19,10 +19,29 @@ const supportedPackageManagers = ['npm', 'yarn']; debug('Is stdin interactive (isTTY)?', process.stdin.isTTY); +const DEFAULT_COPY_OPTIONS = { + // See https://github.com/SBoudrias/mem-fs-editor/pull/147 + // Don't remove .ejs from the file name to keep backward-compatibility + processDestinationPath: destPath => destPath, + // See https://github.com/mrmlnc/fast-glob#options-1 + globOptions: { + // Allow patterns to match filenames starting with a period (files & + // directories), even if the pattern does not explicitly have a period + // in that spot. + dot: true, + // Disable expansion of brace patterns ({a,b}, {1..3}). + nobrace: true, + // Disable extglob support (patterns like +(a|b)), so that extglobs + // are regarded as literal characters. This flag allows us to support + // Windows paths such as + // `D:\Users\BKU\oliverkarst\AppData(Roaming)\npm\node_modules\@loopback\cli` + noext: true, + }, +}; + /** * Base Generator for LoopBack 4 */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class BaseGenerator extends Generator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { @@ -389,25 +408,7 @@ module.exports = class BaseGenerator extends Generator { to, context, templateOptions = {}, - copyOptions = { - // See https://github.com/SBoudrias/mem-fs-editor/pull/147 - // Don't remove .ejs from the file name to keep backward-compatibility - processDestinationPath: destPath => destPath, - // See https://github.com/mrmlnc/fast-glob#options-1 - globOptions: { - // Allow patterns to match filenames starting with a period (files & - // directories), even if the pattern does not explicitly have a period - // in that spot. - dot: true, - // Disable expansion of brace patterns ({a,b}, {1..3}). - nobrace: true, - // Disable extglob support (patterns like +(a|b)), so that extglobs - // are regarded as literal characters. This flag allows us to support - // Windows paths such as - // `D:\Users\BKU\oliverkarst\AppData(Roaming)\npm\node_modules\@loopback\cli` - noext: true, - }, - }, + copyOptions = DEFAULT_COPY_OPTIONS, ) { return this.fs.copyTpl(from, to, context, templateOptions, copyOptions); } diff --git a/packages/cli/lib/project-generator.js b/packages/cli/lib/project-generator.js index 4de2e1360e03..3c85bc6d1ce9 100644 --- a/packages/cli/lib/project-generator.js +++ b/packages/cli/lib/project-generator.js @@ -12,7 +12,6 @@ const cliVersion = require('../package.json').version; const path = require('path'); const g = require('./globalize'); -// eslint-disable-next-line @typescript-eslint/no-unused-vars module.exports = class ProjectGenerator extends BaseGenerator { // Note: arguments and options should be defined in the constructor. constructor(args, opts) { diff --git a/packages/cli/lib/utils.js b/packages/cli/lib/utils.js index d2727e8aa286..15949bac9e3b 100644 --- a/packages/cli/lib/utils.js +++ b/packages/cli/lib/utils.js @@ -296,7 +296,6 @@ exports.validateUrlSlug = function (name) { /** * Extends conflicter so that it keeps track of conflict status */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars exports.StatusConflicter = class StatusConflicter extends Conflicter { constructor(adapter, force) { super(adapter, force); diff --git a/packages/cli/package-lock.json b/packages/cli/package-lock.json index 0a9b0536cd30..d94e9601c2f6 100644 --- a/packages/cli/package-lock.json +++ b/packages/cli/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/cli", - "version": "2.17.2", + "version": "2.18.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -269,11 +269,22 @@ } }, "@npmcli/move-file": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.0.1.tgz", - "integrity": "sha512-Uv6h1sT+0DrblvIrolFtbvM1FgWm+/sy4B3pvLp67Zys+thcukzS5ekn7HsZFGpWP4Q3fYJCljbWQE/XivMRLw==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.0.tgz", + "integrity": "sha512-Iv2iq0JuyYjKeFkSR4LPaCdDZwlGK9X2cP/01nJcp3yMJ1FjNd9vpiEYvLUgzBxKPg2SFmaOhizoQsPc0LWeOQ==", "requires": { - "mkdirp": "^1.0.4" + "mkdirp": "^1.0.4", + "rimraf": "^2.7.1" + }, + "dependencies": { + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "requires": { + "glob": "^7.1.3" + } + } } }, "@npmcli/node-gyp": { @@ -341,16 +352,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", - "dev": true, - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" - } - }, "@sinonjs/samsam": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.0.tgz", @@ -501,9 +502,9 @@ } }, "@types/fs-extra": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.4.tgz", - "integrity": "sha512-50GO5ez44lxK5MDH90DYHFFfqxH7+fTqEEnvguQRzJ/tY9qFrMSHLiYHite+F3SNmf7+LHC1eMXojuD+E3Qcyg==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", + "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", "dev": true, "requires": { "@types/node": "*" @@ -2711,14 +2712,14 @@ "dev": true }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "fs-minipass": { @@ -3930,13 +3931,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "jsonparse": { @@ -4899,22 +4893,22 @@ } }, "make-fetch-happen": { - "version": "8.0.10", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.10.tgz", - "integrity": "sha512-jPLPKQjBmDLK5r1BdyDyNKBytmkv2AsDWm2CxHJh+fqhSmC9Pmb7RQxwOq8xQig9+AWIS49+51k4f6vDQ3VnrQ==", + "version": "8.0.13", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-8.0.13.tgz", + "integrity": "sha512-rQ5NijwwdU8tIaBrpTtSVrNCcAJfyDRcKBC76vOQlyJX588/88+TE+UpjWl4BgG7gCkp29wER7xcRqkeg+x64Q==", "requires": { - "agentkeepalive": "^4.1.0", - "cacache": "^15.0.0", - "http-cache-semantics": "^4.0.4", + "agentkeepalive": "^4.1.3", + "cacache": "^15.0.5", + "http-cache-semantics": "^4.1.0", "http-proxy-agent": "^4.0.1", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^6.0.0", "minipass": "^3.1.3", "minipass-collect": "^1.0.2", - "minipass-fetch": "^1.3.0", + "minipass-fetch": "^1.3.2", "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", + "minipass-pipeline": "^1.2.4", "promise-retry": "^1.1.1", "socks-proxy-agent": "^5.0.0", "ssri": "^8.0.0" @@ -5128,9 +5122,9 @@ } }, "minipass-fetch": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.2.tgz", - "integrity": "sha512-/i4fX1ss+Dtwyk++OsAI6SEV+eE1dvI6W+0hORdjfruQ7VD5uYTetJIHcEMjWiEiszWjn2aAtP1CB/Q4KfeoYA==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.3.3.tgz", + "integrity": "sha512-akCrLDWfbdAWkMLBxJEeWTdNsjML+dt5YgOI4gJ53vuO0vrmYQkUPxa6j6V65s9CcePIr2SSWqjT2EcrNseryQ==", "requires": { "encoding": "^0.1.12", "minipass": "^3.1.0", @@ -5997,9 +5991,9 @@ } }, "pacote": { - "version": "11.1.13", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.1.13.tgz", - "integrity": "sha512-oJ7Bg7p3izrIMhZPHCCHmMHQl+xb+pKBXL5ZYeM2oCZrw6sBRSx7f8l7F+95V2qA0BP3c1cNaaBmUNkbo6Hn9w==", + "version": "11.2.3", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.2.3.tgz", + "integrity": "sha512-Jphxyk1EjGyLzNwa+MkbcQUQeTIqlKcIoPq0t9ekR9ZxsTGjzhRjz/cOoL9PTVkqAW1FH7qBoVbYL4FqQGNNJg==", "requires": { "@npmcli/git": "^2.0.1", "@npmcli/installed-package-contents": "^1.0.5", @@ -6019,7 +6013,7 @@ "read-package-json-fast": "^1.1.3", "rimraf": "^3.0.2", "ssri": "^8.0.0", - "tar": "^6.0.1" + "tar": "^6.1.0" }, "dependencies": { "hosted-git-info": { @@ -6869,15 +6863,14 @@ "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, "sinon": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.1.tgz", - "integrity": "sha512-naPfsamB5KEE1aiioaoqJ6MEhdUs/2vtI5w1hPAXX/UwvoPjXcwh1m5HiKx0HGgKR8lQSoFIgY5jM6KK8VrS9w==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.3.tgz", + "integrity": "sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw==", "dev": true, "requires": { "@sinonjs/commons": "^1.8.1", "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/formatio": "^5.0.1", - "@sinonjs/samsam": "^5.2.0", + "@sinonjs/samsam": "^5.3.0", "diff": "^4.0.2", "nise": "^4.0.4", "supports-color": "^7.1.0" @@ -7586,9 +7579,9 @@ } }, "tar": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz", - "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==", + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", + "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", "requires": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", @@ -7791,9 +7784,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==" }, "uid2": { "version": "0.0.3", @@ -7868,9 +7861,9 @@ } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unpipe": { "version": "1.0.0", diff --git a/packages/cli/package.json b/packages/cli/package.json index 717fab058675..4542ecb91fa0 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/cli", - "version": "2.17.2", + "version": "2.18.0", "description": "Yeoman generator for LoopBack 4", "homepage": "https://github.com/strongloop/loopback-next/tree/master/packages/cli", "author": "IBM Corp.", @@ -17,7 +17,7 @@ "chalk": "^4.1.0", "change-case": "^4.1.2", "debug": "^4.3.1", - "fs-extra": "^9.0.1", + "fs-extra": "^9.1.0", "glob": "^7.1.6", "inquirer-autocomplete-prompt": "^1.3.0", "json5": "^2.1.3", @@ -27,7 +27,7 @@ "minimist": "^1.2.5", "mkdirp": "^1.0.4", "natural-compare": "^1.4.0", - "pacote": "^11.1.13", + "pacote": "^11.2.3", "pluralize": "^8.0.0", "regenerate": "^1.4.2", "semver": "^7.3.4", @@ -41,7 +41,7 @@ "terminal-link": "^2.1.1", "tildify": "^2.0.0", "ts-morph": "^9.1.0", - "typescript": "~4.1.2", + "typescript": "~4.1.3", "unicode-10.0.0": "^0.7.5", "untildify": "^4.0.0", "update-notifier": "^5.0.1", @@ -52,11 +52,11 @@ "yeoman-generator": "^4.12.0" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/ejs": "^3.0.5", - "@types/fs-extra": "^9.0.4", + "@types/fs-extra": "^9.0.6", "@types/minimatch": "^3.0.3", "@types/node": "^10.17.35", "loopback": "^3.28.0", @@ -65,13 +65,13 @@ "mem-fs-editor": "^7.1.0", "mock-stdin": "^1.0.0", "rimraf": "^3.0.2", - "sinon": "^9.2.1", + "sinon": "^9.2.3", "strong-globalize-cli": "7.1.0", "yeoman-assert": "^3.1.1", "yeoman-test": "~2.7.0" }, "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "files": [ "bin", @@ -102,94 +102,95 @@ "config": { "templateDependencies": { "tslib": "^2.0.0", - "@types/mocha": "^8.0.4", - "@types/node": "^10.17.48", + "@types/mocha": "^8.2.0", + "@types/node": "^10.17.51", "cross-spawn": "^7.0.3", "debug": "^4.3.1", - "fs-extra": "^9.0.1", + "fs-extra": "^9.1.0", "mocha": "^8.2.1", "nyc": "^15.1.0", "prettier": "^2.2.1", "rimraf": "^3.0.2", "source-map-support": "^0.5.19", - "typescript": "~4.1.2", - "@loopback/authentication": "^7.0.5", - "@loopback/boot": "^3.1.2", - "@loopback/build": "^6.2.8", - "@loopback/cli": "^2.17.2", - "@loopback/context": "^3.13.2", - "@loopback/core": "^2.13.1", - "@loopback/metadata": "^3.0.5", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/openapi-v3": "^5.1.2", - "@loopback/repository-json-schema": "^3.2.0", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", - "@loopback/docs": "^3.20.0", + "typescript": "~4.1.3", + "@loopback/authentication": "^7.0.6", + "@loopback/boot": "^3.2.0", + "@loopback/build": "^6.2.9", + "@loopback/cli": "^2.18.0", + "@loopback/context": "^3.14.0", + "@loopback/core": "^2.14.0", + "@loopback/metadata": "^3.1.0", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/openapi-v3": "^5.1.3", + "@loopback/repository-json-schema": "^3.2.1", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", + "@loopback/docs": "^3.21.0", "glob": "^7.1.6", - "@loopback/example-hello-world": "^2.1.15", - "@loopback/example-log-extension": "^2.1.15", - "@loopback/example-rpc-server": "^2.1.15", - "@loopback/example-todo": "^3.9.2", - "@loopback/example-soap-calculator": "^2.4.8", - "@loopback/service-proxy": "^3.0.5", - "@loopback/http-caching-proxy": "^2.1.19", - "@loopback/http-server": "^2.3.3", - "@loopback/example-todo-list": "^3.7.0", + "@loopback/example-hello-world": "^2.1.16", + "@loopback/example-log-extension": "^2.1.16", + "@loopback/example-rpc-server": "^2.1.16", + "@loopback/example-todo": "^3.9.3", + "@loopback/example-soap-calculator": "^2.4.9", + "@loopback/service-proxy": "^3.0.6", + "@loopback/http-caching-proxy": "^2.1.20", + "@loopback/http-server": "^2.3.4", + "@loopback/example-todo-list": "^3.7.1", "@loopback/dist-util": "^0.4.0", - "@loopback/rest-explorer": "^3.0.5", - "@loopback/eslint-config": "^10.0.4", + "@loopback/rest-explorer": "^3.0.6", + "@loopback/eslint-config": "^10.0.5", "express-composition": "^1.1.0", - "@loopback/example-express-composition": "^2.5.3", - "@loopback/example-greeter-extension": "^2.1.15", - "@loopback/booter-lb3app": "^2.2.15", - "@loopback/example-lb3-application": "^2.5.3", - "eslint": "^7.15.0", + "@loopback/example-express-composition": "^2.5.4", + "@loopback/example-greeter-extension": "^2.1.16", + "@loopback/booter-lb3app": "^2.2.16", + "@loopback/example-lb3-application": "^2.5.4", + "eslint": "^7.18.0", "eslint-plugin-mocha": "^8.0.0", - "@loopback/example-greeting-app": "^2.2.13", - "@loopback/example-context": "^2.1.15", - "@typescript-eslint/eslint-plugin": "^4.9.0", - "@typescript-eslint/parser": "^4.9.0", + "@loopback/example-greeting-app": "^2.2.14", + "@loopback/example-context": "^2.1.16", + "@typescript-eslint/eslint-plugin": "^4.14.0", + "@typescript-eslint/parser": "^4.14.0", "eslint-plugin-eslint-plugin": "^2.3.0", - "eslint-config-prettier": "^7.0.0", - "@loopback/repository-tests": "^0.15.0", - "@loopback/health": "^0.6.2", - "@loopback/authorization": "^0.7.5", - "@loopback/rest-crud": "^0.8.19", - "@loopback/security": "^0.3.5", - "@loopback/authentication-passport": "^3.0.5", - "@loopback/example-metrics-prometheus": "^0.4.5", - "@loopback/metrics": "^0.5.2", - "@loopback/model-api-builder": "^2.1.19", - "@loopback/logging": "^0.4.5", - "@loopback/example-access-control-migration": "^2.3.3", - "@loopback/example-file-transfer": "^1.5.8", - "@loopback/example-rest-crud": "^1.7.3", - "@loopback/apiconnect": "^0.5.5", - "@loopback/example-validation-app": "^1.8.3", - "@loopback/cron": "^0.3.5", - "@loopback/example-multi-tenancy": "^0.7.3", - "@loopback/example-passport-login": "^1.9.0", - "@loopback/authentication-jwt": "^0.7.5", - "@loopback/context-explorer": "^0.2.5", - "@loopback/express": "^3.1.1", + "eslint-config-prettier": "^7.2.0", + "@loopback/repository-tests": "^0.16.0", + "@loopback/health": "^0.6.3", + "@loopback/authorization": "^0.7.6", + "@loopback/rest-crud": "^0.8.20", + "@loopback/security": "^0.3.6", + "@loopback/authentication-passport": "^3.0.6", + "@loopback/example-metrics-prometheus": "^0.4.6", + "@loopback/metrics": "^0.6.0", + "@loopback/model-api-builder": "^2.1.20", + "@loopback/logging": "^0.4.6", + "@loopback/example-access-control-migration": "^2.3.4", + "@loopback/example-file-transfer": "^1.5.9", + "@loopback/example-rest-crud": "^1.7.4", + "@loopback/apiconnect": "^0.5.6", + "@loopback/example-validation-app": "^1.8.4", + "@loopback/cron": "^0.3.6", + "@loopback/example-multi-tenancy": "^0.7.4", + "@loopback/example-passport-login": "^1.9.1", + "@loopback/authentication-jwt": "^0.7.6", + "@loopback/context-explorer": "^0.3.0", + "@loopback/express": "^3.1.2", "@types/js-yaml": "^3.12.4", "js-yaml": "^3.13.1", - "@loopback/example-todo-jwt": "^1.4.3", - "@loopback/mock-oauth2-provider": "^0.1.13", + "@loopback/example-todo-jwt": "^1.4.4", + "@loopback/mock-oauth2-provider": "^0.1.14", "lodash": "^4.17.20", - "@loopback/pooling": "^0.3.5", - "@loopback/typeorm": "^0.2.5", - "@loopback/example-graphql": "^0.1.5", - "@loopback/graphql": "^0.2.3", - "@loopback/filter": "^1.3.0", - "@loopback/rest-msgpack": "^0.2.4", - "@loopback/example-binding-resolution": "^0.1.3", - "@loopback/example-webpack": "^0.2.2", - "@loopback/example-socketio": "^0.1.2", - "@loopback/socketio": "^0.1.2", - "@loopback/monorepo": "^0.1.2" + "@loopback/pooling": "^0.3.6", + "@loopback/typeorm": "^0.2.6", + "@loopback/example-graphql": "^0.1.6", + "@loopback/graphql": "^0.2.4", + "@loopback/filter": "^1.3.1", + "@loopback/rest-msgpack": "^0.3.0", + "@loopback/example-binding-resolution": "^0.1.4", + "@loopback/example-webpack": "^0.2.3", + "@loopback/example-socketio": "^0.1.3", + "@loopback/socketio": "^0.1.3", + "@loopback/monorepo": "^0.1.3", + "@loopback/tsdocs": "^2.4.0" } } } diff --git a/packages/cli/snapshots/integration/cli/cli.integration.snapshots.js b/packages/cli/snapshots/integration/cli/cli.integration.snapshots.js index c61d042f0089..3941012dde47 100644 --- a/packages/cli/snapshots/integration/cli/cli.integration.snapshots.js +++ b/packages/cli/snapshots/integration/cli/cli.integration.snapshots.js @@ -1401,6 +1401,34 @@ exports[`cli saves command metadata to .yo-rc.json 1`] = ` "name": "throughModel", "hide": false }, + "sourceModelPrimaryKey": { + "type": "String", + "required": false, + "description": "Primary key on source model", + "name": "sourceModelPrimaryKey", + "hide": false + }, + "sourceModelPrimaryKeyType": { + "type": "String", + "required": false, + "description": "Type of the primary key on source model", + "name": "sourceModelPrimaryKeyType", + "hide": false + }, + "destinationModelPrimaryKey": { + "type": "String", + "required": false, + "description": "Primary key on destination model", + "name": "destinationModelPrimaryKey", + "hide": false + }, + "destinationModelPrimaryKeyType": { + "type": "String", + "required": false, + "description": "Type of the primary key on destination model", + "name": "destinationModelPrimaryKeyType", + "hide": false + }, "sourceKeyOnThrough": { "type": "String", "required": false, diff --git a/packages/cli/snapshots/integration/generators/app.integration.snapshots.js b/packages/cli/snapshots/integration/generators/app.integration.snapshots.js index 17f6934b6fed..e7bdc7ad1bb4 100644 --- a/packages/cli/snapshots/integration/generators/app.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/app.integration.snapshots.js @@ -199,8 +199,14 @@ if (require.main === module) { exports[`app-generator specific files generates all the proper files 5`] = ` -import {Request, RestBindings, get, ResponseObject} from '@loopback/rest'; import {inject} from '@loopback/core'; +import { + Request, + RestBindings, + get, + response, + ResponseObject, +} from '@loopback/rest'; /** * OpenAPI response for ping() @@ -236,11 +242,8 @@ export class PingController { constructor(@inject(RestBindings.Http.REQUEST) private req: Request) {} // Map to \`GET /ping\` - @get('/ping', { - responses: { - '200': PING_RESPONSE, - }, - }) + @get('/ping') + @response(200, PING_RESPONSE) ping(): object { // Reply with a greeting, the current time, the url, and request headers return { diff --git a/packages/cli/snapshots/integration/generators/controller.integration.snapshots.js b/packages/cli/snapshots/integration/generators/controller.integration.snapshots.js index aff32ffcc106..427e4215c62d 100644 --- a/packages/cli/snapshots/integration/generators/controller.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/controller.integration.snapshots.js @@ -25,6 +25,7 @@ import { put, del, requestBody, + response, } from '@loopback/rest'; import {ProductReview} from '../models'; import {BarRepository} from '../repositories'; @@ -35,13 +36,10 @@ export class ProductReviewController { public barRepository : BarRepository, ) {} - @post('/product-reviews', { - responses: { - '200': { - description: 'ProductReview model instance', - content: {'application/json': {schema: getModelSchemaRef(ProductReview)}}, - }, - }, + @post('/product-reviews') + @response(200, { + description: 'ProductReview model instance', + content: {'application/json': {schema: getModelSchemaRef(ProductReview)}}, }) async create( @requestBody({ @@ -59,13 +57,10 @@ export class ProductReviewController { return this.barRepository.create(productReview); } - @get('/product-reviews/count', { - responses: { - '200': { - description: 'ProductReview model count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @get('/product-reviews/count') + @response(200, { + description: 'ProductReview model count', + content: {'application/json': {schema: CountSchema}}, }) async count( @param.where(ProductReview) where?: Where, @@ -73,17 +68,14 @@ export class ProductReviewController { return this.barRepository.count(where); } - @get('/product-reviews', { - responses: { - '200': { - description: 'Array of ProductReview model instances', - content: { - 'application/json': { - schema: { - type: 'array', - items: getModelSchemaRef(ProductReview, {includeRelations: true}), - }, - }, + @get('/product-reviews') + @response(200, { + description: 'Array of ProductReview model instances', + content: { + 'application/json': { + schema: { + type: 'array', + items: getModelSchemaRef(ProductReview, {includeRelations: true}), }, }, }, @@ -94,13 +86,10 @@ export class ProductReviewController { return this.barRepository.find(filter); } - @patch('/product-reviews', { - responses: { - '200': { - description: 'ProductReview PATCH success count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @patch('/product-reviews') + @response(200, { + description: 'ProductReview PATCH success count', + content: {'application/json': {schema: CountSchema}}, }) async updateAll( @requestBody({ @@ -116,15 +105,12 @@ export class ProductReviewController { return this.barRepository.updateAll(productReview, where); } - @get('/product-reviews/{id}', { - responses: { - '200': { - description: 'ProductReview model instance', - content: { - 'application/json': { - schema: getModelSchemaRef(ProductReview, {includeRelations: true}), - }, - }, + @get('/product-reviews/{id}') + @response(200, { + description: 'ProductReview model instance', + content: { + 'application/json': { + schema: getModelSchemaRef(ProductReview, {includeRelations: true}), }, }, }) @@ -135,12 +121,9 @@ export class ProductReviewController { return this.barRepository.findById(id, filter); } - @patch('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview PATCH success', - }, - }, + @patch('/product-reviews/{id}') + @response(204, { + description: 'ProductReview PATCH success', }) async updateById( @param.path.number('id') id: number, @@ -156,12 +139,9 @@ export class ProductReviewController { await this.barRepository.updateById(id, productReview); } - @put('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview PUT success', - }, - }, + @put('/product-reviews/{id}') + @response(204, { + description: 'ProductReview PUT success', }) async replaceById( @param.path.number('id') id: number, @@ -170,12 +150,9 @@ export class ProductReviewController { await this.barRepository.replaceById(id, productReview); } - @del('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview DELETE success', - }, - }, + @del('/product-reviews/{id}') + @response(204, { + description: 'ProductReview DELETE success', }) async deleteById(@param.path.number('id') id: number): Promise { await this.barRepository.deleteById(id); @@ -203,6 +180,7 @@ import { put, del, requestBody, + response, } from '@loopback/rest'; import {ProductReview} from '../models'; import {BarRepository} from '../repositories'; @@ -213,13 +191,10 @@ export class ProductReviewController { public barRepository : BarRepository, ) {} - @post('/product-reviews', { - responses: { - '200': { - description: 'ProductReview model instance', - content: {'application/json': {schema: getModelSchemaRef(ProductReview)}}, - }, - }, + @post('/product-reviews') + @response(200, { + description: 'ProductReview model instance', + content: {'application/json': {schema: getModelSchemaRef(ProductReview)}}, }) async create( @requestBody({ @@ -237,13 +212,10 @@ export class ProductReviewController { return this.barRepository.create(productReview); } - @get('/product-reviews/count', { - responses: { - '200': { - description: 'ProductReview model count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @get('/product-reviews/count') + @response(200, { + description: 'ProductReview model count', + content: {'application/json': {schema: CountSchema}}, }) async count( @param.where(ProductReview) where?: Where, @@ -251,17 +223,14 @@ export class ProductReviewController { return this.barRepository.count(where); } - @get('/product-reviews', { - responses: { - '200': { - description: 'Array of ProductReview model instances', - content: { - 'application/json': { - schema: { - type: 'array', - items: getModelSchemaRef(ProductReview, {includeRelations: true}), - }, - }, + @get('/product-reviews') + @response(200, { + description: 'Array of ProductReview model instances', + content: { + 'application/json': { + schema: { + type: 'array', + items: getModelSchemaRef(ProductReview, {includeRelations: true}), }, }, }, @@ -272,13 +241,10 @@ export class ProductReviewController { return this.barRepository.find(filter); } - @patch('/product-reviews', { - responses: { - '200': { - description: 'ProductReview PATCH success count', - content: {'application/json': {schema: CountSchema}}, - }, - }, + @patch('/product-reviews') + @response(200, { + description: 'ProductReview PATCH success count', + content: {'application/json': {schema: CountSchema}}, }) async updateAll( @requestBody({ @@ -294,15 +260,12 @@ export class ProductReviewController { return this.barRepository.updateAll(productReview, where); } - @get('/product-reviews/{id}', { - responses: { - '200': { - description: 'ProductReview model instance', - content: { - 'application/json': { - schema: getModelSchemaRef(ProductReview, {includeRelations: true}), - }, - }, + @get('/product-reviews/{id}') + @response(200, { + description: 'ProductReview model instance', + content: { + 'application/json': { + schema: getModelSchemaRef(ProductReview, {includeRelations: true}), }, }, }) @@ -313,12 +276,9 @@ export class ProductReviewController { return this.barRepository.findById(id, filter); } - @patch('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview PATCH success', - }, - }, + @patch('/product-reviews/{id}') + @response(204, { + description: 'ProductReview PATCH success', }) async updateById( @param.path.number('id') id: number, @@ -334,12 +294,9 @@ export class ProductReviewController { await this.barRepository.updateById(id, productReview); } - @put('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview PUT success', - }, - }, + @put('/product-reviews/{id}') + @response(204, { + description: 'ProductReview PUT success', }) async replaceById( @param.path.number('id') id: number, @@ -348,12 +305,9 @@ export class ProductReviewController { await this.barRepository.replaceById(id, productReview); } - @del('/product-reviews/{id}', { - responses: { - '204': { - description: 'ProductReview DELETE success', - }, - }, + @del('/product-reviews/{id}') + @response(204, { + description: 'ProductReview DELETE success', }) async deleteById(@param.path.number('id') id: number): Promise { await this.barRepository.deleteById(id); diff --git a/packages/cli/snapshots/integration/generators/relation.has-many.integration.snapshots.js b/packages/cli/snapshots/integration/generators/relation.has-many.integration.snapshots.js index d0d3d9cba9ee..0eddd7c83329 100644 --- a/packages/cli/snapshots/integration/generators/relation.has-many.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/relation.has-many.integration.snapshots.js @@ -8,10 +8,10 @@ 'use strict'; exports[`lb4 relation HasMany checks generated source class repository answers {"relationType":"hasMany","sourceModel":"Customer","destinationModel":"Order","relationName":"custom_name","registerInclusionResolver":false} generates Customer repository file with different inputs 1`] = ` +import {inject, Getter} from '@loopback/core'; import {DefaultCrudRepository, repository, HasManyRepositoryFactory} from '@loopback/repository'; -import {Customer, Order} from '../models'; import {DbDataSource} from '../datasources'; -import {inject, Getter} from '@loopback/core'; +import {Customer, Order} from '../models'; import {OrderRepository} from './order.repository'; export class CustomerRepository extends DefaultCrudRepository< @@ -31,10 +31,10 @@ export class CustomerRepository extends DefaultCrudRepository< exports[`lb4 relation HasMany checks generated source class repository answers {"relationType":"hasMany","sourceModel":"Customer","destinationModel":"Order"} generates Customer repository file with different inputs 1`] = ` +import {inject, Getter} from '@loopback/core'; import {DefaultCrudRepository, repository, HasManyRepositoryFactory} from '@loopback/repository'; -import {Customer, Order} from '../models'; import {DbDataSource} from '../datasources'; -import {inject, Getter} from '@loopback/core'; +import {Customer, Order} from '../models'; import {OrderRepository} from './order.repository'; export class CustomerRepository extends DefaultCrudRepository< diff --git a/packages/cli/snapshots/integration/generators/relation.has-one.integration.snapshots.js b/packages/cli/snapshots/integration/generators/relation.has-one.integration.snapshots.js index fa859ecaee66..324c52669e9e 100644 --- a/packages/cli/snapshots/integration/generators/relation.has-one.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/relation.has-one.integration.snapshots.js @@ -8,10 +8,10 @@ 'use strict'; exports[`lb4 relation HasOne checks generated source class repository answers {"relationType":"hasOne","sourceModel":"Customer","destinationModel":"Address","registerInclusionResolver":false} generates Customer repository file with different inputs 1`] = ` +import {inject, Getter} from '@loopback/core'; import {DefaultCrudRepository, repository, HasOneRepositoryFactory} from '@loopback/repository'; -import {Customer, Address} from '../models'; import {DbDataSource} from '../datasources'; -import {inject, Getter} from '@loopback/core'; +import {Customer, Address} from '../models'; import {AddressRepository} from './address.repository'; export class CustomerRepository extends DefaultCrudRepository< @@ -31,10 +31,10 @@ export class CustomerRepository extends DefaultCrudRepository< exports[`lb4 relation HasOne checks generated source class repository answers {"relationType":"hasOne","sourceModel":"Customer","destinationModel":"Address"} generates Customer repository file with different inputs 1`] = ` +import {inject, Getter} from '@loopback/core'; import {DefaultCrudRepository, repository, HasOneRepositoryFactory} from '@loopback/repository'; -import {Customer, Address} from '../models'; import {DbDataSource} from '../datasources'; -import {inject, Getter} from '@loopback/core'; +import {Customer, Address} from '../models'; import {AddressRepository} from './address.repository'; export class CustomerRepository extends DefaultCrudRepository< diff --git a/packages/cli/snapshots/integration/generators/relation.integration.snapshots.js b/packages/cli/snapshots/integration/generators/relation.integration.snapshots.js index 2facda7cf2cb..274a2a2bb9c9 100644 --- a/packages/cli/snapshots/integration/generators/relation.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/relation.integration.snapshots.js @@ -7,6 +7,351 @@ 'use strict'; +exports[`lb4 relation Specify primary key name and type on the source and target model generates default pk name and type for controller{"relationType":"hasMany","sourceModel":"Customer","destinationModel":"Order"} 1`] = ` +import { + Count, + CountSchema, + Filter, + repository, + Where, +} from '@loopback/repository'; +import { + del, + get, + getModelSchemaRef, + getWhereSchemaFor, + param, + patch, + post, + requestBody, +} from '@loopback/rest'; +import { + Customer, + Order, +} from '../models'; +import {CustomerRepository} from '../repositories'; + +export class CustomerOrderController { + constructor( + @repository(CustomerRepository) protected customerRepository: CustomerRepository, + ) { } + + @get('/customers/{id}/orders', { + responses: { + '200': { + description: 'Array of Customer has many Order', + content: { + 'application/json': { + schema: {type: 'array', items: getModelSchemaRef(Order)}, + }, + }, + }, + }, + }) + async find( + @param.path.number('id') id: number, + @param.query.object('filter') filter?: Filter, + ): Promise { + return this.customerRepository.orders(id).find(filter); + } + + @post('/customers/{id}/orders', { + responses: { + '200': { + description: 'Customer model instance', + content: {'application/json': {schema: getModelSchemaRef(Order)}}, + }, + }, + }) + async create( + @param.path.number('id') id: typeof Customer.prototype.id, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(Order, { + title: 'NewOrderInCustomer', + exclude: ['id'], + optional: ['customerId'] + }), + }, + }, + }) order: Omit, + ): Promise { + return this.customerRepository.orders(id).create(order); + } + + @patch('/customers/{id}/orders', { + responses: { + '200': { + description: 'Customer.Order PATCH success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async patch( + @param.path.number('id') id: number, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(Order, {partial: true}), + }, + }, + }) + order: Partial, + @param.query.object('where', getWhereSchemaFor(Order)) where?: Where, + ): Promise { + return this.customerRepository.orders(id).patch(order, where); + } + + @del('/customers/{id}/orders', { + responses: { + '200': { + description: 'Customer.Order DELETE success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async delete( + @param.path.number('id') id: number, + @param.query.object('where', getWhereSchemaFor(Order)) where?: Where, + ): Promise { + return this.customerRepository.orders(id).delete(where); + } +} + +`; + + +exports[`lb4 relation Specify primary key name and type on the source and target model generates fully specified pk name and type for controller{"relationType":"hasMany","sourceModel":"CustomerInheritance","destinationModel":"OrderInheritance","sourceModelPrimaryKey":"sid","sourceModelPrimaryKeyType":"string","destinationModelPrimaryKeyType":"string","destinationModelPrimaryKey":"tid"} 1`] = ` +import { + Count, + CountSchema, + Filter, + repository, + Where, +} from '@loopback/repository'; +import { + del, + get, + getModelSchemaRef, + getWhereSchemaFor, + param, + patch, + post, + requestBody, +} from '@loopback/rest'; +import { + CustomerInheritance, + OrderInheritance, +} from '../models'; +import {CustomerInheritanceRepository} from '../repositories'; + +export class CustomerInheritanceOrderInheritanceController { + constructor( + @repository(CustomerInheritanceRepository) protected customerInheritanceRepository: CustomerInheritanceRepository, + ) { } + + @get('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'Array of CustomerInheritance has many OrderInheritance', + content: { + 'application/json': { + schema: {type: 'array', items: getModelSchemaRef(OrderInheritance)}, + }, + }, + }, + }, + }) + async find( + @param.path.string('id') id: string, + @param.query.object('filter') filter?: Filter, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).find(filter); + } + + @post('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance model instance', + content: {'application/json': {schema: getModelSchemaRef(OrderInheritance)}}, + }, + }, + }) + async create( + @param.path.string('id') id: typeof CustomerInheritance.prototype.sid, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(OrderInheritance, { + title: 'NewOrderInheritanceInCustomerInheritance', + exclude: ['tid'], + optional: ['customerInheritanceId'] + }), + }, + }, + }) orderInheritance: Omit, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).create(orderInheritance); + } + + @patch('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance.OrderInheritance PATCH success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async patch( + @param.path.string('id') id: string, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(OrderInheritance, {partial: true}), + }, + }, + }) + orderInheritance: Partial, + @param.query.object('where', getWhereSchemaFor(OrderInheritance)) where?: Where, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).patch(orderInheritance, where); + } + + @del('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance.OrderInheritance DELETE success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async delete( + @param.path.string('id') id: string, + @param.query.object('where', getWhereSchemaFor(OrderInheritance)) where?: Where, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).delete(where); + } +} + +`; + + +exports[`lb4 relation Specify primary key name and type on the source and target model generates partially specified pk name and type for controller{"relationType":"hasMany","sourceModel":"CustomerInheritance","destinationModel":"OrderInheritance","sourceModelPrimaryKeyType":"string","destinationModelPrimaryKeyType":"string"} 1`] = ` +import { + Count, + CountSchema, + Filter, + repository, + Where, +} from '@loopback/repository'; +import { + del, + get, + getModelSchemaRef, + getWhereSchemaFor, + param, + patch, + post, + requestBody, +} from '@loopback/rest'; +import { + CustomerInheritance, + OrderInheritance, +} from '../models'; +import {CustomerInheritanceRepository} from '../repositories'; + +export class CustomerInheritanceOrderInheritanceController { + constructor( + @repository(CustomerInheritanceRepository) protected customerInheritanceRepository: CustomerInheritanceRepository, + ) { } + + @get('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'Array of CustomerInheritance has many OrderInheritance', + content: { + 'application/json': { + schema: {type: 'array', items: getModelSchemaRef(OrderInheritance)}, + }, + }, + }, + }, + }) + async find( + @param.path.string('id') id: string, + @param.query.object('filter') filter?: Filter, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).find(filter); + } + + @post('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance model instance', + content: {'application/json': {schema: getModelSchemaRef(OrderInheritance)}}, + }, + }, + }) + async create( + @param.path.string('id') id: typeof CustomerInheritance.prototype.id, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(OrderInheritance, { + title: 'NewOrderInheritanceInCustomerInheritance', + exclude: ['id'], + optional: ['customerInheritanceId'] + }), + }, + }, + }) orderInheritance: Omit, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).create(orderInheritance); + } + + @patch('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance.OrderInheritance PATCH success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async patch( + @param.path.string('id') id: string, + @requestBody({ + content: { + 'application/json': { + schema: getModelSchemaRef(OrderInheritance, {partial: true}), + }, + }, + }) + orderInheritance: Partial, + @param.query.object('where', getWhereSchemaFor(OrderInheritance)) where?: Where, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).patch(orderInheritance, where); + } + + @del('/customer-inheritances/{id}/order-inheritances', { + responses: { + '200': { + description: 'CustomerInheritance.OrderInheritance DELETE success count', + content: {'application/json': {schema: CountSchema}}, + }, + }, + }) + async delete( + @param.path.string('id') id: string, + @param.query.object('where', getWhereSchemaFor(OrderInheritance)) where?: Where, + ): Promise { + return this.customerInheritanceRepository.orderInheritances(id).delete(where); + } +} + +`; + + exports[`lb4 relation add controller to existing index file only once check if the controller exported to index file only once 1`] = ` export * from './order-customer.controller'; diff --git a/packages/cli/snapshots/integration/generators/remote-service.integration.snapshots.js b/packages/cli/snapshots/integration/generators/remote-service.integration.snapshots.js index 7f9b9c3ffdeb..4830c34483b8 100644 --- a/packages/cli/snapshots/integration/generators/remote-service.integration.snapshots.js +++ b/packages/cli/snapshots/integration/generators/remote-service.integration.snapshots.js @@ -8,8 +8,8 @@ 'use strict'; exports[`lb4 service (remote) legacy JSON-based configuration loads config from \`{name}.datasource.config.json\` 1`] = ` -import {getService} from '@loopback/service-proxy'; import {inject, Provider} from '@loopback/core'; +import {getService} from '@loopback/service-proxy'; import {LegacyDataSource} from '../datasources'; export interface MyService { diff --git a/packages/cli/test/fixtures/relation/index.js b/packages/cli/test/fixtures/relation/index.js index d85880e9f604..df0ce6c85da2 100644 --- a/packages/cli/test/fixtures/relation/index.js +++ b/packages/cli/test/fixtures/relation/index.js @@ -48,6 +48,26 @@ const SourceEntries = { file: 'order.repository.ts', content: readSourceFile('./repositories/order.repository.ts'), }, + CustomerModelWithInheritance: { + path: MODEL_APP_PATH, + file: 'customer-inheritance.model.ts', + content: readSourceFile('./models/customer-inhe.model.ts'), + }, + CustomerInheRepository: { + path: REPOSITORY_APP_PATH, + file: 'customer-inheritance.repository.ts', + content: readSourceFile('./repositories/customer-inhe.repository.ts'), + }, + OrderModelModelWithInheritance: { + path: MODEL_APP_PATH, + file: 'order-inheritance.model.ts', + content: readSourceFile('./models/order-inhe.model.ts'), + }, + OrderInheRepository: { + path: REPOSITORY_APP_PATH, + file: 'order-inheritance.repository.ts', + content: readSourceFile('./repositories/order-inhe.repository.ts'), + }, AddressModel: { path: MODEL_APP_PATH, @@ -65,18 +85,6 @@ const SourceEntries = { content: readSourceFile('./repositories/address.repository.ts'), }, - NoKeyModel: { - path: MODEL_APP_PATH, - file: 'no-key.model.ts', - content: readSourceFile('./models/no-key.model.ts'), - }, - - NoKeyRepository: { - path: REPOSITORY_APP_PATH, - file: 'no-key.repository.ts', - content: readSourceFile('./repositories/no-key.repository.ts'), - }, - NoRepoModel: { path: MODEL_APP_PATH, file: 'no-repo.model.ts', @@ -170,7 +178,6 @@ exports.SANDBOX_FILES = [ SourceEntries.CustomerRepository, SourceEntries.OrderRepository, SourceEntries.AddressRepository, - SourceEntries.NoKeyRepository, SourceEntries.DoctorRepository, SourceEntries.PatientRepository, SourceEntries.AppointmentRepository, @@ -178,7 +185,6 @@ exports.SANDBOX_FILES = [ SourceEntries.CustomerModel, SourceEntries.OrderModel, SourceEntries.AddressModel, - SourceEntries.NoKeyModel, SourceEntries.NoRepoModel, SourceEntries.DoctorModel, SourceEntries.PatientModel, @@ -188,17 +194,19 @@ exports.SANDBOX_FILES = [ exports.SANDBOX_FILES2 = [ SourceEntries.CustomerRepository, + SourceEntries.CustomerInheRepository, SourceEntries.OrderRepository, + SourceEntries.OrderInheRepository, SourceEntries.AddressRepository, - SourceEntries.NoKeyRepository, SourceEntries.DoctorRepository, SourceEntries.PatientRepository, SourceEntries.AppointmentRepository, SourceEntries.CustomerModel, + SourceEntries.CustomerModelWithInheritance, SourceEntries.OrderModel, + SourceEntries.OrderModelModelWithInheritance, SourceEntries.AddressModel, - SourceEntries.NoKeyModel, SourceEntries.NoRepoModel, SourceEntries.DoctorModel, SourceEntries.PatientModel, diff --git a/packages/cli/test/fixtures/relation/models/customer-inhe.model.ts b/packages/cli/test/fixtures/relation/models/customer-inhe.model.ts new file mode 100644 index 000000000000..fca8fe0b3e5d --- /dev/null +++ b/packages/cli/test/fixtures/relation/models/customer-inhe.model.ts @@ -0,0 +1,14 @@ +import {model, property} from '@loopback/repository'; +import {IdModel} from './id-model.model'; + +@model() +export class CustomerInheritance extends IdModel { + @property({ + type: 'string', + }) + name?: string; + + constructor(data?: Partial) { + super(data); + } +} diff --git a/packages/cli/test/fixtures/relation/models/no-key.model.ts b/packages/cli/test/fixtures/relation/models/id-model.model.ts similarity index 50% rename from packages/cli/test/fixtures/relation/models/no-key.model.ts rename to packages/cli/test/fixtures/relation/models/id-model.model.ts index 003772053e07..5dafc430ada9 100644 --- a/packages/cli/test/fixtures/relation/models/no-key.model.ts +++ b/packages/cli/test/fixtures/relation/models/id-model.model.ts @@ -1,19 +1,15 @@ import {Entity, model, property} from '@loopback/repository'; @model() -export class NoKey extends Entity { +export class IdModel extends Entity { @property({ type: 'number', + id: true, default: 0, }) - id?: number; + id?: string; - @property({ - type: 'string', - }) - name?: string; - - constructor(data?: Partial) { + constructor(data?: Partial) { super(data); } } diff --git a/packages/cli/test/fixtures/relation/models/order-inhe.model.ts b/packages/cli/test/fixtures/relation/models/order-inhe.model.ts new file mode 100644 index 000000000000..8760f9241fb6 --- /dev/null +++ b/packages/cli/test/fixtures/relation/models/order-inhe.model.ts @@ -0,0 +1,14 @@ +import {model, property} from '@loopback/repository'; +import {IdModel} from './id-model.model'; + +@model() +export class OrderInheritance extends IdModel { + @property({ + type: 'string', + }) + des?: string; + + constructor(data?: Partial) { + super(data); + } +} diff --git a/packages/cli/test/fixtures/relation/repositories/customer-inhe.repository.ts b/packages/cli/test/fixtures/relation/repositories/customer-inhe.repository.ts new file mode 100644 index 000000000000..85dce7ecc552 --- /dev/null +++ b/packages/cli/test/fixtures/relation/repositories/customer-inhe.repository.ts @@ -0,0 +1,13 @@ +import {inject} from '@loopback/core'; +import {DefaultCrudRepository} from '@loopback/repository'; +import {DbDataSource} from '../datasources'; +import {CustomerInheritance} from '../models'; + +export class CustomerInheritanceRepository extends DefaultCrudRepository< + CustomerInheritance, + typeof CustomerInheritance.prototype.id +> { + constructor(@inject('datasources.db') dataSource: DbDataSource) { + super(CustomerInheritance, dataSource); + } +} diff --git a/packages/cli/test/fixtures/relation/repositories/customer.repository.ts b/packages/cli/test/fixtures/relation/repositories/customer.repository.ts index 817632e38973..c7222bfbb25c 100644 --- a/packages/cli/test/fixtures/relation/repositories/customer.repository.ts +++ b/packages/cli/test/fixtures/relation/repositories/customer.repository.ts @@ -1,7 +1,7 @@ +import {inject} from '@loopback/core'; import {DefaultCrudRepository} from '@loopback/repository'; -import {Customer} from '../models'; import {DbDataSource} from '../datasources'; -import {inject} from '@loopback/core'; +import {Customer} from '../models'; export class CustomerRepository extends DefaultCrudRepository< Customer, diff --git a/packages/cli/test/fixtures/relation/repositories/no-key.repository.ts b/packages/cli/test/fixtures/relation/repositories/order-inhe.repository.ts similarity index 56% rename from packages/cli/test/fixtures/relation/repositories/no-key.repository.ts rename to packages/cli/test/fixtures/relation/repositories/order-inhe.repository.ts index 1cb215324402..1c7a3e33ac56 100644 --- a/packages/cli/test/fixtures/relation/repositories/no-key.repository.ts +++ b/packages/cli/test/fixtures/relation/repositories/order-inhe.repository.ts @@ -1,13 +1,12 @@ +import {inject} from '@loopback/core'; import {DefaultCrudRepository} from '@loopback/repository'; -import {NoKey} from '../models'; import {DbDataSource} from '../datasources'; -import {inject} from '@loopback/core'; -export class NoKeyRepository extends DefaultCrudRepository< - NoKey, - typeof NoKey.prototype.id +export class OrderInheritanceRepository extends DefaultCrudRepository< + OrderInheritance, + typeof OrderInheritance.prototype.id > { constructor(@inject('datasources.db') dataSource: DbDataSource) { - super(NoKey, dataSource); + super(OrderInheritance, dataSource); } } diff --git a/packages/cli/test/integration/generators/controller.integration.js b/packages/cli/test/integration/generators/controller.integration.js index 685c3016ab94..a7cc8d3233c7 100644 --- a/packages/cli/test/integration/generators/controller.integration.js +++ b/packages/cli/test/integration/generators/controller.integration.js @@ -254,32 +254,11 @@ function checkRestCrudContents(options) { * @param {string} restUrl The base URL that should've been generated */ function checkRestPaths(restUrl) { - assert.fileContent( - filePath, - new RegExp(/@post\('/.source + restUrl + /', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@get\('/.source + restUrl + /\/count', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@get\('/.source + restUrl + /', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@patch\('/.source + restUrl + /', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@get\('/.source + restUrl + /\/{id}', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@patch\('/.source + restUrl + /\/{id}', {/.source), - ); - assert.fileContent( - filePath, - new RegExp(/@del\('/.source + restUrl + /\/{id}', {/.source), - ); + assert.fileContent(filePath, `@post('${restUrl}')`); + assert.fileContent(filePath, `@get('${restUrl}/count')`); + assert.fileContent(filePath, `@get('${restUrl}')`); + assert.fileContent(filePath, `@patch('${restUrl}')`); + assert.fileContent(filePath, `@get('${restUrl}/{id}')`); + assert.fileContent(filePath, `@patch('${restUrl}/{id}')`); + assert.fileContent(filePath, `@del('${restUrl}/{id}')`); } diff --git a/packages/cli/test/integration/generators/relation.belongs-to.integration.js b/packages/cli/test/integration/generators/relation.belongs-to.integration.js index 4b476635c65d..684b37bcab7a 100644 --- a/packages/cli/test/integration/generators/relation.belongs-to.integration.js +++ b/packages/cli/test/integration/generators/relation.belongs-to.integration.js @@ -23,36 +23,23 @@ const sandbox = new TestSandbox(path.resolve(__dirname, '../.sandbox')); const sourceFileName = 'order.model.ts'; const controllerFileName = 'order-customer.controller.ts'; const repositoryFileName = 'order.repository.ts'; +// speed up tests by avoiding reading docs +const options = { + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', +}; describe('lb4 relation', /** @this {Mocha.Suite} */ function () { this.timeout(30000); - it("rejects relation when destination model doesn't have primary Key", async () => { - await sandbox.reset(); - const prompt = { - relationType: 'belongsTo', - sourceModel: 'Customer', - destinationModel: 'NoKey', - }; - - return expect( - testUtils - .executeGenerator(generator) - .inDir(sandbox.path, () => - testUtils.givenLBProject(sandbox.path, { - additionalFiles: SANDBOX_FILES, - }), - ) - .withPrompts(prompt), - ).to.be.rejectedWith(/Target model primary key does not exist/); - }); - it('rejects relation when models does not exist', async () => { await sandbox.reset(); const prompt = { relationType: 'belongsTo', sourceModel: 'Customer', - destinationModel: 'NoKey', + destinationModel: 'NotExistModel', }; return expect( @@ -136,6 +123,7 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { ], }), ) + .withOptions(options) .withPrompts(promptList[0]); const sourceFilePath = path.join( @@ -175,6 +163,7 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -222,6 +211,7 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -281,6 +271,7 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); diff --git a/packages/cli/test/integration/generators/relation.has-many-through.integration.js b/packages/cli/test/integration/generators/relation.has-many-through.integration.js index 23f413d1bf7c..a4a88285a015 100644 --- a/packages/cli/test/integration/generators/relation.has-many-through.integration.js +++ b/packages/cli/test/integration/generators/relation.has-many-through.integration.js @@ -25,6 +25,13 @@ const sourceFileName = 'doctor.model.ts'; const throughFileName = 'appointment.model.ts'; const controllerFileName = 'doctor-patient.controller.ts'; const repositoryFileName = 'doctor.repository.ts'; +// speed up tests by avoiding reading docs +const options = { + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', +}; describe('lb4 relation HasManyThrough', /** @this {Mocha.Suite} */ function () { this.timeout(30000); @@ -116,6 +123,7 @@ describe('lb4 relation HasManyThrough', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -181,6 +189,7 @@ describe('lb4 relation HasManyThrough', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -237,6 +246,7 @@ describe('lb4 relation HasManyThrough', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -287,6 +297,7 @@ describe('lb4 relation HasManyThrough', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); diff --git a/packages/cli/test/integration/generators/relation.has-many.integration.js b/packages/cli/test/integration/generators/relation.has-many.integration.js index 6fd8fbac365f..7e8ecf1386b4 100644 --- a/packages/cli/test/integration/generators/relation.has-many.integration.js +++ b/packages/cli/test/integration/generators/relation.has-many.integration.js @@ -25,6 +25,13 @@ const sourceFileName = 'customer.model.ts'; const targetFileName = 'order.model.ts'; const controllerFileName = 'customer-order.controller.ts'; const repositoryFileName = 'customer.repository.ts'; +// speed up tests by avoiding reading docs +const options = { + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', +}; describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { this.timeout(30000); @@ -74,6 +81,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { ], }), ) + .withOptions(options) .withPrompts(prompt), ).to.be.rejectedWith( /relational property orders already exist in the model Customer/, @@ -104,6 +112,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { ], }), ) + .withOptions(options) .withPrompts(prompt), ).to.be.rejectedWith( `relation myCustomer already exists in the repository OrderRepository.`, @@ -178,6 +187,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -227,6 +237,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -281,6 +292,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -329,6 +341,7 @@ describe('lb4 relation HasMany', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); diff --git a/packages/cli/test/integration/generators/relation.has-one.integration.js b/packages/cli/test/integration/generators/relation.has-one.integration.js index 7047c535f03e..5d3c0aa03097 100644 --- a/packages/cli/test/integration/generators/relation.has-one.integration.js +++ b/packages/cli/test/integration/generators/relation.has-one.integration.js @@ -25,6 +25,13 @@ const sourceFileName = 'customer.model.ts'; const targetFileName = 'address.model.ts'; const controllerFileName = 'customer-address.controller.ts'; const repositoryFileName = 'customer.repository.ts'; +// speed up tests by avoiding reading docs +const options = { + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', +}; describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { this.timeout(30000); @@ -74,6 +81,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { ], }), ) + .withOptions(options) .withPrompts(prompt), ).to.be.rejectedWith( /relational property address already exist in the model Customer/, @@ -104,6 +112,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { ], }), ) + .withOptions(options) .withPrompts(prompt), ).to.be.rejectedWith( `relation myCustomer already exists in the repository AddressRepository.`, @@ -178,6 +187,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -227,6 +237,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -281,6 +292,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); @@ -336,6 +348,7 @@ describe('lb4 relation HasOne', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions(options) .withPrompts(multiItemPrompt); }); diff --git a/packages/cli/test/integration/generators/relation.integration.js b/packages/cli/test/integration/generators/relation.integration.js index 2b8a5a5d85ae..51e74d0fc61c 100644 --- a/packages/cli/test/integration/generators/relation.integration.js +++ b/packages/cli/test/integration/generators/relation.integration.js @@ -129,6 +129,112 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { }); }); + context( + 'Specify primary key name and type on the source and target model', + () => { + const promptArray = [ + { + relationType: 'hasMany', + sourceModel: 'Customer', + destinationModel: 'Order', + }, + { + relationType: 'hasMany', + sourceModel: 'CustomerInheritance', + destinationModel: 'OrderInheritance', + sourceModelPrimaryKeyType: 'string', + destinationModelPrimaryKeyType: 'string', + }, + { + relationType: 'hasMany', + sourceModel: 'CustomerInheritance', + destinationModel: 'OrderInheritance', + sourceModelPrimaryKey: 'sid', + sourceModelPrimaryKeyType: 'string', + destinationModelPrimaryKeyType: 'string', + destinationModelPrimaryKey: 'tid', + }, + ]; + + it( + 'generates default pk name and type for controller' + + JSON.stringify(promptArray[0]), + async () => { + await sandbox.reset(); + await testUtils + .executeGenerator(generator) + .inDir(sandbox.path, () => + testUtils.givenLBProject(sandbox.path, { + additionalFiles: SANDBOX_FILES, + }), + ) + .withPrompts(promptArray[0]); + + const controllerFileName = 'customer-order.controller.ts'; + const controllerFilePath = path.join( + sandbox.path, + CONTROLLER_PATH, + controllerFileName, + ); + + assert.file(controllerFilePath); + expectFileToMatchSnapshot(controllerFilePath); + }, + ); + + it( + 'generates partially specified pk name and type for controller' + + JSON.stringify(promptArray[1]), + async () => { + await sandbox.reset(); + await testUtils + .executeGenerator(generator) + .inDir(sandbox.path, () => + testUtils.givenLBProject(sandbox.path, { + additionalFiles: SANDBOX_FILES, + }), + ) + .withPrompts(promptArray[1]); + + const controllerFileName = + 'customer-inheritance-order-inheritance.controller.ts'; + const sourceFilePath = path.join( + sandbox.path, + CONTROLLER_PATH, + controllerFileName, + ); + assert.file(sourceFilePath); + expectFileToMatchSnapshot(sourceFilePath); + }, + ); + it( + 'generates fully specified pk name and type for controller' + + JSON.stringify(promptArray[2]), + async () => { + await sandbox.reset(); + await testUtils + .executeGenerator(generator) + .inDir(sandbox.path, () => + testUtils.givenLBProject(sandbox.path, { + additionalFiles: SANDBOX_FILES, + }), + ) + .withPrompts(promptArray[2]); + + const controllerFileName = + 'customer-inheritance-order-inheritance.controller.ts'; + const sourceFilePath = path.join( + sandbox.path, + CONTROLLER_PATH, + controllerFileName, + ); + assert.file(sourceFilePath); + expectFileToMatchSnapshot(sourceFilePath); + }, + ); + }, + ); + context('add new controller to existing index file', () => { it('check if the controller exported to index file ', async () => { const prompt = { @@ -144,6 +250,12 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { additionalFiles: SANDBOX_FILES, }), ) + .withOptions({ + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', + }) .withPrompts(prompt); const expectedControllerIndexFile = path.join( sandbox.path, @@ -164,6 +276,10 @@ describe('lb4 relation', /** @this {Mocha.Suite} */ function () { relationType: 'belongsTo', sourceModel: 'Order', destinationModel: 'Customer', + sourceModelPrimaryKey: 'id', + sourceModelPrimaryKeyType: 'number', + destinationModelPrimaryKey: 'id', + destinationModelPrimaryKeyType: 'number', }; await testUtils diff --git a/packages/context/CHANGELOG.md b/packages/context/CHANGELOG.md index b19e92f69620..7f9191353bb7 100644 --- a/packages/context/CHANGELOG.md +++ b/packages/context/CHANGELOG.md @@ -3,6 +3,22 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.14.0](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.13.2...@loopback/context@3.14.0) (2021-01-21) + + +### Bug Fixes + +* **context:** make sure subclass is used for create binding from class ([befbbcf](https://github.com/strongloop/loopback-next/commit/befbbcf04bb66b1764291139c2bdd67a869d62d4)) + + +### Features + +* **context:** allow asProxyWithInterceptors to be used for non-class bindings ([ebec122](https://github.com/strongloop/loopback-next/commit/ebec1228af2ef6afc2377c7a293bab9f698fd4a8)) + + + + + ## [3.13.2](https://github.com/strongloop/loopback-next/compare/@loopback/context@3.13.1...@loopback/context@3.13.2) (2020-12-07) **Note:** Version bump only for package @loopback/context diff --git a/packages/context/package-lock.json b/packages/context/package-lock.json index a6ecf618802c..aeaa6fc92044 100644 --- a/packages/context/package-lock.json +++ b/packages/context/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/context", - "version": "3.13.2", + "version": "3.14.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -42,9 +42,9 @@ } }, "hyperid": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.0.5.tgz", - "integrity": "sha512-kg0+DOmWo3HSFvWWMCQJJhzEB4kg5z/83l4eFDaeAMJ5E2zbQzTEewAmVtOqdRElU9yRFJhCOuegUk0M6RZfiw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hyperid/-/hyperid-2.1.0.tgz", + "integrity": "sha512-cSakhxbUsaIuqjfvvcUuvl/Fl342J65xgLLYrYxSSr9qmJ/EJK+S8crS6mIlQd/a7i+Pe4D0MgSrtZPLze+aCw==", "requires": { "uuid": "^3.4.0", "uuid-parse": "^1.1.0" @@ -89,9 +89,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "uuid": { - "version": "8.3.1", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.1.tgz", - "integrity": "sha512-FOmRr+FmWEIG8uhZv6C2bTgEVXsHk08kE7mPlrBbEe+c3r9pjceVPgupIfNIhc4yx55H69OXANrUaSuu9eInKg==" + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" }, "uuid-parse": { "version": "1.1.0", diff --git a/packages/context/package.json b/packages/context/package.json index d77adeac9977..ee21aadc8211 100644 --- a/packages/context/package.json +++ b/packages/context/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/context", - "version": "3.13.2", + "version": "3.14.0", "description": "Facilities to manage artifacts and their dependencies in your Node.js applications. The module exposes TypeScript/JavaScript APIs and decorators to register artifacts, declare dependencies, and resolve artifacts by keys. It also serves as an IoC container to support dependency injection", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -23,18 +23,18 @@ "access": "public" }, "dependencies": { - "@loopback/metadata": "^3.0.5", + "@loopback/metadata": "^3.1.0", "@types/debug": "^4.1.5", "debug": "^4.3.1", - "hyperid": "^2.0.5", + "hyperid": "^2.1.0", "p-event": "^4.2.0", "tslib": "^2.0.3", - "uuid": "^8.3.1" + "uuid": "^8.3.2" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/bluebird": "^3.5.33", "@types/node": "^10.17.35", "@types/uuid": "^8.3.0", diff --git a/packages/context/src/__tests__/acceptance/interception-proxy.acceptance.ts b/packages/context/src/__tests__/acceptance/interception-proxy.acceptance.ts index 707e9979ac40..e31e6dcdef72 100644 --- a/packages/context/src/__tests__/acceptance/interception-proxy.acceptance.ts +++ b/packages/context/src/__tests__/acceptance/interception-proxy.acceptance.ts @@ -14,6 +14,7 @@ import { ResolutionSession, ValueOrPromise, } from '../..'; +import {Provider} from '../../provider'; describe('Interception proxy', () => { let ctx: Context; @@ -163,15 +164,70 @@ describe('Interception proxy', () => { ]); }); - it('reports error when asProxyWithInterceptors is set for non-Class binding', async () => { + it('supports asProxyWithInterceptors resolution option for dynamic value', async () => { + // Apply `log` to all methods on the class + @intercept(log) + class MyController { + // Apply multiple interceptors. The order of `log` will be preserved as it + // explicitly listed at method level + @intercept(convertName, log) + async greet(name: string) { + return `Hello, ${name}`; + } + } + + ctx.bind('my-controller').toDynamicValue(() => new MyController()); + const proxy = await ctx.get('my-controller', { + asProxyWithInterceptors: true, + }); + const msg = await proxy!.greet('John'); + expect(msg).to.equal('Hello, JOHN'); + expect(events).to.eql([ + 'convertName: before-greet', + 'log: [my-controller] before-greet', + 'log: [my-controller] after-greet', + 'convertName: after-greet', + ]); + }); + + it('supports asProxyWithInterceptors resolution option for provider', async () => { + // Apply `log` to all methods on the class + @intercept(log) + class MyController { + // Apply multiple interceptors. The order of `log` will be preserved as it + // explicitly listed at method level + @intercept(convertName, log) + async greet(name: string) { + return `Hello, ${name}`; + } + } + + class MyControllerProvider implements Provider { + value() { + return new MyController(); + } + } + + ctx.bind('my-controller').toProvider(MyControllerProvider); + const proxy = await ctx.get('my-controller', { + asProxyWithInterceptors: true, + }); + const msg = await proxy!.greet('John'); + expect(msg).to.equal('Hello, JOHN'); + expect(events).to.eql([ + 'convertName: before-greet', + 'log: [my-controller] before-greet', + 'log: [my-controller] after-greet', + 'convertName: after-greet', + ]); + }); + + it('allows asProxyWithInterceptors for non-object value', async () => { ctx.bind('my-value').toDynamicValue(() => 'my-value'); - await expect( - ctx.get('my-value', { - asProxyWithInterceptors: true, - }), - ).to.be.rejectedWith( - `Binding 'my-value' (DynamicValue) does not support 'asProxyWithInterceptors'`, - ); + const value = await ctx.get('my-value', { + asProxyWithInterceptors: true, + }); + expect(value).to.eql('my-value'); }); it('supports asProxyWithInterceptors resolution option for @inject', async () => { diff --git a/packages/context/src/__tests__/unit/binding-decorator.unit.ts b/packages/context/src/__tests__/unit/binding-decorator.unit.ts index 0dd33c62dc73..960dbc7efdcc 100644 --- a/packages/context/src/__tests__/unit/binding-decorator.unit.ts +++ b/packages/context/src/__tests__/unit/binding-decorator.unit.ts @@ -15,6 +15,7 @@ import { injectable as injectableDecorator, Provider, } from '../..'; +import {createBindingFromClass} from '../../binding-inspector'; function testBindingDecorator( injectable: typeof injectableDecorator, @@ -52,6 +53,20 @@ function testBindingDecorator( expect(inspectScopeAndTags(MySubController)).to.eql(expectedScopeAndTags); }); + it('allows subclass to not have @injectable', () => { + const spec = { + tags: ['rest'], + scope: BindingScope.SINGLETON, + }; + + @injectable(spec) + class MyController {} + + class MySubController extends MyController {} + const binding = createBindingFromClass(MySubController); + expect(binding.source?.value).to.eql(MySubController); + }); + it('ignores `name` and `key` from base class', () => { const spec = { tags: [ diff --git a/packages/context/src/binding-inspector.ts b/packages/context/src/binding-inspector.ts index 42db3df00983..fff7f2647eb1 100644 --- a/packages/context/src/binding-inspector.ts +++ b/packages/context/src/binding-inspector.ts @@ -174,7 +174,11 @@ export function bindingTemplateFor( ): BindingTemplate { const spec = getBindingMetadata(cls); debug('class %s has binding metadata', cls.name, spec); - const templateFunctions = spec?.templates ?? [asClassOrProvider(cls)]; + const templateFunctions = spec?.templates ?? []; + if (spec?.target !== cls) { + // Make sure the subclass is used as the binding source + templateFunctions.push(asClassOrProvider(cls) as BindingTemplate); + } return function applyBindingTemplatesFromMetadata(binding) { for (const t of templateFunctions) { binding.apply(t); diff --git a/packages/context/src/binding.ts b/packages/context/src/binding.ts index 8c37c0b2bedd..91ed0b6e3e09 100644 --- a/packages/context/src/binding.ts +++ b/packages/context/src/binding.ts @@ -681,14 +681,6 @@ export class Binding extends EventEmitter { // Clear the cache this._clearCache(); this._getValue = resolutionCtx => { - if ( - resolutionCtx.options.asProxyWithInterceptors && - this._source?.type !== BindingType.CLASS - ) { - throw new Error( - `Binding '${this.key}' (${this._source?.type}) does not support 'asProxyWithInterceptors'`, - ); - } return getValue(resolutionCtx); }; this.emitChangedEvent('value'); @@ -736,7 +728,9 @@ export class Binding extends EventEmitter { type: BindingType.CONSTANT, value, }; - this._setValueGetter(() => value); + this._setValueGetter(resolutionCtx => { + return Binding.valueOrProxy(resolutionCtx, value); + }); return this; } @@ -776,10 +770,25 @@ export class Binding extends EventEmitter { } else { factoryFn = factory; } - this._setValueGetter(resolutionCtx => factoryFn(resolutionCtx)); + this._setValueGetter(resolutionCtx => { + const value = factoryFn(resolutionCtx); + return Binding.valueOrProxy(resolutionCtx, value); + }); return this; } + private static valueOrProxy( + resolutionCtx: ResolutionContext, + value: ValueOrPromise, + ) { + if (!resolutionCtx.options.asProxyWithInterceptors) return value; + return createInterceptionProxyFromInstance( + value, + resolutionCtx.context, + resolutionCtx.options.session, + ); + } + /** * Bind the key to a value computed by a Provider. * @@ -805,13 +814,14 @@ export class Binding extends EventEmitter { type: BindingType.PROVIDER, value: providerClass, }; - this._setValueGetter(({context, options}) => { + this._setValueGetter(resolutionCtx => { const providerOrPromise = instantiateClass>( providerClass, - context, - options.session, + resolutionCtx.context, + resolutionCtx.options.session, ); - return transformValueOrPromise(providerOrPromise, p => p.value()); + const value = transformValueOrPromise(providerOrPromise, p => p.value()); + return Binding.valueOrProxy(resolutionCtx, value); }); return this; } @@ -832,14 +842,13 @@ export class Binding extends EventEmitter { type: BindingType.CLASS, value: ctor, }; - this._setValueGetter(({context, options}) => { - const instOrPromise = instantiateClass(ctor, context, options.session); - if (!options.asProxyWithInterceptors) return instOrPromise; - return createInterceptionProxyFromInstance( - instOrPromise, - context, - options.session, + this._setValueGetter(resolutionCtx => { + const value = instantiateClass( + ctor, + resolutionCtx.context, + resolutionCtx.options.session, ); + return Binding.valueOrProxy(resolutionCtx, value); }); return this; } @@ -1050,7 +1059,7 @@ function createInterceptionProxyFromInstance( session?: ResolutionSession, ) { return transformValueOrPromise(instOrPromise, inst => { - if (typeof inst !== 'object') return inst; + if (typeof inst !== 'object' || inst == null) return inst; return (createProxyWithInterceptors( // Cast inst from `T` to `object` (inst as unknown) as object, diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md index 33f80ead8a00..c2501b34ed95 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.14.0](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.13.1...@loopback/core@2.14.0) (2021-01-21) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + ## [2.13.1](https://github.com/strongloop/loopback-next/compare/@loopback/core@2.13.0...@loopback/core@2.13.1) (2020-12-07) diff --git a/packages/core/package-lock.json b/packages/core/package-lock.json index 4ac8b1433ccf..d0bcb61bdf65 100644 --- a/packages/core/package-lock.json +++ b/packages/core/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/core", - "version": "2.13.1", + "version": "2.14.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/core/package.json b/packages/core/package.json index a53907a0c9c6..2fb2a085a225 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/core", - "version": "2.13.1", + "version": "2.14.0", "description": "Define and implement core constructs such as Application and Component", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,14 +24,14 @@ "access": "public" }, "dependencies": { - "@loopback/context": "^3.13.2", + "@loopback/context": "^3.14.0", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35" }, diff --git a/packages/core/src/__tests__/acceptance/application.acceptance.ts b/packages/core/src/__tests__/acceptance/application.acceptance.ts index dba3166b19ff..9d104306a0fd 100644 --- a/packages/core/src/__tests__/acceptance/application.acceptance.ts +++ b/packages/core/src/__tests__/acceptance/application.acceptance.ts @@ -87,7 +87,6 @@ describe('Bootstrapping the application', () => { it('injects component dependencies', () => { class ConfigComponent { providers = { - // eslint-disable-next-line @typescript-eslint/no-unused-vars greetBriefly: class HelloProvider { value() { return true; diff --git a/packages/eslint-config/CHANGELOG.md b/packages/eslint-config/CHANGELOG.md index 42e70698211d..026eb79c240e 100644 --- a/packages/eslint-config/CHANGELOG.md +++ b/packages/eslint-config/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [10.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/eslint-config@10.0.4...@loopback/eslint-config@10.0.5) (2021-01-21) + +**Note:** Version bump only for package @loopback/eslint-config + + + + + ## [10.0.4](https://github.com/strongloop/loopback-next/compare/@loopback/eslint-config@10.0.3...@loopback/eslint-config@10.0.4) (2020-12-07) **Note:** Version bump only for package @loopback/eslint-config diff --git a/packages/eslint-config/package-lock.json b/packages/eslint-config/package-lock.json index ea411a593b90..65a5b4f05ea7 100644 --- a/packages/eslint-config/package-lock.json +++ b/packages/eslint-config/package-lock.json @@ -1,96 +1,97 @@ { "name": "@loopback/eslint-config", - "version": "10.0.4", + "version": "10.0.5", "lockfileVersion": 1, "requires": true, "dependencies": { "@nodelib/fs.scandir": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz", - "integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz", + "integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==", "requires": { - "@nodelib/fs.stat": "2.0.3", + "@nodelib/fs.stat": "2.0.4", "run-parallel": "^1.1.9" } }, "@nodelib/fs.stat": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz", - "integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA==" + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz", + "integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q==" }, "@nodelib/fs.walk": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz", - "integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==", + "version": "1.2.6", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz", + "integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==", "requires": { - "@nodelib/fs.scandir": "2.1.3", + "@nodelib/fs.scandir": "2.1.4", "fastq": "^1.6.0" } }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" }, "@typescript-eslint/eslint-plugin": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.9.0.tgz", - "integrity": "sha512-WrVzGMzzCrgrpnQMQm4Tnf+dk+wdl/YbgIgd5hKGa2P+lnJ2MON+nQnbwgbxtN9QDLi8HO+JAq0/krMnjQK6Cw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.14.0.tgz", + "integrity": "sha512-IJ5e2W7uFNfg4qh9eHkHRUCbgZ8VKtGwD07kannJvM5t/GU8P8+24NX8gi3Hf5jST5oWPY8kyV1s/WtfiZ4+Ww==", "requires": { - "@typescript-eslint/experimental-utils": "4.9.0", - "@typescript-eslint/scope-manager": "4.9.0", + "@typescript-eslint/experimental-utils": "4.14.0", + "@typescript-eslint/scope-manager": "4.14.0", "debug": "^4.1.1", "functional-red-black-tree": "^1.0.1", + "lodash": "^4.17.15", "regexpp": "^3.0.0", "semver": "^7.3.2", "tsutils": "^3.17.1" } }, "@typescript-eslint/experimental-utils": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.9.0.tgz", - "integrity": "sha512-0p8GnDWB3R2oGhmRXlEnCvYOtaBCijtA5uBfH5GxQKsukdSQyI4opC4NGTUb88CagsoNQ4rb/hId2JuMbzWKFQ==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.14.0.tgz", + "integrity": "sha512-6i6eAoiPlXMKRbXzvoQD5Yn9L7k9ezzGRvzC/x1V3650rUk3c3AOjQyGYyF9BDxQQDK2ElmKOZRD0CbtdkMzQQ==", "requires": { "@types/json-schema": "^7.0.3", - "@typescript-eslint/scope-manager": "4.9.0", - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/typescript-estree": "4.9.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "eslint-scope": "^5.0.0", "eslint-utils": "^2.0.0" } }, "@typescript-eslint/parser": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.9.0.tgz", - "integrity": "sha512-QRSDAV8tGZoQye/ogp28ypb8qpsZPV6FOLD+tbN4ohKUWHD2n/u0Q2tIBnCsGwQCiD94RdtLkcqpdK4vKcLCCw==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.14.0.tgz", + "integrity": "sha512-sUDeuCjBU+ZF3Lzw0hphTyScmDDJ5QVkyE21pRoBo8iDl7WBtVFS+WDN3blY1CH3SBt7EmYCw6wfmJjF0l/uYg==", "requires": { - "@typescript-eslint/scope-manager": "4.9.0", - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/typescript-estree": "4.9.0", + "@typescript-eslint/scope-manager": "4.14.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/typescript-estree": "4.14.0", "debug": "^4.1.1" } }, "@typescript-eslint/scope-manager": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.9.0.tgz", - "integrity": "sha512-q/81jtmcDtMRE+nfFt5pWqO0R41k46gpVLnuefqVOXl4QV1GdQoBWfk5REcipoJNQH9+F5l+dwa9Li5fbALjzg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.14.0.tgz", + "integrity": "sha512-/J+LlRMdbPh4RdL4hfP1eCwHN5bAhFAGOTsvE6SxsrM/47XQiPSgF5MDgLyp/i9kbZV9Lx80DW0OpPkzL+uf8Q==", "requires": { - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/visitor-keys": "4.9.0" + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0" } }, "@typescript-eslint/types": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.9.0.tgz", - "integrity": "sha512-luzLKmowfiM/IoJL/rus1K9iZpSJK6GlOS/1ezKplb7MkORt2dDcfi8g9B0bsF6JoRGhqn0D3Va55b+vredFHA==" + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.14.0.tgz", + "integrity": "sha512-VsQE4VvpldHrTFuVPY1ZnHn/Txw6cZGjL48e+iBxTi2ksa9DmebKjAeFmTVAYoSkTk7gjA7UqJ7pIsyifTsI4A==" }, "@typescript-eslint/typescript-estree": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.9.0.tgz", - "integrity": "sha512-rmDR++PGrIyQzAtt3pPcmKWLr7MA+u/Cmq9b/rON3//t5WofNR4m/Ybft2vOLj0WtUzjn018ekHjTsnIyBsQug==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.14.0.tgz", + "integrity": "sha512-wRjZ5qLao+bvS2F7pX4qi2oLcOONIB+ru8RGBieDptq/SudYwshveORwCVU4/yMAd4GK7Fsf8Uq1tjV838erag==", "requires": { - "@typescript-eslint/types": "4.9.0", - "@typescript-eslint/visitor-keys": "4.9.0", + "@typescript-eslint/types": "4.14.0", + "@typescript-eslint/visitor-keys": "4.14.0", "debug": "^4.1.1", "globby": "^11.0.1", "is-glob": "^4.0.1", @@ -100,11 +101,11 @@ } }, "@typescript-eslint/visitor-keys": { - "version": "4.9.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.9.0.tgz", - "integrity": "sha512-sV45zfdRqQo1A97pOSx3fsjR+3blmwtdCt8LDrXgCX36v4Vmz4KHrhpV6Fo2cRdXmyumxx11AHw0pNJqCNpDyg==", + "version": "4.14.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.14.0.tgz", + "integrity": "sha512-MeHHzUyRI50DuiPgV9+LxcM52FCJFYjJiWHtXlbyC27b80mfOwKeiKI+MHOTEpcpfmoPFm/vvQS88bYIx6PZTA==", "requires": { - "@typescript-eslint/types": "4.9.0", + "@typescript-eslint/types": "4.14.0", "eslint-visitor-keys": "^2.0.0" } }, @@ -138,9 +139,9 @@ } }, "eslint-config-prettier": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.0.0.tgz", - "integrity": "sha512-8Y8lGLVPPZdaNA7JXqnvETVC7IiVRgAP6afQu9gOQRn90YY3otMNh+x7Vr2vMePQntF+5erdSUBqSzCmU/AxaQ==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-7.2.0.tgz", + "integrity": "sha512-rV4Qu0C3nfJKPOAhFujFxB7RMP+URFyQqqOZW9DMRD7ZDTFyjaIlETU3xzHELt++4ugC0+Jm084HQYkkJe+Ivg==" }, "eslint-plugin-eslint-plugin": { "version": "2.3.0", @@ -206,9 +207,9 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==" }, "fast-glob": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.4.tgz", - "integrity": "sha512-kr/Oo6PX51265qeuCYsyGypiO5uJFgBS0jksyG7FUeCyQzNwYnzrNIMR1NXfkZXsMYXYLRAHgISHBz8gQcxKHQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.5.tgz", + "integrity": "sha512-2DtFcgT68wiTTiwZ2hNdJfcHNke9XOfnwmBRWXhmeKM8rF0TGwmC/Qto3S7RoZKp5cilZbxzO5iTNTQsJ+EeDg==", "requires": { "@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.walk": "^1.2.3", @@ -219,9 +220,9 @@ } }, "fastq": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.9.0.tgz", - "integrity": "sha512-i7FVWL8HhVY+CTkwFxkN2mk3h+787ixS5S63eb78diVRc1MCssarHq3W5cj0av7YDSwmaV928RNag+U1etRQ7w==", + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.10.0.tgz", + "integrity": "sha512-NL2Qc5L3iQEsyYzweq7qfgy5OtXCmGzGvhElGEd/SoFWEMOEczNh5s5ocaF01HDetxz+p8ecjNPA6cZxxIHmzA==", "requires": { "reusify": "^1.0.4" } @@ -248,9 +249,9 @@ } }, "globby": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.1.tgz", - "integrity": "sha512-iH9RmgwCmUJHi2z5o2l3eTtGBtXek1OYlHrbcxOYugyHLmAsZrPj43OtHThd62Buh/Vv6VyCBD2bdyWcGNQqoQ==", + "version": "11.0.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.0.2.tgz", + "integrity": "sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og==", "requires": { "array-union": "^2.1.0", "dir-glob": "^3.0.1", @@ -372,9 +373,9 @@ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" }, "tsutils": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.17.1.tgz", - "integrity": "sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g==", + "version": "3.19.1", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.19.1.tgz", + "integrity": "sha512-GEdoBf5XI324lu7ycad7s6laADfnAqCw6wLGI+knxvw9vsIYBaJfYdmeCEG3FMMUiSm3OGgNb+m6utsWf5h9Vw==", "requires": { "tslib": "^1.8.1" } diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index 77162d422def..d6cde9b5f5a9 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -1,9 +1,9 @@ { "name": "@loopback/eslint-config", - "version": "10.0.4", + "version": "10.0.5", "description": "ESLint configuration for LoopBack projects", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "main": "eslintrc.js", "author": "IBM Corp.", @@ -13,12 +13,12 @@ "access": "public" }, "peerDependencies": { - "eslint": "^7.15.0" + "eslint": "^7.18.0" }, "dependencies": { - "@typescript-eslint/eslint-plugin": "^4.9.0", - "@typescript-eslint/parser": "^4.9.0", - "eslint-config-prettier": "^7.0.0", + "@typescript-eslint/eslint-plugin": "^4.14.0", + "@typescript-eslint/parser": "^4.14.0", + "eslint-config-prettier": "^7.2.0", "eslint-plugin-eslint-plugin": "^2.3.0", "eslint-plugin-mocha": "^8.0.0" }, diff --git a/packages/express/CHANGELOG.md b/packages/express/CHANGELOG.md index 45d1a05b5e1b..e95215646cf8 100644 --- a/packages/express/CHANGELOG.md +++ b/packages/express/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/express@3.1.1...@loopback/express@3.1.2) (2021-01-21) + +**Note:** Version bump only for package @loopback/express + + + + + ## [3.1.1](https://github.com/strongloop/loopback-next/compare/@loopback/express@3.1.0...@loopback/express@3.1.1) (2020-12-07) **Note:** Version bump only for package @loopback/express diff --git a/packages/express/package-lock.json b/packages/express/package-lock.json index 7e25aceb832c..587737d820e7 100644 --- a/packages/express/package-lock.json +++ b/packages/express/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/express", - "version": "3.1.1", + "version": "3.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -42,31 +42,24 @@ "dev": true }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/http-errors": { @@ -75,15 +68,14 @@ "integrity": "sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==" }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==", - "dev": true + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/on-finished": { "version": "2.3.1", @@ -105,19 +97,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/toposort": { @@ -617,9 +602,9 @@ } }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true }, "unpipe": { diff --git a/packages/express/package.json b/packages/express/package.json index b17ca7884413..750fb1f546e9 100644 --- a/packages/express/package.json +++ b/packages/express/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/express", - "version": "3.1.1", + "version": "3.1.2", "description": "Integrate with Express and expose middleware infrastructure for sequence and interceptors", "main": "dist/index.js", "types": "dist/index.d.ts", @@ -9,7 +9,7 @@ "loopback" ], "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -31,13 +31,13 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/http-server": "^2.3.3", + "@loopback/http-server": "^2.3.4", "@types/body-parser": "^1.19.0", - "@types/express": "^4.17.9", - "@types/express-serve-static-core": "^4.17.14", + "@types/express": "^4.17.11", + "@types/express-serve-static-core": "^4.17.18", "@types/http-errors": "^1.8.0", "body-parser": "^1.19.0", "debug": "^4.3.1", @@ -48,16 +48,16 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", "@types/on-finished": "^2.3.1", "@types/toposort": "^2.0.3", "http-errors": "^1.8.0", "source-map-support": "^0.5.19", - "typescript": "~4.1.2" + "typescript": "~4.1.3" }, "files": [ "README.md", diff --git a/packages/filter/CHANGELOG.md b/packages/filter/CHANGELOG.md index e35a1fc7aaf6..2a96d300c23e 100644 --- a/packages/filter/CHANGELOG.md +++ b/packages/filter/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [1.3.1](https://github.com/strongloop/loopback-next/compare/@loopback/filter@1.3.0...@loopback/filter@1.3.1) (2021-01-21) + +**Note:** Version bump only for package @loopback/filter + + + + + # [1.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/filter@1.2.1...@loopback/filter@1.3.0) (2020-12-07) diff --git a/packages/filter/package-lock.json b/packages/filter/package-lock.json index 77bb51725666..172a840185c6 100644 --- a/packages/filter/package-lock.json +++ b/packages/filter/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/filter", - "version": "1.3.0", + "version": "1.3.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -16,9 +16,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "typescript": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", - "integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==", "dev": true } } diff --git a/packages/filter/package.json b/packages/filter/package.json index 8a2d63f57adc..1961641bf53d 100644 --- a/packages/filter/package.json +++ b/packages/filter/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/filter", - "version": "1.3.0", + "version": "1.3.1", "description": "Utility typings and filters for LoopBack filters.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -35,9 +35,9 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35", - "typescript": "~4.1.2" + "typescript": "~4.1.3" } } diff --git a/packages/http-caching-proxy/CHANGELOG.md b/packages/http-caching-proxy/CHANGELOG.md index 99ee5d79ec6c..483e53ffa390 100644 --- a/packages/http-caching-proxy/CHANGELOG.md +++ b/packages/http-caching-proxy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.20](https://github.com/strongloop/loopback-next/compare/@loopback/http-caching-proxy@2.1.19...@loopback/http-caching-proxy@2.1.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/http-caching-proxy + + + + + ## [2.1.19](https://github.com/strongloop/loopback-next/compare/@loopback/http-caching-proxy@2.1.18...@loopback/http-caching-proxy@2.1.19) (2020-12-07) **Note:** Version bump only for package @loopback/http-caching-proxy diff --git a/packages/http-caching-proxy/package-lock.json b/packages/http-caching-proxy/package-lock.json index f5b8d3a61d68..9a38530775d2 100644 --- a/packages/http-caching-proxy/package-lock.json +++ b/packages/http-caching-proxy/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/http-caching-proxy", - "version": "2.1.19", + "version": "2.1.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/http-caching-proxy/package.json b/packages/http-caching-proxy/package.json index 3a3148a7ec5e..1243f959a193 100644 --- a/packages/http-caching-proxy/package.json +++ b/packages/http-caching-proxy/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/http-caching-proxy", - "version": "2.1.19", + "version": "2.1.20", "description": "A caching HTTP proxy for integration tests. NOT SUITABLE FOR PRODUCTION USE!", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -28,9 +28,9 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", "@types/rimraf": "^3.0.0", diff --git a/packages/http-server/CHANGELOG.md b/packages/http-server/CHANGELOG.md index d5cdb4708f6c..13a695a860ec 100644 --- a/packages/http-server/CHANGELOG.md +++ b/packages/http-server/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.3.4](https://github.com/strongloop/loopback-next/compare/@loopback/http-server@2.3.3...@loopback/http-server@2.3.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/http-server + + + + + ## [2.3.3](https://github.com/strongloop/loopback-next/compare/@loopback/http-server@2.3.2...@loopback/http-server@2.3.3) (2020-12-07) **Note:** Version bump only for package @loopback/http-server diff --git a/packages/http-server/package-lock.json b/packages/http-server/package-lock.json index c9999c860072..561eca8ca47b 100644 --- a/packages/http-server/package-lock.json +++ b/packages/http-server/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/http-server", - "version": "2.3.3", + "version": "2.3.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/http-server/package.json b/packages/http-server/package.json index 747d0eb975d9..573c2587137f 100644 --- a/packages/http-server/package.json +++ b/packages/http-server/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/http-server", - "version": "2.3.3", + "version": "2.3.4", "description": "A wrapper for creating HTTP/HTTPS servers", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -26,10 +26,10 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", "@types/stoppable": "^1.1.0" diff --git a/packages/metadata/CHANGELOG.md b/packages/metadata/CHANGELOG.md index e8548ef3f81e..cf46ca1ce006 100644 --- a/packages/metadata/CHANGELOG.md +++ b/packages/metadata/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.1.0](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@3.0.5...@loopback/metadata@3.1.0) (2021-01-21) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + ## [3.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/metadata@3.0.4...@loopback/metadata@3.0.5) (2020-12-07) **Note:** Version bump only for package @loopback/metadata diff --git a/packages/metadata/package-lock.json b/packages/metadata/package-lock.json index 28d32e142d42..05fbc98e55ba 100644 --- a/packages/metadata/package-lock.json +++ b/packages/metadata/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/metadata", - "version": "3.0.5", + "version": "3.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -11,9 +11,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { diff --git a/packages/metadata/package.json b/packages/metadata/package.json index 058bf3088bb3..0c946b51b686 100644 --- a/packages/metadata/package.json +++ b/packages/metadata/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/metadata", - "version": "3.0.5", + "version": "3.1.0", "description": "Utilities to help developers implement TypeScript decorators, define/merge metadata, and inspect metadata", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -29,11 +29,11 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", - "@types/lodash": "^4.14.165", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/packages/metadata/src/inspector.ts b/packages/metadata/src/inspector.ts index 20a116709881..76240ed19bc7 100644 --- a/packages/metadata/src/inspector.ts +++ b/packages/metadata/src/inspector.ts @@ -44,12 +44,10 @@ export class MetadataInspector { * Expose Reflector, which is a wrapper of `Reflect` and it uses `loopback` * as the namespace prefix for all metadata keys */ - // eslint-disable-next-line @typescript-eslint/naming-convention static readonly Reflector = Reflector; /** * Expose the reflector for TypeScript design-time metadata */ - // eslint-disable-next-line @typescript-eslint/naming-convention static readonly DesignTimeReflector = TSReflector; /** diff --git a/packages/model-api-builder/CHANGELOG.md b/packages/model-api-builder/CHANGELOG.md index f374e57dca8d..17a7b9f17ab2 100644 --- a/packages/model-api-builder/CHANGELOG.md +++ b/packages/model-api-builder/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.1.20](https://github.com/strongloop/loopback-next/compare/@loopback/model-api-builder@2.1.19...@loopback/model-api-builder@2.1.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/model-api-builder + + + + + ## [2.1.19](https://github.com/strongloop/loopback-next/compare/@loopback/model-api-builder@2.1.18...@loopback/model-api-builder@2.1.19) (2020-12-07) **Note:** Version bump only for package @loopback/model-api-builder diff --git a/packages/model-api-builder/package-lock.json b/packages/model-api-builder/package-lock.json index 47b162f0e8a3..6c268e434b63 100644 --- a/packages/model-api-builder/package-lock.json +++ b/packages/model-api-builder/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/model-api-builder", - "version": "2.1.19", + "version": "2.1.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/model-api-builder/package.json b/packages/model-api-builder/package.json index 974d8c2ae404..28862c27082e 100644 --- a/packages/model-api-builder/package.json +++ b/packages/model-api-builder/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/model-api-builder", - "version": "2.1.19", + "version": "2.1.20", "description": "Types and helpers for packages contributing Model API builders.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,16 +21,16 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0" + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0" }, "dependencies": { "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", "@types/node": "^10.17.35" }, "files": [ diff --git a/packages/monorepo/CHANGELOG.md b/packages/monorepo/CHANGELOG.md index 655dfacc70ef..3273d5e27dec 100644 --- a/packages/monorepo/CHANGELOG.md +++ b/packages/monorepo/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.1.3](https://github.com/strongloop/loopback-next/compare/@loopback/monorepo@0.1.2...@loopback/monorepo@0.1.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/monorepo + + + + + ## [0.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/monorepo@0.1.1...@loopback/monorepo@0.1.2) (2020-12-07) **Note:** Version bump only for package @loopback/monorepo diff --git a/packages/monorepo/package-lock.json b/packages/monorepo/package-lock.json index 746389362347..51ebc0abba22 100644 --- a/packages/monorepo/package-lock.json +++ b/packages/monorepo/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/monorepo", - "version": "0.1.2", + "version": "0.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -696,14 +696,14 @@ } }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "fs.realpath": { @@ -1027,13 +1027,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "kind-of": { @@ -1709,9 +1702,9 @@ } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unset-value": { "version": "1.0.0", diff --git a/packages/monorepo/package.json b/packages/monorepo/package.json index 01e14aea4c9b..757b84ac780e 100644 --- a/packages/monorepo/package.json +++ b/packages/monorepo/package.json @@ -6,9 +6,9 @@ "url": "https://github.com/strongloop/loopback-next.git", "directory": "packages/monorepo" }, - "version": "0.1.2", + "version": "0.1.3", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "main": "index.js", "author": "IBM Corp.", @@ -26,7 +26,7 @@ "@lerna/project": "^3.21.0", "cross-spawn": "^7.0.3", "debug": "^4.3.1", - "fs-extra": "^9.0.1" + "fs-extra": "^9.1.0" }, "bin": { "lb-run-lerna": "./lib/run-lerna.js", diff --git a/packages/openapi-spec-builder/CHANGELOG.md b/packages/openapi-spec-builder/CHANGELOG.md index 092525549e99..3e855c0bd5a6 100644 --- a/packages/openapi-spec-builder/CHANGELOG.md +++ b/packages/openapi-spec-builder/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.4](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-spec-builder@3.0.3...@loopback/openapi-spec-builder@3.0.4) (2021-01-21) + +**Note:** Version bump only for package @loopback/openapi-spec-builder + + + + + ## [3.0.3](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-spec-builder@3.0.2...@loopback/openapi-spec-builder@3.0.3) (2020-12-07) **Note:** Version bump only for package @loopback/openapi-spec-builder diff --git a/packages/openapi-spec-builder/package-lock.json b/packages/openapi-spec-builder/package-lock.json index 4a97d3c672e9..58417d9e3321 100644 --- a/packages/openapi-spec-builder/package-lock.json +++ b/packages/openapi-spec-builder/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/openapi-spec-builder", - "version": "3.0.3", + "version": "3.0.4", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -11,9 +11,9 @@ "dev": true }, "openapi3-ts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.0.tgz", - "integrity": "sha512-q4p8OX/mD7qXeDKkhdLhpEz1Zh/IxPBDWmuq7f07fQJpo7exUW20sMrHfws1xzihYPktTXVV5MDOZkG/1uguEg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.1.tgz", + "integrity": "sha512-v6X3iwddhi276siej96jHGIqTx3wzVfMTmpGJEQDt7GPI7pI6sywItURLzpEci21SBRpPN/aOWSF5mVfFVNmcg==", "requires": { "yaml": "^1.10.0" } diff --git a/packages/openapi-spec-builder/package.json b/packages/openapi-spec-builder/package.json index 830b04db2258..52d470ad95a5 100644 --- a/packages/openapi-spec-builder/package.json +++ b/packages/openapi-spec-builder/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/openapi-spec-builder", - "version": "3.0.3", + "version": "3.0.4", "description": "Make it easy to create OpenAPI (Swagger) specification documents in your tests using the builder pattern.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,13 +21,13 @@ "access": "public" }, "dependencies": { - "openapi3-ts": "^2.0.0", + "openapi3-ts": "^2.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/packages/openapi-v3/CHANGELOG.md b/packages/openapi-v3/CHANGELOG.md index dbe571f9f0e4..713511fa25ef 100644 --- a/packages/openapi-v3/CHANGELOG.md +++ b/packages/openapi-v3/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [5.1.3](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@5.1.2...@loopback/openapi-v3@5.1.3) (2021-01-21) + +**Note:** Version bump only for package @loopback/openapi-v3 + + + + + ## [5.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/openapi-v3@5.1.1...@loopback/openapi-v3@5.1.2) (2020-12-07) **Note:** Version bump only for package @loopback/openapi-v3 diff --git a/packages/openapi-v3/package-lock.json b/packages/openapi-v3/package-lock.json index 2962a929b78d..39ae519aedb8 100644 --- a/packages/openapi-v3/package-lock.json +++ b/packages/openapi-v3/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/openapi-v3", - "version": "5.1.2", + "version": "5.1.3", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -26,9 +26,9 @@ "dev": true }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { @@ -347,9 +347,9 @@ } }, "openapi3-ts": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.0.tgz", - "integrity": "sha512-q4p8OX/mD7qXeDKkhdLhpEz1Zh/IxPBDWmuq7f07fQJpo7exUW20sMrHfws1xzihYPktTXVV5MDOZkG/1uguEg==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-2.0.1.tgz", + "integrity": "sha512-v6X3iwddhi276siej96jHGIqTx3wzVfMTmpGJEQDt7GPI7pI6sywItURLzpEci21SBRpPN/aOWSF5mVfFVNmcg==", "requires": { "yaml": "^1.10.0" } diff --git a/packages/openapi-v3/package.json b/packages/openapi-v3/package.json index 2dfc8b12c428..c12e692e2f92 100644 --- a/packages/openapi-v3/package.json +++ b/packages/openapi-v3/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/openapi-v3", - "version": "5.1.2", + "version": "5.1.3", "description": "Decorators that annotate LoopBack artifacts with OpenAPI v3 metadata and utilities that transform LoopBack metadata to OpenAPI v3 specifications", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -23,28 +23,28 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/repository-json-schema": "^3.2.0", + "@loopback/repository-json-schema": "^3.2.1", "debug": "^4.3.1", "http-status": "^1.5.0", "json-merge-patch": "^1.0.1", "lodash": "^4.17.20", - "openapi3-ts": "^2.0.0", + "openapi3-ts": "^2.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/repository": "^3.3.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/repository": "^3.4.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/http-status": "^1.1.2", "@types/json-merge-patch": "0.0.5", - "@types/lodash": "^4.14.165", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35" }, "keywords": [ diff --git a/packages/repository-json-schema/CHANGELOG.md b/packages/repository-json-schema/CHANGELOG.md index 0c1b9080547f..eafd947c1d70 100644 --- a/packages/repository-json-schema/CHANGELOG.md +++ b/packages/repository-json-schema/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.1](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@3.2.0...@loopback/repository-json-schema@3.2.1) (2021-01-21) + +**Note:** Version bump only for package @loopback/repository-json-schema + + + + + # [3.2.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository-json-schema@3.1.1...@loopback/repository-json-schema@3.2.0) (2020-12-07) diff --git a/packages/repository-json-schema/package-lock.json b/packages/repository-json-schema/package-lock.json index 189fb25414ff..f776a1aad020 100644 --- a/packages/repository-json-schema/package-lock.json +++ b/packages/repository-json-schema/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/repository-json-schema", - "version": "3.2.0", + "version": "3.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -11,9 +11,9 @@ "dev": true }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==" + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==" }, "@types/node": { "version": "10.17.48", diff --git a/packages/repository-json-schema/package.json b/packages/repository-json-schema/package.json index 1565a145bd6d..d58b1416bac7 100644 --- a/packages/repository-json-schema/package.json +++ b/packages/repository-json-schema/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/repository-json-schema", - "version": "3.2.0", + "version": "3.2.1", "description": "Converts TS classes into JSON Schemas using TypeScript's reflection API", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,20 +21,20 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0" + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0" }, "dependencies": { - "@types/json-schema": "^7.0.6", + "@types/json-schema": "^7.0.7", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/repository": "^3.3.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/repository": "^3.4.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35", "ajv": "^6.12.6" diff --git a/packages/repository-tests/CHANGELOG.md b/packages/repository-tests/CHANGELOG.md index 0c4f57a5caff..eeb4f910f8cd 100644 --- a/packages/repository-tests/CHANGELOG.md +++ b/packages/repository-tests/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [0.16.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository-tests@0.15.0...@loopback/repository-tests@0.16.0) (2021-01-21) + + +### Features + +* fix eslint violations ([062de9c](https://github.com/strongloop/loopback-next/commit/062de9c5f908332f58f54ddf13798a22ca21f1e7)) + + + + + # [0.15.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository-tests@0.14.2...@loopback/repository-tests@0.15.0) (2020-12-07) diff --git a/packages/repository-tests/package-lock.json b/packages/repository-tests/package-lock.json index ec73995b9387..1ea7188ec5c9 100644 --- a/packages/repository-tests/package-lock.json +++ b/packages/repository-tests/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/repository-tests", - "version": "0.15.0", + "version": "0.16.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -10,9 +10,9 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { diff --git a/packages/repository-tests/package.json b/packages/repository-tests/package.json index 06d2d38f0e49..4a8598c8c82e 100644 --- a/packages/repository-tests/package.json +++ b/packages/repository-tests/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/repository-tests", - "version": "0.15.0", + "version": "0.16.0", "description": "A shared test suite to verify `@loopback/repository` functionality with a given compatible connector", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,21 +21,21 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0" + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0" }, "dependencies": { - "@loopback/testlab": "^3.2.10", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", "@types/debug": "^4.1.5", - "@types/lodash": "^4.14.165", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", "lodash": "^4.17.20" }, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/address.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/address.repository.ts index 25dc5a1d6b4e..6520affe0537 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/address.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/address.repository.ts @@ -6,15 +6,14 @@ import {Getter} from '@loopback/core'; import { BelongsToAccessor, - juggler, - createBelongsToAccessor, BelongsToDefinition, + createBelongsToAccessor, + juggler, } from '@loopback/repository'; -import {Address, AddressRelations, Customer} from '../models'; import {CrudRepositoryCtor} from '../../../..'; +import {Address, AddressRelations, Customer} from '../models'; export function createAddressRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class AddressRepository extends repoClass< Address, typeof Address.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/cart-item.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/cart-item.repository.ts index 9ba2ff560d0a..2aa7bbe7ac8c 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/cart-item.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/cart-item.repository.ts @@ -9,7 +9,6 @@ import {CartItem, CartItemRelations} from '../models'; // create the CartItemRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createCartItemRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class CartItemRepository extends repoClass< CartItem, typeof CartItem.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts index 4d1f9437f63e..7ecf103b30db 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/customer-cart-item-link.repository.ts @@ -8,7 +8,6 @@ import {CrudRepositoryCtor} from '../../../..'; import {CustomerCartItemLink, CustomerCartItemLinkRelations} from '../models'; // create the CustomerCartItemLinkRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createCustomerCartItemLinkRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class CustomerCartItemLinkRepository extends repoClass< CustomerCartItemLink, typeof CustomerCartItemLink.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/customer.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/customer.repository.ts index d7d94ea755a8..2d0447e4da27 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/customer.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/customer.repository.ts @@ -30,7 +30,6 @@ import { // create the CustomerRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createCustomerRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class CustomerRepository extends repoClass< Customer, typeof Customer.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/order.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/order.repository.ts index 86960d7f7091..8af671c1a2dd 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/order.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/order.repository.ts @@ -15,7 +15,6 @@ import {Customer, Order, OrderRelations, Shipment} from '../models'; // create the OrderRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createOrderRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class OrderRepository extends repoClass< Order, typeof Order.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/shipment.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/shipment.repository.ts index 89993edb8358..322d59f4e771 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/shipment.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/shipment.repository.ts @@ -5,17 +5,16 @@ import {Getter} from '@loopback/core'; import { + createHasManyRepositoryFactory, + HasManyDefinition, HasManyRepositoryFactory, juggler, - HasManyDefinition, - createHasManyRepositoryFactory, } from '@loopback/repository'; -import {Order, Shipment, ShipmentRelations} from '../models'; import {CrudRepositoryCtor} from '../../../..'; +import {Order, Shipment, ShipmentRelations} from '../models'; // create the ShipmentRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createShipmentRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class ShipmentRepository extends repoClass< Shipment, typeof Shipment.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/user-link.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/user-link.repository.ts index a0908acdec8b..e85472a2c2f4 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/user-link.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/user-link.repository.ts @@ -9,7 +9,6 @@ import {UserLink, UserLinkRelations} from '../models'; // create the UserLinkRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createUserLinkRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class UerLinkRepository extends repoClass< UserLink, typeof UserLink.prototype.id, diff --git a/packages/repository-tests/src/crud/relations/fixtures/repositories/user.repository.ts b/packages/repository-tests/src/crud/relations/fixtures/repositories/user.repository.ts index 294aa6bfd802..aadbed7d693e 100644 --- a/packages/repository-tests/src/crud/relations/fixtures/repositories/user.repository.ts +++ b/packages/repository-tests/src/crud/relations/fixtures/repositories/user.repository.ts @@ -15,7 +15,6 @@ import {User, UserLink, UserRelations} from '../models'; // create the UserRepo by calling this func so that it can be extended from CrudRepositoryCtor export function createUserRepo(repoClass: CrudRepositoryCtor) { - // eslint-disable-next-line @typescript-eslint/no-unused-vars return class UserRepository extends repoClass< User, typeof User.prototype.id, diff --git a/packages/repository/CHANGELOG.md b/packages/repository/CHANGELOG.md index 6446ba3ae439..dbdc64c4fe01 100644 --- a/packages/repository/CHANGELOG.md +++ b/packages/repository/CHANGELOG.md @@ -3,6 +3,23 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [3.4.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.3.0...@loopback/repository@3.4.0) (2021-01-21) + + +### Bug Fixes + +* **repository:** unwanted object param manipulation ([8171744](https://github.com/strongloop/loopback-next/commit/8171744f473ab5a05e8f0758630a73c00ea8e7cf)), closes [#5814](https://github.com/strongloop/loopback-next/issues/5814) + + +### Features + +* add connector interface enums ([763bf72](https://github.com/strongloop/loopback-next/commit/763bf720ae1031f8eba2f4a24f9a3bbc855d7781)) +* normalize debug scopes in relations ([b3c52c1](https://github.com/strongloop/loopback-next/commit/b3c52c191fc98cc6fc2b304c838d5b15b62ddcb5)) + + + + + # [3.3.0](https://github.com/strongloop/loopback-next/compare/@loopback/repository@3.2.1...@loopback/repository@3.3.0) (2020-12-07) diff --git a/packages/repository/package-lock.json b/packages/repository/package-lock.json index 0772c266aad3..ac018c40ea38 100644 --- a/packages/repository/package-lock.json +++ b/packages/repository/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/repository", - "version": "3.3.0", + "version": "3.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -19,15 +19,15 @@ "integrity": "sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ==" }, "@types/json-schema": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.6.tgz", - "integrity": "sha512-3c+yGKvVP5Y9TYBEibGNR+kLtijnj7mYrXRg+WpFb2X9xm04g/DXYkfg4hmzJQosc9snFNUPkbYIhu+KAm6jJw==", + "version": "7.0.7", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", + "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", "dev": true }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/node": { diff --git a/packages/repository/package.json b/packages/repository/package.json index e311227a4a6b..f6f3de1ea90e 100644 --- a/packages/repository/package.json +++ b/packages/repository/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/repository", - "version": "3.3.0", + "version": "3.4.0", "description": "Define and implement a common set of interfaces for interacting with databases", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -22,10 +22,10 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/filter": "^1.3.0", + "@loopback/filter": "^1.3.1", "@types/debug": "^4.1.5", "debug": "^4.3.1", "lodash": "^4.17.20", @@ -33,13 +33,13 @@ "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/bson": "^4.0.3", - "@types/json-schema": "^7.0.6", - "@types/lodash": "^4.14.165", + "@types/json-schema": "^7.0.7", + "@types/lodash": "^4.14.168", "@types/node": "^10.17.35", "bson": "4.2.2" }, diff --git a/packages/repository/src/__tests__/unit/repositories/has-many-through-repository-factory.unit.ts b/packages/repository/src/__tests__/unit/repositories/has-many-through-repository-factory.unit.ts index 680c2919b2cd..77a39c401e9d 100644 --- a/packages/repository/src/__tests__/unit/repositories/has-many-through-repository-factory.unit.ts +++ b/packages/repository/src/__tests__/unit/repositories/has-many-through-repository-factory.unit.ts @@ -12,7 +12,7 @@ import { model, property, } from '../../..'; -import {createHasManyThroughRepositoryFactory} from '../../../relations/has-many/has-many-through-repository.factory'; +import {createHasManyThroughRepositoryFactory} from '../../../relations/has-many/has-many-through.repository-factory'; import {HasManyThroughResolvedDefinition} from '../../../relations/has-many/has-many-through.helpers'; describe('createHasManyThroughRepositoryFactory', () => { diff --git a/packages/repository/src/__tests__/unit/repositories/legacy-juggler-bridge.unit.ts b/packages/repository/src/__tests__/unit/repositories/legacy-juggler-bridge.unit.ts index fe719e9f457a..987ff6b29ad2 100644 --- a/packages/repository/src/__tests__/unit/repositories/legacy-juggler-bridge.unit.ts +++ b/packages/repository/src/__tests__/unit/repositories/legacy-juggler-bridge.unit.ts @@ -4,6 +4,7 @@ // License text available at https://opensource.org/licenses/MIT import {expect, toJSON} from '@loopback/testlab'; +import {cloneDeep} from 'lodash'; import { bindModel, DefaultCrudRepository, @@ -263,41 +264,73 @@ describe('DefaultCrudRepository', () => { expect(notes.length).to.eql(2); }); - it('implements Repository.find()', async () => { - const repo = new DefaultCrudRepository(Note, ds); - await repo.createAll([ - {title: 't1', content: 'c1'}, - {title: 't2', content: 'c2'}, - ]); - const notes = await repo.find({where: {title: 't1'}}); - expect(notes.length).to.eql(1); - }); + describe('find', () => { + it('is implemented', async () => { + const repo = new DefaultCrudRepository(Note, ds); + await repo.createAll([ + {title: 't1', content: 'c1'}, + {title: 't2', content: 'c2'}, + ]); + const notes = await repo.find({where: {title: 't1'}}); + expect(notes.length).to.eql(1); + }); - it('implements Repository.findOne()', async () => { - const repo = new DefaultCrudRepository(Note, ds); - await repo.createAll([ - {title: 't1', content: 'c1'}, - {title: 't1', content: 'c2'}, - ]); - const note = await repo.findOne({ - where: {title: 't1'}, - order: ['content DESC'], + it('does not manipulate the original filter', async () => { + const repo = new DefaultCrudRepository(Note, ds); + const filter = {where: {title: 't1'}}; + const originalFilter = cloneDeep(filter); + await repo.createAll([ + {title: 't1', content: 'c1'}, + {title: 't2', content: 'c2'}, + ]); + await repo.find(filter); + expect(filter).to.deepEqual(originalFilter); }); - expect(note).to.not.be.null(); - expect(note?.title).to.eql('t1'); - expect(note?.content).to.eql('c2'); }); - it('returns null if Repository.findOne() does not return a value', async () => { - const repo = new DefaultCrudRepository(Note, ds); - await repo.createAll([ - {title: 't1', content: 'c1'}, - {title: 't1', content: 'c2'}, - ]); - const note = await repo.findOne({ - where: {title: 't5'}, - order: ['content DESC'], + + describe('findOne', () => { + it('is implemented', async () => { + const repo = new DefaultCrudRepository(Note, ds); + await repo.createAll([ + {title: 't1', content: 'c1'}, + {title: 't1', content: 'c2'}, + ]); + const note = await repo.findOne({ + where: {title: 't1'}, + order: ['content DESC'], + }); + expect(note).to.not.be.null(); + expect(note?.title).to.eql('t1'); + expect(note?.content).to.eql('c2'); + }); + + it('returns null if instances were found', async () => { + const repo = new DefaultCrudRepository(Note, ds); + await repo.createAll([ + {title: 't1', content: 'c1'}, + {title: 't1', content: 'c2'}, + ]); + const note = await repo.findOne({ + where: {title: 't5'}, + order: ['content DESC'], + }); + expect(note).to.be.null(); + }); + + it('does not manipulate the original filter', async () => { + const repo = new DefaultCrudRepository(Note, ds); + const filter = { + where: {title: 't5'}, + order: ['content DESC'], + }; + const originalFilter = cloneDeep(filter); + await repo.createAll([ + {title: 't1', content: 'c1'}, + {title: 't1', content: 'c2'}, + ]); + await repo.findOne(filter); + expect(filter).to.deepEqual(originalFilter); }); - expect(note).to.be.null(); }); describe('findById', () => { @@ -315,6 +348,15 @@ describe('DefaultCrudRepository', () => { expect(result?.toJSON()).to.eql({title: 'a-title'}); }); + it('does not manipulate the original filter', async () => { + const repo = new DefaultCrudRepository(Note, ds); + const filter = {fields: {title: true, content: true}}; + const originalFilter = cloneDeep(filter); + const note = await repo.create({title: 'a-title', content: 'a-content'}); + await repo.findById(note.id, filter); + expect(filter).to.deepEqual(originalFilter); + }); + it('throws when the instance does not exist', async () => { const repo = new DefaultCrudRepository(Note, ds); await expect(repo.findById(999999)).to.be.rejectedWith({ diff --git a/packages/repository/src/__tests__/unit/repositories/relations-helpers/find-by-foreign-keys.unit.ts b/packages/repository/src/__tests__/unit/repositories/relations-helpers/find-by-foreign-keys.unit.ts index cc300f22518a..a5865a7564b6 100644 --- a/packages/repository/src/__tests__/unit/repositories/relations-helpers/find-by-foreign-keys.unit.ts +++ b/packages/repository/src/__tests__/unit/repositories/relations-helpers/find-by-foreign-keys.unit.ts @@ -9,6 +9,7 @@ import { sinon, StubbedInstanceWithSinonAccessor, } from '@loopback/testlab'; +import {cloneDeep} from 'lodash'; import {findByForeignKeys} from '../../../..'; import { createProduct, @@ -153,4 +154,21 @@ describe('findByForeignKeys', () => { include: ['nested inclusion'], }); }); + + it('does not manipulate non-primitive params', async () => { + const fkValues = [1]; + const scope = { + where: {id: 2}, + }; + const fkValuesOriginal = cloneDeep(fkValues); + const scopeOriginal = cloneDeep(scope); + + productRepo.stubs.find.resolves([]); + await productRepo.create({id: 1, name: 'product', categoryId: 1}); + await productRepo.create({id: 2, name: 'product', categoryId: 1}); + await findByForeignKeys(productRepo, 'categoryId', fkValues, scope); + + expect(fkValues).to.deepEqual(fkValuesOriginal); + expect(scope).to.deepEqual(scopeOriginal); + }); }); diff --git a/packages/repository/src/__tests__/unit/repositories/relations-helpers/include-related-models.unit.ts b/packages/repository/src/__tests__/unit/repositories/relations-helpers/include-related-models.unit.ts index 0d8ccbddf810..011d09154c77 100644 --- a/packages/repository/src/__tests__/unit/repositories/relations-helpers/include-related-models.unit.ts +++ b/packages/repository/src/__tests__/unit/repositories/relations-helpers/include-related-models.unit.ts @@ -4,6 +4,7 @@ // License text available at https://opensource.org/licenses/MIT import {expect, toJSON} from '@loopback/testlab'; +import {cloneDeep} from 'lodash'; import {includeRelatedModels, InclusionResolver} from '../../../..'; import { Category, @@ -39,6 +40,19 @@ describe('includeRelatedModels', () => { expect(result).to.eql([category]); }); + it('does not manipulate non-primitive params', async () => { + const category = await categoryRepo.create({name: 'category'}); + const categoryOriginal = cloneDeep(category); + const filter = ['products']; + const filterOriginal = cloneDeep(filter); + + categoryRepo.inclusionResolvers.set('products', hasManyResolver); + await includeRelatedModels(categoryRepo, [category], filter); + + expect(category).to.deepEqual(categoryOriginal); + expect(filter).to.deepEqual(filterOriginal); + }); + context( 'throws error if the target repository does not have registered resolvers', () => { diff --git a/packages/repository/src/connectors/connector.ts b/packages/repository/src/connectors/connector.ts index ae3df1ce77cb..d479fb4b7adb 100644 --- a/packages/repository/src/connectors/connector.ts +++ b/packages/repository/src/connectors/connector.ts @@ -12,13 +12,53 @@ import { } from '../common-types'; import {Model} from '../model'; +/** + * Interfaces adopted by a {@link Connector}. + * + * @experimental + */ +export namespace ConnectorInterfaces { + /** + * Strong relation interfaces adopted by a {@link Connector} + * + * @experimental + */ + export const enum StrongRelation { + BELONGS_TO = 'strongBelongsTo', + HAS_ONE = 'strongHasOne', + HAS_MANY = 'strongHasMany', + HAS_MANY_THROUGH = 'strongHasManyThrough', + HAS_AND_BELONGS_TO_MANY = 'strongHasAndBelongsToMany', + EMBEDS_ONE = 'strongEmbedsOne', + EMBEDS_MANY = 'strongEmbedsMany', + REFERNCES_MANY = 'strongReferencesMany', + } + + /** + * Strong query join interfaces adopted by a {@link Connector} + * + * @experimental + */ + export const enum StrongJoins { + INNER = 'strongInnerJoin', + LEFT = 'strongLeftJoin', + RIGHT = 'strongRightJoin', + FULL = 'strongFullJoin', + CARTESIAN = 'strongCartesianJoin', + } +} + /** * Common properties/operations for connectors */ export interface Connector { name: string; // Name/type of the connector configModel?: Model; // The configuration model - interfaces?: string[]; // A list of interfaces implemented by the connector + interfaces?: ( + | string + | ConnectorInterfaces.StrongRelation + | ConnectorInterfaces.StrongJoins + )[]; // A list of interfaces implemented by the connector connect(): Promise; // Connect to the underlying system disconnect(): Promise; // Disconnect from the underlying system ping(): Promise; // Ping the underlying system diff --git a/packages/repository/src/relations/belongs-to/belongs-to-accessor.ts b/packages/repository/src/relations/belongs-to/belongs-to.accessor.ts similarity index 96% rename from packages/repository/src/relations/belongs-to/belongs-to-accessor.ts rename to packages/repository/src/relations/belongs-to/belongs-to.accessor.ts index adebd1075d45..d689a393f80c 100644 --- a/packages/repository/src/relations/belongs-to/belongs-to-accessor.ts +++ b/packages/repository/src/relations/belongs-to/belongs-to.accessor.ts @@ -16,7 +16,7 @@ import {resolveBelongsToMetadata} from './belongs-to.helpers'; import {createBelongsToInclusionResolver} from './belongs-to.inclusion-resolver'; import {DefaultBelongsToRepository} from './belongs-to.repository'; -const debug = debugFactory('loopback:repository:belongs-to-accessor'); +const debug = debugFactory('loopback:repository:relations:belongs-to:accessor'); export interface BelongsToAccessor { /** diff --git a/packages/repository/src/relations/belongs-to/belongs-to.decorator.ts b/packages/repository/src/relations/belongs-to/belongs-to.decorator.ts index d407705bd080..51b1a3dd2404 100644 --- a/packages/repository/src/relations/belongs-to/belongs-to.decorator.ts +++ b/packages/repository/src/relations/belongs-to/belongs-to.decorator.ts @@ -4,9 +4,9 @@ // License text available at https://opensource.org/licenses/MIT import {DecoratorFactory, MetadataInspector} from '@loopback/core'; -import {property} from '../../decorators/model.decorator'; -import {Entity, EntityResolver, PropertyDefinition} from '../../model'; +import {property} from '../../decorators'; import {relation} from '../relation.decorator'; +import {Entity, EntityResolver, PropertyDefinition} from '../../model'; import {BelongsToDefinition, RelationType} from '../relation.types'; /** diff --git a/packages/repository/src/relations/belongs-to/belongs-to.helpers.ts b/packages/repository/src/relations/belongs-to/belongs-to.helpers.ts index 03c67b2d7df0..b5b5ae1cb4d9 100644 --- a/packages/repository/src/relations/belongs-to/belongs-to.helpers.ts +++ b/packages/repository/src/relations/belongs-to/belongs-to.helpers.ts @@ -9,7 +9,7 @@ import {InvalidRelationError} from '../../errors'; import {isTypeResolver} from '../../type-resolver'; import {BelongsToDefinition, RelationType} from '../relation.types'; -const debug = debugFactory('loopback:repository:belongs-to-helpers'); +const debug = debugFactory('loopback:repository:relations:belongs-to:helpers'); /** * Relation definition with optional metadata (e.g. `keyTo`) filled in. diff --git a/packages/repository/src/relations/belongs-to/belongs-to.inclusion-resolver.ts b/packages/repository/src/relations/belongs-to/belongs-to.inclusion-resolver.ts index 5b3bc30a7e68..1e7f73c44052 100644 --- a/packages/repository/src/relations/belongs-to/belongs-to.inclusion-resolver.ts +++ b/packages/repository/src/relations/belongs-to/belongs-to.inclusion-resolver.ts @@ -6,7 +6,7 @@ import {Filter, InclusionFilter} from '@loopback/filter'; import {AnyObject, Options} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import { deduplicate, findByForeignKeys, diff --git a/packages/repository/src/relations/belongs-to/belongs-to.repository.ts b/packages/repository/src/relations/belongs-to/belongs-to.repository.ts index 3ac621b6a998..90683423643c 100644 --- a/packages/repository/src/relations/belongs-to/belongs-to.repository.ts +++ b/packages/repository/src/relations/belongs-to/belongs-to.repository.ts @@ -7,8 +7,7 @@ import {Getter} from '@loopback/core'; import {DataObject, Options} from '../../common-types'; import {EntityNotFoundError} from '../../errors'; import {Entity} from '../../model'; -import {constrainFilter} from '../../repositories/constraint-utils'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {constrainFilter, EntityCrudRepository} from '../../repositories'; /** * CRUD operations for a target repository of a BelongsTo relation diff --git a/packages/repository/src/relations/belongs-to/index.ts b/packages/repository/src/relations/belongs-to/index.ts index 2616b80758bd..ac87d6bf0eb5 100644 --- a/packages/repository/src/relations/belongs-to/index.ts +++ b/packages/repository/src/relations/belongs-to/index.ts @@ -5,5 +5,5 @@ export * from './belongs-to.decorator'; export * from './belongs-to.repository'; -export * from './belongs-to-accessor'; +export * from './belongs-to.accessor'; export * from './belongs-to.inclusion-resolver'; diff --git a/packages/repository/src/relations/has-many/has-many-through.helpers.ts b/packages/repository/src/relations/has-many/has-many-through.helpers.ts index ea3ba7862732..f2c6f4aa4cff 100644 --- a/packages/repository/src/relations/has-many/has-many-through.helpers.ts +++ b/packages/repository/src/relations/has-many/has-many-through.helpers.ts @@ -15,7 +15,9 @@ import { } from '../..'; import {resolveHasManyMetaHelper} from './has-many.helpers'; -const debug = debugFactory('loopback:repository:has-many-through-helpers'); +const debug = debugFactory( + 'loopback:repository:relations:has-many-through:helpers', +); export type HasManyThroughResolvedDefinition = HasManyDefinition & { keyTo: string; diff --git a/packages/repository/src/relations/has-many/has-many-through.inclusion.resolver.ts b/packages/repository/src/relations/has-many/has-many-through.inclusion-resolver.ts similarity index 96% rename from packages/repository/src/relations/has-many/has-many-through.inclusion.resolver.ts rename to packages/repository/src/relations/has-many/has-many-through.inclusion-resolver.ts index 115c52877d14..41204a3dd9ac 100644 --- a/packages/repository/src/relations/has-many/has-many-through.inclusion.resolver.ts +++ b/packages/repository/src/relations/has-many/has-many-through.inclusion-resolver.ts @@ -7,7 +7,7 @@ import {Filter, InclusionFilter} from '@loopback/filter'; import debugFactory from 'debug'; import {AnyObject, Options} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import { findByForeignKeys, flattenTargetsOfOneToManyRelation, @@ -17,7 +17,7 @@ import {Getter, HasManyDefinition, InclusionResolver} from '../relation.types'; import {resolveHasManyMetadata} from './has-many.helpers'; const debug = debugFactory( - 'loopback:repository:has-many-through-inclusion-resolver', + 'loopback:repository:relations:has-many-through:inclusion-resolver', ); /** diff --git a/packages/repository/src/relations/has-many/has-many-through-repository.factory.ts b/packages/repository/src/relations/has-many/has-many-through.repository-factory.ts similarity index 99% rename from packages/repository/src/relations/has-many/has-many-through-repository.factory.ts rename to packages/repository/src/relations/has-many/has-many-through.repository-factory.ts index 6fc2f649e16e..979d4e88e56d 100644 --- a/packages/repository/src/relations/has-many/has-many-through-repository.factory.ts +++ b/packages/repository/src/relations/has-many/has-many-through.repository-factory.ts @@ -19,7 +19,7 @@ import { getTargetKeysFromThroughModels, resolveHasManyThroughMetadata, } from './has-many-through.helpers'; -import {createHasManyThroughInclusionResolver} from './has-many-through.inclusion.resolver'; +import {createHasManyThroughInclusionResolver} from './has-many-through.inclusion-resolver'; import { DefaultHasManyThroughRepository, HasManyThroughRepository, diff --git a/packages/repository/src/relations/has-many/has-many.helpers.ts b/packages/repository/src/relations/has-many/has-many.helpers.ts index 71ffb50fcf3a..90414e2c44c3 100644 --- a/packages/repository/src/relations/has-many/has-many.helpers.ts +++ b/packages/repository/src/relations/has-many/has-many.helpers.ts @@ -9,7 +9,7 @@ import {InvalidRelationError} from '../../errors'; import {isTypeResolver} from '../../type-resolver'; import {HasManyDefinition, RelationType} from '../relation.types'; -const debug = debugFactory('loopback:repository:has-many-helpers'); +const debug = debugFactory('loopback:repository:relations:has-many:helpers'); /** * Relation definition with optional metadata (e.g. `keyTo`) filled in. diff --git a/packages/repository/src/relations/has-many/has-many.inclusion-resolver.ts b/packages/repository/src/relations/has-many/has-many.inclusion-resolver.ts index 29cff4e10338..ea0480514b37 100644 --- a/packages/repository/src/relations/has-many/has-many.inclusion-resolver.ts +++ b/packages/repository/src/relations/has-many/has-many.inclusion-resolver.ts @@ -7,7 +7,7 @@ import {Filter, InclusionFilter} from '@loopback/filter'; import debugFactory from 'debug'; import {AnyObject, Options} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import { findByForeignKeys, flattenTargetsOfOneToManyRelation, @@ -16,7 +16,9 @@ import { import {Getter, HasManyDefinition, InclusionResolver} from '../relation.types'; import {resolveHasManyMetadata} from './has-many.helpers'; -const debug = debugFactory('loopback:repository:has-many-inclusion-resolver'); +const debug = debugFactory( + 'loopback:repository:relations:has-many:inclusion-resolver', +); /** * Creates InclusionResolver for HasMany relation. diff --git a/packages/repository/src/relations/has-many/has-many-repository.factory.ts b/packages/repository/src/relations/has-many/has-many.repository-factory.ts similarity index 94% rename from packages/repository/src/relations/has-many/has-many-repository.factory.ts rename to packages/repository/src/relations/has-many/has-many.repository-factory.ts index 52c453957f7c..55eb46999bea 100644 --- a/packages/repository/src/relations/has-many/has-many-repository.factory.ts +++ b/packages/repository/src/relations/has-many/has-many.repository-factory.ts @@ -6,7 +6,7 @@ import debugFactory from 'debug'; import {DataObject} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import {Getter, HasManyDefinition, InclusionResolver} from '../relation.types'; import {resolveHasManyMetadata} from './has-many.helpers'; import {createHasManyInclusionResolver} from './has-many.inclusion-resolver'; @@ -15,7 +15,9 @@ import { HasManyRepository, } from './has-many.repository'; -const debug = debugFactory('loopback:repository:has-many-repository-factory'); +const debug = debugFactory( + 'loopback:repository:relations:has-many:repository-factory', +); export interface HasManyRepositoryFactory< Target extends Entity, diff --git a/packages/repository/src/relations/has-many/has-many.repository.ts b/packages/repository/src/relations/has-many/has-many.repository.ts index 715d42232f0e..78a0d6b90ae4 100644 --- a/packages/repository/src/relations/has-many/has-many.repository.ts +++ b/packages/repository/src/relations/has-many/has-many.repository.ts @@ -11,8 +11,8 @@ import { constrainDataObject, constrainFilter, constrainWhere, -} from '../../repositories/constraint-utils'; -import {EntityCrudRepository} from '../../repositories/repository'; + EntityCrudRepository, +} from '../../repositories'; /** * CRUD operations for a target repository of a HasMany relation diff --git a/packages/repository/src/relations/has-many/index.ts b/packages/repository/src/relations/has-many/index.ts index bddc202d8d6f..a273572b3cb7 100644 --- a/packages/repository/src/relations/has-many/index.ts +++ b/packages/repository/src/relations/has-many/index.ts @@ -3,8 +3,8 @@ // This file is licensed under the MIT License. // License text available at https://opensource.org/licenses/MIT -export * from './has-many-repository.factory'; -export * from './has-many-through-repository.factory'; +export * from './has-many.repository-factory'; +export * from './has-many-through.repository-factory'; export * from './has-many-through.repository'; export * from './has-many.decorator'; export * from './has-many.inclusion-resolver'; diff --git a/packages/repository/src/relations/has-one/has-one.helpers.ts b/packages/repository/src/relations/has-one/has-one.helpers.ts index b0b5b86e3dae..77a2525ddfdb 100644 --- a/packages/repository/src/relations/has-one/has-one.helpers.ts +++ b/packages/repository/src/relations/has-one/has-one.helpers.ts @@ -9,7 +9,7 @@ import {InvalidRelationError} from '../../errors'; import {isTypeResolver} from '../../type-resolver'; import {HasOneDefinition, RelationType} from '../relation.types'; -const debug = debugFactory('loopback:repository:has-one-helpers'); +const debug = debugFactory('loopback:repository:relations:has-one:helpers'); /** * Relation definition with optional metadata (e.g. `keyTo`) filled in. diff --git a/packages/repository/src/relations/has-one/has-one.inclusion-resolver.ts b/packages/repository/src/relations/has-one/has-one.inclusion-resolver.ts index ed36df89cb64..64a036a80a86 100644 --- a/packages/repository/src/relations/has-one/has-one.inclusion-resolver.ts +++ b/packages/repository/src/relations/has-one/has-one.inclusion-resolver.ts @@ -6,7 +6,7 @@ import {Filter, InclusionFilter} from '@loopback/filter'; import {AnyObject, Options} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import { findByForeignKeys, flattenTargetsOfOneToOneRelation, diff --git a/packages/repository/src/relations/has-one/has-one-repository.factory.ts b/packages/repository/src/relations/has-one/has-one.repository-factory.ts similarity index 94% rename from packages/repository/src/relations/has-one/has-one-repository.factory.ts rename to packages/repository/src/relations/has-one/has-one.repository-factory.ts index 71832e947c4c..e0f711f09d3b 100644 --- a/packages/repository/src/relations/has-one/has-one-repository.factory.ts +++ b/packages/repository/src/relations/has-one/has-one.repository-factory.ts @@ -6,13 +6,15 @@ import debugFactory from 'debug'; import {DataObject} from '../../common-types'; import {Entity} from '../../model'; -import {EntityCrudRepository} from '../../repositories/repository'; +import {EntityCrudRepository} from '../../repositories'; import {Getter, HasOneDefinition, InclusionResolver} from '../relation.types'; import {resolveHasOneMetadata} from './has-one.helpers'; import {createHasOneInclusionResolver} from './has-one.inclusion-resolver'; import {DefaultHasOneRepository, HasOneRepository} from './has-one.repository'; -const debug = debugFactory('loopback:repository:has-one-repository-factory'); +const debug = debugFactory( + 'loopback:repository:relations:has-one:repository-factory', +); export interface HasOneRepositoryFactory< Target extends Entity, diff --git a/packages/repository/src/relations/has-one/index.ts b/packages/repository/src/relations/has-one/index.ts index bf2bb38f333b..44acce46b16d 100644 --- a/packages/repository/src/relations/has-one/index.ts +++ b/packages/repository/src/relations/has-one/index.ts @@ -5,4 +5,4 @@ export * from './has-one.decorator'; export * from './has-one.repository'; -export * from './has-one-repository.factory'; +export * from './has-one.repository-factory'; diff --git a/packages/repository/src/relations/relation.helpers.ts b/packages/repository/src/relations/relation.helpers.ts index 593717b2a7c7..d070b35f3f49 100644 --- a/packages/repository/src/relations/relation.helpers.ts +++ b/packages/repository/src/relations/relation.helpers.ts @@ -5,7 +5,7 @@ import assert from 'assert'; import debugFactory from 'debug'; -import _ from 'lodash'; +import _, {cloneDeep} from 'lodash'; import { AnyObject, Entity, @@ -39,17 +39,11 @@ export async function findByForeignKeys< options?: Options, ): Promise<(Target & TargetRelations)[]> { let value; + scope = cloneDeep(scope); if (Array.isArray(fkValues)) { if (fkValues.length === 0) return []; - value = - fkValues.length === 1 - ? fkValues[0] - : { - // Create a copy to prevent query coercion algorithm - // inside connectors from modifying the original values - inq: [...fkValues], - }; + value = fkValues.length === 1 ? fkValues[0] : {inq: fkValues}; } else { value = fkValues; } @@ -87,6 +81,8 @@ export async function includeRelatedModels< include?: InclusionFilter[], options?: Options, ): Promise<(T & Relations)[]> { + entities = cloneDeep(entities); + include = cloneDeep(include); const result = entities as (T & Relations)[]; if (!include) return result; diff --git a/packages/rest-crud/CHANGELOG.md b/packages/rest-crud/CHANGELOG.md index f48d5d8df40e..83cea271920c 100644 --- a/packages/rest-crud/CHANGELOG.md +++ b/packages/rest-crud/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.8.20](https://github.com/strongloop/loopback-next/compare/@loopback/rest-crud@0.8.19...@loopback/rest-crud@0.8.20) (2021-01-21) + +**Note:** Version bump only for package @loopback/rest-crud + + + + + ## [0.8.19](https://github.com/strongloop/loopback-next/compare/@loopback/rest-crud@0.8.18...@loopback/rest-crud@0.8.19) (2020-12-07) **Note:** Version bump only for package @loopback/rest-crud diff --git a/packages/rest-crud/package-lock.json b/packages/rest-crud/package-lock.json index 9c4f6f3ca598..9863780fecf9 100644 --- a/packages/rest-crud/package-lock.json +++ b/packages/rest-crud/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/rest-crud", - "version": "0.8.19", + "version": "0.8.20", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/rest-crud/package.json b/packages/rest-crud/package.json index 8cbb376b438f..bfbfa242bc71 100644 --- a/packages/rest-crud/package.json +++ b/packages/rest-crud/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/rest-crud", - "version": "0.8.19", + "version": "0.8.20", "description": "REST API controller implementing default CRUD semantics", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,21 +21,21 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { - "@loopback/model-api-builder": "^2.1.19", + "@loopback/model-api-builder": "^2.1.20", "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/repository": "^3.3.0", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/repository": "^3.4.0", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35" }, diff --git a/packages/rest-explorer/CHANGELOG.md b/packages/rest-explorer/CHANGELOG.md index c000122529b7..22d968363cc0 100644 --- a/packages/rest-explorer/CHANGELOG.md +++ b/packages/rest-explorer/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.6](https://github.com/strongloop/loopback-next/compare/@loopback/rest-explorer@3.0.5...@loopback/rest-explorer@3.0.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/rest-explorer + + + + + ## [3.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/rest-explorer@3.0.4...@loopback/rest-explorer@3.0.5) (2020-12-07) **Note:** Version bump only for package @loopback/rest-explorer diff --git a/packages/rest-explorer/package-lock.json b/packages/rest-explorer/package-lock.json index f122ca4698d5..080bccd3711b 100644 --- a/packages/rest-explorer/package-lock.json +++ b/packages/rest-explorer/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/rest-explorer", - "version": "3.0.5", + "version": "3.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -15,9 +15,9 @@ } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "dev": true, "requires": { "@types/node": "*" @@ -30,21 +30,21 @@ "dev": true }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "dev": true, "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "dev": true, "requires": { "@types/node": "*", @@ -53,9 +53,9 @@ } }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, "@types/node": { @@ -77,12 +77,12 @@ "dev": true }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "dev": true, "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" } }, @@ -577,9 +577,9 @@ } }, "swagger-ui-dist": { - "version": "3.37.2", - "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.37.2.tgz", - "integrity": "sha512-XIT4asxgeL4GUNPPsqpEqLt20M/u6OhFYqTh42IoEAvAyv5e9EGw5uhP9dLAD10opcMYqdkJ5qU+MpN2HZ5xyA==" + "version": "3.38.0", + "resolved": "https://registry.npmjs.org/swagger-ui-dist/-/swagger-ui-dist-3.38.0.tgz", + "integrity": "sha512-sselV8VY6f1BBauY9Sdmwz0jVaWTnGuHQWei7BaTpiUrLcoEUdmmK5bKefLXiwq+dx//es2S8mOvUS+tcXDsKg==" }, "toidentifier": { "version": "1.0.0", diff --git a/packages/rest-explorer/package.json b/packages/rest-explorer/package.json index 77d44aabae05..b0304c87c419 100644 --- a/packages/rest-explorer/package.json +++ b/packages/rest-explorer/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/rest-explorer", - "version": "3.0.5", + "version": "3.0.6", "description": "LoopBack's API Explorer", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -21,22 +21,22 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1", - "@loopback/rest": "^9.1.1" + "@loopback/core": "^2.14.0", + "@loopback/rest": "^9.1.2" }, "dependencies": { "ejs": "^3.1.5", - "swagger-ui-dist": "3.37.2", + "swagger-ui-dist": "3.38.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/rest": "^9.1.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/rest": "^9.1.2", + "@loopback/testlab": "^3.2.11", "@types/ejs": "^3.0.5", - "@types/express": "^4.17.9", + "@types/express": "^4.17.11", "@types/node": "^10.17.35", "express": "^4.17.1" }, diff --git a/packages/rest/CHANGELOG.md b/packages/rest/CHANGELOG.md index e5f5316b6a8a..230cc1f46466 100644 --- a/packages/rest/CHANGELOG.md +++ b/packages/rest/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [9.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/rest@9.1.1...@loopback/rest@9.1.2) (2021-01-21) + +**Note:** Version bump only for package @loopback/rest + + + + + ## [9.1.1](https://github.com/strongloop/loopback-next/compare/@loopback/rest@9.1.0...@loopback/rest@9.1.1) (2020-12-07) diff --git a/packages/rest/package-lock.json b/packages/rest/package-lock.json index c7c7681850a2..78fb7f7f3f11 100644 --- a/packages/rest/package-lock.json +++ b/packages/rest/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/rest", - "version": "9.1.1", + "version": "9.1.2", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -44,12 +44,9 @@ } }, "@types/cors": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.8.tgz", - "integrity": "sha512-fO3gf3DxU2Trcbr75O7obVndW/X5k8rJNZkLXlQWStTHhP71PkRqjwPIEI0yMnJdg9R9OasjU+Bsr+Hr1xy/0w==", - "requires": { - "@types/express": "*" - } + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.9.tgz", + "integrity": "sha512-zurD1ibz21BRlAOIKP8yhrxlqKx6L9VCwkB5kMiP6nZAhoF5MvC7qS1qPA7nRcr1GJolfkQC7/EAL4hdYejLtg==" }, "@types/debug": { "version": "4.1.5", @@ -58,31 +55,24 @@ "dev": true }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/http-errors": { @@ -112,20 +102,20 @@ } }, "@types/lodash": { - "version": "4.14.165", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.165.tgz", - "integrity": "sha512-tjSSOTHhI5mCHTy/OOXYIhi2Wt1qcbHmuXD1Ha7q70CgI/I71afO4XtLb/cVexki1oVYchpul/TOuu3Arcdxrg==", + "version": "4.14.168", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.168.tgz", + "integrity": "sha512-oVfRvqHV/V6D1yifJbVRU3TMp8OT6o6BG+U9MkwuJ3U8/CsDHvalRpsxBqivn71ztOFZBTfJMvETbqHiaNSj7Q==", "dev": true }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/multer": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.4.tgz", - "integrity": "sha512-wdfkiKBBEMTODNbuF3J+qDDSqJxt50yB9pgDiTcFew7f97Gcc7/sM4HR66ofGgpJPOALWOqKAch4gPyqEXSkeQ==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/@types/multer/-/multer-1.4.5.tgz", + "integrity": "sha512-9b/0a8JyrR0r2nQhL73JR86obWL7cogfX12augvlrvcpciCo/hkvEsgu80Z4S2g2DHGVXHr8pUIi1VhqFJ8Ufw==", "dev": true, "requires": { "@types/express": "*" @@ -134,8 +124,7 @@ "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==", - "dev": true + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/on-finished": { "version": "2.3.1", @@ -163,19 +152,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/type-is": { @@ -832,9 +814,9 @@ } }, "js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "requires": { "argparse": "^1.0.7", "esprima": "^4.0.0" @@ -1108,9 +1090,9 @@ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" }, "qs": { - "version": "6.9.4", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.4.tgz", - "integrity": "sha512-A1kFqHekCTM7cz0udomYUoYNWjBebHm/5wzU/XqrBRBNWectVH0QIiN+NEcZ0Dte5hvzHwbr8+XQmguPhJ6WdQ==" + "version": "6.9.6", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", + "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==" }, "range-parser": { "version": "1.2.1", @@ -1377,9 +1359,9 @@ "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=" }, "validator": { - "version": "13.5.1", - "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.1.tgz", - "integrity": "sha512-s+7LW1Xi0OzPNfGN7Hb2vk0YB/epp9KFHHGC5JtqZOE1dUkN4ULPFZAQ1inCu7ceAsWmOJu6sn9cnwm3R+ghWQ==" + "version": "13.5.2", + "resolved": "https://registry.npmjs.org/validator/-/validator-13.5.2.tgz", + "integrity": "sha512-mD45p0rvHVBlY2Zuy3F3ESIe1h5X58GPfAtslBjY7EtTqGquZTj+VX/J4RnHWN8FKq0C9WRVt1oWAcytWRuYLQ==" }, "vary": { "version": "1.1.2", diff --git a/packages/rest/package.json b/packages/rest/package.json index c14ef238735a..869d893340f0 100644 --- a/packages/rest/package.json +++ b/packages/rest/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/rest", - "version": "9.1.1", + "version": "9.1.2", "description": "Expose controllers as REST endpoints and route REST API requests to controller methods", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,20 +24,20 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { - "@loopback/express": "^3.1.1", - "@loopback/http-server": "^2.3.3", - "@loopback/openapi-v3": "^5.1.2", + "@loopback/express": "^3.1.2", + "@loopback/http-server": "^2.3.4", + "@loopback/openapi-v3": "^5.1.3", "@openapi-contrib/openapi-schema-to-json-schema": "^3.0.4", "@types/body-parser": "^1.19.0", - "@types/cors": "^2.8.8", - "@types/express": "^4.17.9", - "@types/express-serve-static-core": "^4.17.14", + "@types/cors": "^2.8.9", + "@types/express": "^4.17.11", + "@types/express-serve-static-core": "^4.17.18", "@types/http-errors": "^1.8.0", "@types/on-finished": "^2.3.1", - "@types/serve-static": "1.13.8", + "@types/serve-static": "1.13.9", "@types/type-is": "^1.6.3", "ajv": "^6.12.6", "ajv-errors": "^1.0.1", @@ -47,29 +47,29 @@ "debug": "^4.3.1", "express": "^4.17.1", "http-errors": "^1.8.0", - "js-yaml": "^3.14.0", + "js-yaml": "^3.14.1", "json-schema-compare": "^0.2.2", "lodash": "^4.17.20", "on-finished": "^2.3.0", "path-to-regexp": "^6.2.0", - "qs": "^6.9.4", + "qs": "^6.9.6", "strong-error-handler": "^4.0.0", "tslib": "^2.0.3", "type-is": "^1.6.18", - "validator": "^13.5.1" + "validator": "^13.5.2" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/openapi-spec-builder": "^3.0.3", - "@loopback/repository": "^3.3.0", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/openapi-spec-builder": "^3.0.4", + "@loopback/repository": "^3.4.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/js-yaml": "^3.12.5", "@types/json-schema-compare": "^0.2.0", - "@types/lodash": "^4.14.165", - "@types/multer": "^1.4.4", + "@types/lodash": "^4.14.168", + "@types/multer": "^1.4.5", "@types/node": "^10.17.35", "@types/on-finished": "^2.3.1", "@types/qs": "^6.9.5", diff --git a/packages/security/CHANGELOG.md b/packages/security/CHANGELOG.md index 56a30b8bf1ea..1524f8e16e16 100644 --- a/packages/security/CHANGELOG.md +++ b/packages/security/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [0.3.6](https://github.com/strongloop/loopback-next/compare/@loopback/security@0.3.5...@loopback/security@0.3.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/security + + + + + ## [0.3.5](https://github.com/strongloop/loopback-next/compare/@loopback/security@0.3.4...@loopback/security@0.3.5) (2020-12-07) **Note:** Version bump only for package @loopback/security diff --git a/packages/security/package-lock.json b/packages/security/package-lock.json index e219b164be13..a749519b59cb 100644 --- a/packages/security/package-lock.json +++ b/packages/security/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/security", - "version": "0.3.5", + "version": "0.3.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/security/package.json b/packages/security/package.json index bb74de31ee65..1ba88412c084 100644 --- a/packages/security/package.json +++ b/packages/security/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/security", - "version": "0.3.5", + "version": "0.3.6", "description": "A LoopBack component for security support.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,16 +24,16 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { "debug": "^4.3.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/testlab": "^3.2.11", "@types/debug": "^4.1.5", "@types/node": "^10.17.35" }, diff --git a/packages/service-proxy/CHANGELOG.md b/packages/service-proxy/CHANGELOG.md index bf615ec441c3..9a4d798ae010 100644 --- a/packages/service-proxy/CHANGELOG.md +++ b/packages/service-proxy/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.0.6](https://github.com/strongloop/loopback-next/compare/@loopback/service-proxy@3.0.5...@loopback/service-proxy@3.0.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/service-proxy + + + + + ## [3.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/service-proxy@3.0.4...@loopback/service-proxy@3.0.5) (2020-12-07) **Note:** Version bump only for package @loopback/service-proxy diff --git a/packages/service-proxy/package-lock.json b/packages/service-proxy/package-lock.json index 178ef701e79b..b0ae13614d1d 100644 --- a/packages/service-proxy/package-lock.json +++ b/packages/service-proxy/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/service-proxy", - "version": "3.0.5", + "version": "3.0.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/service-proxy/package.json b/packages/service-proxy/package.json index e035ccf428d5..0cb110d6c2c2 100644 --- a/packages/service-proxy/package.json +++ b/packages/service-proxy/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/service-proxy", - "version": "3.0.5", + "version": "3.0.6", "description": "A common set of interfaces for interacting with service oriented backends such as REST APIs, SOAP Web Services, and gRPC microservices", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "acceptance": "lb-mocha \"dist/__tests__/acceptance/**/*.js\"", @@ -24,17 +24,17 @@ "access": "public" }, "peerDependencies": { - "@loopback/core": "^2.13.1" + "@loopback/core": "^2.14.0" }, "dependencies": { "loopback-datasource-juggler": "^4.26.0", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/core": "^2.13.1", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", + "@loopback/build": "^6.2.9", + "@loopback/core": "^2.14.0", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", "@types/node": "^10.17.35" }, "files": [ diff --git a/packages/testlab/CHANGELOG.md b/packages/testlab/CHANGELOG.md index 44a59993c2d2..5cf40db2f0fa 100644 --- a/packages/testlab/CHANGELOG.md +++ b/packages/testlab/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [3.2.11](https://github.com/strongloop/loopback-next/compare/@loopback/testlab@3.2.10...@loopback/testlab@3.2.11) (2021-01-21) + +**Note:** Version bump only for package @loopback/testlab + + + + + ## [3.2.10](https://github.com/strongloop/loopback-next/compare/@loopback/testlab@3.2.9...@loopback/testlab@3.2.10) (2020-12-07) **Note:** Version bump only for package @loopback/testlab diff --git a/packages/testlab/package-lock.json b/packages/testlab/package-lock.json index 215a74e2a613..8b321ef481fe 100644 --- a/packages/testlab/package-lock.json +++ b/packages/testlab/package-lock.json @@ -1,6 +1,6 @@ { "name": "@loopback/testlab", - "version": "3.2.10", + "version": "3.2.11", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -56,15 +56,6 @@ "@sinonjs/commons": "^1.7.0" } }, - "@sinonjs/formatio": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-5.0.1.tgz", - "integrity": "sha512-KaiQ5pBf1MpS09MuA0kp6KBQt2JUOQycqVG1NZXvzeaXe5LGFqAKueIS0bw4w0P9r7KuBSVdUk5QjXsUdu2CxQ==", - "requires": { - "@sinonjs/commons": "^1", - "@sinonjs/samsam": "^5.0.2" - } - }, "@sinonjs/samsam": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.0.tgz", @@ -87,28 +78,14 @@ "requires": { "@types/connect": "*", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/connect": { - "version": "3.4.33", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.33.tgz", - "integrity": "sha512-2+FrkXY4zllzTNfJth7jOqEHC+enpLeGslEhpnTAkg21GkRrWV4SsAtqchtT4YS9/nODBU2/ZfsBY2X4J/dX7A==", + "version": "3.4.34", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz", + "integrity": "sha512-ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ==", "requires": { "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/cookiejar": { @@ -117,37 +94,30 @@ "integrity": "sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==" }, "@types/express": { - "version": "4.17.9", - "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.9.tgz", - "integrity": "sha512-SDzEIZInC4sivGIFY4Sz1GG6J9UObPwCInYJjko2jzOf/Imx/dlpume6Xxwj1ORL82tBbmN4cPDIDkLbWHk9hw==", + "version": "4.17.11", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz", + "integrity": "sha512-no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg==", "requires": { "@types/body-parser": "*", - "@types/express-serve-static-core": "*", + "@types/express-serve-static-core": "^4.17.18", "@types/qs": "*", "@types/serve-static": "*" } }, "@types/express-serve-static-core": { - "version": "4.17.14", - "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.14.tgz", - "integrity": "sha512-uFTLwu94TfUFMToXNgRZikwPuZdOtDgs3syBtAIr/OXorL1kJqUJT9qCLnRZ5KBOWfZQikQ2xKgR2tnDj1OgDA==", + "version": "4.17.18", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz", + "integrity": "sha512-m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA==", "requires": { "@types/node": "*", "@types/qs": "*", "@types/range-parser": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/fs-extra": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.4.tgz", - "integrity": "sha512-50GO5ez44lxK5MDH90DYHFFfqxH7+fTqEEnvguQRzJ/tY9qFrMSHLiYHite+F3SNmf7+LHC1eMXojuD+E3Qcyg==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", + "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", "requires": { "@types/node": "*" }, @@ -160,15 +130,14 @@ } }, "@types/mime": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/mime/-/mime-2.0.3.tgz", - "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==" }, "@types/node": { "version": "10.17.48", "resolved": "https://registry.npmjs.org/@types/node/-/node-10.17.48.tgz", - "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==", - "dev": true + "integrity": "sha512-Agl6xbYP6FOMDeAsr3QVZ+g7Yzg0uhPHWx0j5g4LFdUBHVtqtU+gH660k/lCEe506jJLOGbEzsnqPDTZGJQLag==" }, "@types/qs": { "version": "6.9.5", @@ -181,19 +150,12 @@ "integrity": "sha512-ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA==" }, "@types/serve-static": { - "version": "1.13.8", - "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.8.tgz", - "integrity": "sha512-MoJhSQreaVoL+/hurAZzIm8wafFR6ajiTM1m4A0kv6AGeVBl4r4pOV8bGFrjjq1sGxDTnCoF8i22o0/aE5XCyA==", + "version": "1.13.9", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz", + "integrity": "sha512-ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA==", "requires": { - "@types/mime": "*", + "@types/mime": "^1", "@types/node": "*" - }, - "dependencies": { - "@types/node": { - "version": "14.14.10", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", - "integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" - } } }, "@types/shot": { @@ -212,9 +174,9 @@ } }, "@types/sinon": { - "version": "9.0.9", - "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.9.tgz", - "integrity": "sha512-z/y8maYOQyYLyqaOB+dYQ6i0pxKLOsfwCmHmn4T7jS/SDHicIslr37oE3Dg8SCqKrKeBy6Lemu7do2yy+unLrw==", + "version": "9.0.10", + "resolved": "https://registry.npmjs.org/@types/sinon/-/sinon-9.0.10.tgz", + "integrity": "sha512-/faDC0erR06wMdybwI/uR8wEKV/E83T0k4sepIpB7gXuy2gzx2xiOjmztq6a2Y6rIGJ04D+6UU0VBmWy+4HEMA==", "requires": { "@types/sinonjs__fake-timers": "*" } @@ -516,14 +478,14 @@ "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" } }, "get-caller-file": { @@ -593,13 +555,6 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "just-extend": { @@ -921,14 +876,13 @@ "integrity": "sha512-oXF8tfxx5cDk8r2kYqlkUJzZpDBqVY/II2WhvU0n9Y3XYvAYRmeaf1PvvIvTgPnv4KJ+ES5M0PyDq5Jp+Ygy2g==" }, "sinon": { - "version": "9.2.1", - "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.1.tgz", - "integrity": "sha512-naPfsamB5KEE1aiioaoqJ6MEhdUs/2vtI5w1hPAXX/UwvoPjXcwh1m5HiKx0HGgKR8lQSoFIgY5jM6KK8VrS9w==", + "version": "9.2.3", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-9.2.3.tgz", + "integrity": "sha512-m+DyAWvqVHZtjnjX/nuShasykFeiZ+nPuEfD4G3gpvKGkXRhkF/6NSt2qN2FjZhfrcHXFzUzI+NLnk+42fnLEw==", "requires": { "@sinonjs/commons": "^1.8.1", "@sinonjs/fake-timers": "^6.0.1", - "@sinonjs/formatio": "^5.0.1", - "@sinonjs/samsam": "^5.2.0", + "@sinonjs/samsam": "^5.3.0", "diff": "^4.0.2", "nise": "^4.0.4", "supports-color": "^7.1.0" @@ -1057,9 +1011,9 @@ } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" }, "unpipe": { "version": "1.0.0", diff --git a/packages/testlab/package.json b/packages/testlab/package.json index 6aeac89325eb..38658b559ac0 100644 --- a/packages/testlab/package.json +++ b/packages/testlab/package.json @@ -1,11 +1,11 @@ { "name": "@loopback/testlab", - "version": "3.2.10", + "version": "3.2.11", "description": "A collection of test utilities we use to write LoopBack tests.", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build": "lb-tsc", @@ -22,22 +22,22 @@ }, "dependencies": { "@hapi/shot": "^5.0.4", - "@types/express": "^4.17.9", - "@types/fs-extra": "^9.0.4", + "@types/express": "^4.17.11", + "@types/fs-extra": "^9.0.6", "@types/shot": "^4.0.0", - "@types/sinon": "^9.0.9", + "@types/sinon": "^9.0.10", "@types/supertest": "^2.0.10", "express": "^4.17.1", - "fs-extra": "^9.0.1", + "fs-extra": "^9.1.0", "oas-validator": "^5.0.4", "should": "^13.2.3", - "sinon": "^9.2.1", + "sinon": "^9.2.3", "supertest": "^6.0.1", "tslib": "^2.0.3" }, "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", "@types/node": "^10.17.35" }, "files": [ diff --git a/packages/tsdocs/CHANGELOG.md b/packages/tsdocs/CHANGELOG.md index 43e09533cc51..c972d8e5cb1b 100644 --- a/packages/tsdocs/CHANGELOG.md +++ b/packages/tsdocs/CHANGELOG.md @@ -3,6 +3,17 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +# [2.4.0](https://github.com/strongloop/loopback-next/compare/@loopback/tsdocs@2.3.6...@loopback/tsdocs@2.4.0) (2021-01-21) + + +### Features + +* make @loopback/tsdocs public so that it can be used by other projects ([90d157f](https://github.com/strongloop/loopback-next/commit/90d157f2762f8c61199ade35014bebc45e7a3d2f)) + + + + + ## [2.3.6](https://github.com/strongloop/loopback-next/compare/@loopback/tsdocs@2.3.5...@loopback/tsdocs@2.3.6) (2020-12-07) **Note:** Version bump only for package @loopback/tsdocs diff --git a/packages/tsdocs/bin/document-apis.js b/packages/tsdocs/bin/document-apis.js new file mode 100644 index 000000000000..e343351f6eda --- /dev/null +++ b/packages/tsdocs/bin/document-apis.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node +// Copyright IBM Corp. 2021. All Rights Reserved. +// Node module: @loopback/tsdocs +// This file is licensed under the MIT License. +// License text available at https://opensource.org/licenses/MIT + +if (require.main === module) { + require('@microsoft/api-documenter/lib/start'); +} diff --git a/packages/tsdocs/package-lock.json b/packages/tsdocs/package-lock.json index 4e2139b2c2a7..225577015dce 100644 --- a/packages/tsdocs/package-lock.json +++ b/packages/tsdocs/package-lock.json @@ -1,59 +1,59 @@ { "name": "@loopback/tsdocs", - "version": "2.3.6", + "version": "2.4.0", "lockfileVersion": 1, "requires": true, "dependencies": { "@microsoft/api-documenter": { - "version": "7.11.3", - "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.11.3.tgz", - "integrity": "sha512-tXdd+zWqufKDbbocIgMRB1AyRj0HiAI+gTIvCyAtJX9KOGFYreTt2kFPzFssPBMeNycq58zXl0fXRr+vA7WnNA==", + "version": "7.12.5", + "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.12.5.tgz", + "integrity": "sha512-Mrogwtt2WJiXharHxF52XnIHU8iM+YcmfHxWcnYyO9IXVqovQDK4xSYa22V9WRbGtjmxUH9sFBOcdvSsF6JHUA==", "requires": { - "@microsoft/api-extractor-model": "7.12.0", - "@microsoft/tsdoc": "0.12.19", - "@rushstack/node-core-library": "3.35.1", - "@rushstack/ts-command-line": "4.7.7", + "@microsoft/api-extractor-model": "7.12.1", + "@microsoft/tsdoc": "0.12.24", + "@rushstack/node-core-library": "3.35.2", + "@rushstack/ts-command-line": "4.7.8", "colors": "~1.2.1", "js-yaml": "~3.13.1", "resolve": "~1.17.0" } }, "@microsoft/api-extractor": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.12.0.tgz", - "integrity": "sha512-YDd7AUkIayPLooMasDyV4vle1TLUQhFp2v/tGdRU+WAVbnyVUDXXa20WEfbPEZ4QVlgN+77EX6f2K6GyKd713A==", + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.13.0.tgz", + "integrity": "sha512-T+14VIhB91oJIett5AZ02VWYmz/01VHFWkcAOWiErIQ8AiFhJZoGqTjGxoi8ZpEEBuAj2EGVYojORwLc/+aiDQ==", "requires": { - "@microsoft/api-extractor-model": "7.12.0", - "@microsoft/tsdoc": "0.12.19", - "@rushstack/node-core-library": "3.35.1", - "@rushstack/rig-package": "0.2.8", - "@rushstack/ts-command-line": "4.7.7", + "@microsoft/api-extractor-model": "7.12.1", + "@microsoft/tsdoc": "0.12.24", + "@rushstack/node-core-library": "3.35.2", + "@rushstack/rig-package": "0.2.9", + "@rushstack/ts-command-line": "4.7.8", "colors": "~1.2.1", "lodash": "~4.17.15", "resolve": "~1.17.0", "semver": "~7.3.0", "source-map": "~0.6.1", - "typescript": "~4.0.5" + "typescript": "~4.1.3" } }, "@microsoft/api-extractor-model": { - "version": "7.12.0", - "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.12.0.tgz", - "integrity": "sha512-TxoAbL/lauS3k/brBWVsiQTnyHBwHrAGJhTuiD0tWS/eu4dLNULchcSQfcOaFS91OgDEz4lMMbClgChFuo+53Q==", + "version": "7.12.1", + "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.12.1.tgz", + "integrity": "sha512-Hw+kYfUb1gt6xPWGFW8APtLVWeNEWz4JE6PbLkSHw/j+G1hAaStzgxhBx3GOAWM/G0SCDGVJOpd5YheVOyu/KQ==", "requires": { - "@microsoft/tsdoc": "0.12.19", - "@rushstack/node-core-library": "3.35.1" + "@microsoft/tsdoc": "0.12.24", + "@rushstack/node-core-library": "3.35.2" } }, "@microsoft/tsdoc": { - "version": "0.12.19", - "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.19.tgz", - "integrity": "sha512-IpgPxHrNxZiMNUSXqR1l/gePKPkfAmIKoDRP9hp7OwjU29ZR8WCJsOJ8iBKgw0Qk+pFwR+8Y1cy8ImLY6e9m4A==" + "version": "0.12.24", + "resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.24.tgz", + "integrity": "sha512-Mfmij13RUTmHEMi9vRUhMXD7rnGR2VvxeNYtaGtaJ4redwwjT4UXYJ+nzmVJF7hhd4pn/Fx5sncDKxMVFJSWPg==" }, "@rushstack/node-core-library": { - "version": "3.35.1", - "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.35.1.tgz", - "integrity": "sha512-ZwnXp2loZyVUgrZ+fEKKF/EHl0ikcy6SCsd34ewYXoEAs0XWIy2VS9bemrfaFtd2VzJ/G/ZbP3xHkqRnUPKJ4Q==", + "version": "3.35.2", + "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-3.35.2.tgz", + "integrity": "sha512-SPd0uG7mwsf3E30np9afCUhtaM1SBpibrbxOXPz82KWV6SQiPUtXeQfhXq9mSnGxOb3WLWoSDe7AFxQNex3+kQ==", "requires": { "@types/node": "10.17.13", "colors": "~1.2.1", @@ -84,9 +84,9 @@ } }, "@rushstack/rig-package": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.2.8.tgz", - "integrity": "sha512-Ltjeg1a5Sx7XTW9oBxmcfhHseBLnH7I/8d6tAtjx5s0r7F6WmNVJdxVmt86qNfXcFRsiGNrzLqjMwlcX3GyldQ==", + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.2.9.tgz", + "integrity": "sha512-4tqsZ/m+BjeNAGeAJYzPF53CT96TsAYeZ3Pq3T4tb1pGGM3d3TWfkmALZdKNhpRlAeShKUrb/o/f/0sAuK/1VQ==", "requires": { "@types/node": "10.17.13", "resolve": "~1.17.0", @@ -101,9 +101,9 @@ } }, "@rushstack/ts-command-line": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.7.7.tgz", - "integrity": "sha512-COSDys0WTVCORKam2hsTL32As4fHAf1RqC6FKS98hgR0Z90nh1JX8fGNkvSdxaZ6dOuNTJj3txh+SpWoHJoZJA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-4.7.8.tgz", + "integrity": "sha512-8ghIWhkph7NnLCMDJtthpsb7TMOsVGXVDvmxjE/CeklTqjbbUFBjGXizJfpbEkRQTELuZQ2+vGn7sGwIWKN2uA==", "requires": { "@types/argparse": "1.0.38", "argparse": "~1.0.9", @@ -123,9 +123,9 @@ "dev": true }, "@types/fs-extra": { - "version": "9.0.4", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.4.tgz", - "integrity": "sha512-50GO5ez44lxK5MDH90DYHFFfqxH7+fTqEEnvguQRzJ/tY9qFrMSHLiYHite+F3SNmf7+LHC1eMXojuD+E3Qcyg==", + "version": "9.0.6", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.6.tgz", + "integrity": "sha512-ecNRHw4clCkowNOBJH1e77nvbPxHYnWIXMv1IAoG/9+MYGkgoyr3Ppxr7XYFNL41V422EDhyV4/4SSK8L2mlig==", "dev": true, "requires": { "@types/node": "*" @@ -175,14 +175,14 @@ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" }, "fs-extra": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", - "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz", + "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==", "requires": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", - "universalify": "^1.0.0" + "universalify": "^2.0.0" }, "dependencies": { "jsonfile": { @@ -192,19 +192,12 @@ "requires": { "graceful-fs": "^4.1.6", "universalify": "^2.0.0" - }, - "dependencies": { - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" - } } }, "universalify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", - "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" } } }, @@ -320,9 +313,9 @@ "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ==" }, "typescript": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.0.5.tgz", - "integrity": "sha512-ywmr/VrTVCmNTJ6iV2LwIrfG1P+lv6luD8sUJs+2eI9NLGigaN+nUQc13iHqisq7bra9lnmUSYqbJvegraBOPQ==" + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz", + "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==" }, "universalify": { "version": "0.1.2", diff --git a/packages/tsdocs/package.json b/packages/tsdocs/package.json index e29b3c1081bc..aa1809b579f2 100644 --- a/packages/tsdocs/package.json +++ b/packages/tsdocs/package.json @@ -1,17 +1,16 @@ { "name": "@loopback/tsdocs", - "version": "2.3.6", - "description": "An internal package to generate api docs using Microsoft api-extractor and api-documenter", - "private": true, + "version": "2.4.0", + "description": "A package to generate api docs using Microsoft api-extractor and api-documenter", "main": "dist/index.js", "types": "dist/index.d.ts", "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "scripts": { "build:tsdocs": "npm run build && npm run -s extract-apidocs && npm run -s document-apidocs && npm run -s update-apidocs", "extract-apidocs": "node bin/extract-apis", - "document-apidocs": "api-documenter markdown -i ../../docs/apidocs/models -o ../../docs/site/apidocs", + "document-apidocs": "node bin/document-apis markdown -i ../../docs/apidocs/models -o ../../docs/site/apidocs", "update-apidocs": "node bin/update-apidocs", "build": "lb-tsc", "build:fixtures": "npm run build --prefix fixtures/monorepo", @@ -20,25 +19,14 @@ "test": "lb-mocha \"dist/__tests__/**/*.js\"", "verify": "npm pack && tar xf loopback-tsdocs*.tgz && tree package && npm run clean" }, + "bin": { + "lb-extract-apidocs": "./bin/extract-apis.js", + "lb-document-apidocs": "./bin/document-apis.js", + "lb-update-apidocs": "./bin/update-apidocs.js" + }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.", "license": "MIT", - "dependencies": { - "@microsoft/api-documenter": "^7.11.3", - "@microsoft/api-extractor": "^7.12.0", - "debug": "^4.3.1", - "fs-extra": "^9.0.1", - "tslib": "^2.0.3" - }, - "devDependencies": { - "@loopback/build": "^6.2.8", - "@loopback/eslint-config": "^10.0.4", - "@loopback/testlab": "^3.2.10", - "@loopback/tsdocs-monorepo": "^0.0.13", - "@types/debug": "^4.1.5", - "@types/fs-extra": "^9.0.4", - "@types/node": "^10.17.35" - }, "keywords": [ "LoopBack", "Apidocs", @@ -55,5 +43,24 @@ "type": "git", "url": "https://github.com/strongloop/loopback-next.git", "directory": "packages/tsdocs" + }, + "publishConfig": { + "access": "public" + }, + "dependencies": { + "@microsoft/api-documenter": "^7.12.5", + "@microsoft/api-extractor": "^7.13.0", + "debug": "^4.3.1", + "fs-extra": "^9.1.0", + "tslib": "^2.0.3" + }, + "devDependencies": { + "@loopback/build": "^6.2.9", + "@loopback/eslint-config": "^10.0.5", + "@loopback/testlab": "^3.2.11", + "@loopback/tsdocs-monorepo": "^0.0.14", + "@types/debug": "^4.1.5", + "@types/fs-extra": "^9.0.6", + "@types/node": "^10.17.35" } } diff --git a/sandbox/example/CHANGELOG.md b/sandbox/example/CHANGELOG.md index 7728fe48bd92..4e78b0fa8846 100644 --- a/sandbox/example/CHANGELOG.md +++ b/sandbox/example/CHANGELOG.md @@ -3,6 +3,14 @@ All notable changes to this project will be documented in this file. See [Conventional Commits](https://conventionalcommits.org) for commit guidelines. +## [2.0.6](https://github.com/strongloop/loopback-next/compare/@loopback/sandbox-example@2.0.5...@loopback/sandbox-example@2.0.6) (2021-01-21) + +**Note:** Version bump only for package @loopback/sandbox-example + + + + + ## [2.0.5](https://github.com/strongloop/loopback-next/compare/@loopback/sandbox-example@2.0.4...@loopback/sandbox-example@2.0.5) (2020-10-07) **Note:** Version bump only for package @loopback/sandbox-example diff --git a/sandbox/example/package.json b/sandbox/example/package.json index 644d8cc6d95f..4738b77a7441 100644 --- a/sandbox/example/package.json +++ b/sandbox/example/package.json @@ -1,6 +1,6 @@ { "name": "@loopback/sandbox-example", - "version": "2.0.5", + "version": "2.0.6", "description": "Sample project for sandbox", "main": "index.js", "private": true, @@ -8,7 +8,7 @@ "test": "echo \"This is an example for sandbox\"" }, "engines": { - "node": "^10.16 || 12 || 14" + "node": "^10.16 || 12 || 14 || 15" }, "author": "IBM Corp.", "copyright.owner": "IBM Corp.",