@commercetools-backend/express 21.12.0 → 21.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -103,10 +103,16 @@ var writeSessionContext = function writeSessionContext(request) {
103
103
 
104
104
  if (decodedToken) {
105
105
  var publicClaimForProjectKey = "".concat(decodedToken.iss, "/claims/project_key");
106
+ var publicClaimForUserPermissionsKey = "".concat(decodedToken.iss, "/claims/user_permissions");
106
107
  request.session = {
107
108
  userId: decodedToken.sub,
108
109
  projectKey: decodedToken[publicClaimForProjectKey]
109
110
  };
111
+ var userPermissions = decodedToken[publicClaimForUserPermissionsKey];
112
+
113
+ if (Boolean(userPermissions === null || userPermissions === void 0 ? void 0 : userPermissions.length)) {
114
+ request.session.userPermissions = userPermissions;
115
+ }
110
116
  } // Remove the field used by the JWT middleware.
111
117
 
112
118
 
@@ -103,10 +103,16 @@ var writeSessionContext = function writeSessionContext(request) {
103
103
 
104
104
  if (decodedToken) {
105
105
  var publicClaimForProjectKey = "".concat(decodedToken.iss, "/claims/project_key");
106
+ var publicClaimForUserPermissionsKey = "".concat(decodedToken.iss, "/claims/user_permissions");
106
107
  request.session = {
107
108
  userId: decodedToken.sub,
108
109
  projectKey: decodedToken[publicClaimForProjectKey]
109
110
  };
111
+ var userPermissions = decodedToken[publicClaimForUserPermissionsKey];
112
+
113
+ if (Boolean(userPermissions === null || userPermissions === void 0 ? void 0 : userPermissions.length)) {
114
+ request.session.userPermissions = userPermissions;
115
+ }
110
116
  } // Remove the field used by the JWT middleware.
111
117
 
112
118
 
@@ -79,10 +79,16 @@ var writeSessionContext = function writeSessionContext(request) {
79
79
 
80
80
  if (decodedToken) {
81
81
  var publicClaimForProjectKey = "".concat(decodedToken.iss, "/claims/project_key");
82
+ var publicClaimForUserPermissionsKey = "".concat(decodedToken.iss, "/claims/user_permissions");
82
83
  request.session = {
83
84
  userId: decodedToken.sub,
84
85
  projectKey: decodedToken[publicClaimForProjectKey]
85
86
  };
87
+ var userPermissions = decodedToken[publicClaimForUserPermissionsKey];
88
+
89
+ if (Boolean(userPermissions === null || userPermissions === void 0 ? void 0 : userPermissions.length)) {
90
+ request.session.userPermissions = userPermissions;
91
+ }
86
92
  } // Remove the field used by the JWT middleware.
87
93
 
88
94
 
@@ -1,4 +1,13 @@
1
- import type { TSessionMiddlewareOptions, TBaseRequest } from './types';
1
+ import type { TSessionMiddlewareOptions, TSession, TBaseRequest } from './types';
2
+ declare type TDecodedJWT = {
3
+ sub: string;
4
+ iss: string;
5
+ [property: string]: string | string[];
6
+ };
7
+ declare const writeSessionContext: <Request_1 extends TBaseRequest>(request: Request_1 & {
8
+ decoded_token?: TDecodedJWT | undefined;
9
+ session?: TSession | undefined;
10
+ }) => void;
2
11
  export declare const getConfiguredAudience: <Request_1 extends TBaseRequest>(options: TSessionMiddlewareOptions<Request_1>, requestPath: string) => string;
3
12
  declare function createSessionAuthVerifier<Request extends TBaseRequest>(options: TSessionMiddlewareOptions<Request>): (request: Request, response?: unknown) => Promise<void>;
4
- export { createSessionAuthVerifier };
13
+ export { createSessionAuthVerifier, writeSessionContext };
@@ -48,4 +48,5 @@ export declare type TSessionMiddlewareOptions<Request extends TBaseRequest> = {
48
48
  export declare type TSession = {
49
49
  userId: string;
50
50
  projectKey: string;
51
+ userPermissions?: string[];
51
52
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@commercetools-backend/express",
3
- "version": "21.12.0",
3
+ "version": "21.14.0",
4
4
  "description": "Zero-config HTTP server as Express.js to facilitate development",
5
5
  "bugs": "https://github.com/commercetools/merchant-center-application-kit/issues",
6
6
  "repository": {
@@ -22,14 +22,14 @@
22
22
  "@babel/runtime-corejs3": "^7.18.6",
23
23
  "@types/node": "^16.11.33",
24
24
  "express": "4.18.1",
25
- "express-jwt": "7.7.0",
26
- "jwks-rsa": "2.1.1"
25
+ "express-jwt": "7.7.5",
26
+ "jwks-rsa": "2.1.4"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@tsconfig/node16": "^1.0.3",
30
30
  "@types/express-unless": "^0.5.3",
31
31
  "@types/jsonwebtoken": "^8.5.8",
32
32
  "jose": "2.0.5",
33
- "msw": "0.44.0"
33
+ "msw": "0.44.2"
34
34
  }
35
35
  }