@plasmicapp/auth-react 0.0.10 → 0.0.12

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.
@@ -337,7 +337,9 @@ function _asyncToGenerator(fn) {
337
337
  };
338
338
  }
339
339
 
340
- var STORAGE_USER_KEY = 'plasmic_user';
340
+ var storageUserKey = function storageUserKey(appId) {
341
+ return "$user." + appId;
342
+ };
341
343
  var isBrowser = typeof window !== 'undefined';
342
344
  function getCallbackParams() {
343
345
  var params = new URLSearchParams(window.location.search);
@@ -409,7 +411,7 @@ function _handleCallback() {
409
411
  console.log("Error while performing code exchange: " + result.error);
410
412
  return _context2.abrupt("return", undefined);
411
413
  case 9:
412
- localStorage.setItem(STORAGE_USER_KEY, result.token);
414
+ localStorage.setItem(storageUserKey(appId), result.token);
413
415
  if (!isContinueToSameLocation(continueTo)) {
414
416
  window.location.assign(continueTo);
415
417
  } else {
@@ -435,12 +437,12 @@ function checkAlreadyLoggedUser(_x2) {
435
437
  */
436
438
  function _checkAlreadyLoggedUser() {
437
439
  _checkAlreadyLoggedUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(opts) {
438
- var host, token, _yield$getPlasmicAppU, user, error;
440
+ var appId, host, token, _yield$getPlasmicAppU, user, error;
439
441
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
440
442
  while (1) switch (_context3.prev = _context3.next) {
441
443
  case 0:
442
- host = opts.host;
443
- token = localStorage.getItem(STORAGE_USER_KEY);
444
+ appId = opts.appId, host = opts.host;
445
+ token = localStorage.getItem(storageUserKey(appId));
444
446
  if (token) {
445
447
  _context3.next = 4;
446
448
  break;
@@ -465,7 +467,7 @@ function _checkAlreadyLoggedUser() {
465
467
  }
466
468
  // If there is an error, we just remove the token
467
469
  // But ideally we should check if the reason is token expired
468
- localStorage.removeItem(STORAGE_USER_KEY);
470
+ localStorage.removeItem(storageUserKey(appId));
469
471
  console.log("Error while checking logged user");
470
472
  return _context3.abrupt("return", {
471
473
  user: null,
@@ -561,6 +563,7 @@ function usePlasmicAuth(opts) {
561
563
  case 27:
562
564
  _context.next = 29;
563
565
  return checkAlreadyLoggedUser({
566
+ appId: appId,
564
567
  host: host
565
568
  });
566
569
  case 29:
@@ -1 +1 @@
1
- {"version":3,"file":"auth-react.cjs.development.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: any;\n token: string | null;\n}\n\nconst STORAGE_USER_KEY = 'plasmic_user';\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(STORAGE_USER_KEY, result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { host } = opts;\n\n const token = localStorage.getItem(STORAGE_USER_KEY);\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(STORAGE_USER_KEY);\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["STORAGE_USER_KEY","isBrowser","window","getCallbackParams","params","URLSearchParams","location","search","error","get","code","state","isCallbackError","isCodeExchange","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","pathname","console","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","appId","codeVerifier","parsedState","result","wrap","_callee2$","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_callee3$","_context3","getPlasmicAppUserFromToken","removeItem","usePlasmicAuth","authKey","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_callee$","_context","t0","userData","data","isLoading","isUserLoading"],"mappings":"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"}
1
+ {"version":3,"file":"auth-react.cjs.development.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: PlasmicUser | null;\n token: string | null;\n}\n\nconst storageUserKey = (appId: string) => `$user.${appId}`;\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(storageUserKey(appId), result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n appId: string;\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { appId, host } = opts;\n\n const token = localStorage.getItem(storageUserKey(appId));\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(storageUserKey(appId));\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n appId,\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["storageUserKey","appId","isBrowser","window","getCallbackParams","params","URLSearchParams","location","search","error","get","code","state","isCallbackError","isCodeExchange","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","pathname","console","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","codeVerifier","parsedState","result","wrap","_callee2$","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_callee3$","_context3","getPlasmicAppUserFromToken","removeItem","usePlasmicAuth","authKey","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_callee$","_context","t0","userData","data","isLoading","isUserLoading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAYA,IAAMA,cAAc,GAAG,SAAjBA,cAAcA,CAAIC,KAAa;EAAA,kBAAcA,KAAK;AAAA,CAAE;AAE1D,IAAMC,SAAS,GAAG,OAAOC,MAAM,KAAK,WAAW;AAE/C,SAASC,iBAAiBA;EACxB,IAAMC,MAAM,GAAG,IAAIC,eAAe,CAACH,MAAM,CAACI,QAAQ,CAACC,MAAM,CAAC;EAC1D,IAAMC,KAAK,GAAGJ,MAAM,CAACK,GAAG,CAAC,OAAO,CAAC;EACjC,IAAMC,IAAI,GAAGN,MAAM,CAACK,GAAG,CAAC,MAAM,CAAC;EAC/B,IAAME,KAAK,GAAGP,MAAM,CAACK,GAAG,CAAC,OAAO,CAAC;EAEjC,OAAO;IACLG,eAAe,EAAE,CAAC,CAACJ,KAAK;IACxBK,cAAc,EAAE,CAAC,CAACH,IAAI,IAAI,CAAC,CAACC,KAAK;IACjCH,KAAK,EAALA,KAAK;IACLE,IAAI,EAAJA,IAAI;IACJC,KAAK,EAALA;GACD;AACH;AAEA,SAASG,eAAeA;EACtB,IAAI;IACF,OAAOC,YAAY,CAACC,OAAO,CAAC,eAAe,CAAC;GAC7C,CAAC,OAAOC,GAAG,EAAE;IACZ,OAAO,IAAI;;AAEf;AAEA,SAASC,oBAAoBA;EAC3B,IAAI;IACFhB,MAAM,CAACiB,OAAO,CAACC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAEd,QAAQ,CAACe,QAAQ,CAAC;GACvD,CAAC,OAAOJ,GAAG,EAAE;IACZK,OAAO,CAACd,KAAK,4CAA0CS,GAAK,CAAC;;AAEjE;AAEA;AACA;AACA;AACA,SAASM,wBAAwBA,CAACC,UAAkB;EAClD,IAAMH,QAAQ,GAAGnB,MAAM,CAACI,QAAQ,CAACe,QAAQ;EACzC,IAAMI,MAAM,GAAGvB,MAAM,CAACI,QAAQ,CAACmB,MAAM;EACrC,OAAOD,UAAU,KAAKH,QAAQ,IAAIG,UAAU,KAAKC,MAAM,GAAGJ,QAAQ;AACpE;AAAC,SAEcK,cAAcA,CAAAC,EAAA;EAAA,OAAAC,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF;EAAAA,eAAA,GAAAG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAA7B,SAAAC,SAA8BC,IAM7B;IAAA,IAAAC,IAAA,EAAApC,KAAA,EAAAU,IAAA,EAAAC,KAAA,EAAA0B,YAAA,EAAAb,UAAA,EAAAc,WAAA,EAAAC,MAAA;IAAA,OAAAP,mBAAA,GAAAQ,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UACSR,IAAI,GAAuCD,IAAI,CAA/CC,IAAI,EAAEpC,KAAK,GAAgCmC,IAAI,CAAzCnC,KAAK,EAAEU,IAAI,GAA0ByB,IAAI,CAAlCzB,IAAI,EAAEC,KAAK,GAAmBwB,IAAI,CAA5BxB,KAAK,EAAE0B,YAAY,GAAKF,IAAI,CAArBE,YAAY;UAE1Cb,UAAU,GAAG,GAAG;UACpB,IAAI;YACF,IAAIb,KAAK,EAAE;cACH2B,WAAW,GAAGO,IAAI,CAACC,KAAK,CAACnC,KAAK,CAAC;cACrCa,UAAU,GAAGc,WAAW,CAACd,UAAU;;WAEtC,CAAC,OAAOP,GAAG,EAAE;YACZK,OAAO,CAACd,KAAK,iCAA+BS,GAAK,CAAC;;UACnDyB,SAAA,CAAAE,IAAA;UAAA,OAEoBG,yBAAiB,CAAC;YACrCX,IAAI,EAAJA,IAAI;YACJpC,KAAK,EAALA,KAAK;YACLU,IAAI,EAAJA,IAAI;YACJ2B,YAAY,EAAZA;WACD,CAAC;QAAA;UALIE,MAAM,GAAAG,SAAA,CAAAM,IAAA;UAAA,KAORT,MAAM,CAAC/B,KAAK;YAAAkC,SAAA,CAAAE,IAAA;YAAA;;UACdtB,OAAO,CAAC2B,GAAG,4CAA0CV,MAAM,CAAC/B,KAAO,CAAC;UAAC,OAAAkC,SAAA,CAAAQ,MAAA,WAC9DC,SAAS;QAAA;UAGlBpC,YAAY,CAACqC,OAAO,CAACrD,cAAc,CAACC,KAAK,CAAC,EAAEuC,MAAM,CAACc,KAAK,CAAC;UAEzD,IAAI,CAAC9B,wBAAwB,CAACC,UAAU,CAAC,EAAE;YACzCtB,MAAM,CAACI,QAAQ,CAACgD,MAAM,CAAC9B,UAAU,CAAC;WACnC,MAAM;YACLN,oBAAoB,EAAE;;UACvB,OAAAwB,SAAA,CAAAQ,MAAA,WAEM;YAAEG,KAAK,EAAEd,MAAM,CAACc,KAAK;YAAEE,IAAI,EAAEhB,MAAM,CAACgB;WAAM;QAAA;QAAA;UAAA,OAAAb,SAAA,CAAAc,IAAA;;OAAAtB,QAAA;GAClD;EAAA,OAAAN,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEc2B,sBAAsBA,CAAAC,GAAA;EAAA,OAAAC,uBAAA,CAAA9B,KAAA,OAAAC,SAAA;AAAA;AA2BrC;;;AAAA,SAAA6B;EAAAA,uBAAA,GAAA5B,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA3BA,SAAA2B,SAAsCzB,IAGrC;IAAA,IAAAnC,KAAA,EAAAoC,IAAA,EAAAiB,KAAA,EAAAQ,qBAAA,EAAAN,IAAA,EAAA/C,KAAA;IAAA,OAAAwB,mBAAA,GAAAQ,IAAA,UAAAsB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApB,IAAA,GAAAoB,SAAA,CAAAnB,IAAA;QAAA;UACS5C,KAAK,GAAWmC,IAAI,CAApBnC,KAAK,EAAEoC,IAAI,GAAKD,IAAI,CAAbC,IAAI;UAEbiB,KAAK,GAAGtC,YAAY,CAACC,OAAO,CAACjB,cAAc,CAACC,KAAK,CAAC,CAAC;UAAA,IACpDqD,KAAK;YAAAU,SAAA,CAAAnB,IAAA;YAAA;;UAAA,OAAAmB,SAAA,CAAAb,MAAA,WACD;YAAEK,IAAI,EAAE,IAAI;YAAEF,KAAK,EAAE;WAAM;QAAA;UAAAU,SAAA,CAAAnB,IAAA;UAAA,OAGNoB,kCAA0B,CAAC;YACvD5B,IAAI,EAAJA,IAAI;YACJiB,KAAK,EAALA;WACD,CAAC;QAAA;UAAAQ,qBAAA,GAAAE,SAAA,CAAAf,IAAA;UAHMO,IAAI,GAAAM,qBAAA,CAAJN,IAAI;UAAE/C,KAAK,GAAAqD,qBAAA,CAALrD,KAAK;UAAA,KAKfA,KAAK;YAAAuD,SAAA,CAAAnB,IAAA;YAAA;;;;UAGP7B,YAAY,CAACkD,UAAU,CAAClE,cAAc,CAACC,KAAK,CAAC,CAAC;UAC9CsB,OAAO,CAAC2B,GAAG,mCAAmC,CAAC;UAAC,OAAAc,SAAA,CAAAb,MAAA,WACzC;YAAEK,IAAI,EAAE,IAAI;YAAEF,KAAK,EAAE;WAAM;QAAA;UAAA,OAAAU,SAAA,CAAAb,MAAA,WAG7B;YAAEK,IAAI,EAAJA,IAAI;YAAEF,KAAK,EAALA;WAAO;QAAA;QAAA;UAAA,OAAAU,SAAA,CAAAP,IAAA;;OAAAI,QAAA;GACvB;EAAA,OAAAD,uBAAA,CAAA9B,KAAA,OAAAC,SAAA;AAAA;SAKeoC,cAAcA,CAAC/B,IAAuC;EACpE,IAAQC,IAAI,GAAYD,IAAI,CAApBC,IAAI;IAAEpC,KAAK,GAAKmC,IAAI,CAAdnC,KAAK;EACnB,IAAMmE,OAAO,0BAAwBnE,KAAO;EAC5C,IAAAoE,qBAAA,GAAsCC,gCAA0B,CAC9DF,OAAO,eAAApC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACP,SAAAqC;MAAA,IAAAC,cAAA,EAAAlC,YAAA,EAAAE,MAAA;MAAA,OAAAP,mBAAA,GAAAQ,IAAA,UAAAgC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAA9B,IAAA,GAAA8B,QAAA,CAAA7B,IAAA;UAAA;YAAA,MACM,CAAC5C,KAAK,IAAI,CAACC,SAAS;cAAAwE,QAAA,CAAA7B,IAAA;cAAA;;YAAA,OAAA6B,QAAA,CAAAvB,MAAA,WACf;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAAoB,QAAA,CAAA9B,IAAA;;YAM5B4B,cAAc,GAAGpE,iBAAiB,EAAE;YAAA,MACtCoE,cAAc,CAAC3D,eAAe,IAAI2D,cAAc,CAAC1D,cAAc;cAAA4D,QAAA,CAAA7B,IAAA;cAAA;;YAAA,KAC7D2B,cAAc,CAAC3D,eAAe;cAAA6D,QAAA,CAAA7B,IAAA;cAAA;;;YAEhC1B,oBAAoB,EAAE;YACtBI,OAAO,CAACd,KAAK,aAAW+D,cAAc,CAAC/D,KAAO,CAAC;YAAC,OAAAiE,QAAA,CAAAvB,MAAA,WACzC;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAE5BhB,YAAY,GAAGvB,eAAe,EAAE;YAAA,IACjCuB,YAAY;cAAAoC,QAAA,CAAA7B,IAAA;cAAA;;;YAEf1B,oBAAoB,EAAE;YACtBI,OAAO,CAACd,KAAK,CAAC,wBAAwB,CAAC;YAAC,OAAAiE,QAAA,CAAAvB,MAAA,WACjC;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAAoB,QAAA,CAAA7B,IAAA;YAAA,OAKblB,cAAc,CAAC;cAClCU,IAAI,EAAJA,IAAI;cACJpC,KAAK,EAALA,KAAK;cACLU,IAAI,EAAE6D,cAAc,CAAC7D,IAAK;cAC1BC,KAAK,EAAE4D,cAAc,CAAC5D,KAAM;cAC5B0B,YAAY,EAAZA;aACD,CAAC;UAAA;YANIE,MAAM,GAAAkC,QAAA,CAAAzB,IAAA;YAAA,IASPT,MAAM;cAAAkC,QAAA,CAAA7B,IAAA;cAAA;;YACT1B,oBAAoB,EAAE;YAAC,OAAAuD,QAAA,CAAAvB,MAAA,WAChB;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAA,OAAAoB,QAAA,CAAAvB,MAAA,WAK7BX,MAAM;UAAA;YAAAkC,QAAA,CAAA7B,IAAA;YAAA;UAAA;YAAA6B,QAAA,CAAA7B,IAAA;YAAA,OAIJa,sBAAsB,CAAC;cAClCzD,KAAK,EAALA,KAAK;cACLoC,IAAI,EAAJA;aACD,CAAC;UAAA;YAAA,OAAAqC,QAAA,CAAAvB,MAAA,WAAAuB,QAAA,CAAAzB,IAAA;UAAA;YAAAyB,QAAA,CAAA7B,IAAA;YAAA;UAAA;YAAA6B,QAAA,CAAA9B,IAAA;YAAA8B,QAAA,CAAAC,EAAA,GAAAD,QAAA;YAGJnD,OAAO,CAACd,KAAK,iCAAAiE,QAAA,CAAAC,EAAoC,CAAC;UAAC;YAAA,OAAAD,QAAA,CAAAvB,MAAA,WAG9C;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;UAAA;YAAA,OAAAoB,QAAA,CAAAjB,IAAA;;SAAAc,OAAA;KACnC,GACF;IA3DaK,QAAQ,GAAAP,qBAAA,CAAdQ,IAAI;IAAYC,SAAS,GAAAT,qBAAA,CAATS,SAAS;EA6DjC,OAAO;IACLtB,IAAI,EAAEoB,QAAQ,oBAARA,QAAQ,CAAEpB,IAAI;IACpBF,KAAK,EAAEsB,QAAQ,oBAARA,QAAQ,CAAEtB,KAAK;IACtByB,aAAa,EAAED;GAChB;AACH;;;;;;;;;;;;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/auth-api"),r=require("@plasmicapp/query");function e(){e=function(){return r};var t,r={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(t,r,e){t[r]=e.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{l({},"")}catch(t){l=function(t,r,e){return t[r]=e}}function f(t,r,e,n){var o=Object.create((r&&r.prototype instanceof g?r:g).prototype),i=new I(n||[]);return a(o,"_invoke",{value:O(t,e,i)}),o}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=f;var p="suspendedStart",d="executing",v="completed",y={};function g(){}function m(){}function w(){}var b={};l(b,u,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(N([])));k&&k!==n&&o.call(k,u)&&(b=k);var E=w.prototype=g.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(r){l(t,r,(function(t){return this._invoke(r,t)}))}))}function _(t,r){function e(n,a,i,u){var c=h(t[n],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&o.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,i,u)}),(function(t){e("throw",t,i,u)})):r.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return e("throw",t,i,u)}))}u(c.arg)}var n;a(this,"_invoke",{value:function(t,o){function a(){return new r((function(r,n){e(t,o,r,n)}))}return n=n?n.then(a,a):a()}})}function O(r,e,n){var o=p;return function(a,i){if(o===d)throw new Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=j(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=h(r,e,n);if("normal"===s.type){if(o=n.done?v:"suspendedYield",s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function j(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,j(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(o,r.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var i=a.arg;return i?i.done?(e[r.resultName]=i.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,y):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function P(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function S(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function I(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function N(r){if(r||""===r){var e=r[u];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var n=-1,a=function e(){for(;++n<r.length;)if(o.call(r,n))return e.value=r[n],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(typeof r+" is not iterable")}return m.prototype=w,a(E,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:m,configurable:!0}),m.displayName=l(w,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===m||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,s,"GeneratorFunction")),t.prototype=Object.create(E),t},r.awrap=function(t){return{__await:t}},L(_.prototype),l(_.prototype,c,(function(){return this})),r.AsyncIterator=_,r.async=function(t,e,n,o,a){void 0===a&&(a=Promise);var i=new _(f(t,e,n,o),a);return r.isGeneratorFunction(e)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(E),l(E,s,"Generator"),l(E,u,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=N,I.prototype={constructor:I,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(S),!r)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function n(n,o){return u.type="throw",u.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=o.call(i,"catchLoc"),s=o.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=r&&r<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=r,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),y},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),S(e),y}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;S(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:N(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),y}},r}function n(t,r,e,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var r=this,e=arguments;return new Promise((function(o,a){var i=t.apply(r,e);function u(t){n(i,o,a,u,c,"next",t)}function c(t){n(i,o,a,u,c,"throw",t)}u(void 0)}))}}var a="undefined"!=typeof window;function i(){try{return localStorage.getItem("code_verifier")}catch(t){return null}}function u(){try{window.history.replaceState({},"",location.pathname)}catch(t){console.error("Error while removing callback params: "+t)}}function c(t){var r=window.location.pathname,e=window.location.origin;return t===r||t===e+r}function s(t){return l.apply(this,arguments)}function l(){return(l=o(e().mark((function r(n){var o,a,i,s,l,f,h,p;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=n.host,a=n.appId,i=n.code,s=n.state,l=n.codeVerifier,f="/";try{s&&(h=JSON.parse(s),f=h.continueTo)}catch(t){console.error("Error while parsing state: "+t)}return r.next=5,t.getPlasmicAppUser({host:o,appId:a,code:i,codeVerifier:l});case 5:if(!(p=r.sent).error){r.next=9;break}return console.log("Error while performing code exchange: "+p.error),r.abrupt("return",void 0);case 9:return localStorage.setItem("plasmic_user",p.token),c(f)?u():window.location.assign(f),r.abrupt("return",{token:p.token,user:p.user});case 12:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function f(t){return h.apply(this,arguments)}function h(){return(h=o(e().mark((function r(n){var o,a,i,u;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.host,a=localStorage.getItem("plasmic_user")){r.next=4;break}return r.abrupt("return",{user:null,token:null});case 4:return r.next=6,t.getPlasmicAppUserFromToken({host:o,token:a});case 6:if(u=(i=r.sent).user,!i.error){r.next=13;break}return localStorage.removeItem("plasmic_user"),console.log("Error while checking logged user"),r.abrupt("return",{user:null,token:null});case 13:return r.abrupt("return",{user:u,token:a});case 14:case"end":return r.stop()}}),r)})))).apply(this,arguments)}Object.keys(t).forEach((function(r){"default"!==r&&Object.defineProperty(exports,r,{enumerable:!0,get:function(){return t[r]}})})),exports.usePlasmicAuth=function(t){var n=t.host,c=t.appId,l=r.useMutablePlasmicQueryData("$csq$plasmic-auth-"+c,o(e().mark((function t(){var r,o,l;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(c&&a){t.next=2;break}return t.abrupt("return",{user:null,token:null});case 2:if(t.prev=2,e=void 0,h=(e=new URLSearchParams(window.location.search)).get("error"),p=e.get("code"),d=e.get("state"),!(r={isCallbackError:!!h,isCodeExchange:!!p&&!!d,error:h,code:p,state:d}).isCallbackError&&!r.isCodeExchange){t.next=27;break}if(!r.isCallbackError){t.next=11;break}return u(),console.error("Error: "+r.error),t.abrupt("return",{user:null,token:null});case 11:if(o=i()){t.next=18;break}return u(),console.error("No code verifier found"),t.abrupt("return",{user:null,token:null});case 18:return t.next=20,s({host:n,appId:c,code:r.code,state:r.state,codeVerifier:o});case 20:if(l=t.sent){t.next=24;break}return u(),t.abrupt("return",{user:null,token:null});case 24:return t.abrupt("return",l);case 25:t.next=30;break;case 27:return t.next=29,f({host:n});case 29:return t.abrupt("return",t.sent);case 30:t.next=35;break;case 32:t.prev=32,t.t0=t.catch(2),console.error("Error while handling auth: "+t.t0);case 35:return t.abrupt("return",{user:null,token:null});case 36:case"end":return t.stop()}var e,h,p,d}),t,null,[[2,32]])})))),h=l.data;return{user:null==h?void 0:h.user,token:null==h?void 0:h.token,isUserLoading:l.isLoading}};
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("@plasmicapp/auth-api"),r=require("@plasmicapp/query");function e(){e=function(){return r};var t,r={},n=Object.prototype,o=n.hasOwnProperty,a=Object.defineProperty||function(t,r,e){t[r]=e.value},i="function"==typeof Symbol?Symbol:{},u=i.iterator||"@@iterator",c=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function l(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{l({},"")}catch(t){l=function(t,r,e){return t[r]=e}}function f(t,r,e,n){var o=Object.create((r&&r.prototype instanceof g?r:g).prototype),i=new S(n||[]);return a(o,"_invoke",{value:_(t,e,i)}),o}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(t){return{type:"throw",arg:t}}}r.wrap=f;var p="suspendedStart",d="executing",v="completed",y={};function g(){}function m(){}function w(){}var b={};l(b,u,(function(){return this}));var x=Object.getPrototypeOf,k=x&&x(x(N([])));k&&k!==n&&o.call(k,u)&&(b=k);var E=w.prototype=g.prototype=Object.create(b);function L(t){["next","throw","return"].forEach((function(r){l(t,r,(function(t){return this._invoke(r,t)}))}))}function O(t,r){function e(n,a,i,u){var c=h(t[n],t,a);if("throw"!==c.type){var s=c.arg,l=s.value;return l&&"object"==typeof l&&o.call(l,"__await")?r.resolve(l.__await).then((function(t){e("next",t,i,u)}),(function(t){e("throw",t,i,u)})):r.resolve(l).then((function(t){s.value=t,i(s)}),(function(t){return e("throw",t,i,u)}))}u(c.arg)}var n;a(this,"_invoke",{value:function(t,o){function a(){return new r((function(r,n){e(t,o,r,n)}))}return n=n?n.then(a,a):a()}})}function _(r,e,n){var o=p;return function(a,i){if(o===d)throw new Error("Generator is already running");if(o===v){if("throw"===a)throw i;return{value:t,done:!0}}for(n.method=a,n.arg=i;;){var u=n.delegate;if(u){var c=j(u,n);if(c){if(c===y)continue;return c}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if(o===p)throw o=v,n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o=d;var s=h(r,e,n);if("normal"===s.type){if(o=n.done?v:"suspendedYield",s.arg===y)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o=v,n.method="throw",n.arg=s.arg)}}}function j(r,e){var n=e.method,o=r.iterator[n];if(o===t)return e.delegate=null,"throw"===n&&r.iterator.return&&(e.method="return",e.arg=t,j(r,e),"throw"===e.method)||"return"!==n&&(e.method="throw",e.arg=new TypeError("The iterator does not provide a '"+n+"' method")),y;var a=h(o,r.iterator,e.arg);if("throw"===a.type)return e.method="throw",e.arg=a.arg,e.delegate=null,y;var i=a.arg;return i?i.done?(e[r.resultName]=i.value,e.next=r.nextLoc,"return"!==e.method&&(e.method="next",e.arg=t),e.delegate=null,y):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function P(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function I(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function S(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function N(r){if(r||""===r){var e=r[u];if(e)return e.call(r);if("function"==typeof r.next)return r;if(!isNaN(r.length)){var n=-1,a=function e(){for(;++n<r.length;)if(o.call(r,n))return e.value=r[n],e.done=!1,e;return e.value=t,e.done=!0,e};return a.next=a}}throw new TypeError(typeof r+" is not iterable")}return m.prototype=w,a(E,"constructor",{value:w,configurable:!0}),a(w,"constructor",{value:m,configurable:!0}),m.displayName=l(w,s,"GeneratorFunction"),r.isGeneratorFunction=function(t){var r="function"==typeof t&&t.constructor;return!!r&&(r===m||"GeneratorFunction"===(r.displayName||r.name))},r.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,l(t,s,"GeneratorFunction")),t.prototype=Object.create(E),t},r.awrap=function(t){return{__await:t}},L(O.prototype),l(O.prototype,c,(function(){return this})),r.AsyncIterator=O,r.async=function(t,e,n,o,a){void 0===a&&(a=Promise);var i=new O(f(t,e,n,o),a);return r.isGeneratorFunction(e)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},L(E),l(E,s,"Generator"),l(E,u,(function(){return this})),l(E,"toString",(function(){return"[object Generator]"})),r.keys=function(t){var r=Object(t),e=[];for(var n in r)e.push(n);return e.reverse(),function t(){for(;e.length;){var n=e.pop();if(n in r)return t.value=n,t.done=!1,t}return t.done=!0,t}},r.values=N,S.prototype={constructor:S,reset:function(r){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(I),!r)for(var e in this)"t"===e.charAt(0)&&o.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(r){if(this.done)throw r;var e=this;function n(n,o){return u.type="throw",u.arg=r,e.next=n,o&&(e.method="next",e.arg=t),!!o}for(var a=this.tryEntries.length-1;a>=0;--a){var i=this.tryEntries[a],u=i.completion;if("root"===i.tryLoc)return n("end");if(i.tryLoc<=this.prev){var c=o.call(i,"catchLoc"),s=o.call(i,"finallyLoc");if(c&&s){if(this.prev<i.catchLoc)return n(i.catchLoc,!0);if(this.prev<i.finallyLoc)return n(i.finallyLoc)}else if(c){if(this.prev<i.catchLoc)return n(i.catchLoc,!0)}else{if(!s)throw new Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return n(i.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc<=this.prev&&o.call(n,"finallyLoc")&&this.prev<n.finallyLoc){var a=n;break}}a&&("break"===t||"continue"===t)&&a.tryLoc<=r&&r<=a.finallyLoc&&(a=null);var i=a?a.completion:{};return i.type=t,i.arg=r,a?(this.method="next",this.next=a.finallyLoc,y):this.complete(i)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),y},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),I(e),y}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;I(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(r,e,n){return this.delegate={iterator:N(r),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=t),y}},r}function n(t,r,e,n,o,a,i){try{var u=t[a](i),c=u.value}catch(t){return void e(t)}u.done?r(c):Promise.resolve(c).then(n,o)}function o(t){return function(){var r=this,e=arguments;return new Promise((function(o,a){var i=t.apply(r,e);function u(t){n(i,o,a,u,c,"next",t)}function c(t){n(i,o,a,u,c,"throw",t)}u(void 0)}))}}var a=function(t){return"$user."+t},i="undefined"!=typeof window;function u(){try{return localStorage.getItem("code_verifier")}catch(t){return null}}function c(){try{window.history.replaceState({},"",location.pathname)}catch(t){console.error("Error while removing callback params: "+t)}}function s(t){var r=window.location.pathname,e=window.location.origin;return t===r||t===e+r}function l(t){return f.apply(this,arguments)}function f(){return(f=o(e().mark((function r(n){var o,i,u,l,f,h,p,d;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:o=n.host,i=n.appId,u=n.code,l=n.state,f=n.codeVerifier,h="/";try{l&&(p=JSON.parse(l),h=p.continueTo)}catch(t){console.error("Error while parsing state: "+t)}return r.next=5,t.getPlasmicAppUser({host:o,appId:i,code:u,codeVerifier:f});case 5:if(!(d=r.sent).error){r.next=9;break}return console.log("Error while performing code exchange: "+d.error),r.abrupt("return",void 0);case 9:return localStorage.setItem(a(i),d.token),s(h)?c():window.location.assign(h),r.abrupt("return",{token:d.token,user:d.user});case 12:case"end":return r.stop()}}),r)})))).apply(this,arguments)}function h(t){return p.apply(this,arguments)}function p(){return(p=o(e().mark((function r(n){var o,i,u,c,s;return e().wrap((function(r){for(;;)switch(r.prev=r.next){case 0:if(o=n.appId,i=n.host,u=localStorage.getItem(a(o))){r.next=4;break}return r.abrupt("return",{user:null,token:null});case 4:return r.next=6,t.getPlasmicAppUserFromToken({host:i,token:u});case 6:if(s=(c=r.sent).user,!c.error){r.next=13;break}return localStorage.removeItem(a(o)),console.log("Error while checking logged user"),r.abrupt("return",{user:null,token:null});case 13:return r.abrupt("return",{user:s,token:u});case 14:case"end":return r.stop()}}),r)})))).apply(this,arguments)}Object.keys(t).forEach((function(r){"default"!==r&&Object.defineProperty(exports,r,{enumerable:!0,get:function(){return t[r]}})})),exports.usePlasmicAuth=function(t){var n=t.host,a=t.appId,s=r.useMutablePlasmicQueryData("$csq$plasmic-auth-"+a,o(e().mark((function t(){var r,o,s;return e().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(a&&i){t.next=2;break}return t.abrupt("return",{user:null,token:null});case 2:if(t.prev=2,e=void 0,f=(e=new URLSearchParams(window.location.search)).get("error"),p=e.get("code"),d=e.get("state"),!(r={isCallbackError:!!f,isCodeExchange:!!p&&!!d,error:f,code:p,state:d}).isCallbackError&&!r.isCodeExchange){t.next=27;break}if(!r.isCallbackError){t.next=11;break}return c(),console.error("Error: "+r.error),t.abrupt("return",{user:null,token:null});case 11:if(o=u()){t.next=18;break}return c(),console.error("No code verifier found"),t.abrupt("return",{user:null,token:null});case 18:return t.next=20,l({host:n,appId:a,code:r.code,state:r.state,codeVerifier:o});case 20:if(s=t.sent){t.next=24;break}return c(),t.abrupt("return",{user:null,token:null});case 24:return t.abrupt("return",s);case 25:t.next=30;break;case 27:return t.next=29,h({appId:a,host:n});case 29:return t.abrupt("return",t.sent);case 30:t.next=35;break;case 32:t.prev=32,t.t0=t.catch(2),console.error("Error while handling auth: "+t.t0);case 35:return t.abrupt("return",{user:null,token:null});case 36:case"end":return t.stop()}var e,f,p,d}),t,null,[[2,32]])})))),f=s.data;return{user:null==f?void 0:f.user,token:null==f?void 0:f.token,isUserLoading:s.isLoading}};
2
2
  //# sourceMappingURL=auth-react.cjs.production.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth-react.cjs.production.min.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: any;\n token: string | null;\n}\n\nconst STORAGE_USER_KEY = 'plasmic_user';\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(STORAGE_USER_KEY, result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { host } = opts;\n\n const token = localStorage.getItem(STORAGE_USER_KEY);\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(STORAGE_USER_KEY);\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["isBrowser","window","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","location","pathname","console","error","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","appId","code","state","codeVerifier","parsedState","result","wrap","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_context3","getPlasmicAppUserFromToken","removeItem","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_context","params","URLSearchParams","search","get","isCallbackError","isCodeExchange","t0","userData","data","isUserLoading","isLoading"],"mappings":"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"}
1
+ {"version":3,"file":"auth-react.cjs.production.min.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: PlasmicUser | null;\n token: string | null;\n}\n\nconst storageUserKey = (appId: string) => `$user.${appId}`;\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(storageUserKey(appId), result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n appId: string;\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { appId, host } = opts;\n\n const token = localStorage.getItem(storageUserKey(appId));\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(storageUserKey(appId));\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n appId,\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["storageUserKey","appId","isBrowser","window","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","location","pathname","console","error","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","code","state","codeVerifier","parsedState","result","wrap","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_context3","getPlasmicAppUserFromToken","removeItem","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_context","params","URLSearchParams","search","get","isCallbackError","isCodeExchange","t0","userData","data","isUserLoading","isLoading"],"mappings":"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"}
@@ -334,7 +334,9 @@ function _asyncToGenerator(fn) {
334
334
  };
335
335
  }
336
336
 
337
- var STORAGE_USER_KEY = 'plasmic_user';
337
+ var storageUserKey = function storageUserKey(appId) {
338
+ return "$user." + appId;
339
+ };
338
340
  var isBrowser = typeof window !== 'undefined';
339
341
  function getCallbackParams() {
340
342
  var params = new URLSearchParams(window.location.search);
@@ -406,7 +408,7 @@ function _handleCallback() {
406
408
  console.log("Error while performing code exchange: " + result.error);
407
409
  return _context2.abrupt("return", undefined);
408
410
  case 9:
409
- localStorage.setItem(STORAGE_USER_KEY, result.token);
411
+ localStorage.setItem(storageUserKey(appId), result.token);
410
412
  if (!isContinueToSameLocation(continueTo)) {
411
413
  window.location.assign(continueTo);
412
414
  } else {
@@ -432,12 +434,12 @@ function checkAlreadyLoggedUser(_x2) {
432
434
  */
433
435
  function _checkAlreadyLoggedUser() {
434
436
  _checkAlreadyLoggedUser = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(opts) {
435
- var host, token, _yield$getPlasmicAppU, user, error;
437
+ var appId, host, token, _yield$getPlasmicAppU, user, error;
436
438
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
437
439
  while (1) switch (_context3.prev = _context3.next) {
438
440
  case 0:
439
- host = opts.host;
440
- token = localStorage.getItem(STORAGE_USER_KEY);
441
+ appId = opts.appId, host = opts.host;
442
+ token = localStorage.getItem(storageUserKey(appId));
441
443
  if (token) {
442
444
  _context3.next = 4;
443
445
  break;
@@ -462,7 +464,7 @@ function _checkAlreadyLoggedUser() {
462
464
  }
463
465
  // If there is an error, we just remove the token
464
466
  // But ideally we should check if the reason is token expired
465
- localStorage.removeItem(STORAGE_USER_KEY);
467
+ localStorage.removeItem(storageUserKey(appId));
466
468
  console.log("Error while checking logged user");
467
469
  return _context3.abrupt("return", {
468
470
  user: null,
@@ -558,6 +560,7 @@ function usePlasmicAuth(opts) {
558
560
  case 27:
559
561
  _context.next = 29;
560
562
  return checkAlreadyLoggedUser({
563
+ appId: appId,
561
564
  host: host
562
565
  });
563
566
  case 29:
@@ -1 +1 @@
1
- {"version":3,"file":"auth-react.esm.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: any;\n token: string | null;\n}\n\nconst STORAGE_USER_KEY = 'plasmic_user';\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(STORAGE_USER_KEY, result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { host } = opts;\n\n const token = localStorage.getItem(STORAGE_USER_KEY);\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(STORAGE_USER_KEY);\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["STORAGE_USER_KEY","isBrowser","window","getCallbackParams","params","URLSearchParams","location","search","error","get","code","state","isCallbackError","isCodeExchange","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","pathname","console","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","appId","codeVerifier","parsedState","result","wrap","_callee2$","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_callee3$","_context3","getPlasmicAppUserFromToken","removeItem","usePlasmicAuth","authKey","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_callee$","_context","t0","userData","data","isLoading","isUserLoading"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,IAAMA,gBAAgB,GAAG,cAAc;AACvC,IAAMC,SAAS,GAAG,OAAOC,MAAM,KAAK,WAAW;AAE/C,SAASC,iBAAiBA;EACxB,IAAMC,MAAM,GAAG,IAAIC,eAAe,CAACH,MAAM,CAACI,QAAQ,CAACC,MAAM,CAAC;EAC1D,IAAMC,KAAK,GAAGJ,MAAM,CAACK,GAAG,CAAC,OAAO,CAAC;EACjC,IAAMC,IAAI,GAAGN,MAAM,CAACK,GAAG,CAAC,MAAM,CAAC;EAC/B,IAAME,KAAK,GAAGP,MAAM,CAACK,GAAG,CAAC,OAAO,CAAC;EAEjC,OAAO;IACLG,eAAe,EAAE,CAAC,CAACJ,KAAK;IACxBK,cAAc,EAAE,CAAC,CAACH,IAAI,IAAI,CAAC,CAACC,KAAK;IACjCH,KAAK,EAALA,KAAK;IACLE,IAAI,EAAJA,IAAI;IACJC,KAAK,EAALA;GACD;AACH;AAEA,SAASG,eAAeA;EACtB,IAAI;IACF,OAAOC,YAAY,CAACC,OAAO,CAAC,eAAe,CAAC;GAC7C,CAAC,OAAOC,GAAG,EAAE;IACZ,OAAO,IAAI;;AAEf;AAEA,SAASC,oBAAoBA;EAC3B,IAAI;IACFhB,MAAM,CAACiB,OAAO,CAACC,YAAY,CAAC,EAAE,EAAE,EAAE,EAAEd,QAAQ,CAACe,QAAQ,CAAC;GACvD,CAAC,OAAOJ,GAAG,EAAE;IACZK,OAAO,CAACd,KAAK,4CAA0CS,GAAK,CAAC;;AAEjE;AAEA;AACA;AACA;AACA,SAASM,wBAAwBA,CAACC,UAAkB;EAClD,IAAMH,QAAQ,GAAGnB,MAAM,CAACI,QAAQ,CAACe,QAAQ;EACzC,IAAMI,MAAM,GAAGvB,MAAM,CAACI,QAAQ,CAACmB,MAAM;EACrC,OAAOD,UAAU,KAAKH,QAAQ,IAAIG,UAAU,KAAKC,MAAM,GAAGJ,QAAQ;AACpE;AAAC,SAEcK,cAAcA,CAAAC,EAAA;EAAA,OAAAC,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAF;EAAAA,eAAA,GAAAG,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CAA7B,SAAAC,SAA8BC,IAM7B;IAAA,IAAAC,IAAA,EAAAC,KAAA,EAAA3B,IAAA,EAAAC,KAAA,EAAA2B,YAAA,EAAAd,UAAA,EAAAe,WAAA,EAAAC,MAAA;IAAA,OAAAR,mBAAA,GAAAS,IAAA,UAAAC,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAAC,IAAA,GAAAD,SAAA,CAAAE,IAAA;QAAA;UACST,IAAI,GAAuCD,IAAI,CAA/CC,IAAI,EAAEC,KAAK,GAAgCF,IAAI,CAAzCE,KAAK,EAAE3B,IAAI,GAA0ByB,IAAI,CAAlCzB,IAAI,EAAEC,KAAK,GAAmBwB,IAAI,CAA5BxB,KAAK,EAAE2B,YAAY,GAAKH,IAAI,CAArBG,YAAY;UAE1Cd,UAAU,GAAG,GAAG;UACpB,IAAI;YACF,IAAIb,KAAK,EAAE;cACH4B,WAAW,GAAGO,IAAI,CAACC,KAAK,CAACpC,KAAK,CAAC;cACrCa,UAAU,GAAGe,WAAW,CAACf,UAAU;;WAEtC,CAAC,OAAOP,GAAG,EAAE;YACZK,OAAO,CAACd,KAAK,iCAA+BS,GAAK,CAAC;;UACnD0B,SAAA,CAAAE,IAAA;UAAA,OAEoBG,iBAAiB,CAAC;YACrCZ,IAAI,EAAJA,IAAI;YACJC,KAAK,EAALA,KAAK;YACL3B,IAAI,EAAJA,IAAI;YACJ4B,YAAY,EAAZA;WACD,CAAC;QAAA;UALIE,MAAM,GAAAG,SAAA,CAAAM,IAAA;UAAA,KAORT,MAAM,CAAChC,KAAK;YAAAmC,SAAA,CAAAE,IAAA;YAAA;;UACdvB,OAAO,CAAC4B,GAAG,4CAA0CV,MAAM,CAAChC,KAAO,CAAC;UAAC,OAAAmC,SAAA,CAAAQ,MAAA,WAC9DC,SAAS;QAAA;UAGlBrC,YAAY,CAACsC,OAAO,CAACrD,gBAAgB,EAAEwC,MAAM,CAACc,KAAK,CAAC;UAEpD,IAAI,CAAC/B,wBAAwB,CAACC,UAAU,CAAC,EAAE;YACzCtB,MAAM,CAACI,QAAQ,CAACiD,MAAM,CAAC/B,UAAU,CAAC;WACnC,MAAM;YACLN,oBAAoB,EAAE;;UACvB,OAAAyB,SAAA,CAAAQ,MAAA,WAEM;YAAEG,KAAK,EAAEd,MAAM,CAACc,KAAK;YAAEE,IAAI,EAAEhB,MAAM,CAACgB;WAAM;QAAA;QAAA;UAAA,OAAAb,SAAA,CAAAc,IAAA;;OAAAvB,QAAA;GAClD;EAAA,OAAAN,eAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAAA,SAEc4B,sBAAsBA,CAAAC,GAAA;EAAA,OAAAC,uBAAA,CAAA/B,KAAA,OAAAC,SAAA;AAAA;AA0BrC;;;AAAA,SAAA8B;EAAAA,uBAAA,GAAA7B,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CA1BA,SAAA4B,SAAsC1B,IAErC;IAAA,IAAAC,IAAA,EAAAkB,KAAA,EAAAQ,qBAAA,EAAAN,IAAA,EAAAhD,KAAA;IAAA,OAAAwB,mBAAA,GAAAS,IAAA,UAAAsB,UAAAC,SAAA;MAAA,kBAAAA,SAAA,CAAApB,IAAA,GAAAoB,SAAA,CAAAnB,IAAA;QAAA;UACST,IAAI,GAAKD,IAAI,CAAbC,IAAI;UAENkB,KAAK,GAAGvC,YAAY,CAACC,OAAO,CAAChB,gBAAgB,CAAC;UAAA,IAC/CsD,KAAK;YAAAU,SAAA,CAAAnB,IAAA;YAAA;;UAAA,OAAAmB,SAAA,CAAAb,MAAA,WACD;YAAEK,IAAI,EAAE,IAAI;YAAEF,KAAK,EAAE;WAAM;QAAA;UAAAU,SAAA,CAAAnB,IAAA;UAAA,OAGNoB,0BAA0B,CAAC;YACvD7B,IAAI,EAAJA,IAAI;YACJkB,KAAK,EAALA;WACD,CAAC;QAAA;UAAAQ,qBAAA,GAAAE,SAAA,CAAAf,IAAA;UAHMO,IAAI,GAAAM,qBAAA,CAAJN,IAAI;UAAEhD,KAAK,GAAAsD,qBAAA,CAALtD,KAAK;UAAA,KAKfA,KAAK;YAAAwD,SAAA,CAAAnB,IAAA;YAAA;;;;UAGP9B,YAAY,CAACmD,UAAU,CAAClE,gBAAgB,CAAC;UACzCsB,OAAO,CAAC4B,GAAG,mCAAmC,CAAC;UAAC,OAAAc,SAAA,CAAAb,MAAA,WACzC;YAAEK,IAAI,EAAE,IAAI;YAAEF,KAAK,EAAE;WAAM;QAAA;UAAA,OAAAU,SAAA,CAAAb,MAAA,WAG7B;YAAEK,IAAI,EAAJA,IAAI;YAAEF,KAAK,EAALA;WAAO;QAAA;QAAA;UAAA,OAAAU,SAAA,CAAAP,IAAA;;OAAAI,QAAA;GACvB;EAAA,OAAAD,uBAAA,CAAA/B,KAAA,OAAAC,SAAA;AAAA;SAKeqC,cAAcA,CAAChC,IAAuC;EACpE,IAAQC,IAAI,GAAYD,IAAI,CAApBC,IAAI;IAAEC,KAAK,GAAKF,IAAI,CAAdE,KAAK;EACnB,IAAM+B,OAAO,0BAAwB/B,KAAO;EAC5C,IAAAgC,qBAAA,GAAsCC,0BAA0B,CAC9DF,OAAO,eAAArC,iBAAA,eAAAC,mBAAA,GAAAC,IAAA,CACP,SAAAsC;MAAA,IAAAC,cAAA,EAAAlC,YAAA,EAAAE,MAAA;MAAA,OAAAR,mBAAA,GAAAS,IAAA,UAAAgC,SAAAC,QAAA;QAAA,kBAAAA,QAAA,CAAA9B,IAAA,GAAA8B,QAAA,CAAA7B,IAAA;UAAA;YAAA,MACM,CAACR,KAAK,IAAI,CAACpC,SAAS;cAAAyE,QAAA,CAAA7B,IAAA;cAAA;;YAAA,OAAA6B,QAAA,CAAAvB,MAAA,WACf;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAAoB,QAAA,CAAA9B,IAAA;;YAM5B4B,cAAc,GAAGrE,iBAAiB,EAAE;YAAA,MACtCqE,cAAc,CAAC5D,eAAe,IAAI4D,cAAc,CAAC3D,cAAc;cAAA6D,QAAA,CAAA7B,IAAA;cAAA;;YAAA,KAC7D2B,cAAc,CAAC5D,eAAe;cAAA8D,QAAA,CAAA7B,IAAA;cAAA;;;YAEhC3B,oBAAoB,EAAE;YACtBI,OAAO,CAACd,KAAK,aAAWgE,cAAc,CAAChE,KAAO,CAAC;YAAC,OAAAkE,QAAA,CAAAvB,MAAA,WACzC;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAE5BhB,YAAY,GAAGxB,eAAe,EAAE;YAAA,IACjCwB,YAAY;cAAAoC,QAAA,CAAA7B,IAAA;cAAA;;;YAEf3B,oBAAoB,EAAE;YACtBI,OAAO,CAACd,KAAK,CAAC,wBAAwB,CAAC;YAAC,OAAAkE,QAAA,CAAAvB,MAAA,WACjC;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAAoB,QAAA,CAAA7B,IAAA;YAAA,OAKbnB,cAAc,CAAC;cAClCU,IAAI,EAAJA,IAAI;cACJC,KAAK,EAALA,KAAK;cACL3B,IAAI,EAAE8D,cAAc,CAAC9D,IAAK;cAC1BC,KAAK,EAAE6D,cAAc,CAAC7D,KAAM;cAC5B2B,YAAY,EAAZA;aACD,CAAC;UAAA;YANIE,MAAM,GAAAkC,QAAA,CAAAzB,IAAA;YAAA,IASPT,MAAM;cAAAkC,QAAA,CAAA7B,IAAA;cAAA;;YACT3B,oBAAoB,EAAE;YAAC,OAAAwD,QAAA,CAAAvB,MAAA,WAChB;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;YAAA,OAAAoB,QAAA,CAAAvB,MAAA,WAK7BX,MAAM;UAAA;YAAAkC,QAAA,CAAA7B,IAAA;YAAA;UAAA;YAAA6B,QAAA,CAAA7B,IAAA;YAAA,OAIJa,sBAAsB,CAAC;cAClCtB,IAAI,EAAJA;aACD,CAAC;UAAA;YAAA,OAAAsC,QAAA,CAAAvB,MAAA,WAAAuB,QAAA,CAAAzB,IAAA;UAAA;YAAAyB,QAAA,CAAA7B,IAAA;YAAA;UAAA;YAAA6B,QAAA,CAAA9B,IAAA;YAAA8B,QAAA,CAAAC,EAAA,GAAAD,QAAA;YAGJpD,OAAO,CAACd,KAAK,iCAAAkE,QAAA,CAAAC,EAAoC,CAAC;UAAC;YAAA,OAAAD,QAAA,CAAAvB,MAAA,WAG9C;cAAEK,IAAI,EAAE,IAAI;cAAEF,KAAK,EAAE;aAAM;UAAA;UAAA;YAAA,OAAAoB,QAAA,CAAAjB,IAAA;;SAAAc,OAAA;KACnC,GACF;IA1DaK,QAAQ,GAAAP,qBAAA,CAAdQ,IAAI;IAAYC,SAAS,GAAAT,qBAAA,CAATS,SAAS;EA4DjC,OAAO;IACLtB,IAAI,EAAEoB,QAAQ,oBAARA,QAAQ,CAAEpB,IAAI;IACpBF,KAAK,EAAEsB,QAAQ,oBAARA,QAAQ,CAAEtB,KAAK;IACtByB,aAAa,EAAED;GAChB;AACH;;;;"}
1
+ {"version":3,"file":"auth-react.esm.js","sources":["../src/hooks.ts"],"sourcesContent":["import {\n getPlasmicAppUser,\n getPlasmicAppUserFromToken,\n PlasmicUser,\n} from '@plasmicapp/auth-api';\nimport { useMutablePlasmicQueryData } from '@plasmicapp/query';\n\ninterface PlasmicAuthData {\n user: PlasmicUser | null;\n token: string | null;\n}\n\nconst storageUserKey = (appId: string) => `$user.${appId}`;\n\nconst isBrowser = typeof window !== 'undefined';\n\nfunction getCallbackParams() {\n const params = new URLSearchParams(window.location.search);\n const error = params.get('error');\n const code = params.get('code');\n const state = params.get('state');\n\n return {\n isCallbackError: !!error,\n isCodeExchange: !!code && !!state,\n error,\n code,\n state,\n };\n}\n\nfunction getCodeVerifier() {\n try {\n return localStorage.getItem('code_verifier');\n } catch (err) {\n return null;\n }\n}\n\nfunction removeCallbackParams() {\n try {\n window.history.replaceState({}, '', location.pathname);\n } catch (err) {\n console.error(`Error while removing callback params: ${err}`);\n }\n}\n\n// continueTo can be only a pathname or a full url with origin\n// we can consider that currently we are at the callback page\n// with callback params, so ignore the search params\nfunction isContinueToSameLocation(continueTo: string) {\n const pathname = window.location.pathname;\n const origin = window.location.origin;\n return continueTo === pathname || continueTo === origin + pathname;\n}\n\nasync function handleCallback(opts: {\n host?: string;\n appId: string;\n code: string;\n state: string;\n codeVerifier: string;\n}): Promise<PlasmicAuthData | undefined> {\n const { host, appId, code, state, codeVerifier } = opts;\n\n let continueTo = '/';\n try {\n if (state) {\n const parsedState = JSON.parse(state);\n continueTo = parsedState.continueTo;\n }\n } catch (err) {\n console.error(`Error while parsing state: ${err}`);\n }\n\n const result = await getPlasmicAppUser({\n host,\n appId,\n code,\n codeVerifier,\n });\n\n if (result.error) {\n console.log(`Error while performing code exchange: ${result.error}`);\n return undefined;\n }\n\n localStorage.setItem(storageUserKey(appId), result.token);\n\n if (!isContinueToSameLocation(continueTo)) {\n window.location.assign(continueTo);\n } else {\n removeCallbackParams();\n }\n\n return { token: result.token, user: result.user };\n}\n\nasync function checkAlreadyLoggedUser(opts: {\n appId: string;\n host?: string;\n}): Promise<PlasmicAuthData> {\n const { appId, host } = opts;\n\n const token = localStorage.getItem(storageUserKey(appId));\n if (!token) {\n return { user: null, token: null };\n }\n\n const { user, error } = await getPlasmicAppUserFromToken({\n host,\n token,\n });\n\n if (error) {\n // If there is an error, we just remove the token\n // But ideally we should check if the reason is token expired\n localStorage.removeItem(storageUserKey(appId));\n console.log(`Error while checking logged user`);\n return { user: null, token: null };\n }\n\n return { user, token };\n}\n\n/**\n * Handles the authentication flow for Plasmic Auth and returns the user and token\n */\nexport function usePlasmicAuth(opts: { host?: string; appId?: string }) {\n const { host, appId } = opts;\n const authKey = `$csq$plasmic-auth-${appId}`;\n const { data: userData, isLoading } = useMutablePlasmicQueryData(\n authKey,\n async (): Promise<PlasmicAuthData> => {\n if (!appId || !isBrowser) {\n return { user: null, token: null };\n }\n\n // Fail silently for now\n try {\n // We first check if we are currently in the callback flow\n const callbackParams = getCallbackParams();\n if (callbackParams.isCallbackError || callbackParams.isCodeExchange) {\n if (callbackParams.isCallbackError) {\n // If there is an error, we just remove the callback params\n removeCallbackParams();\n console.error(`Error: ${callbackParams.error}`);\n return { user: null, token: null };\n } else {\n const codeVerifier = getCodeVerifier();\n if (!codeVerifier) {\n // If there is no codeVerifier, we just remove the callback params\n removeCallbackParams();\n console.error('No code verifier found');\n return { user: null, token: null };\n } else {\n // Perform code exchange, by the end of the callback handling we will either still be\n // in the callback page or we will be redirected to the continueTo page.\n\n const result = await handleCallback({\n host,\n appId,\n code: callbackParams.code!,\n state: callbackParams.state!,\n codeVerifier,\n });\n\n // Undefined result means that the code exchange failed\n if (!result) {\n removeCallbackParams();\n return { user: null, token: null };\n }\n\n // In the above case where the code exchange failed and the callback page requires login\n // a login redirect will be triggered\n return result;\n }\n }\n } else {\n return await checkAlreadyLoggedUser({\n appId,\n host,\n });\n }\n } catch (err) {\n console.error(`Error while handling auth: ${err}`);\n }\n\n return { user: null, token: null };\n }\n );\n\n return {\n user: userData?.user,\n token: userData?.token,\n isUserLoading: isLoading,\n };\n}\n"],"names":["storageUserKey","appId","isBrowser","window","getCallbackParams","params","URLSearchParams","location","search","error","get","code","state","isCallbackError","isCodeExchange","getCodeVerifier","localStorage","getItem","err","removeCallbackParams","history","replaceState","pathname","console","isContinueToSameLocation","continueTo","origin","handleCallback","_x","_handleCallback","apply","arguments","_asyncToGenerator","_regeneratorRuntime","mark","_callee2","opts","host","codeVerifier","parsedState","result","wrap","_callee2$","_context2","prev","next","JSON","parse","getPlasmicAppUser","sent","log","abrupt","undefined","setItem","token","assign","user","stop","checkAlreadyLoggedUser","_x2","_checkAlreadyLoggedUser","_callee3","_yield$getPlasmicAppU","_callee3$","_context3","getPlasmicAppUserFromToken","removeItem","usePlasmicAuth","authKey","_useMutablePlasmicQue","useMutablePlasmicQueryData","_callee","callbackParams","_callee$","_context","t0","userData","data","isLoading","isUserLoading"],"mappings":"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"}
package/dist/hooks.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { PlasmicUser } from '@plasmicapp/auth-api';
1
2
  /**
2
3
  * Handles the authentication flow for Plasmic Auth and returns the user and token
3
4
  */
@@ -5,7 +6,7 @@ export declare function usePlasmicAuth(opts: {
5
6
  host?: string;
6
7
  appId?: string;
7
8
  }): {
8
- user: any;
9
+ user: PlasmicUser | null | undefined;
9
10
  token: string | null | undefined;
10
11
  isUserLoading: boolean | undefined;
11
12
  };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.10",
2
+ "version": "0.0.12",
3
3
  "license": "MIT",
4
4
  "main": "dist/index.js",
5
5
  "typings": "dist/index.d.ts",
@@ -57,14 +57,14 @@
57
57
  "tslib": "^2.2.0"
58
58
  },
59
59
  "dependencies": {
60
- "@plasmicapp/auth-api": "0.0.8",
60
+ "@plasmicapp/auth-api": "0.0.9",
61
61
  "@plasmicapp/isomorphic-unfetch": "1.0.3",
62
- "@plasmicapp/query": "0.1.70"
62
+ "@plasmicapp/query": "0.1.71"
63
63
  },
64
64
  "publishConfig": {
65
65
  "access": "public"
66
66
  },
67
- "gitHead": "388b5829f67de3782fe8afdad0d153b5c6d0aac0",
67
+ "gitHead": "2c9707207a827f2e199268a0e53ee3718fc4f828",
68
68
  "peerDependencies": {
69
69
  "react": ">=16.8.0"
70
70
  }