فهرست منبع

Merge branch 'master' into minor

Michael Bromley 3 سال پیش
والد
کامیت
c5ec76c5af

+ 9 - 9
.github/workflows/build_and_test.yml

@@ -20,12 +20,12 @@ jobs:
     name: build
     runs-on: ubuntu-latest
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Use Node.js ${{ env.node }}
-      uses: actions/setup-node@v1
+      uses: actions/setup-node@v3
       with:
         node-version: ${{ env.node }}
-    - uses: actions/cache@v2
+    - uses: actions/cache@v3
       id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
       with:
         path: '**/node_modules'
@@ -43,12 +43,12 @@ jobs:
     name: unit tests
     runs-on: ubuntu-latest
     steps:
-      - uses: actions/checkout@v1
+      - uses: actions/checkout@v3
       - name: Use Node.js ${{ env.node }}
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: ${{ env.node }}
-      - uses: actions/cache@v2
+      - uses: actions/cache@v3
         id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
         with:
           path: '**/node_modules'
@@ -111,12 +111,12 @@ jobs:
       matrix:
         db: [sqljs, mariadb, mysql, postgres]
     steps:
-      - uses: actions/checkout@v1
+      - uses: actions/checkout@v3
       - name: Use Node.js ${{ env.node }}
-        uses: actions/setup-node@v1
+        uses: actions/setup-node@v3
         with:
           node-version: ${{ env.node }}
-      - uses: actions/cache@v2
+      - uses: actions/cache@v3
         id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
         with:
           path: '**/node_modules'

+ 6 - 6
.github/workflows/publish_and_install.yml

@@ -20,12 +20,12 @@ jobs:
     strategy:
       matrix:
         os: [ubuntu-latest, windows-latest, macos-latest]
-        node-version: [12.x, 14.x, 16.x]
+        node-version: [14.x, 16.x]
       fail-fast: false
     steps:
-    - uses: actions/checkout@v2
+    - uses: actions/checkout@v3
     - name: Use Node.js ${{ matrix.node-version }}
-      uses: actions/setup-node@v1
+      uses: actions/setup-node@v3
       with:
         node-version: ${{ matrix.node-version }}
     - name: Install Verdaccio
@@ -45,13 +45,13 @@ jobs:
     - name: Get yarn cache directory path
       id: yarn-cache-dir-path
       run: echo "::set-output name=dir::$(yarn cache dir)"
-    - uses: actions/cache@v2
+    - uses: actions/cache@v3
       id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
       with:
         path: '**/node_modules'
-        key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
+        key: ${{ runner.os }}-${{ matrix.node-version }}-yarn-${{ hashFiles('**/yarn.lock') }}
         restore-keys: |
-          ${{ runner.os }}-yarn-
+          ${{ runner.os }}-${{ matrix.node-version }}-yarn-
     - name: Yarn install
       if: steps.yarn-cache.outputs.cache-hit != 'true'
       run: |

+ 19 - 0
CHANGELOG.md

@@ -1,3 +1,22 @@
+## <small>1.8.4 (2022-11-18)</small>
+
+
+#### Fixes
+
+* **admin-ui** Allow creation of Administrator without update permission ([8ea8e47](https://github.com/vendure-ecommerce/vendure/commit/8ea8e47)), closes [#1875](https://github.com/vendure-ecommerce/vendure/issues/1875)
+* **admin-ui** Fix edge case errors when facet value detail editing ([3e56f06](https://github.com/vendure-ecommerce/vendure/commit/3e56f06))
+* **core** AuthGuard correctly handles subscriptions ([96d10b3](https://github.com/vendure-ecommerce/vendure/commit/96d10b3))
+* **core** Fix creation of superadmin ([5fee35b](https://github.com/vendure-ecommerce/vendure/commit/5fee35b))
+* **core** Fix injectable hooks on TaxLineCalculationStrategy (#1882) ([77163eb](https://github.com/vendure-ecommerce/vendure/commit/77163eb)), closes [#1882](https://github.com/vendure-ecommerce/vendure/issues/1882) [#1871](https://github.com/vendure-ecommerce/vendure/issues/1871)
+* **core** Fix permission escalation when creating Roles/Admins ([8f12142](https://github.com/vendure-ecommerce/vendure/commit/8f12142)), closes [#1874](https://github.com/vendure-ecommerce/vendure/issues/1874)
+* **payments-plugin** Return 200 on Stripe payment failed event (#1878) ([ec205ea](https://github.com/vendure-ecommerce/vendure/commit/ec205ea)), closes [#1878](https://github.com/vendure-ecommerce/vendure/issues/1878)
+* **ui-devkit** Update scaffolding to use correct eslib (#1886) ([30f79af](https://github.com/vendure-ecommerce/vendure/commit/30f79af)), closes [#1886](https://github.com/vendure-ecommerce/vendure/issues/1886) [#1859](https://github.com/vendure-ecommerce/vendure/issues/1859)
+
+#### Perf
+
+* **admin-ui** Load only first page of customer orders ([0c9b60e](https://github.com/vendure-ecommerce/vendure/commit/0c9b60e)), closes [#1769](https://github.com/vendure-ecommerce/vendure/issues/1769)
+* **core** Trim payload of Job type to omit verbose ctx data ([c25a1e3](https://github.com/vendure-ecommerce/vendure/commit/c25a1e3)), closes [#1376](https://github.com/vendure-ecommerce/vendure/issues/1376)
+
 ## <small>1.8.3 (2022-11-10)</small>
 
 

+ 1 - 1
docs/content/getting-started.md

@@ -7,7 +7,7 @@ weight: 0
 
 ## Requirements
  
-* [Node.js](https://nodejs.org/en/) **v12** or above, with support for **even-numbered Node.js versions**.
+* [Node.js](https://nodejs.org/en/) **v14** or above, with support for **even-numbered Node.js versions**.
 * The [supported TypeScript version](https://github.com/vendure-ecommerce/vendure/blob/master/packages/create/src/constants.ts#L7) is set upon installation. Upgrading to a newer version of TypeScript might result in compilation errors.
 * If you want to use MySQL, MariaDB, or Postgres as your data store, then you'll need an instance available locally. However, if you are just testing out Vendure, we recommend using SQLite, which has no external requirements.
 * For Windows users: make sure you have **[windows build tools](https://www.npmjs.com/package/windows-build-tools) installed**

+ 1 - 1
lerna.json

@@ -2,7 +2,7 @@
   "packages": [
     "packages/*"
   ],
-  "version": "1.8.3",
+  "version": "1.8.4",
   "npmClient": "yarn",
   "useWorkspaces": true,
   "command": {

+ 3 - 3
packages/admin-ui-plugin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/admin-ui-plugin",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
   "files": [
@@ -21,8 +21,8 @@
   "devDependencies": {
     "@types/express": "^4.17.8",
     "@types/fs-extra": "^9.0.1",
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
     "express": "^4.17.1",
     "rimraf": "^3.0.2",
     "typescript": "4.3.5"

+ 2 - 2
packages/admin-ui/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/admin-ui",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "license": "MIT",
   "scripts": {
     "ng": "ng",
@@ -39,7 +39,7 @@
     "@ng-select/ng-select": "^7.2.0",
     "@ngx-translate/core": "^13.0.0",
     "@ngx-translate/http-loader": "^6.0.0",
-    "@vendure/common": "^1.8.3",
+    "@vendure/common": "^1.8.4",
     "@webcomponents/custom-elements": "^1.4.3",
     "apollo-angular": "^2.6.0",
     "apollo-upload-client": "^16.0.0",

+ 1 - 1
packages/admin-ui/src/lib/core/src/common/version.ts

@@ -1,2 +1,2 @@
 // Auto-generated by the set-version.js script.
-export const ADMIN_UI_VERSION = '1.8.3';
+export const ADMIN_UI_VERSION = '1.8.4';

+ 1 - 1
packages/admin-ui/src/lib/customer/src/providers/routing/customer-resolver.ts

@@ -26,7 +26,7 @@ export class CustomerResolver extends BaseEntityResolver<Customer.Fragment> {
             },
             id =>
                 dataService.customer
-                    .getCustomer(id, { sort: { orderPlacedAt: SortOrder.DESC } })
+                    .getCustomer(id, { take: 10, sort: { orderPlacedAt: SortOrder.DESC } })
                     .mapStream(data => data.customer),
         );
     }

+ 3 - 3
packages/asset-server-plugin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/asset-server-plugin",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
   "files": [
@@ -24,8 +24,8 @@
     "@types/fs-extra": "^9.0.8",
     "@types/node-fetch": "^2.5.8",
     "@types/sharp": "^0.30.4",
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
     "aws-sdk": "^2.856.0",
     "express": "^4.17.1",
     "node-fetch": "^2.6.1",

+ 1 - 1
packages/common/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/common",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "main": "index.js",
   "license": "MIT",
   "scripts": {

+ 2 - 2
packages/core/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/core",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "description": "A modern, headless ecommerce framework",
   "repository": {
     "type": "git",
@@ -49,7 +49,7 @@
     "@nestjs/testing": "7.6.17",
     "@nestjs/typeorm": "7.1.5",
     "@types/fs-extra": "^9.0.1",
-    "@vendure/common": "^1.8.3",
+    "@vendure/common": "^1.8.4",
     "apollo-server-express": "2.24.1",
     "bcrypt": "^5.1.0",
     "body-parser": "^1.19.0",

+ 42 - 0
packages/core/src/api/resolvers/entity/job-entity.resolver.ts

@@ -1,6 +1,9 @@
 import { Parent, ResolveField, Resolver } from '@nestjs/graphql';
+import { omit } from '@vendure/common/lib/omit';
+import { pick } from '@vendure/common/lib/pick';
 
 import { Job } from '../../../job-queue/job';
+import { RequestContext, SerializedRequestContext } from '../../common/request-context';
 
 @Resolver('Job')
 export class JobEntityResolver {
@@ -10,4 +13,43 @@ export class JobEntityResolver {
     async duration(@Parent() job: Job) {
         return Math.min(job.duration, this.graphQlMaxInt);
     }
+
+    @ResolveField()
+    async data(@Parent() job: Job) {
+        const ctx = job.data.ctx;
+        if (this.isSerializedRequestContext(ctx)) {
+            // The job data includes a serialized RequestContext object
+            // This can be very large, so we will manually prune it before
+            // returning
+            const prunedCtx = {
+                ...pick(ctx, [
+                    '_apiType',
+                    '_languageCode',
+                    '_authorizedAsOwnerOnly',
+                    '_isAuthorized',
+                    '_channel',
+                ]),
+                _session: ctx._session
+                    ? {
+                          ...ctx._session,
+                          user: ctx._session.user ? omit(ctx._session.user, ['channelPermissions']) : {},
+                      }
+                    : {},
+            };
+            job.data.ctx = prunedCtx;
+        }
+        return job.data;
+    }
+
+    private isSerializedRequestContext(input: unknown): input is SerializedRequestContext {
+        if (typeof input !== 'object' || input == null) {
+            return false;
+        }
+        return (
+            typeof input === 'object' &&
+            input.hasOwnProperty('_apiType') &&
+            input.hasOwnProperty('_channel') &&
+            input.hasOwnProperty('_languageCode')
+        );
+    }
 }

+ 3 - 3
packages/create/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/create",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "license": "MIT",
   "bin": {
     "create": "./index.js"
@@ -28,13 +28,13 @@
     "@types/handlebars": "^4.1.0",
     "@types/listr": "^0.14.2",
     "@types/semver": "^6.2.2",
-    "@vendure/core": "^1.8.3",
+    "@vendure/core": "^1.8.4",
     "rimraf": "^3.0.2",
     "ts-node": "^10.2.1",
     "typescript": "4.3.5"
   },
   "dependencies": {
-    "@vendure/common": "^1.8.3",
+    "@vendure/common": "^1.8.4",
     "chalk": "^4.1.0",
     "commander": "^7.1.0",
     "cross-spawn": "^7.0.3",

+ 9 - 9
packages/dev-server/package.json

@@ -1,6 +1,6 @@
 {
   "name": "dev-server",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "main": "index.js",
   "license": "MIT",
   "private": true,
@@ -14,18 +14,18 @@
     "load-test:100k": "node -r ts-node/register load-testing/run-load-test.ts 100000"
   },
   "dependencies": {
-    "@vendure/admin-ui-plugin": "^1.8.3",
-    "@vendure/asset-server-plugin": "^1.8.3",
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
-    "@vendure/elasticsearch-plugin": "^1.8.3",
-    "@vendure/email-plugin": "^1.8.3",
+    "@vendure/admin-ui-plugin": "^1.8.4",
+    "@vendure/asset-server-plugin": "^1.8.4",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
+    "@vendure/elasticsearch-plugin": "^1.8.4",
+    "@vendure/email-plugin": "^1.8.4",
     "typescript": "4.3.5"
   },
   "devDependencies": {
     "@types/csv-stringify": "^3.1.0",
-    "@vendure/testing": "^1.8.3",
-    "@vendure/ui-devkit": "^1.8.3",
+    "@vendure/testing": "^1.8.4",
+    "@vendure/ui-devkit": "^1.8.4",
     "commander": "^7.1.0",
     "concurrently": "^5.0.0",
     "csv-stringify": "^5.3.3",

+ 3 - 3
packages/elasticsearch-plugin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/elasticsearch-plugin",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "license": "MIT",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
@@ -25,8 +25,8 @@
     "fast-deep-equal": "^3.1.3"
   },
   "devDependencies": {
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
     "rimraf": "^3.0.2",
     "typescript": "4.3.5"
   }

+ 3 - 3
packages/email-plugin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/email-plugin",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "license": "MIT",
   "main": "lib/index.js",
   "types": "lib/index.d.ts",
@@ -35,8 +35,8 @@
     "@types/fs-extra": "^9.0.1",
     "@types/handlebars": "^4.1.0",
     "@types/mjml": "^4.0.4",
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
     "rimraf": "^3.0.2",
     "typescript": "4.3.5"
   }

+ 3 - 3
packages/job-queue-plugin/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/job-queue-plugin",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "license": "MIT",
   "main": "package/index.js",
   "types": "package/index.d.ts",
@@ -24,8 +24,8 @@
   "devDependencies": {
     "@google-cloud/pubsub": "^2.8.0",
     "@types/ioredis": "^4.28.10",
-    "@vendure/common": "^1.8.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/common": "^1.8.4",
+    "@vendure/core": "^1.8.4",
     "bullmq": "^1.86.7",
     "rimraf": "^3.0.2",
     "typescript": "4.3.5"

+ 4 - 4
packages/payments-plugin/package.json

@@ -1,6 +1,6 @@
 {
     "name": "@vendure/payments-plugin",
-    "version": "1.8.3",
+    "version": "1.8.4",
     "license": "MIT",
     "main": "package/index.js",
     "types": "package/index.d.ts",
@@ -28,9 +28,9 @@
     "devDependencies": {
         "@mollie/api-client": "^3.6.0",
         "@types/braintree": "^2.22.15",
-        "@vendure/common": "^1.8.3",
-        "@vendure/core": "^1.8.3",
-        "@vendure/testing": "^1.8.3",
+        "@vendure/common": "^1.8.4",
+        "@vendure/core": "^1.8.4",
+        "@vendure/testing": "^1.8.4",
         "braintree": "^3.0.0",
         "nock": "^13.1.4",
         "rimraf": "^3.0.2",

+ 3 - 3
packages/testing/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/testing",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "description": "End-to-end testing tools for Vendure projects",
   "keywords": [
     "vendure",
@@ -34,7 +34,7 @@
   },
   "dependencies": {
     "@types/node-fetch": "^2.5.4",
-    "@vendure/common": "^1.8.3",
+    "@vendure/common": "^1.8.4",
     "faker": "^4.1.0",
     "form-data": "^3.0.0",
     "graphql": "15.5.1",
@@ -45,7 +45,7 @@
   "devDependencies": {
     "@types/mysql": "^2.15.15",
     "@types/pg": "^7.14.5",
-    "@vendure/core": "^1.8.3",
+    "@vendure/core": "^1.8.4",
     "mysql": "^2.18.1",
     "pg": "^8.4.0",
     "rimraf": "^3.0.0",

+ 4 - 4
packages/ui-devkit/package.json

@@ -1,6 +1,6 @@
 {
   "name": "@vendure/ui-devkit",
-  "version": "1.8.3",
+  "version": "1.8.4",
   "description": "A library for authoring Vendure Admin UI extensions",
   "keywords": [
     "vendure",
@@ -40,8 +40,8 @@
     "@angular/cli": "12.2.16",
     "@angular/compiler": "12.2.16",
     "@angular/compiler-cli": "12.2.16",
-    "@vendure/admin-ui": "^1.8.3",
-    "@vendure/common": "^1.8.3",
+    "@vendure/admin-ui": "^1.8.4",
+    "@vendure/common": "^1.8.4",
     "chalk": "^4.1.0",
     "chokidar": "^3.5.1",
     "fs-extra": "^10.0.0",
@@ -52,7 +52,7 @@
     "@rollup/plugin-node-resolve": "^11.2.0",
     "@types/fs-extra": "^9.0.8",
     "@types/glob": "^7.1.3",
-    "@vendure/core": "^1.8.3",
+    "@vendure/core": "^1.8.4",
     "rimraf": "^3.0.2",
     "rollup": "^2.40.0",
     "rollup-plugin-terser": "^7.0.2",

+ 1 - 1
packages/ui-devkit/scaffold/tsconfig.json

@@ -18,7 +18,7 @@
     "allowSyntheticDefaultImports": true,
     "typeRoots": [],
     "lib": [
-      "es2017",
+      "es2019",
       "dom",
       "esnext.asynciterable"
     ]