@ideem/zsm-client-sdk 2.6.3 → 2.7.1

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/CHANGELOG.md CHANGED
@@ -11,7 +11,21 @@ and Universal MFA into a browser application.
11
11
  - None at this time.
12
12
 
13
13
  ----
14
- ## Release 2.6.3 - January 6, 2026 [ NPM PACKAGE RELEASE ] **[ LATEST ]**
14
+
15
+ ## Release 2.7.1 - Mar 3, 2026 [ NPM PACKAGE RELEASE ] **[ LATEST ]**
16
+ - Minor bug fixes and improvements
17
+ - Added dynamic versioning headers
18
+ - Updates to WASM code to remove Base64URL encoding and decoding steps for improved performance and reduced complexity
19
+ - Updates to documentation
20
+
21
+ ## Release 2.7.0 - January 15, 2026 [ NPM PACKAGE RELEASE ]
22
+ - Minor bug fixes and improvements
23
+ - Standardization of credential responses across all SDK platforms (browser, mobile, native)
24
+ - Standardization of credential schema across all all UMFA workflows
25
+ - Improved security by addition of new validation checks for webauthn attestation and assertion responses
26
+ - Improvements to performance by removing now-unnecessary API trips during UMFA enrollment and authentication flows
27
+
28
+ ## Release 2.6.3 - January 6, 2026 [ NPM PACKAGE RELEASE ]
15
29
  - Minor alteration to event coordinator to support legacy versions of Safari (versions 14-18.4)
16
30
 
17
31
  ## Release 2.6.2 - December 19, 2025 [ NPM PACKAGE RELEASE ]
@@ -85,7 +85,7 @@ class FIDO2ClientBase {
85
85
  if(userIdentifier == null
86
86
  || userIdentifier === '') throw new Error(`[FIDO2Client] :: webauthnCreate :: A userIdentifier String is required! Received: ${userIdentifier}.`);
87
87
 
88
- const createResult = this.zsmAPI.webauthnCreate(userIdentifier);
88
+ const createResult = await this.zsmAPI.webauthnCreate(userIdentifier);
89
89
  if(createResult instanceof Error) throw(`[FIDO2Client] :: webauthnCreate :: Unable to associate ${userIdentifier}'s identity with device profile.\nDetails:\n${createResult}`);
90
90
  return createResult;
91
91
  }catch(e) {
@@ -108,7 +108,7 @@ class FIDO2ClientBase {
108
108
  if(userIdentifier == null
109
109
  || userIdentifier === '') throw new Error(`[FIDO2Client] :: webauthnGet :: A userIdentifier String is required! Received: ${userIdentifier}.`);
110
110
  let authCredential = await this.zsmAPI.webauthnGet(userIdentifier);
111
- return authCredential.credential;
111
+ return authCredential?.credential??authCredential;
112
112
  }catch(e) {
113
113
  return new Error(e.message || e || '[FIDO2Client] :: webauthnGet :: An error occurred during credential retrieval.');
114
114
  }
@@ -52,6 +52,7 @@ class RelyingPartyBase {
52
52
  body = Object.assign({ customer_defined_identifier : this.customerDefinedIdentifier, application_id : this.applicationId}, body, this.addlRelyingPartyBodyProps, tracePrimer(true));
53
53
  let fetchObj = {
54
54
  method,
55
+ // headers : Object.assign(this.xhrHeaders, ((!headers?.Authorization) ? {'Authorization': `Bearer ${this.apiKey}`} : {}), headers, {"X-SDK-Version": JSON.stringify(GLOBAL.ZSMVersions)}),
55
56
  headers : Object.assign(this.xhrHeaders, ((!headers?.Authorization) ? {'Authorization': `Bearer ${this.apiKey}`} : {}), headers),
56
57
  body : JSON.stringify(body)
57
58
  };
@@ -114,6 +115,7 @@ class RelyingPartyBase {
114
115
  * @throws {Error} Throws an error if the request fails.
115
116
  */
116
117
  registrationFinish (credential) {
118
+ return credential;
117
119
  return this.makePostRequest(`api/webauthn/registration/finish`, { credential })
118
120
  .then(body => {
119
121
  this.credentialID = credential.rawId;
@@ -153,6 +155,7 @@ class RelyingPartyBase {
153
155
  * @throws {Error} Throws an error if the request fails.
154
156
  */
155
157
  authenticationFinish (credential) {
158
+ return credential;
156
159
  return this.makePostRequest("api/webauthn/authentication/finish", { credential })
157
160
  .then(result => result)
158
161
  .catch(error => Promise.reject(new Error(error)));
@@ -192,6 +195,7 @@ class RelyingPartyBase {
192
195
  * @throws {Error} Throws an error if the request fails.
193
196
  */
194
197
  registrationFinishAuthenticationStart (credential) {
198
+ return credential;
195
199
  return this.makePostRequest(`api/webauthn/registration/finish-then-authentication-start`, { credential })
196
200
  .then(result => (this.credentialID = credential.rawId, result))
197
201
  .then(credential => credential)
package/UMFAClientBase.js CHANGED
@@ -99,7 +99,7 @@ class UMFAClientBase {
99
99
  let userIsEnrolled = await this.checkEnrollment(userIdentifier);
100
100
  if(userIsEnrolled === false) throw(`${userIdentifier} is not enrolled.`);
101
101
  let authCredential = await this.zsmAPI.webauthnPartialGet(userIdentifier);
102
- return authCredential.credential;
102
+ return authCredential?.credential??authCredential;
103
103
  }catch(e) {
104
104
  return new Error(e.message || e || '[UMFAClient] :: authenticate :: An error occurred during authentication.');
105
105
  }