@veritree/services 2.82.3 → 2.83.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@veritree/services",
3
- "version": "2.82.3",
3
+ "version": "2.83.0",
4
4
  "description": "A collection of javascript functions/services to talk to veritree API",
5
5
  "type": "module",
6
6
  "main": "index.js",
@@ -1,17 +1,39 @@
1
+ /**
2
+ * Retrieves the current user session from browser storage.
3
+ * Checks localStorage first, then falls back to sessionStorage.
4
+ *
5
+ * @returns {Object} The parsed session object, or an empty object if no session exists or parsing fails
6
+ */
1
7
  export const getSession = () => {
2
- return JSON.parse(localStorage.getItem('session') || '{}');
8
+ try {
9
+ const localSession = localStorage.getItem("session");
10
+
11
+ if (localSession) {
12
+ return JSON.parse(localSession);
13
+ }
14
+
15
+ const sessionSession = sessionStorage.getItem("session");
16
+
17
+ if (sessionSession) {
18
+ return JSON.parse(sessionSession);
19
+ }
20
+ } catch (error) {
21
+ console.error("Failed to parse session data:", error);
22
+ }
23
+
24
+ return {};
3
25
  };
4
26
 
5
27
  export const getMe = () => {
6
- return JSON.parse(localStorage.getItem('me') || '{}');
7
- }
28
+ return JSON.parse(localStorage.getItem("me") || "{}");
29
+ };
8
30
 
9
31
  /**
10
32
  * Returns reseller org based on:
11
33
  * - if has veritree org, return veritree org
12
34
  * - if no veritree org, return first reseller org
13
35
  *
14
- * @param {Array<Object>} resellers
36
+ * @param {Array<{org: Object}>} resellers - Array of reseller objects, each containing an org property
15
37
  * @returns {object} org
16
38
  */
17
39
  export const getResellerOrg = (resellers) => {
@@ -19,7 +41,9 @@ export const getResellerOrg = (resellers) => {
19
41
  return getVeritreeOrg(resellers);
20
42
  }
21
43
 
22
- return resellers[0]?.org || {};
44
+ return Array.isArray(resellers) && resellers.length > 0
45
+ ? resellers[0].org
46
+ : {};
23
47
  };
24
48
 
25
49
  /**
@@ -48,17 +72,17 @@ export function getOrgType(orgType) {
48
72
  let orgTypeFormatted = null;
49
73
 
50
74
  switch (orgType) {
51
- case 'owner':
52
- orgTypeFormatted = 'ownerAccount';
75
+ case "owner":
76
+ orgTypeFormatted = "ownerAccount";
53
77
  break;
54
- case 'organization':
55
- orgTypeFormatted = 'orgAccount';
78
+ case "organization":
79
+ orgTypeFormatted = "orgAccount";
56
80
  break;
57
- case 'sponsor':
58
- orgTypeFormatted = 'sponsorAccount';
81
+ case "sponsor":
82
+ orgTypeFormatted = "sponsorAccount";
59
83
  break;
60
- case 'reseller':
61
- orgTypeFormatted = 'resellerAccount';
84
+ case "reseller":
85
+ orgTypeFormatted = "resellerAccount";
62
86
  break;
63
87
  }
64
88
 
@@ -131,10 +155,16 @@ export const getUserOrganizations = (me) => {
131
155
  }
132
156
 
133
157
  return [
134
- ...(me.user_owners ? me.user_owners.map((uo) => uo.org).filter(Boolean) : []),
135
- ...(me.user_resellers ? me.user_resellers.map((ur) => ur.org).filter(Boolean) : []),
158
+ ...(me.user_owners
159
+ ? me.user_owners.map((uo) => uo.org).filter(Boolean)
160
+ : []),
161
+ ...(me.user_resellers
162
+ ? me.user_resellers.map((ur) => ur.org).filter(Boolean)
163
+ : []),
136
164
  ...(me.user_orgs ? me.user_orgs.map((uo) => uo.org).filter(Boolean) : []),
137
- ...(me.user_sponsors ? me.user_sponsors.map((us) => us.org).filter(Boolean) : []),
165
+ ...(me.user_sponsors
166
+ ? me.user_sponsors.map((us) => us.org).filter(Boolean)
167
+ : []),
138
168
  ];
139
169
  };
140
170
 
@@ -151,7 +181,7 @@ export const extractOrgPublicIdFromPath = (path) => {
151
181
  }
152
182
 
153
183
  const url = new URL(path, location.origin);
154
- const pathSegments = url.pathname.split('/').filter(Boolean);
184
+ const pathSegments = url.pathname.split("/").filter(Boolean);
155
185
 
156
186
  return pathSegments.length > 0 ? pathSegments[0] : null;
157
- };
187
+ };