propro-utils 1.5.30 → 1.5.32

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.
Files changed (29) hide show
  1. package/middlewares/access_token.js +3 -2
  2. package/middlewares/account_info.js +50 -10
  3. package/package.json +1 -1
  4. package/src/index.js +9 -2
  5. package/src/server/index.js +8 -6
  6. package/utils/serviceManager.js +49 -0
  7. package/coverage/clover.xml +0 -212
  8. package/coverage/coverage-final.json +0 -8
  9. package/coverage/lcov-report/base.css +0 -224
  10. package/coverage/lcov-report/block-navigation.js +0 -87
  11. package/coverage/lcov-report/favicon.png +0 -0
  12. package/coverage/lcov-report/index.html +0 -161
  13. package/coverage/lcov-report/middlewares/access_token.js.html +0 -343
  14. package/coverage/lcov-report/middlewares/account_info.js.html +0 -334
  15. package/coverage/lcov-report/middlewares/index.html +0 -131
  16. package/coverage/lcov-report/prettify.css +0 -1
  17. package/coverage/lcov-report/prettify.js +0 -2
  18. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  19. package/coverage/lcov-report/sorter.js +0 -196
  20. package/coverage/lcov-report/src/server/index.html +0 -116
  21. package/coverage/lcov-report/src/server/index.js.html +0 -664
  22. package/coverage/lcov-report/src/server/middleware/index.html +0 -131
  23. package/coverage/lcov-report/src/server/middleware/validateEnv.js.html +0 -139
  24. package/coverage/lcov-report/src/server/middleware/verifyToken.js.html +0 -604
  25. package/coverage/lcov-report/utils/index.html +0 -131
  26. package/coverage/lcov-report/utils/redis.js.html +0 -133
  27. package/coverage/lcov-report/utils/testUtils.js.html +0 -172
  28. package/coverage/lcov-report/verifyToken.js.html +0 -589
  29. package/coverage/lcov.info +0 -361
@@ -33,7 +33,7 @@ const { checkIfUserExists } = require('./account_info');
33
33
  * res.json({ message: 'You have access to protected data' });
34
34
  * });
35
35
  */
36
- const authValidation = (redisClient, userSchema, requiredPermissions = []) => {
36
+ const authValidation = (requiredPermissions = []) => {
37
37
  return async (req, res, next) => {
38
38
  try {
39
39
  const accessToken =
@@ -54,6 +54,7 @@ const authValidation = (redisClient, userSchema, requiredPermissions = []) => {
54
54
  );
55
55
  return response.data;
56
56
  };
57
+ const redisClient = await ServiceManager.getService('RedisClient');
57
58
  const cacheKey = `account:permissions:${accessToken}`;
58
59
  const { accountId, validPermissions } = await getOrSetCache(
59
60
  redisClient,
@@ -68,7 +69,7 @@ const authValidation = (redisClient, userSchema, requiredPermissions = []) => {
68
69
 
69
70
  req.account = accountId;
70
71
 
71
- const user = await checkIfUserExists(userSchema, accountId);
72
+ const user = await checkIfUserExists(accountId);
72
73
  if (!user) {
73
74
  return res.status(403).json({ error: 'User not found' });
74
75
  }
@@ -58,21 +58,61 @@ const getAccountProfile = async (redisClient, userSchema, accountId) => {
58
58
  };
59
59
 
60
60
  /**
61
- * Checks if a user exists based on the given account ID.
62
- * If the user does not exist, creates a new user with the given account ID.
61
+ * Creates a new user global styles document.
63
62
  *
64
- * @param {Schema} userSchema - The user schema to perform the operations on.
65
- * @param {string} accountId - The account ID of the user to check/create.
66
- * @returns {Promise<user>} - A promise that resolves once the check/create operation is done.
63
+ * @param {Object} userStyleSchema - The user style schema to perform the operation on.
64
+ * @param {string} accountId - The account ID of the user.
65
+ * @returns {Promise<Object>} A promise that resolves to the created user global styles object.
67
66
  */
68
- const checkIfUserExists = async (userSchema, accountId) => {
69
- const user = await userSchema.findOne({ accountId });
70
- if (user) return user;
71
- return await userSchema.create({
67
+ async function createUserGlobalStyles(userStyleSchema, accountId) {
68
+ return await userStyleSchema.create({
72
69
  accountId,
73
70
  id: uuidv4(),
74
- verified: false,
71
+ styleShortcuts: [],
75
72
  });
73
+ }
74
+
75
+ /**
76
+ * Checks if a user exists based on the given account ID.
77
+ * If the user does not exist, creates a new user with the given account ID.
78
+ *
79
+ * @param {string} accountId - The account ID of the user to check/create.
80
+ * @returns {Promise<Object>} A promise that resolves to the user object.
81
+ * @throws {Error} If there's an issue with database operations.
82
+ */
83
+ const checkIfUserExists = async accountId => {
84
+ try {
85
+ const userSchema = await ServiceManager.getService('UserSchema');
86
+ const userStyleSchema = await ServiceManager.getService('UserStyleSchema');
87
+ let user = await userSchema.findOne({ accountId });
88
+
89
+ if (user) {
90
+ if (!user.userGlobalStyles) {
91
+ user.userGlobalStyles = await createUserGlobalStyles(
92
+ userStyleSchema,
93
+ accountId
94
+ );
95
+ await user.save();
96
+ }
97
+ return user;
98
+ }
99
+
100
+ const userGlobalStyles = await createUserGlobalStyles(
101
+ userStyleSchema,
102
+ accountId
103
+ );
104
+ user = await userSchema.create({
105
+ accountId,
106
+ id: uuidv4(),
107
+ verified: false,
108
+ userGlobalStyles,
109
+ });
110
+
111
+ return user;
112
+ } catch (error) {
113
+ console.error('Error in getOrCreateUser:', error);
114
+ throw new Error('Failed to get or create user');
115
+ }
76
116
  };
77
117
 
78
118
  module.exports = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "propro-utils",
3
- "version": "1.5.30",
3
+ "version": "1.5.32",
4
4
  "description": "Auth middleware for propro-auth",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const {
2
2
  validateEnvironmentVariables,
3
3
  } = require('./server/middleware/validateEnv');
4
- const ServerAuth = require('./server/index');
4
+ const ServiceManager = require('../utils/serviceManager');
5
5
  const ClientAuth = require('./client/index');
6
6
 
7
7
  let _serverAuth, _clientAuth;
@@ -29,6 +29,7 @@ let _serverAuth, _clientAuth;
29
29
  * @param {boolean} [options.useClientAuth=false] - A boolean flag to enable client-side authentication.
30
30
  * @param {Object} [options.clientOptions={}] - Configuration options for client-side authentication.
31
31
  * @param {Schema} [userSchema] - The user schema to perform the operations on.
32
+ * @param {Schema} [userStyleSchema] - The user style schema to perform the operations on.
32
33
  * @param {RedisClient} [redisClient] - The Redis client used for caching.
33
34
  *
34
35
  * @returns {Function} An Express middleware function.
@@ -48,9 +49,10 @@ let _serverAuth, _clientAuth;
48
49
  * ```
49
50
  */
50
51
  class ProProAuthMiddleware {
51
- constructor(options = {}, userSchema, redisClient) {
52
+ constructor(options = {}, userSchema, userStyleSchema, redisClient) {
52
53
  this.options = options;
53
54
  this.userSchema = userSchema;
55
+ this.userStyleSchema = userStyleSchema;
54
56
  this.redisClient = redisClient;
55
57
  this.serverAuth = null;
56
58
  this.clientAuth = null;
@@ -80,9 +82,14 @@ class ProProAuthMiddleware {
80
82
  this.serverAuth = new ServerAuth(
81
83
  this.options.serverOptions,
82
84
  this.userSchema,
85
+ this.userStyleSchema,
83
86
  this.redisClient
84
87
  );
85
88
  }
89
+
90
+ ServiceManager.registerService('UserSchema', UserSchema);
91
+ ServiceManager.registerService('UserStyleSchema', UserStyleSchema);
92
+ ServiceManager.registerService('RedisClient', RedisClient);
86
93
  return this.serverAuth.middleware();
87
94
  }
88
95
 
@@ -28,11 +28,12 @@ const upload = multer().single('file');
28
28
  * @param {string} [options.appName=process.env.APP_NAME] - The application name.
29
29
  * @param {string} [options.appUrl] - The URL of the client application.
30
30
  * @param {Schema} [userSchema] - The user schema to perform the operations on.
31
+ * @param {Schema} [userStyleSchema] - The user style schema to perform the operations on.
31
32
  * @param {RedisClient} [redisClient] - The Redis client used for caching.
32
33
  * @returns {Function} - Express middleware function.
33
34
  */
34
35
  class AuthMiddleware {
35
- constructor(options = {}, userSchema, redisClient) {
36
+ constructor(options = {}, userSchema, userStyleSchema, redisClient) {
36
37
  this.options = {
37
38
  secret: options.secret || 'RESTFULAPIs',
38
39
  authUrl: options.authUrl || process.env.AUTH_URL,
@@ -45,6 +46,7 @@ class AuthMiddleware {
45
46
  };
46
47
  this.userSchema = userSchema;
47
48
  this.redisClient = redisClient;
49
+ this.userStyleSchema = userStyleSchema;
48
50
  this.router = Router();
49
51
  this.initializeRoutes();
50
52
  }
@@ -64,7 +66,7 @@ class AuthMiddleware {
64
66
  this.router.post('/api/profile/avatar', this.handleAvatarUpdate);
65
67
  this.router.patch(
66
68
  '/api/app/settings',
67
- authValidation(this.redisClient, this.userSchema, ['user']),
69
+ authValidation(['user']),
68
70
  this.handleAppSettings
69
71
  );
70
72
  }
@@ -85,7 +87,7 @@ class AuthMiddleware {
85
87
 
86
88
  const { account, tokens } = response.data;
87
89
  console.log('account:', account);
88
- const user = await checkIfUserExists(this.userSchema, account.accountId);
90
+ const user = await checkIfUserExists(account.accountId);
89
91
  console.log('user:', user);
90
92
 
91
93
  if (returnTokens === 'true') {
@@ -123,7 +125,7 @@ class AuthMiddleware {
123
125
  );
124
126
 
125
127
  const { account, tokens } = response.data;
126
- const user = await checkIfUserExists(this.userSchema, account.accountId);
128
+ const user = await checkIfUserExists(account.accountId);
127
129
 
128
130
  if (returnTokens === 'true') {
129
131
  res.status(response.status).json({ account, user, tokens });
@@ -151,7 +153,7 @@ class AuthMiddleware {
151
153
  this.options.redirectUri
152
154
  );
153
155
 
154
- const user = await checkIfUserExists(this.userSchema, account.accountId);
156
+ const user = await checkIfUserExists(account.accountId);
155
157
 
156
158
  if (!user) {
157
159
  throw new Error('User not found');
@@ -186,7 +188,7 @@ class AuthMiddleware {
186
188
  .json({ error: 'Invalid or expired refresh token' });
187
189
  }
188
190
 
189
- const user = await checkIfUserExists(this.userSchema, account.accountId);
191
+ const user = await checkIfUserExists(account.accountId);
190
192
 
191
193
  const { returnTokens } = req.query;
192
194
  if (returnTokens === 'true') {
@@ -0,0 +1,49 @@
1
+ /*
2
+ This is a simple service manager that allows you to register services and get them later.
3
+ It's useful when you have services that are created asynchronously and you want to make sure
4
+ that they are available when needed.
5
+ The service manager is a singleton, so you can import it anywhere in your application and
6
+ register/get services.
7
+ Example usage:
8
+ ```
9
+ const serviceManager = require('./serviceManager');
10
+ const myService = require('./myService');
11
+ serviceManager.registerService('myService', myService);
12
+ const service = serviceManager.getService('myService');
13
+ ```
14
+ In the example above, we register a service called 'myService' and then get it using the
15
+ `getService` method.
16
+ If the service is not registered yet, the `getService` method will return a promise that will
17
+ resolve once the service is registered.
18
+ This way, you can make sure that the service is available when needed.
19
+ */
20
+ class ServiceManager {
21
+ constructor() {
22
+ this.services = {};
23
+ this.servicePromises = {};
24
+ }
25
+
26
+ registerService(name, service) {
27
+ this.services[name] = service;
28
+ if (this.servicePromises[name]) {
29
+ this.servicePromises[name].resolve(service);
30
+ }
31
+ }
32
+
33
+ getService(name) {
34
+ if (this.services[name]) {
35
+ return this.services[name];
36
+ }
37
+
38
+ if (!this.servicePromises[name]) {
39
+ this.servicePromises[name] = {};
40
+ this.servicePromises[name].promise = new Promise(resolve => {
41
+ this.servicePromises[name].resolve = resolve;
42
+ });
43
+ }
44
+
45
+ return this.servicePromises[name].promise;
46
+ }
47
+ }
48
+
49
+ module.exports = new ServiceManager();
@@ -1,212 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <coverage generated="1709296502031" clover="3.2.0">
3
- <project timestamp="1709296502031" name="All files">
4
- <metrics statements="173" coveredstatements="80" conditionals="83" coveredconditionals="30" methods="21" coveredmethods="14" elements="277" coveredelements="124" complexity="0" loc="173" ncloc="173" packages="4" files="7" classes="7"/>
5
- <package name="middlewares">
6
- <metrics statements="53" coveredstatements="13" conditionals="25" coveredconditionals="0" methods="6" coveredmethods="0"/>
7
- <file name="access_token.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/access_token.js">
8
- <metrics statements="27" coveredstatements="6" conditionals="13" coveredconditionals="0" methods="3" coveredmethods="0"/>
9
- <line num="1" count="1" type="stmt"/>
10
- <line num="2" count="1" type="stmt"/>
11
- <line num="3" count="1" type="stmt"/>
12
- <line num="4" count="1" type="stmt"/>
13
- <line num="36" count="1" type="cond" truecount="0" falsecount="1"/>
14
- <line num="37" count="0" type="stmt"/>
15
- <line num="38" count="0" type="stmt"/>
16
- <line num="40" count="0" type="cond" truecount="0" falsecount="2"/>
17
- <line num="43" count="0" type="cond" truecount="0" falsecount="2"/>
18
- <line num="44" count="0" type="stmt"/>
19
- <line num="47" count="0" type="stmt"/>
20
- <line num="48" count="0" type="stmt"/>
21
- <line num="55" count="0" type="stmt"/>
22
- <line num="57" count="0" type="stmt"/>
23
- <line num="58" count="0" type="stmt"/>
24
- <line num="65" count="0" type="cond" truecount="0" falsecount="2"/>
25
- <line num="66" count="0" type="stmt"/>
26
- <line num="69" count="0" type="stmt"/>
27
- <line num="71" count="0" type="stmt"/>
28
- <line num="72" count="0" type="cond" truecount="0" falsecount="2"/>
29
- <line num="73" count="0" type="stmt"/>
30
- <line num="75" count="0" type="stmt"/>
31
- <line num="76" count="0" type="stmt"/>
32
- <line num="78" count="0" type="cond" truecount="0" falsecount="4"/>
33
- <line num="79" count="0" type="stmt"/>
34
- <line num="81" count="0" type="stmt"/>
35
- <line num="86" count="1" type="stmt"/>
36
- </file>
37
- <file name="account_info.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/account_info.js">
38
- <metrics statements="26" coveredstatements="7" conditionals="12" coveredconditionals="0" methods="3" coveredmethods="0"/>
39
- <line num="1" count="3" type="stmt"/>
40
- <line num="2" count="3" type="stmt"/>
41
- <line num="3" count="3" type="stmt"/>
42
- <line num="4" count="3" type="stmt"/>
43
- <line num="16" count="3" type="stmt"/>
44
- <line num="17" count="0" type="stmt"/>
45
- <line num="19" count="0" type="cond" truecount="0" falsecount="2"/>
46
- <line num="21" count="0" type="cond" truecount="0" falsecount="2"/>
47
- <line num="22" count="0" type="stmt"/>
48
- <line num="25" count="0" type="stmt"/>
49
- <line num="26" count="0" type="stmt"/>
50
- <line num="37" count="0" type="stmt"/>
51
- <line num="39" count="0" type="stmt"/>
52
- <line num="40" count="0" type="stmt"/>
53
- <line num="47" count="0" type="cond" truecount="0" falsecount="2"/>
54
- <line num="48" count="0" type="stmt"/>
55
- <line num="51" count="0" type="stmt"/>
56
- <line num="53" count="0" type="cond" truecount="0" falsecount="4"/>
57
- <line num="54" count="0" type="stmt"/>
58
- <line num="56" count="0" type="stmt"/>
59
- <line num="68" count="3" type="stmt"/>
60
- <line num="69" count="0" type="stmt"/>
61
- <line num="70" count="0" type="cond" truecount="0" falsecount="2"/>
62
- <line num="71" count="0" type="stmt"/>
63
- <line num="77" count="0" type="stmt"/>
64
- <line num="80" count="3" type="stmt"/>
65
- </file>
66
- </package>
67
- <package name="src.server">
68
- <metrics statements="49" coveredstatements="15" conditionals="27" coveredconditionals="9" methods="3" coveredmethods="3"/>
69
- <file name="index.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/index.js">
70
- <metrics statements="49" coveredstatements="15" conditionals="27" coveredconditionals="9" methods="3" coveredmethods="3"/>
71
- <line num="1" count="2" type="stmt"/>
72
- <line num="5" count="2" type="stmt"/>
73
- <line num="6" count="2" type="stmt"/>
74
- <line num="7" count="2" type="stmt"/>
75
- <line num="32" count="2" type="stmt"/>
76
- <line num="36" count="2" type="stmt"/>
77
- <line num="37" count="1" type="stmt"/>
78
- <line num="38" count="1" type="cond" truecount="1" falsecount="1"/>
79
- <line num="41" count="0" type="stmt"/>
80
- <line num="44" count="1" type="cond" truecount="1" falsecount="1"/>
81
- <line num="45" count="1" type="stmt"/>
82
- <line num="51" count="1" type="stmt"/>
83
- <line num="54" count="0" type="cond" truecount="0" falsecount="2"/>
84
- <line num="55" count="0" type="cond" truecount="0" falsecount="2"/>
85
- <line num="56" count="0" type="stmt"/>
86
- <line num="58" count="0" type="cond" truecount="0" falsecount="2"/>
87
- <line num="59" count="0" type="stmt"/>
88
- <line num="65" count="0" type="stmt"/>
89
- <line num="70" count="0" type="stmt"/>
90
- <line num="72" count="0" type="stmt"/>
91
- <line num="84" count="0" type="stmt"/>
92
- <line num="86" count="0" type="cond" truecount="0" falsecount="5"/>
93
- <line num="87" count="0" type="stmt"/>
94
- <line num="92" count="0" type="stmt"/>
95
- <line num="95" count="0" type="stmt"/>
96
- <line num="97" count="0" type="stmt"/>
97
- <line num="104" count="0" type="stmt"/>
98
- <line num="106" count="0" type="stmt"/>
99
- <line num="112" count="0" type="stmt"/>
100
- <line num="117" count="0" type="cond" truecount="0" falsecount="2"/>
101
- <line num="118" count="0" type="stmt"/>
102
- <line num="119" count="0" type="cond" truecount="0" falsecount="2"/>
103
- <line num="120" count="0" type="stmt"/>
104
- <line num="123" count="0" type="stmt"/>
105
- <line num="131" count="0" type="stmt"/>
106
- <line num="133" count="0" type="stmt"/>
107
- <line num="136" count="0" type="stmt"/>
108
- <line num="139" count="0" type="stmt"/>
109
- <line num="146" count="0" type="stmt"/>
110
- <line num="148" count="0" type="stmt"/>
111
- <line num="154" count="0" type="stmt"/>
112
- <line num="156" count="0" type="stmt"/>
113
- <line num="158" count="0" type="stmt"/>
114
- <line num="160" count="0" type="stmt"/>
115
- <line num="163" count="0" type="stmt"/>
116
- <line num="178" count="1" type="stmt"/>
117
- <line num="186" count="1" type="stmt"/>
118
- <line num="188" count="1" type="stmt"/>
119
- <line num="193" count="2" type="stmt"/>
120
- </file>
121
- </package>
122
- <package name="src.server.middleware">
123
- <metrics statements="55" coveredstatements="36" conditionals="23" coveredconditionals="13" methods="10" coveredmethods="9"/>
124
- <file name="validateEnv.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/validateEnv.js">
125
- <metrics statements="4" coveredstatements="4" conditionals="2" coveredconditionals="2" methods="2" coveredmethods="2"/>
126
- <line num="8" count="6" type="stmt"/>
127
- <line num="9" count="2" type="cond" truecount="2" falsecount="0"/>
128
- <line num="10" count="1" type="stmt"/>
129
- <line num="16" count="1" type="stmt"/>
130
- </file>
131
- <file name="verifyToken.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/verifyToken.js">
132
- <metrics statements="51" coveredstatements="32" conditionals="21" coveredconditionals="11" methods="8" coveredmethods="7"/>
133
- <line num="1" count="3" type="stmt"/>
134
- <line num="2" count="3" type="stmt"/>
135
- <line num="3" count="3" type="stmt"/>
136
- <line num="12" count="2" type="stmt"/>
137
- <line num="13" count="2" type="stmt"/>
138
- <line num="15" count="1" type="cond" truecount="1" falsecount="1"/>
139
- <line num="16" count="0" type="stmt"/>
140
- <line num="17" count="0" type="cond" truecount="0" falsecount="2"/>
141
- <line num="19" count="1" type="stmt"/>
142
- <line num="29" count="2" type="stmt"/>
143
- <line num="30" count="2" type="stmt"/>
144
- <line num="33" count="0" type="cond" truecount="0" falsecount="2"/>
145
- <line num="35" count="2" type="stmt"/>
146
- <line num="55" count="0" type="stmt"/>
147
- <line num="56" count="0" type="stmt"/>
148
- <line num="57" count="0" type="stmt"/>
149
- <line num="71" count="0" type="stmt"/>
150
- <line num="73" count="0" type="stmt"/>
151
- <line num="74" count="0" type="stmt"/>
152
- <line num="83" count="3" type="stmt"/>
153
- <line num="84" count="3" type="stmt"/>
154
- <line num="85" count="3" type="stmt"/>
155
- <line num="86" count="3" type="cond" truecount="2" falsecount="0"/>
156
- <line num="87" count="1" type="stmt"/>
157
- <line num="91" count="2" type="cond" truecount="1" falsecount="1"/>
158
- <line num="92" count="0" type="stmt"/>
159
- <line num="93" count="0" type="stmt"/>
160
- <line num="96" count="2" type="stmt"/>
161
- <line num="97" count="2" type="stmt"/>
162
- <line num="98" count="1" type="cond" truecount="1" falsecount="1"/>
163
- <line num="99" count="1" type="stmt"/>
164
- <line num="101" count="0" type="stmt"/>
165
- <line num="102" count="0" type="stmt"/>
166
- <line num="103" count="0" type="stmt"/>
167
- <line num="105" count="1" type="stmt"/>
168
- <line num="106" count="1" type="stmt"/>
169
- <line num="115" count="0" type="cond" truecount="0" falsecount="2"/>
170
- <line num="116" count="0" type="stmt"/>
171
- <line num="119" count="0" type="stmt"/>
172
- <line num="120" count="0" type="stmt"/>
173
- <line num="121" count="0" type="stmt"/>
174
- <line num="123" count="1" type="stmt"/>
175
- <line num="136" count="4" type="stmt"/>
176
- <line num="137" count="6" type="stmt"/>
177
- <line num="150" count="5" type="cond" truecount="2" falsecount="0"/>
178
- <line num="154" count="2" type="cond" truecount="2" falsecount="0"/>
179
- <line num="155" count="1" type="stmt"/>
180
- <line num="157" count="1" type="stmt"/>
181
- <line num="160" count="3" type="stmt"/>
182
- <line num="163" count="5" type="stmt"/>
183
- <line num="166" count="3" type="stmt"/>
184
- </file>
185
- </package>
186
- <package name="utils">
187
- <metrics statements="16" coveredstatements="16" conditionals="8" coveredconditionals="8" methods="2" coveredmethods="2"/>
188
- <file name="redis.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/redis.js">
189
- <metrics statements="11" coveredstatements="11" conditionals="3" coveredconditionals="3" methods="1" coveredmethods="1"/>
190
- <line num="1" count="4" type="cond" truecount="1" falsecount="0"/>
191
- <line num="2" count="5" type="stmt"/>
192
- <line num="3" count="5" type="stmt"/>
193
- <line num="4" count="4" type="cond" truecount="2" falsecount="0"/>
194
- <line num="5" count="1" type="stmt"/>
195
- <line num="6" count="1" type="stmt"/>
196
- <line num="8" count="3" type="stmt"/>
197
- <line num="9" count="2" type="stmt"/>
198
- <line num="10" count="1" type="stmt"/>
199
- <line num="12" count="3" type="stmt"/>
200
- <line num="16" count="4" type="stmt"/>
201
- </file>
202
- <file name="testUtils.js" path="/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/testUtils.js">
203
- <metrics statements="5" coveredstatements="5" conditionals="5" coveredconditionals="5" methods="1" coveredmethods="1"/>
204
- <line num="11" count="2" type="stmt"/>
205
- <line num="16" count="2" type="stmt"/>
206
- <line num="22" count="2" type="stmt"/>
207
- <line num="24" count="2" type="stmt"/>
208
- <line num="27" count="2" type="stmt"/>
209
- </file>
210
- </package>
211
- </project>
212
- </coverage>
@@ -1,8 +0,0 @@
1
- {"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/access_token.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/access_token.js","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":27}},"1":{"start":{"line":2,"column":14},"end":{"line":2,"column":30}},"2":{"start":{"line":3,"column":24},"end":{"line":3,"column":49}},"3":{"start":{"line":4,"column":28},"end":{"line":4,"column":53}},"4":{"start":{"line":36,"column":23},"end":{"line":84,"column":1}},"5":{"start":{"line":37,"column":4},"end":{"line":83,"column":6}},"6":{"start":{"line":38,"column":8},"end":{"line":82,"column":9}},"7":{"start":{"line":40,"column":16},"end":{"line":41,"column":56}},"8":{"start":{"line":43,"column":12},"end":{"line":45,"column":13}},"9":{"start":{"line":44,"column":16},"end":{"line":44,"column":81}},"10":{"start":{"line":47,"column":36},"end":{"line":56,"column":13}},"11":{"start":{"line":48,"column":33},"end":{"line":54,"column":17}},"12":{"start":{"line":55,"column":16},"end":{"line":55,"column":37}},"13":{"start":{"line":57,"column":29},"end":{"line":57,"column":65}},"14":{"start":{"line":58,"column":50},"end":{"line":63,"column":13}},"15":{"start":{"line":65,"column":12},"end":{"line":67,"column":13}},"16":{"start":{"line":66,"column":16},"end":{"line":66,"column":76}},"17":{"start":{"line":69,"column":12},"end":{"line":69,"column":36}},"18":{"start":{"line":71,"column":25},"end":{"line":71,"column":71}},"19":{"start":{"line":72,"column":12},"end":{"line":74,"column":13}},"20":{"start":{"line":73,"column":16},"end":{"line":73,"column":71}},"21":{"start":{"line":75,"column":12},"end":{"line":75,"column":31}},"22":{"start":{"line":76,"column":12},"end":{"line":76,"column":19}},"23":{"start":{"line":78,"column":12},"end":{"line":80,"column":13}},"24":{"start":{"line":79,"column":16},"end":{"line":79,"column":61}},"25":{"start":{"line":81,"column":12},"end":{"line":81,"column":54}},"26":{"start":{"line":86,"column":0},"end":{"line":86,"column":32}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":36,"column":23},"end":{"line":36,"column":24}},"loc":{"start":{"line":36,"column":78},"end":{"line":84,"column":1}},"line":36},"1":{"name":"(anonymous_1)","decl":{"start":{"line":37,"column":11},"end":{"line":37,"column":12}},"loc":{"start":{"line":37,"column":37},"end":{"line":83,"column":5}},"line":37},"2":{"name":"(anonymous_2)","decl":{"start":{"line":47,"column":36},"end":{"line":47,"column":37}},"loc":{"start":{"line":47,"column":48},"end":{"line":56,"column":13}},"line":47}},"branchMap":{"0":{"loc":{"start":{"line":36,"column":49},"end":{"line":36,"column":73}},"type":"default-arg","locations":[{"start":{"line":36,"column":71},"end":{"line":36,"column":73}}],"line":36},"1":{"loc":{"start":{"line":40,"column":16},"end":{"line":41,"column":56}},"type":"binary-expr","locations":[{"start":{"line":40,"column":16},"end":{"line":40,"column":45}},{"start":{"line":41,"column":16},"end":{"line":41,"column":56}}],"line":40},"2":{"loc":{"start":{"line":43,"column":12},"end":{"line":45,"column":13}},"type":"if","locations":[{"start":{"line":43,"column":12},"end":{"line":45,"column":13}},{"start":{},"end":{}}],"line":43},"3":{"loc":{"start":{"line":65,"column":12},"end":{"line":67,"column":13}},"type":"if","locations":[{"start":{"line":65,"column":12},"end":{"line":67,"column":13}},{"start":{},"end":{}}],"line":65},"4":{"loc":{"start":{"line":72,"column":12},"end":{"line":74,"column":13}},"type":"if","locations":[{"start":{"line":72,"column":12},"end":{"line":74,"column":13}},{"start":{},"end":{}}],"line":72},"5":{"loc":{"start":{"line":78,"column":12},"end":{"line":80,"column":13}},"type":"if","locations":[{"start":{"line":78,"column":12},"end":{"line":80,"column":13}},{"start":{},"end":{}}],"line":78},"6":{"loc":{"start":{"line":78,"column":16},"end":{"line":78,"column":55}},"type":"binary-expr","locations":[{"start":{"line":78,"column":16},"end":{"line":78,"column":30}},{"start":{"line":78,"column":34},"end":{"line":78,"column":55}}],"line":78}},"s":{"0":1,"1":1,"2":1,"3":1,"4":1,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":1},"f":{"0":0,"1":0,"2":0},"b":{"0":[0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0],"6":[0,0]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"125b6d7baddbd4ee6ad212919e9428e31f208bb3"}
2
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/account_info.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/middlewares/account_info.js","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":27}},"1":{"start":{"line":2,"column":14},"end":{"line":2,"column":30}},"2":{"start":{"line":3,"column":26},"end":{"line":3,"column":51}},"3":{"start":{"line":4,"column":23},"end":{"line":4,"column":38}},"4":{"start":{"line":16,"column":26},"end":{"line":58,"column":1}},"5":{"start":{"line":17,"column":2},"end":{"line":57,"column":3}},"6":{"start":{"line":19,"column":6},"end":{"line":19,"column":79}},"7":{"start":{"line":21,"column":4},"end":{"line":23,"column":5}},"8":{"start":{"line":22,"column":6},"end":{"line":22,"column":50}},"9":{"start":{"line":25,"column":28},"end":{"line":38,"column":5}},"10":{"start":{"line":26,"column":23},"end":{"line":36,"column":7}},"11":{"start":{"line":37,"column":6},"end":{"line":37,"column":27}},"12":{"start":{"line":39,"column":21},"end":{"line":39,"column":48}},"13":{"start":{"line":40,"column":28},"end":{"line":45,"column":5}},"14":{"start":{"line":47,"column":4},"end":{"line":49,"column":5}},"15":{"start":{"line":48,"column":6},"end":{"line":48,"column":45}},"16":{"start":{"line":51,"column":4},"end":{"line":51,"column":23}},"17":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"18":{"start":{"line":54,"column":6},"end":{"line":54,"column":51}},"19":{"start":{"line":56,"column":4},"end":{"line":56,"column":46}},"20":{"start":{"line":68,"column":26},"end":{"line":78,"column":1}},"21":{"start":{"line":69,"column":15},"end":{"line":69,"column":54}},"22":{"start":{"line":70,"column":2},"end":{"line":76,"column":3}},"23":{"start":{"line":71,"column":4},"end":{"line":75,"column":7}},"24":{"start":{"line":77,"column":2},"end":{"line":77,"column":14}},"25":{"start":{"line":80,"column":0},"end":{"line":83,"column":2}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":16,"column":26},"end":{"line":16,"column":27}},"loc":{"start":{"line":16,"column":72},"end":{"line":58,"column":1}},"line":16},"1":{"name":"(anonymous_1)","decl":{"start":{"line":25,"column":28},"end":{"line":25,"column":29}},"loc":{"start":{"line":25,"column":40},"end":{"line":38,"column":5}},"line":25},"2":{"name":"(anonymous_2)","decl":{"start":{"line":68,"column":26},"end":{"line":68,"column":27}},"loc":{"start":{"line":68,"column":59},"end":{"line":78,"column":1}},"line":68}},"branchMap":{"0":{"loc":{"start":{"line":19,"column":6},"end":{"line":19,"column":79}},"type":"binary-expr","locations":[{"start":{"line":19,"column":6},"end":{"line":19,"column":35}},{"start":{"line":19,"column":39},"end":{"line":19,"column":79}}],"line":19},"1":{"loc":{"start":{"line":21,"column":4},"end":{"line":23,"column":5}},"type":"if","locations":[{"start":{"line":21,"column":4},"end":{"line":23,"column":5}},{"start":{},"end":{}}],"line":21},"2":{"loc":{"start":{"line":47,"column":4},"end":{"line":49,"column":5}},"type":"if","locations":[{"start":{"line":47,"column":4},"end":{"line":49,"column":5}},{"start":{},"end":{}}],"line":47},"3":{"loc":{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},"type":"if","locations":[{"start":{"line":53,"column":4},"end":{"line":55,"column":5}},{"start":{},"end":{}}],"line":53},"4":{"loc":{"start":{"line":53,"column":8},"end":{"line":53,"column":47}},"type":"binary-expr","locations":[{"start":{"line":53,"column":8},"end":{"line":53,"column":22}},{"start":{"line":53,"column":26},"end":{"line":53,"column":47}}],"line":53},"5":{"loc":{"start":{"line":70,"column":2},"end":{"line":76,"column":3}},"type":"if","locations":[{"start":{"line":70,"column":2},"end":{"line":76,"column":3}},{"start":{},"end":{}}],"line":70}},"s":{"0":3,"1":3,"2":3,"3":3,"4":3,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":3,"21":0,"22":0,"23":0,"24":0,"25":3},"f":{"0":0,"1":0,"2":0},"b":{"0":[0,0],"1":[0,0],"2":[0,0],"3":[0,0],"4":[0,0],"5":[0,0]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"42b2a9bccac54af6b76c4f4542fbcd748f5e950d"}
3
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/index.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/index.js","statementMap":{"0":{"start":{"line":1,"column":0},"end":{"line":1,"column":27}},"1":{"start":{"line":5,"column":4},"end":{"line":5,"column":39}},"2":{"start":{"line":6,"column":30},"end":{"line":6,"column":71}},"3":{"start":{"line":7,"column":17},"end":{"line":7,"column":33}},"4":{"start":{"line":32,"column":6},"end":{"line":32,"column":13}},"5":{"start":{"line":36,"column":2},"end":{"line":165,"column":4}},"6":{"start":{"line":37,"column":4},"end":{"line":164,"column":5}},"7":{"start":{"line":38,"column":6},"end":{"line":42,"column":7}},"8":{"start":{"line":41,"column":8},"end":{"line":41,"column":22}},"9":{"start":{"line":44,"column":6},"end":{"line":52,"column":7}},"10":{"start":{"line":45,"column":28},"end":{"line":50,"column":9}},"11":{"start":{"line":51,"column":8},"end":{"line":51,"column":53}},"12":{"start":{"line":54,"column":6},"end":{"line":115,"column":7}},"13":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"14":{"start":{"line":56,"column":10},"end":{"line":56,"column":56}},"15":{"start":{"line":58,"column":8},"end":{"line":68,"column":9}},"16":{"start":{"line":59,"column":30},"end":{"line":64,"column":11}},"17":{"start":{"line":65,"column":10},"end":{"line":67,"column":71}},"18":{"start":{"line":70,"column":32},"end":{"line":70,"column":58}},"19":{"start":{"line":72,"column":25},"end":{"line":82,"column":9}},"20":{"start":{"line":84,"column":45},"end":{"line":84,"column":58}},"21":{"start":{"line":86,"column":8},"end":{"line":90,"column":9}},"22":{"start":{"line":87,"column":10},"end":{"line":89,"column":65}},"23":{"start":{"line":92,"column":32},"end":{"line":92,"column":42}},"24":{"start":{"line":95,"column":10},"end":{"line":95,"column":73}},"25":{"start":{"line":97,"column":8},"end":{"line":101,"column":11}},"26":{"start":{"line":104,"column":10},"end":{"line":104,"column":72}},"27":{"start":{"line":106,"column":8},"end":{"line":110,"column":11}},"28":{"start":{"line":112,"column":8},"end":{"line":114,"column":61}},"29":{"start":{"line":117,"column":6},"end":{"line":161,"column":7}},"30":{"start":{"line":118,"column":21},"end":{"line":118,"column":35}},"31":{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},"32":{"start":{"line":120,"column":10},"end":{"line":120,"column":58}},"33":{"start":{"line":123,"column":49},"end":{"line":129,"column":9}},"34":{"start":{"line":131,"column":21},"end":{"line":131,"column":75}},"35":{"start":{"line":133,"column":32},"end":{"line":133,"column":42}},"36":{"start":{"line":136,"column":10},"end":{"line":137,"column":35}},"37":{"start":{"line":139,"column":8},"end":{"line":143,"column":11}},"38":{"start":{"line":146,"column":10},"end":{"line":146,"column":79}},"39":{"start":{"line":148,"column":8},"end":{"line":152,"column":11}},"40":{"start":{"line":154,"column":8},"end":{"line":154,"column":49}},"41":{"start":{"line":156,"column":8},"end":{"line":156,"column":55}},"42":{"start":{"line":158,"column":30},"end":{"line":158,"column":60}},"43":{"start":{"line":160,"column":8},"end":{"line":160,"column":43}},"44":{"start":{"line":163,"column":6},"end":{"line":163,"column":69}},"45":{"start":{"line":178,"column":2},"end":{"line":184,"column":4}},"46":{"start":{"line":186,"column":24},"end":{"line":186,"column":52}},"47":{"start":{"line":188,"column":2},"end":{"line":190,"column":6}},"48":{"start":{"line":193,"column":0},"end":{"line":193,"column":38}}},"fnMap":{"0":{"name":"proproAuthMiddleware","decl":{"start":{"line":23,"column":9},"end":{"line":23,"column":29}},"loc":{"start":{"line":23,"column":56},"end":{"line":166,"column":1}},"line":23},"1":{"name":"(anonymous_1)","decl":{"start":{"line":36,"column":9},"end":{"line":36,"column":10}},"loc":{"start":{"line":36,"column":35},"end":{"line":165,"column":3}},"line":36},"2":{"name":"constructRedirectUrl","decl":{"start":{"line":177,"column":9},"end":{"line":177,"column":29}},"loc":{"start":{"line":177,"column":73},"end":{"line":191,"column":1}},"line":177}},"branchMap":{"0":{"loc":{"start":{"line":23,"column":30},"end":{"line":23,"column":42}},"type":"default-arg","locations":[{"start":{"line":23,"column":40},"end":{"line":23,"column":42}}],"line":23},"1":{"loc":{"start":{"line":25,"column":4},"end":{"line":25,"column":26}},"type":"default-arg","locations":[{"start":{"line":25,"column":13},"end":{"line":25,"column":26}}],"line":25},"2":{"loc":{"start":{"line":26,"column":4},"end":{"line":26,"column":34}},"type":"default-arg","locations":[{"start":{"line":26,"column":14},"end":{"line":26,"column":34}}],"line":26},"3":{"loc":{"start":{"line":27,"column":4},"end":{"line":27,"column":36}},"type":"default-arg","locations":[{"start":{"line":27,"column":15},"end":{"line":27,"column":36}}],"line":27},"4":{"loc":{"start":{"line":28,"column":4},"end":{"line":28,"column":44}},"type":"default-arg","locations":[{"start":{"line":28,"column":19},"end":{"line":28,"column":44}}],"line":28},"5":{"loc":{"start":{"line":29,"column":4},"end":{"line":29,"column":38}},"type":"default-arg","locations":[{"start":{"line":29,"column":16},"end":{"line":29,"column":38}}],"line":29},"6":{"loc":{"start":{"line":30,"column":4},"end":{"line":30,"column":42}},"type":"default-arg","locations":[{"start":{"line":30,"column":18},"end":{"line":30,"column":42}}],"line":30},"7":{"loc":{"start":{"line":31,"column":4},"end":{"line":31,"column":34}},"type":"default-arg","locations":[{"start":{"line":31,"column":14},"end":{"line":31,"column":34}}],"line":31},"8":{"loc":{"start":{"line":38,"column":6},"end":{"line":42,"column":7}},"type":"if","locations":[{"start":{"line":38,"column":6},"end":{"line":42,"column":7}},{"start":{},"end":{}}],"line":38},"9":{"loc":{"start":{"line":44,"column":6},"end":{"line":52,"column":7}},"type":"if","locations":[{"start":{"line":44,"column":6},"end":{"line":52,"column":7}},{"start":{},"end":{}}],"line":44},"10":{"loc":{"start":{"line":54,"column":6},"end":{"line":115,"column":7}},"type":"if","locations":[{"start":{"line":54,"column":6},"end":{"line":115,"column":7}},{"start":{},"end":{}}],"line":54},"11":{"loc":{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},"type":"if","locations":[{"start":{"line":55,"column":8},"end":{"line":57,"column":9}},{"start":{},"end":{}}],"line":55},"12":{"loc":{"start":{"line":58,"column":8},"end":{"line":68,"column":9}},"type":"if","locations":[{"start":{"line":58,"column":8},"end":{"line":68,"column":9}},{"start":{},"end":{}}],"line":58},"13":{"loc":{"start":{"line":86,"column":8},"end":{"line":90,"column":9}},"type":"if","locations":[{"start":{"line":86,"column":8},"end":{"line":90,"column":9}},{"start":{},"end":{}}],"line":86},"14":{"loc":{"start":{"line":86,"column":12},"end":{"line":86,"column":43}},"type":"binary-expr","locations":[{"start":{"line":86,"column":12},"end":{"line":86,"column":20}},{"start":{"line":86,"column":24},"end":{"line":86,"column":31}},{"start":{"line":86,"column":35},"end":{"line":86,"column":43}}],"line":86},"15":{"loc":{"start":{"line":117,"column":6},"end":{"line":161,"column":7}},"type":"if","locations":[{"start":{"line":117,"column":6},"end":{"line":161,"column":7}},{"start":{},"end":{}}],"line":117},"16":{"loc":{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},"type":"if","locations":[{"start":{"line":119,"column":8},"end":{"line":121,"column":9}},{"start":{},"end":{}}],"line":119}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2,"5":2,"6":1,"7":1,"8":0,"9":1,"10":1,"11":1,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":1,"46":1,"47":1,"48":2},"f":{"0":2,"1":1,"2":1},"b":{"0":[0],"1":[2],"2":[2],"3":[2],"4":[2],"5":[2],"6":[2],"7":[2],"8":[0,1],"9":[1,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0,0],"15":[0,0],"16":[0,0]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"6e5c6e9aa24e8c717f887e88c07fb1330819d001"}
4
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/validateEnv.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/validateEnv.js","statementMap":{"0":{"start":{"line":8,"column":22},"end":{"line":8,"column":75}},"1":{"start":{"line":8,"column":53},"end":{"line":8,"column":74}},"2":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"3":{"start":{"line":10,"column":4},"end":{"line":12,"column":6}},"4":{"start":{"line":16,"column":0},"end":{"line":18,"column":2}}},"fnMap":{"0":{"name":"validateEnvironmentVariables","decl":{"start":{"line":7,"column":9},"end":{"line":7,"column":37}},"loc":{"start":{"line":7,"column":52},"end":{"line":14,"column":1}},"line":7},"1":{"name":"(anonymous_1)","decl":{"start":{"line":8,"column":42},"end":{"line":8,"column":43}},"loc":{"start":{"line":8,"column":53},"end":{"line":8,"column":74}},"line":8}},"branchMap":{"0":{"loc":{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},"type":"if","locations":[{"start":{"line":9,"column":2},"end":{"line":13,"column":3}},{"start":{},"end":{}}],"line":9}},"s":{"0":2,"1":6,"2":2,"3":1,"4":1},"f":{"0":2,"1":6},"b":{"0":[1,1]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"945f899b6cd99ae90ebf55e3c8051ddf4d216f83"}
5
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/verifyToken.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/src/server/middleware/verifyToken.js","statementMap":{"0":{"start":{"line":1,"column":14},"end":{"line":1,"column":30}},"1":{"start":{"line":2,"column":12},"end":{"line":2,"column":35}},"2":{"start":{"line":3,"column":19},"end":{"line":3,"column":28}},"3":{"start":{"line":12,"column":2},"end":{"line":20,"column":3}},"4":{"start":{"line":13,"column":4},"end":{"line":13,"column":37}},"5":{"start":{"line":15,"column":4},"end":{"line":18,"column":5}},"6":{"start":{"line":16,"column":27},"end":{"line":16,"column":57}},"7":{"start":{"line":17,"column":6},"end":{"line":17,"column":68}},"8":{"start":{"line":19,"column":4},"end":{"line":19,"column":16}},"9":{"start":{"line":29,"column":2},"end":{"line":36,"column":3}},"10":{"start":{"line":30,"column":21},"end":{"line":32,"column":6}},"11":{"start":{"line":33,"column":4},"end":{"line":33,"column":75}},"12":{"start":{"line":35,"column":4},"end":{"line":35,"column":16}},"13":{"start":{"line":55,"column":2},"end":{"line":75,"column":3}},"14":{"start":{"line":56,"column":33},"end":{"line":56,"column":59}},"15":{"start":{"line":57,"column":21},"end":{"line":69,"column":5}},"16":{"start":{"line":71,"column":4},"end":{"line":71,"column":25}},"17":{"start":{"line":73,"column":4},"end":{"line":73,"column":52}},"18":{"start":{"line":74,"column":4},"end":{"line":74,"column":16}},"19":{"start":{"line":83,"column":22},"end":{"line":127,"column":1}},"20":{"start":{"line":84,"column":2},"end":{"line":126,"column":4}},"21":{"start":{"line":85,"column":24},"end":{"line":85,"column":64}},"22":{"start":{"line":86,"column":4},"end":{"line":88,"column":5}},"23":{"start":{"line":87,"column":6},"end":{"line":87,"column":73}},"24":{"start":{"line":91,"column":4},"end":{"line":94,"column":5}},"25":{"start":{"line":92,"column":6},"end":{"line":92,"column":45}},"26":{"start":{"line":93,"column":6},"end":{"line":93,"column":20}},"27":{"start":{"line":96,"column":4},"end":{"line":125,"column":5}},"28":{"start":{"line":97,"column":22},"end":{"line":97,"column":69}},"29":{"start":{"line":98,"column":6},"end":{"line":100,"column":7}},"30":{"start":{"line":99,"column":8},"end":{"line":99,"column":70}},"31":{"start":{"line":101,"column":6},"end":{"line":101,"column":43}},"32":{"start":{"line":102,"column":6},"end":{"line":102,"column":25}},"33":{"start":{"line":103,"column":6},"end":{"line":103,"column":20}},"34":{"start":{"line":105,"column":6},"end":{"line":124,"column":7}},"35":{"start":{"line":106,"column":29},"end":{"line":113,"column":9}},"36":{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},"37":{"start":{"line":116,"column":10},"end":{"line":116,"column":72}},"38":{"start":{"line":119,"column":8},"end":{"line":119,"column":55}},"39":{"start":{"line":120,"column":8},"end":{"line":120,"column":37}},"40":{"start":{"line":121,"column":8},"end":{"line":121,"column":22}},"41":{"start":{"line":123,"column":8},"end":{"line":123,"column":73}},"42":{"start":{"line":136,"column":2},"end":{"line":138,"column":4}},"43":{"start":{"line":137,"column":4},"end":{"line":137,"column":49}},"44":{"start":{"line":150,"column":2},"end":{"line":161,"column":3}},"45":{"start":{"line":154,"column":4},"end":{"line":158,"column":5}},"46":{"start":{"line":155,"column":6},"end":{"line":155,"column":46}},"47":{"start":{"line":157,"column":6},"end":{"line":157,"column":47}},"48":{"start":{"line":160,"column":4},"end":{"line":160,"column":32}},"49":{"start":{"line":163,"column":2},"end":{"line":163,"column":23}},"50":{"start":{"line":166,"column":0},"end":{"line":173,"column":2}}},"fnMap":{"0":{"name":"verifyJWT","decl":{"start":{"line":11,"column":15},"end":{"line":11,"column":24}},"loc":{"start":{"line":11,"column":64},"end":{"line":21,"column":1}},"line":11},"1":{"name":"callTokenEndpoint","decl":{"start":{"line":28,"column":15},"end":{"line":28,"column":32}},"loc":{"start":{"line":28,"column":40},"end":{"line":37,"column":1}},"line":28},"2":{"name":"exchangeToken","decl":{"start":{"line":48,"column":15},"end":{"line":48,"column":28}},"loc":{"start":{"line":54,"column":2},"end":{"line":76,"column":1}},"line":54},"3":{"name":"(anonymous_3)","decl":{"start":{"line":83,"column":22},"end":{"line":83,"column":23}},"loc":{"start":{"line":83,"column":45},"end":{"line":127,"column":1}},"line":83},"4":{"name":"(anonymous_4)","decl":{"start":{"line":84,"column":9},"end":{"line":84,"column":10}},"loc":{"start":{"line":84,"column":35},"end":{"line":126,"column":3}},"line":84},"5":{"name":"isValid","decl":{"start":{"line":135,"column":9},"end":{"line":135,"column":16}},"loc":{"start":{"line":135,"column":52},"end":{"line":139,"column":1}},"line":135},"6":{"name":"(anonymous_6)","decl":{"start":{"line":136,"column":35},"end":{"line":136,"column":36}},"loc":{"start":{"line":137,"column":4},"end":{"line":137,"column":49}},"line":137},"7":{"name":"formatRedirectUrl","decl":{"start":{"line":147,"column":9},"end":{"line":147,"column":26}},"loc":{"start":{"line":147,"column":40},"end":{"line":164,"column":1}},"line":147}},"branchMap":{"0":{"loc":{"start":{"line":11,"column":32},"end":{"line":11,"column":62}},"type":"default-arg","locations":[{"start":{"line":11,"column":41},"end":{"line":11,"column":62}}],"line":11},"1":{"loc":{"start":{"line":15,"column":4},"end":{"line":18,"column":5}},"type":"if","locations":[{"start":{"line":15,"column":4},"end":{"line":18,"column":5}},{"start":{},"end":{}}],"line":15},"2":{"loc":{"start":{"line":17,"column":13},"end":{"line":17,"column":67}},"type":"cond-expr","locations":[{"start":{"line":17,"column":28},"end":{"line":17,"column":60}},{"start":{"line":17,"column":63},"end":{"line":17,"column":67}}],"line":17},"3":{"loc":{"start":{"line":33,"column":11},"end":{"line":33,"column":74}},"type":"cond-expr","locations":[{"start":{"line":33,"column":34},"end":{"line":33,"column":67}},{"start":{"line":33,"column":70},"end":{"line":33,"column":74}}],"line":33},"4":{"loc":{"start":{"line":86,"column":4},"end":{"line":88,"column":5}},"type":"if","locations":[{"start":{"line":86,"column":4},"end":{"line":88,"column":5}},{"start":{},"end":{}}],"line":86},"5":{"loc":{"start":{"line":91,"column":4},"end":{"line":94,"column":5}},"type":"if","locations":[{"start":{"line":91,"column":4},"end":{"line":94,"column":5}},{"start":{},"end":{}}],"line":91},"6":{"loc":{"start":{"line":98,"column":6},"end":{"line":100,"column":7}},"type":"if","locations":[{"start":{"line":98,"column":6},"end":{"line":100,"column":7}},{"start":{},"end":{}}],"line":98},"7":{"loc":{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},"type":"if","locations":[{"start":{"line":115,"column":8},"end":{"line":117,"column":9}},{"start":{},"end":{}}],"line":115},"8":{"loc":{"start":{"line":150,"column":2},"end":{"line":161,"column":3}},"type":"if","locations":[{"start":{"line":150,"column":2},"end":{"line":161,"column":3}},{"start":{"line":159,"column":9},"end":{"line":161,"column":3}}],"line":150},"9":{"loc":{"start":{"line":151,"column":4},"end":{"line":152,"column":39}},"type":"binary-expr","locations":[{"start":{"line":151,"column":4},"end":{"line":151,"column":38}},{"start":{"line":152,"column":4},"end":{"line":152,"column":39}}],"line":151},"10":{"loc":{"start":{"line":154,"column":4},"end":{"line":158,"column":5}},"type":"if","locations":[{"start":{"line":154,"column":4},"end":{"line":158,"column":5}},{"start":{"line":156,"column":11},"end":{"line":158,"column":5}}],"line":154}},"s":{"0":3,"1":3,"2":3,"3":2,"4":2,"5":1,"6":0,"7":0,"8":1,"9":2,"10":2,"11":0,"12":2,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":3,"20":3,"21":3,"22":3,"23":1,"24":2,"25":0,"26":0,"27":2,"28":2,"29":1,"30":1,"31":0,"32":0,"33":0,"34":1,"35":1,"36":0,"37":0,"38":0,"39":0,"40":0,"41":1,"42":4,"43":6,"44":5,"45":2,"46":1,"47":1,"48":3,"49":5,"50":3},"f":{"0":2,"1":2,"2":0,"3":3,"4":3,"5":4,"6":6,"7":5},"b":{"0":[0],"1":[0,1],"2":[0,0],"3":[0,0],"4":[1,2],"5":[0,2],"6":[1,0],"7":[0,0],"8":[2,3],"9":[5,4],"10":[1,1]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"a04d45961e74ab9db965c89ebc316e52dd6ec527"}
6
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/redis.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/redis.js","statementMap":{"0":{"start":{"line":1,"column":22},"end":{"line":14,"column":1}},"1":{"start":{"line":2,"column":2},"end":{"line":13,"column":3}},"2":{"start":{"line":3,"column":24},"end":{"line":3,"column":50}},"3":{"start":{"line":4,"column":4},"end":{"line":7,"column":5}},"4":{"start":{"line":5,"column":6},"end":{"line":5,"column":47}},"5":{"start":{"line":6,"column":6},"end":{"line":6,"column":37}},"6":{"start":{"line":8,"column":18},"end":{"line":8,"column":33}},"7":{"start":{"line":9,"column":4},"end":{"line":9,"column":62}},"8":{"start":{"line":10,"column":4},"end":{"line":10,"column":17}},"9":{"start":{"line":12,"column":4},"end":{"line":12,"column":16}},"10":{"start":{"line":16,"column":0},"end":{"line":16,"column":35}}},"fnMap":{"0":{"name":"(anonymous_0)","decl":{"start":{"line":1,"column":22},"end":{"line":1,"column":23}},"loc":{"start":{"line":1,"column":72},"end":{"line":14,"column":1}},"line":1}},"branchMap":{"0":{"loc":{"start":{"line":1,"column":56},"end":{"line":1,"column":67}},"type":"default-arg","locations":[{"start":{"line":1,"column":63},"end":{"line":1,"column":67}}],"line":1},"1":{"loc":{"start":{"line":4,"column":4},"end":{"line":7,"column":5}},"type":"if","locations":[{"start":{"line":4,"column":4},"end":{"line":7,"column":5}},{"start":{},"end":{}}],"line":4}},"s":{"0":4,"1":5,"2":5,"3":4,"4":1,"5":1,"6":3,"7":2,"8":1,"9":3,"10":4},"f":{"0":5},"b":{"0":[5],"1":[1,3]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"36bccd12cada7ed4548a71b8237764870c78273d"}
7
- ,"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/testUtils.js": {"path":"/Users/doziestar/dev/Github/ProPro-Production/propro-auth-middleware/utils/testUtils.js","statementMap":{"0":{"start":{"line":11,"column":14},"end":{"line":15,"column":3}},"1":{"start":{"line":16,"column":14},"end":{"line":21,"column":3}},"2":{"start":{"line":22,"column":15},"end":{"line":22,"column":24}},"3":{"start":{"line":24,"column":2},"end":{"line":24,"column":28}},"4":{"start":{"line":27,"column":0},"end":{"line":29,"column":2}}},"fnMap":{"0":{"name":"createMockExpressContext","decl":{"start":{"line":10,"column":9},"end":{"line":10,"column":33}},"loc":{"start":{"line":10,"column":54},"end":{"line":25,"column":1}},"line":10}},"branchMap":{"0":{"loc":{"start":{"line":10,"column":40},"end":{"line":10,"column":52}},"type":"default-arg","locations":[{"start":{"line":10,"column":50},"end":{"line":10,"column":52}}],"line":10},"1":{"loc":{"start":{"line":13,"column":13},"end":{"line":13,"column":34}},"type":"binary-expr","locations":[{"start":{"line":13,"column":13},"end":{"line":13,"column":28}},{"start":{"line":13,"column":32},"end":{"line":13,"column":34}}],"line":13},"2":{"loc":{"start":{"line":14,"column":11},"end":{"line":14,"column":30}},"type":"binary-expr","locations":[{"start":{"line":14,"column":11},"end":{"line":14,"column":24}},{"start":{"line":14,"column":28},"end":{"line":14,"column":30}}],"line":14}},"s":{"0":2,"1":2,"2":2,"3":2,"4":2},"f":{"0":2},"b":{"0":[2],"1":[2,2],"2":[2,2]},"inputSourceMap":null,"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"09cb66466edc2882c11feaf7127c5cc6b53dea6d"}
8
- }