supaapps-auth 3.0.0 → 3.2.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/dist/index.d.ts CHANGED
@@ -36,7 +36,8 @@ declare enum Platforms {
36
36
  GITHUB = "github",
37
37
  APPLE = "apple",
38
38
  LINKEDIN = "linkedin",
39
- MICROSOFT = "microsoft"
39
+ MICROSOFT = "microsoft",
40
+ SUPPORT = "support"
40
41
  }
41
42
 
42
43
  declare class AuthManager {
@@ -80,6 +81,7 @@ declare class AuthManager {
80
81
  private saveTokens;
81
82
  loginUsingEmail(email: string, password: string): Promise<void>;
82
83
  loginUsingPkce(code: string): Promise<void>;
84
+ loginUsingImpersonation(code: string, redirectUri?: string): Promise<void>;
83
85
  logout(): Promise<void>;
84
86
  static validateToken(authServer: string, bearerToken: string): Promise<UserTokenPayload>;
85
87
  static resetInstance(): void;
package/dist/index.js CHANGED
@@ -18,6 +18,7 @@ var Platforms = /* @__PURE__ */ ((Platforms2) => {
18
18
  Platforms2["APPLE"] = "apple";
19
19
  Platforms2["LINKEDIN"] = "linkedin";
20
20
  Platforms2["MICROSOFT"] = "microsoft";
21
+ Platforms2["SUPPORT"] = "support";
21
22
  return Platforms2;
22
23
  })(Platforms || {});
23
24
 
@@ -107,10 +108,10 @@ var AuthManager = class _AuthManager {
107
108
  return JSON.parse(atob(token.split(".")[1]));
108
109
  }
109
110
  generatePKCEPair() {
110
- const verifier = localStorage.getItem("codeVerifier") ?? generateCodeVerifier();
111
- const challenge = localStorage.getItem("codeChallenge") ?? generateCodeChallenge(verifier);
112
- localStorage.setItem("codeVerifier", verifier);
113
- localStorage.setItem("codeChallenge", challenge);
111
+ const verifier = localStorage.getItem("code_verifier") ?? generateCodeVerifier();
112
+ const challenge = localStorage.getItem("code_challenge") ?? generateCodeChallenge(verifier);
113
+ localStorage.setItem("code_verifier", verifier);
114
+ localStorage.setItem("code_challenge", challenge);
114
115
  return { verifier, challenge };
115
116
  }
116
117
  async refreshAccessToken(isInitialization = false) {
@@ -365,17 +366,18 @@ var AuthManager = class _AuthManager {
365
366
  this.saveTokens(response, false);
366
367
  }
367
368
  saveTokens(response, byRefresh) {
369
+ const eventType = byRefresh ? "user-updated" /* USER_UPDATED */ : "user-logged-in" /* USER_LOGGED_IN */;
370
+ const userPayload = this.tokenToPayload(response.data.access_token);
368
371
  localStorage.setItem("access_token", response.data.access_token);
369
372
  localStorage.setItem(
370
373
  "refresh_token",
371
374
  response.data.refresh_token
372
375
  );
373
376
  this.onStateChange({
374
- type: byRefresh ? "user-updated" /* USER_UPDATED */ : "user-logged-in" /* USER_LOGGED_IN */,
375
- user: this.tokenToPayload(response.data.access_token)
377
+ type: eventType,
378
+ user: userPayload
376
379
  });
377
- const user = this.tokenToPayload(response.data.access_token);
378
- localStorage.setItem("user", JSON.stringify(user));
380
+ localStorage.setItem("user", JSON.stringify(userPayload));
379
381
  }
380
382
  async loginUsingEmail(email, password) {
381
383
  const response = await axios.post(
@@ -393,7 +395,7 @@ var AuthManager = class _AuthManager {
393
395
  }
394
396
  async loginUsingPkce(code) {
395
397
  try {
396
- const codeVerifier = localStorage.getItem("codeVerifier");
398
+ const codeVerifier = localStorage.getItem("code_verifier");
397
399
  if (!codeVerifier) {
398
400
  throw new Error("Code verifier not found");
399
401
  }
@@ -408,10 +410,26 @@ var AuthManager = class _AuthManager {
408
410
  );
409
411
  this.saveTokens(response, false);
410
412
  } finally {
411
- localStorage.removeItem("codeVerifier");
412
- localStorage.removeItem("codeChallenge");
413
+ localStorage.removeItem("code_verifier");
414
+ localStorage.removeItem("code_challenge");
413
415
  }
414
416
  }
417
+ async loginUsingImpersonation(code, redirectUri) {
418
+ const response = await axios.post(
419
+ `${this.authServer}auth/impersonation_exchange`,
420
+ {
421
+ code,
422
+ ...redirectUri ? { redirect_uri: redirectUri } : {}
423
+ }
424
+ );
425
+ if (response.data.message || response.data.error) {
426
+ throw new Error(response.data.message || response.data.error);
427
+ }
428
+ if (!response.data.access_token) {
429
+ throw new Error("Something went wrong");
430
+ }
431
+ this.saveTokens(response, false);
432
+ }
415
433
  async logout() {
416
434
  try {
417
435
  const accessToken = localStorage.getItem("access_token");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "supaapps-auth",
3
- "version": "3.0.0",
3
+ "version": "3.2.0",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "module": "dist/index.js",
@@ -16,6 +16,10 @@
16
16
  "watch": "tsup src/index.ts --format esm --dts --watch",
17
17
  "lint": "eslint src/ --ext .ts,.tsx"
18
18
  },
19
+ "repository": {
20
+ "type": "git",
21
+ "url": "git+https://github.com/supaapps/supaapps-auth.git"
22
+ },
19
23
  "files": [
20
24
  "dist"
21
25
  ],