@civic/auth 0.3.1-beta.1 → 0.3.2-beta.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.
Files changed (228) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/cjs/constants.d.ts +2 -1
  3. package/dist/cjs/constants.d.ts.map +1 -1
  4. package/dist/cjs/constants.js +9 -1
  5. package/dist/cjs/constants.js.map +1 -1
  6. package/dist/cjs/nextjs/index.d.ts +2 -2
  7. package/dist/cjs/nextjs/index.d.ts.map +1 -1
  8. package/dist/cjs/nextjs/index.js.map +1 -1
  9. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts +1 -5
  10. package/dist/cjs/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  11. package/dist/cjs/nextjs/providers/NextAuthProvider.js +5 -45
  12. package/dist/cjs/nextjs/providers/NextAuthProvider.js.map +1 -1
  13. package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts +1 -1
  14. package/dist/cjs/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -1
  15. package/dist/cjs/reactjs/components/ButtonContentOrLoader.js +16 -23
  16. package/dist/cjs/reactjs/components/ButtonContentOrLoader.js.map +1 -1
  17. package/dist/cjs/reactjs/components/SignInButton.d.ts +4 -3
  18. package/dist/cjs/reactjs/components/SignInButton.d.ts.map +1 -1
  19. package/dist/cjs/reactjs/components/SignInButton.js +5 -9
  20. package/dist/cjs/reactjs/components/SignInButton.js.map +1 -1
  21. package/dist/cjs/reactjs/components/SignOutButton.d.ts +4 -3
  22. package/dist/cjs/reactjs/components/SignOutButton.d.ts.map +1 -1
  23. package/dist/cjs/reactjs/components/SignOutButton.js +4 -8
  24. package/dist/cjs/reactjs/components/SignOutButton.js.map +1 -1
  25. package/dist/cjs/reactjs/components/UserButton.d.ts +6 -3
  26. package/dist/cjs/reactjs/components/UserButton.d.ts.map +1 -1
  27. package/dist/cjs/reactjs/components/UserButton.js +69 -109
  28. package/dist/cjs/reactjs/components/UserButton.js.map +1 -1
  29. package/dist/cjs/reactjs/providers/AuthProvider.d.ts +1 -2
  30. package/dist/cjs/reactjs/providers/AuthProvider.d.ts.map +1 -1
  31. package/dist/cjs/reactjs/providers/AuthProvider.js +3 -37
  32. package/dist/cjs/reactjs/providers/AuthProvider.js.map +1 -1
  33. package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts +1 -2
  34. package/dist/cjs/reactjs/providers/CivicAuthProvider.d.ts.map +1 -1
  35. package/dist/cjs/reactjs/providers/CivicAuthProvider.js +4 -13
  36. package/dist/cjs/reactjs/providers/CivicAuthProvider.js.map +1 -1
  37. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +1 -1
  38. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
  39. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js +3 -35
  40. package/dist/cjs/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
  41. package/dist/cjs/services/UserinfoService.d.ts +5 -0
  42. package/dist/cjs/services/UserinfoService.d.ts.map +1 -0
  43. package/dist/cjs/services/UserinfoService.js +15 -0
  44. package/dist/cjs/services/UserinfoService.js.map +1 -0
  45. package/dist/cjs/shared/components/BlockDisplay.d.ts +1 -2
  46. package/dist/cjs/shared/components/BlockDisplay.d.ts.map +1 -1
  47. package/dist/cjs/shared/components/BlockDisplay.js +4 -8
  48. package/dist/cjs/shared/components/BlockDisplay.js.map +1 -1
  49. package/dist/cjs/shared/components/CivicAuthIframe.js +16 -17
  50. package/dist/cjs/shared/components/CivicAuthIframe.js.map +1 -1
  51. package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts +2 -2
  52. package/dist/cjs/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  53. package/dist/cjs/shared/components/CivicAuthIframeContainer.js +29 -68
  54. package/dist/cjs/shared/components/CivicAuthIframeContainer.js.map +1 -1
  55. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts +1 -2
  56. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -1
  57. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js +9 -15
  58. package/dist/cjs/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -1
  59. package/dist/cjs/shared/components/CloseIcon.d.ts +1 -2
  60. package/dist/cjs/shared/components/CloseIcon.d.ts.map +1 -1
  61. package/dist/cjs/shared/components/CloseIcon.js +2 -7
  62. package/dist/cjs/shared/components/CloseIcon.js.map +1 -1
  63. package/dist/cjs/shared/components/IFrameAndLoading.d.ts +1 -2
  64. package/dist/cjs/shared/components/IFrameAndLoading.d.ts.map +1 -1
  65. package/dist/cjs/shared/components/IFrameAndLoading.js +5 -47
  66. package/dist/cjs/shared/components/IFrameAndLoading.js.map +1 -1
  67. package/dist/cjs/shared/components/LoadingIcon.d.ts +1 -2
  68. package/dist/cjs/shared/components/LoadingIcon.d.ts.map +1 -1
  69. package/dist/cjs/shared/components/LoadingIcon.js +19 -27
  70. package/dist/cjs/shared/components/LoadingIcon.js.map +1 -1
  71. package/dist/cjs/shared/components/SVGLoading.js +11 -24
  72. package/dist/cjs/shared/components/SVGLoading.js.map +1 -1
  73. package/dist/cjs/shared/lib/UserSession.d.ts +4 -2
  74. package/dist/cjs/shared/lib/UserSession.d.ts.map +1 -1
  75. package/dist/cjs/shared/lib/UserSession.js.map +1 -1
  76. package/dist/cjs/shared/lib/session.d.ts +2 -2
  77. package/dist/cjs/shared/lib/session.d.ts.map +1 -1
  78. package/dist/cjs/shared/lib/session.js +11 -6
  79. package/dist/cjs/shared/lib/session.js.map +1 -1
  80. package/dist/cjs/shared/lib/types.d.ts +1 -0
  81. package/dist/cjs/shared/lib/types.d.ts.map +1 -1
  82. package/dist/cjs/shared/lib/types.js +2 -1
  83. package/dist/cjs/shared/lib/types.js.map +1 -1
  84. package/dist/cjs/shared/lib/util.d.ts.map +1 -1
  85. package/dist/cjs/shared/lib/util.js +6 -5
  86. package/dist/cjs/shared/lib/util.js.map +1 -1
  87. package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts +1 -1
  88. package/dist/cjs/shared/providers/CivicAuthConfigContext.d.ts.map +1 -1
  89. package/dist/cjs/shared/providers/CivicAuthConfigContext.js +3 -35
  90. package/dist/cjs/shared/providers/CivicAuthConfigContext.js.map +1 -1
  91. package/dist/cjs/shared/providers/IframeProvider.d.ts +1 -1
  92. package/dist/cjs/shared/providers/IframeProvider.d.ts.map +1 -1
  93. package/dist/cjs/shared/providers/IframeProvider.js +4 -36
  94. package/dist/cjs/shared/providers/IframeProvider.js.map +1 -1
  95. package/dist/cjs/shared/providers/SessionProvider.d.ts +1 -1
  96. package/dist/cjs/shared/providers/SessionProvider.d.ts.map +1 -1
  97. package/dist/cjs/shared/providers/SessionProvider.js +4 -36
  98. package/dist/cjs/shared/providers/SessionProvider.js.map +1 -1
  99. package/dist/cjs/shared/providers/TokenProvider.d.ts +1 -1
  100. package/dist/cjs/shared/providers/TokenProvider.d.ts.map +1 -1
  101. package/dist/cjs/shared/providers/TokenProvider.js +5 -40
  102. package/dist/cjs/shared/providers/TokenProvider.js.map +1 -1
  103. package/dist/cjs/shared/providers/UserProvider.d.ts +3 -3
  104. package/dist/cjs/shared/providers/UserProvider.d.ts.map +1 -1
  105. package/dist/cjs/shared/providers/UserProvider.js +4 -36
  106. package/dist/cjs/shared/providers/UserProvider.js.map +1 -1
  107. package/dist/cjs/shared/version.d.ts +1 -1
  108. package/dist/cjs/shared/version.js +1 -1
  109. package/dist/cjs/shared/version.js.map +1 -1
  110. package/dist/cjs/types.d.ts +4 -14
  111. package/dist/cjs/types.d.ts.map +1 -1
  112. package/dist/cjs/types.js +0 -1
  113. package/dist/cjs/types.js.map +1 -1
  114. package/dist/esm/constants.d.ts +2 -1
  115. package/dist/esm/constants.d.ts.map +1 -1
  116. package/dist/esm/constants.js +8 -1
  117. package/dist/esm/constants.js.map +1 -1
  118. package/dist/esm/nextjs/index.d.ts +2 -2
  119. package/dist/esm/nextjs/index.d.ts.map +1 -1
  120. package/dist/esm/nextjs/index.js.map +1 -1
  121. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts +1 -5
  122. package/dist/esm/nextjs/providers/NextAuthProvider.d.ts.map +1 -1
  123. package/dist/esm/nextjs/providers/NextAuthProvider.js +4 -11
  124. package/dist/esm/nextjs/providers/NextAuthProvider.js.map +1 -1
  125. package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts +1 -1
  126. package/dist/esm/reactjs/components/ButtonContentOrLoader.d.ts.map +1 -1
  127. package/dist/esm/reactjs/components/ButtonContentOrLoader.js +16 -19
  128. package/dist/esm/reactjs/components/ButtonContentOrLoader.js.map +1 -1
  129. package/dist/esm/reactjs/components/SignInButton.d.ts +4 -3
  130. package/dist/esm/reactjs/components/SignInButton.d.ts.map +1 -1
  131. package/dist/esm/reactjs/components/SignInButton.js +5 -6
  132. package/dist/esm/reactjs/components/SignInButton.js.map +1 -1
  133. package/dist/esm/reactjs/components/SignOutButton.d.ts +4 -3
  134. package/dist/esm/reactjs/components/SignOutButton.d.ts.map +1 -1
  135. package/dist/esm/reactjs/components/SignOutButton.js +5 -5
  136. package/dist/esm/reactjs/components/SignOutButton.js.map +1 -1
  137. package/dist/esm/reactjs/components/UserButton.d.ts +6 -3
  138. package/dist/esm/reactjs/components/UserButton.d.ts.map +1 -1
  139. package/dist/esm/reactjs/components/UserButton.js +69 -76
  140. package/dist/esm/reactjs/components/UserButton.js.map +1 -1
  141. package/dist/esm/reactjs/providers/AuthProvider.d.ts +1 -2
  142. package/dist/esm/reactjs/providers/AuthProvider.d.ts.map +1 -1
  143. package/dist/esm/reactjs/providers/AuthProvider.js +2 -3
  144. package/dist/esm/reactjs/providers/AuthProvider.js.map +1 -1
  145. package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts +1 -2
  146. package/dist/esm/reactjs/providers/CivicAuthProvider.d.ts.map +1 -1
  147. package/dist/esm/reactjs/providers/CivicAuthProvider.js +4 -9
  148. package/dist/esm/reactjs/providers/CivicAuthProvider.js.map +1 -1
  149. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts +1 -1
  150. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.d.ts.map +1 -1
  151. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js +2 -1
  152. package/dist/esm/reactjs/providers/ClientTokenExchangeSessionProvider.js.map +1 -1
  153. package/dist/esm/shared/components/BlockDisplay.d.ts +1 -2
  154. package/dist/esm/shared/components/BlockDisplay.d.ts.map +1 -1
  155. package/dist/esm/shared/components/BlockDisplay.js +4 -4
  156. package/dist/esm/shared/components/BlockDisplay.js.map +1 -1
  157. package/dist/esm/shared/components/CivicAuthIframe.js +16 -17
  158. package/dist/esm/shared/components/CivicAuthIframe.js.map +1 -1
  159. package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts +2 -2
  160. package/dist/esm/shared/components/CivicAuthIframeContainer.d.ts.map +1 -1
  161. package/dist/esm/shared/components/CivicAuthIframeContainer.js +28 -34
  162. package/dist/esm/shared/components/CivicAuthIframeContainer.js.map +1 -1
  163. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts +1 -2
  164. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.d.ts.map +1 -1
  165. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js +9 -11
  166. package/dist/esm/shared/components/CivicAuthLogoutIframeContainer.js.map +1 -1
  167. package/dist/esm/shared/components/CloseIcon.d.ts +1 -2
  168. package/dist/esm/shared/components/CloseIcon.d.ts.map +1 -1
  169. package/dist/esm/shared/components/CloseIcon.js +2 -3
  170. package/dist/esm/shared/components/CloseIcon.js.map +1 -1
  171. package/dist/esm/shared/components/IFrameAndLoading.d.ts +1 -2
  172. package/dist/esm/shared/components/IFrameAndLoading.d.ts.map +1 -1
  173. package/dist/esm/shared/components/IFrameAndLoading.js +4 -13
  174. package/dist/esm/shared/components/IFrameAndLoading.js.map +1 -1
  175. package/dist/esm/shared/components/LoadingIcon.d.ts +1 -2
  176. package/dist/esm/shared/components/LoadingIcon.d.ts.map +1 -1
  177. package/dist/esm/shared/components/LoadingIcon.js +19 -23
  178. package/dist/esm/shared/components/LoadingIcon.js.map +1 -1
  179. package/dist/esm/shared/components/SVGLoading.js +11 -20
  180. package/dist/esm/shared/components/SVGLoading.js.map +1 -1
  181. package/dist/esm/shared/lib/UserSession.d.ts +4 -2
  182. package/dist/esm/shared/lib/UserSession.d.ts.map +1 -1
  183. package/dist/esm/shared/lib/UserSession.js.map +1 -1
  184. package/dist/esm/shared/lib/session.d.ts +2 -2
  185. package/dist/esm/shared/lib/session.d.ts.map +1 -1
  186. package/dist/esm/shared/lib/session.js +11 -6
  187. package/dist/esm/shared/lib/session.js.map +1 -1
  188. package/dist/esm/shared/lib/types.d.ts +1 -0
  189. package/dist/esm/shared/lib/types.d.ts.map +1 -1
  190. package/dist/esm/shared/lib/types.js +1 -0
  191. package/dist/esm/shared/lib/types.js.map +1 -1
  192. package/dist/esm/shared/lib/util.d.ts.map +1 -1
  193. package/dist/esm/shared/lib/util.js +7 -6
  194. package/dist/esm/shared/lib/util.js.map +1 -1
  195. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts +1 -1
  196. package/dist/esm/shared/providers/CivicAuthConfigContext.d.ts.map +1 -1
  197. package/dist/esm/shared/providers/CivicAuthConfigContext.js +2 -1
  198. package/dist/esm/shared/providers/CivicAuthConfigContext.js.map +1 -1
  199. package/dist/esm/shared/providers/IframeProvider.d.ts +1 -1
  200. package/dist/esm/shared/providers/IframeProvider.d.ts.map +1 -1
  201. package/dist/esm/shared/providers/IframeProvider.js +3 -2
  202. package/dist/esm/shared/providers/IframeProvider.js.map +1 -1
  203. package/dist/esm/shared/providers/SessionProvider.d.ts +1 -1
  204. package/dist/esm/shared/providers/SessionProvider.d.ts.map +1 -1
  205. package/dist/esm/shared/providers/SessionProvider.js +3 -2
  206. package/dist/esm/shared/providers/SessionProvider.js.map +1 -1
  207. package/dist/esm/shared/providers/TokenProvider.d.ts +1 -1
  208. package/dist/esm/shared/providers/TokenProvider.d.ts.map +1 -1
  209. package/dist/esm/shared/providers/TokenProvider.js +4 -6
  210. package/dist/esm/shared/providers/TokenProvider.js.map +1 -1
  211. package/dist/esm/shared/providers/UserProvider.d.ts +3 -3
  212. package/dist/esm/shared/providers/UserProvider.d.ts.map +1 -1
  213. package/dist/esm/shared/providers/UserProvider.js +3 -2
  214. package/dist/esm/shared/providers/UserProvider.js.map +1 -1
  215. package/dist/esm/shared/version.d.ts +1 -1
  216. package/dist/esm/shared/version.js +1 -1
  217. package/dist/esm/shared/version.js.map +1 -1
  218. package/dist/esm/types.d.ts +4 -14
  219. package/dist/esm/types.d.ts.map +1 -1
  220. package/dist/esm/types.js +0 -1
  221. package/dist/esm/types.js.map +1 -1
  222. package/dist/tsconfig.cjs.tsbuildinfo +1 -1
  223. package/dist/tsconfig.esm.tsbuildinfo +1 -1
  224. package/package.json +2 -1
  225. package/dist/cjs/reactjs/components/LoadingSpinner.d.ts +0 -7
  226. package/dist/cjs/reactjs/components/LoadingSpinner.d.ts.map +0 -1
  227. package/dist/cjs/reactjs/components/LoadingSpinner.js +0 -33
  228. package/dist/cjs/reactjs/components/LoadingSpinner.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,8 @@
1
+ # 0.3.1 iframe-modal mode start authentication in background
2
+ - for displayMode = 'iframe', start authentication in the background on page load for fast perceived login-app loading
3
+ - upgrade iframe resizer to 5.3.3
4
+ - fix bug in NextJSCookies storage where the call to cookies() wasn't awaited
5
+
1
6
  # 0.3.0 iframe resizer support
2
7
  - add support for auto-resizing the login-app iframe using the react iframe resizer library
3
8
  - rename NextKS cookie EXPIRES_IN -> ACCESS_TOKEN_EXPIRES_AT
@@ -5,5 +5,6 @@ declare const DEFAULT_EXPIRES_IN = 3600;
5
5
  declare const TOKEN_EXCHANGE_TRIGGER_TEXT = "sameDomainCodeExchangeRequired";
6
6
  declare const TOKEN_EXCHANGE_SUCCESS_TEXT = "serverSideTokenExchangeSuccess";
7
7
  declare const DEFAULT_DISPLAY_MODE = "iframe";
8
- export { DEFAULT_SCOPES, DEFAULT_OAUTH_GET_PARAMS, DEFAULT_DISPLAY_MODE, DEFAULT_AUTH_SERVER, DEFAULT_EXPIRES_IN, TOKEN_EXCHANGE_TRIGGER_TEXT, TOKEN_EXCHANGE_SUCCESS_TEXT, };
8
+ declare const JWT_PAYLOAD_KNOWN_CLAIM_KEYS: readonly ["iss", "aud", "sub", "iat", "exp"];
9
+ export { DEFAULT_SCOPES, DEFAULT_OAUTH_GET_PARAMS, DEFAULT_DISPLAY_MODE, DEFAULT_AUTH_SERVER, DEFAULT_EXPIRES_IN, TOKEN_EXCHANGE_TRIGGER_TEXT, TOKEN_EXCHANGE_SUCCESS_TEXT, JWT_PAYLOAD_KNOWN_CLAIM_KEYS, };
9
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,UAMnB,CAAC;AACF,QAAA,MAAM,mBAAmB,iCAAiC,CAAC;AAE3D,QAAA,MAAM,wBAAwB,UAA2B,CAAC;AAE1D,QAAA,MAAM,kBAAkB,OAAO,CAAC;AAIhC,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,oBAAoB,WAAW,CAAC;AACtC,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,GAC5B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,cAAc,UAMnB,CAAC;AACF,QAAA,MAAM,mBAAmB,iCAAiC,CAAC;AAE3D,QAAA,MAAM,wBAAwB,UAA2B,CAAC;AAE1D,QAAA,MAAM,kBAAkB,OAAO,CAAC;AAIhC,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,2BAA2B,mCAAmC,CAAC;AAErE,QAAA,MAAM,oBAAoB,WAAW,CAAC;AACtC,QAAA,MAAM,4BAA4B,8CAMxB,CAAC;AAEX,OAAO,EACL,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,2BAA2B,EAC3B,2BAA2B,EAC3B,4BAA4B,GAC7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TOKEN_EXCHANGE_SUCCESS_TEXT = exports.TOKEN_EXCHANGE_TRIGGER_TEXT = exports.DEFAULT_EXPIRES_IN = exports.DEFAULT_AUTH_SERVER = exports.DEFAULT_DISPLAY_MODE = exports.DEFAULT_OAUTH_GET_PARAMS = exports.DEFAULT_SCOPES = void 0;
3
+ exports.JWT_PAYLOAD_KNOWN_CLAIM_KEYS = exports.TOKEN_EXCHANGE_SUCCESS_TEXT = exports.TOKEN_EXCHANGE_TRIGGER_TEXT = exports.DEFAULT_EXPIRES_IN = exports.DEFAULT_AUTH_SERVER = exports.DEFAULT_DISPLAY_MODE = exports.DEFAULT_OAUTH_GET_PARAMS = exports.DEFAULT_SCOPES = void 0;
4
4
  const DEFAULT_SCOPES = [
5
5
  "openid",
6
6
  "profile",
@@ -23,4 +23,12 @@ const TOKEN_EXCHANGE_SUCCESS_TEXT = "serverSideTokenExchangeSuccess";
23
23
  exports.TOKEN_EXCHANGE_SUCCESS_TEXT = TOKEN_EXCHANGE_SUCCESS_TEXT;
24
24
  const DEFAULT_DISPLAY_MODE = "iframe";
25
25
  exports.DEFAULT_DISPLAY_MODE = DEFAULT_DISPLAY_MODE;
26
+ const JWT_PAYLOAD_KNOWN_CLAIM_KEYS = [
27
+ "iss",
28
+ "aud",
29
+ "sub",
30
+ "iat",
31
+ "exp",
32
+ ];
33
+ exports.JWT_PAYLOAD_KNOWN_CLAIM_KEYS = JWT_PAYLOAD_KNOWN_CLAIM_KEYS;
26
34
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,SAAS;IACT,OAAO;IACP,iBAAiB;IACjB,gBAAgB;CACjB,CAAC;AAeA,wCAAc;AAdhB,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAiBzD,kDAAmB;AAfrB,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAaxD,4DAAwB;AAX1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAcnD,gDAAkB;AAZpB,uHAAuH;AACvH,kFAAkF;AAClF,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAWnE,kEAA2B;AAT7B,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAUnE,kEAA2B;AAR7B,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAIpC,oDAAoB","sourcesContent":["const DEFAULT_SCOPES = [\n \"openid\",\n \"profile\",\n \"email\",\n \"forwardedTokens\",\n \"offline_access\",\n];\nconst DEFAULT_AUTH_SERVER = \"https://auth.civic.com/oauth\";\n\nconst DEFAULT_OAUTH_GET_PARAMS = [\"code\", \"state\", \"iss\"];\n\nconst DEFAULT_EXPIRES_IN = 3600; // 1 hour in seconds\n\n// The server's callback handler renders this text if it needs the front-end to make an additional token exchange call,\n// for the iframe case where cookies are not sent along with the initial redirect.\nconst TOKEN_EXCHANGE_TRIGGER_TEXT = \"sameDomainCodeExchangeRequired\";\n\nconst TOKEN_EXCHANGE_SUCCESS_TEXT = \"serverSideTokenExchangeSuccess\";\n\nconst DEFAULT_DISPLAY_MODE = \"iframe\";\nexport {\n DEFAULT_SCOPES,\n DEFAULT_OAUTH_GET_PARAMS,\n DEFAULT_DISPLAY_MODE,\n DEFAULT_AUTH_SERVER,\n DEFAULT_EXPIRES_IN,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n};\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":";;;AAAA,MAAM,cAAc,GAAG;IACrB,QAAQ;IACR,SAAS;IACT,OAAO;IACP,iBAAiB;IACjB,gBAAgB;CACjB,CAAC;AAuBA,wCAAc;AAtBhB,MAAM,mBAAmB,GAAG,8BAA8B,CAAC;AAyBzD,kDAAmB;AAvBrB,MAAM,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAqBxD,4DAAwB;AAnB1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,CAAC,oBAAoB;AAsBnD,gDAAkB;AApBpB,uHAAuH;AACvH,kFAAkF;AAClF,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAmBnE,kEAA2B;AAjB7B,MAAM,2BAA2B,GAAG,gCAAgC,CAAC;AAkBnE,kEAA2B;AAhB7B,MAAM,oBAAoB,GAAG,QAAQ,CAAC;AAYpC,oDAAoB;AAXtB,MAAM,4BAA4B,GAAG;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;CACG,CAAC;AAUT,oEAA4B","sourcesContent":["const DEFAULT_SCOPES = [\n \"openid\",\n \"profile\",\n \"email\",\n \"forwardedTokens\",\n \"offline_access\",\n];\nconst DEFAULT_AUTH_SERVER = \"https://auth.civic.com/oauth\";\n\nconst DEFAULT_OAUTH_GET_PARAMS = [\"code\", \"state\", \"iss\"];\n\nconst DEFAULT_EXPIRES_IN = 3600; // 1 hour in seconds\n\n// The server's callback handler renders this text if it needs the front-end to make an additional token exchange call,\n// for the iframe case where cookies are not sent along with the initial redirect.\nconst TOKEN_EXCHANGE_TRIGGER_TEXT = \"sameDomainCodeExchangeRequired\";\n\nconst TOKEN_EXCHANGE_SUCCESS_TEXT = \"serverSideTokenExchangeSuccess\";\n\nconst DEFAULT_DISPLAY_MODE = \"iframe\";\nconst JWT_PAYLOAD_KNOWN_CLAIM_KEYS = [\n \"iss\",\n \"aud\",\n \"sub\",\n \"iat\",\n \"exp\",\n] as const;\n\nexport {\n DEFAULT_SCOPES,\n DEFAULT_OAUTH_GET_PARAMS,\n DEFAULT_DISPLAY_MODE,\n DEFAULT_AUTH_SERVER,\n DEFAULT_EXPIRES_IN,\n TOKEN_EXCHANGE_TRIGGER_TEXT,\n TOKEN_EXCHANGE_SUCCESS_TEXT,\n JWT_PAYLOAD_KNOWN_CLAIM_KEYS,\n};\n"]}
@@ -1,6 +1,6 @@
1
- import type { OAuthTokens, User } from "../types.js";
1
+ import type { EmptyObject, OAuthTokens, UnknownObject, User } from "../types.js";
2
2
  export { createCivicAuthPlugin, defaultAuthConfig } from "../nextjs/config.js";
3
- export declare const getUser: () => Promise<User | null>;
3
+ export declare const getUser: <T extends UnknownObject = EmptyObject>() => Promise<User<T> | null>;
4
4
  export declare const getTokens: () => Promise<OAuthTokens | null>;
5
5
  export { handler } from "../nextjs/routeHandler.js";
6
6
  export { NextjsCookieStorage } from "../nextjs/cookies.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,eAAO,MAAM,OAAO,QAAa,OAAO,CAAC,IAAI,GAAG,IAAI,CAGnD,CAAC;AACF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,WAAW,GAAG,IAAI,CAG5D,CAAC;AACF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,IAAI,iBAAiB,EAC1C,KAAK,0BAA0B,IAAI,iBAAiB,GACrD,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAEhF,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,eAAO,MAAM,OAAO,GAClB,CAAC,SAAS,aAAa,qBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,CAG1B,CAAC;AACF,eAAO,MAAM,SAAS,QAAa,OAAO,CAAC,WAAW,GAAG,IAAI,CAG5D,CAAC;AACF,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1D,YAAY,EACV,UAAU,EACV,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,qBAAqB,IAAI,iBAAiB,EAC1C,KAAK,0BAA0B,IAAI,iBAAiB,GACrD,MAAM,wCAAwC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,gDAAiD;AACjD,IAAA,uBAAY,GAAE,CAAC;AACf,wDAGiC;AAGjC,gDAA8E;AAArE,kHAAA,qBAAqB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAE1C,MAAM,OAAO,GAAG,KAAK,IAA0B,EAAE;IACtD,MAAM,aAAa,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAChD,OAAO,IAAA,oBAAc,EAAC,aAAa,CAAC,CAAC;AACvC,CAAC,CAAC;AAHW,QAAA,OAAO,WAGlB;AACK,MAAM,SAAS,GAAG,KAAK,IAAiC,EAAE;IAC/D,MAAM,aAAa,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAChD,OAAO,IAAA,sBAAgB,EAAC,aAAa,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB;AACF,4DAAmD;AAA1C,0GAAA,OAAO,OAAA;AAChB,kDAA0D;AAAjD,iHAAA,mBAAmB,OAAA;AAM5B,8EAGgD;AAF9C,wHAAA,qBAAqB,OAAqB","sourcesContent":["import { NextjsCookieStorage } from \"@/nextjs/cookies.js\";\nimport { printVersion } from \"@/shared/index.js\";\nprintVersion();\nimport {\n getTokens as getSessionTokens,\n getUser as getSessionUser,\n} from \"@/shared/lib/session.js\";\nimport type { OAuthTokens, User } from \"@/types.js\";\n\nexport { createCivicAuthPlugin, defaultAuthConfig } from \"@/nextjs/config.js\";\n\nexport const getUser = async (): Promise<User | null> => {\n const clientStorage = new NextjsCookieStorage();\n return getSessionUser(clientStorage);\n};\nexport const getTokens = async (): Promise<OAuthTokens | null> => {\n const clientStorage = new NextjsCookieStorage();\n return getSessionTokens(clientStorage);\n};\nexport { handler } from \"@/nextjs/routeHandler.js\";\nexport { NextjsCookieStorage } from \"@/nextjs/cookies.js\";\nexport type {\n AuthConfig,\n CookiesConfigObject,\n AuthConfigWithDefaults,\n} from \"@/nextjs/config.js\";\nexport {\n CivicNextAuthProvider as CivicAuthProvider,\n type NextCivicAuthProviderProps as AuthProviderProps,\n} from \"@/nextjs/providers/NextAuthProvider.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nextjs/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0D;AAC1D,gDAAiD;AACjD,IAAA,uBAAY,GAAE,CAAC;AACf,wDAGiC;AAGjC,gDAA8E;AAArE,kHAAA,qBAAqB,OAAA;AAAE,8GAAA,iBAAiB,OAAA;AAE1C,MAAM,OAAO,GAAG,KAAK,IAEC,EAAE;IAC7B,MAAM,aAAa,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAChD,OAAO,IAAA,oBAAc,EAAI,aAAa,CAAC,CAAC;AAC1C,CAAC,CAAC;AALW,QAAA,OAAO,WAKlB;AACK,MAAM,SAAS,GAAG,KAAK,IAAiC,EAAE;IAC/D,MAAM,aAAa,GAAG,IAAI,gCAAmB,EAAE,CAAC;IAChD,OAAO,IAAA,sBAAgB,EAAC,aAAa,CAAC,CAAC;AACzC,CAAC,CAAC;AAHW,QAAA,SAAS,aAGpB;AACF,4DAAmD;AAA1C,0GAAA,OAAO,OAAA;AAChB,kDAA0D;AAAjD,iHAAA,mBAAmB,OAAA;AAM5B,8EAGgD;AAF9C,wHAAA,qBAAqB,OAAqB","sourcesContent":["import { NextjsCookieStorage } from \"@/nextjs/cookies.js\";\nimport { printVersion } from \"@/shared/index.js\";\nprintVersion();\nimport {\n getTokens as getSessionTokens,\n getUser as getSessionUser,\n} from \"@/shared/lib/session.js\";\nimport type { EmptyObject, OAuthTokens, UnknownObject, User } from \"@/types.js\";\n\nexport { createCivicAuthPlugin, defaultAuthConfig } from \"@/nextjs/config.js\";\n\nexport const getUser = async <\n T extends UnknownObject = EmptyObject,\n>(): Promise<User<T> | null> => {\n const clientStorage = new NextjsCookieStorage();\n return getSessionUser<T>(clientStorage);\n};\nexport const getTokens = async (): Promise<OAuthTokens | null> => {\n const clientStorage = new NextjsCookieStorage();\n return getSessionTokens(clientStorage);\n};\nexport { handler } from \"@/nextjs/routeHandler.js\";\nexport { NextjsCookieStorage } from \"@/nextjs/cookies.js\";\nexport type {\n AuthConfig,\n CookiesConfigObject,\n AuthConfigWithDefaults,\n} from \"@/nextjs/config.js\";\nexport {\n CivicNextAuthProvider as CivicAuthProvider,\n type NextCivicAuthProviderProps as AuthProviderProps,\n} from \"@/nextjs/providers/NextAuthProvider.js\";\n"]}
@@ -1,13 +1,9 @@
1
- /**
2
- * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.
3
- */
4
- import React from "react";
5
1
  import { type AuthConfigWithDefaults } from "../../nextjs/config.js";
6
2
  import type { AuthProviderProps } from "../../shared/providers/types.js";
7
3
  type NextCivicAuthProviderInternalProps = Omit<AuthProviderProps, "clientId"> & {
8
4
  resolvedConfig: AuthConfigWithDefaults;
9
5
  };
10
6
  type NextCivicAuthProviderProps = Omit<NextCivicAuthProviderInternalProps, "clientId" | "resolvedConfig" | "redirectUrl">;
11
- declare const CivicNextAuthProvider: ({ children, ...props }: NextCivicAuthProviderProps) => React.JSX.Element;
7
+ declare const CivicNextAuthProvider: ({ children, ...props }: NextCivicAuthProviderProps) => import("@emotion/react/jsx-runtime").JSX.Element;
12
8
  export { CivicNextAuthProvider, type NextCivicAuthProviderProps };
13
9
  //# sourceMappingURL=NextAuthProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NextAuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/nextjs/providers/NextAuthProvider.tsx"],"names":[],"mappings":"AACA;;GAEG;AACH,OAAO,KAA2C,MAAM,OAAO,CAAC;AAChE,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAe5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAcrE,KAAK,kCAAkC,GAAG,IAAI,CAC5C,iBAAiB,EACjB,UAAU,CACX,GAAG;IACF,cAAc,EAAE,sBAAsB,CAAC;CACxC,CAAC;AACF,KAAK,0BAA0B,GAAG,IAAI,CACpC,kCAAkC,EAClC,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAC9C,CAAC;AAoHF,QAAA,MAAM,qBAAqB,2BAGxB,0BAA0B,sBA0C5B,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,CAAC"}
1
+ {"version":3,"file":"NextAuthProvider.d.ts","sourceRoot":"","sources":["../../../../src/nextjs/providers/NextAuthProvider.tsx"],"names":[],"mappings":"AAKA,OAAO,EAEL,KAAK,sBAAsB,EAC5B,MAAM,oBAAoB,CAAC;AAe5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAcrE,KAAK,kCAAkC,GAAG,IAAI,CAC5C,iBAAiB,EACjB,UAAU,CACX,GAAG;IACF,cAAc,EAAE,sBAAsB,CAAC;CACxC,CAAC;AACF,KAAK,0BAA0B,GAAG,IAAI,CACpC,kCAAkC,EAClC,UAAU,GAAG,gBAAgB,GAAG,aAAa,CAC9C,CAAC;AAoHF,QAAA,MAAM,qBAAqB,2BAGxB,0BAA0B,qDA0C5B,CAAC;AAEF,OAAO,EAAE,qBAAqB,EAAE,KAAK,0BAA0B,EAAE,CAAC"}
@@ -1,44 +1,12 @@
1
1
  "use strict";
2
2
  "use client";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || (function () {
20
- var ownKeys = function(o) {
21
- ownKeys = Object.getOwnPropertyNames || function (o) {
22
- var ar = [];
23
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
24
- return ar;
25
- };
26
- return ownKeys(o);
27
- };
28
- return function (mod) {
29
- if (mod && mod.__esModule) return mod;
30
- var result = {};
31
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
32
- __setModuleDefault(result, mod);
33
- return result;
34
- };
35
- })();
36
3
  Object.defineProperty(exports, "__esModule", { value: true });
37
4
  exports.CivicNextAuthProvider = void 0;
5
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
38
6
  /**
39
7
  * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.
40
8
  */
41
- const react_1 = __importStar(require("react"));
9
+ const react_1 = require("react");
42
10
  const config_js_1 = require("../../nextjs/config.js");
43
11
  const utils_js_1 = require("../../nextjs/utils.js");
44
12
  const PKCE_js_1 = require("../../services/PKCE.js");
@@ -104,12 +72,7 @@ const CivicNextAuthTokenProviderInternal = ({ children, isLoading, displayMode =
104
72
  startSignIn,
105
73
  displayMode,
106
74
  ]);
107
- return (react_1.default.createElement(TokenProvider_js_1.TokenProvider, null,
108
- react_1.default.createElement(UserProvider_js_1.UserProvider, { storage: new index_js_2.BrowserCookieStorage(), user: user, signOut: signOut, signIn: signIn, displayMode: displayMode, authStatus: authStatus },
109
- react_1.default.createElement(IFrameAndLoading_js_1.IFrameAndLoading, { error: null, isLoading: isLoading }),
110
- isLoading && (react_1.default.createElement(BlockDisplay_js_1.BlockDisplay, null,
111
- react_1.default.createElement(LoadingIcon_js_1.LoadingIcon, null))),
112
- children)));
75
+ return ((0, jsx_runtime_1.jsx)(TokenProvider_js_1.TokenProvider, { children: (0, jsx_runtime_1.jsxs)(UserProvider_js_1.UserProvider, { storage: new index_js_2.BrowserCookieStorage(), user: user, signOut: signOut, signIn: signIn, displayMode: displayMode, authStatus: authStatus, children: [(0, jsx_runtime_1.jsx)(IFrameAndLoading_js_1.IFrameAndLoading, { error: null, isLoading: isLoading }), isLoading && ((0, jsx_runtime_1.jsx)(BlockDisplay_js_1.BlockDisplay, { children: (0, jsx_runtime_1.jsx)(LoadingIcon_js_1.LoadingIcon, {}) })), children] }) }));
113
76
  };
114
77
  const CivicNextAuthProviderInternal = ({ children, ...props }) => {
115
78
  // if the SDK loads in an iframe, we show the loading spinner as the iframe
@@ -121,8 +84,7 @@ const CivicNextAuthProviderInternal = ({ children, ...props }) => {
121
84
  idToken,
122
85
  };
123
86
  (0, useRefresh_js_1.useRefresh)(session);
124
- return (react_1.default.createElement(SessionProvider_js_1.SessionProvider, { data: session, isLoading: isLoading },
125
- react_1.default.createElement(CivicNextAuthTokenProviderInternal, { ...props, user: user, idToken: idToken, fetchUser: fetchUser, isLoading: isLoading }, children)));
87
+ return ((0, jsx_runtime_1.jsx)(SessionProvider_js_1.SessionProvider, { data: session, isLoading: isLoading, children: (0, jsx_runtime_1.jsx)(CivicNextAuthTokenProviderInternal, { ...props, user: user, idToken: idToken, fetchUser: fetchUser, isLoading: isLoading, children: children }) }));
126
88
  };
127
89
  const CivicNextAuthProvider = ({ children, ...props }) => {
128
90
  const resolvedConfig = (0, config_js_1.resolveAuthConfig)();
@@ -134,9 +96,7 @@ const CivicNextAuthProvider = ({ children, ...props }) => {
134
96
  setRedirectUrl((0, utils_js_1.resolveCallbackUrl)(resolvedConfig, appUrl));
135
97
  }
136
98
  }, [callbackUrl, resolvedConfig]);
137
- return (react_1.default.createElement(CivicAuthConfigContext_js_1.CivicAuthConfigProvider, { oauthServer: oauthServer, clientId: clientId, redirectUrl: redirectUrl, logoutRedirectUrl: logoutCallbackUrl, nonce: props?.nonce, challengeUrl: challengeUrl, refreshUrl: refreshUrl, logoutUrl: logoutUrl, logoutCallbackUrl: logoutCallbackUrl },
138
- react_1.default.createElement(IframeProvider_js_1.IframeProvider, { iframeMode: props.iframeMode },
139
- react_1.default.createElement(CivicNextAuthProviderInternal, { ...props, resolvedConfig: resolvedConfig }, children))));
99
+ return ((0, jsx_runtime_1.jsx)(CivicAuthConfigContext_js_1.CivicAuthConfigProvider, { oauthServer: oauthServer, clientId: clientId, redirectUrl: redirectUrl, logoutRedirectUrl: logoutCallbackUrl, nonce: props?.nonce, challengeUrl: challengeUrl, refreshUrl: refreshUrl, logoutUrl: logoutUrl, logoutCallbackUrl: logoutCallbackUrl, children: (0, jsx_runtime_1.jsx)(IframeProvider_js_1.IframeProvider, { iframeMode: props.iframeMode, children: (0, jsx_runtime_1.jsx)(CivicNextAuthProviderInternal, { ...props, resolvedConfig: resolvedConfig, children: children }) }) }));
140
100
  };
141
101
  exports.CivicNextAuthProvider = CivicNextAuthProvider;
142
102
  //# sourceMappingURL=NextAuthProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NextAuthProvider.js","sourceRoot":"","sources":["../../../../src/nextjs/providers/NextAuthProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n/**\n * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.\n */\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport {\n resolveAuthConfig,\n type AuthConfigWithDefaults,\n} from \"@/nextjs/config.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { ConfidentialClientPKCEConsumer } from \"@/services/PKCE.js\";\nimport { UserProvider } from \"@/shared/providers/UserProvider.js\";\nimport { useUserCookie } from \"@/nextjs/hooks/useUserCookie.js\";\nimport { CivicAuthConfigProvider } from \"@/shared/providers/CivicAuthConfigContext.js\";\nimport { SessionProvider } from \"@/shared/providers/SessionProvider.js\";\nimport { IframeProvider } from \"@/shared/providers/IframeProvider.js\";\nimport { TokenProvider } from \"@/shared/providers/TokenProvider.js\";\nimport { useSignIn } from \"@/shared/hooks/useSignIn.js\";\nimport { useCivicAuthConfig } from \"@/shared/hooks/useCivicAuthConfig.js\";\nimport { IFrameAndLoading } from \"@/shared/components/IFrameAndLoading.js\";\nimport { BlockDisplay } from \"@/shared/components/BlockDisplay.js\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\nimport { useIframe } from \"@/shared/hooks/useIframe.js\";\nimport type { AuthProviderProps } from \"@/shared/providers/types.js\";\nimport { useIsInIframe } from \"@/shared/hooks/useIsInIframe.js\";\nimport { AuthStatus, type UnknownObject, type User } from \"@/types.js\";\nimport { useRefresh } from \"@/nextjs/hooks/useRefresh.js\";\nimport { useCurrentUrl, useSession } from \"@/shared/hooks/index.js\";\nimport { BrowserCookieStorage } from \"@/shared/index.js\";\n\ntype CivicNextAuthTokenProviderInternalProps<TUser extends UnknownObject> =\n NextCivicAuthProviderInternalProps & {\n isLoading: boolean;\n idToken?: string;\n user: User<TUser> | null;\n fetchUser: () => Promise<void>;\n };\ntype NextCivicAuthProviderInternalProps = Omit<\n AuthProviderProps,\n \"clientId\"\n> & {\n resolvedConfig: AuthConfigWithDefaults;\n};\ntype NextCivicAuthProviderProps = Omit<\n NextCivicAuthProviderInternalProps,\n \"clientId\" | \"resolvedConfig\" | \"redirectUrl\"\n>;\n\nconst CivicNextAuthTokenProviderInternal = <\n TUser extends UnknownObject = UnknownObject,\n>({\n children,\n isLoading,\n displayMode = \"iframe\",\n user,\n fetchUser,\n ...props\n}: CivicNextAuthTokenProviderInternalProps<TUser>) => {\n const { iframeMode, resolvedConfig } = props;\n const { iframeRef, setIframeIsVisible } = useIframe();\n const civicAuthConfig = useCivicAuthConfig();\n const { challengeUrl } = resolvedConfig;\n const pkceConsumer = new ConfidentialClientPKCEConsumer(challengeUrl);\n const { data: session } = useSession();\n const currentUrl = useCurrentUrl();\n\n useEffect(() => {\n if (session?.authenticated) {\n // the session is authenticated, so don't show the login iframe\n setIframeIsVisible(false);\n return;\n }\n }, [session?.authenticated, setIframeIsVisible]);\n\n const postSignOut = useCallback(async () => {\n // user is signed out, manually update the user from cookies to not wait for polling\n await fetchUser();\n await props?.onSignOut?.();\n }, [fetchUser, props]);\n\n const { signIn, startSignIn, signOut, authStatus } = useSignIn({\n postSignOut,\n pkceConsumer,\n displayMode,\n });\n\n useEffect(() => {\n if (\n civicAuthConfig &&\n !session?.authenticated &&\n iframeRef?.current &&\n authStatus === AuthStatus.UNAUTHENTICATED &&\n displayMode === \"iframe\" &&\n !currentUrl?.includes(\"code=\")\n ) {\n startSignIn();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n currentUrl,\n iframeMode,\n iframeRef,\n civicAuthConfig,\n session?.authenticated,\n authStatus,\n startSignIn,\n displayMode,\n ]);\n\n return (\n <TokenProvider>\n <UserProvider\n storage={new BrowserCookieStorage()}\n user={user}\n signOut={signOut}\n signIn={signIn}\n displayMode={displayMode}\n authStatus={authStatus}\n >\n <IFrameAndLoading error={null} isLoading={isLoading} />\n {isLoading && (\n <BlockDisplay>\n <LoadingIcon />\n </BlockDisplay>\n )}\n {children}\n </UserProvider>\n </TokenProvider>\n );\n};\n\nconst CivicNextAuthProviderInternal = ({\n children,\n ...props\n}: NextCivicAuthProviderInternalProps) => {\n // if the SDK loads in an iframe, we show the loading spinner as the iframe\n // will be waiting to be minimized\n const isLoading = useIsInIframe();\n const { user, idToken, fetchUser } = useUserCookie();\n\n const session = {\n authenticated: !!user,\n idToken,\n };\n\n useRefresh(session);\n\n return (\n <SessionProvider data={session} isLoading={isLoading}>\n <CivicNextAuthTokenProviderInternal\n {...props}\n user={user}\n idToken={idToken}\n fetchUser={fetchUser}\n isLoading={isLoading}\n >\n {children}\n </CivicNextAuthTokenProviderInternal>\n </SessionProvider>\n );\n};\n\nconst CivicNextAuthProvider = ({\n children,\n ...props\n}: NextCivicAuthProviderProps) => {\n const resolvedConfig = resolveAuthConfig();\n const {\n clientId,\n oauthServer,\n callbackUrl,\n challengeUrl,\n logoutUrl,\n refreshUrl,\n logoutCallbackUrl,\n } = resolvedConfig;\n const [redirectUrl, setRedirectUrl] = useState<string>(\"\");\n\n useEffect(() => {\n if (typeof globalThis.window !== \"undefined\") {\n const appUrl = globalThis.window.location.origin;\n setRedirectUrl(resolveCallbackUrl(resolvedConfig, appUrl));\n }\n }, [callbackUrl, resolvedConfig]);\n\n return (\n <CivicAuthConfigProvider\n oauthServer={oauthServer}\n clientId={clientId}\n redirectUrl={redirectUrl}\n logoutRedirectUrl={logoutCallbackUrl}\n nonce={props?.nonce}\n challengeUrl={challengeUrl}\n refreshUrl={refreshUrl}\n logoutUrl={logoutUrl}\n logoutCallbackUrl={logoutCallbackUrl}\n >\n <IframeProvider iframeMode={props.iframeMode}>\n <CivicNextAuthProviderInternal\n {...props}\n resolvedConfig={resolvedConfig}\n >\n {children}\n </CivicNextAuthProviderInternal>\n </IframeProvider>\n </CivicAuthConfigProvider>\n );\n};\n\nexport { CivicNextAuthProvider, type NextCivicAuthProviderProps };\n"]}
1
+ {"version":3,"file":"NextAuthProvider.js","sourceRoot":"","sources":["../../../../src/nextjs/providers/NextAuthProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["\"use client\";\n/**\n * A very small context provider for the user object - it takes the user object from the cookie and provides it to the app.\n */\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport {\n resolveAuthConfig,\n type AuthConfigWithDefaults,\n} from \"@/nextjs/config.js\";\nimport { resolveCallbackUrl } from \"@/nextjs/utils.js\";\nimport { ConfidentialClientPKCEConsumer } from \"@/services/PKCE.js\";\nimport { UserProvider } from \"@/shared/providers/UserProvider.js\";\nimport { useUserCookie } from \"@/nextjs/hooks/useUserCookie.js\";\nimport { CivicAuthConfigProvider } from \"@/shared/providers/CivicAuthConfigContext.js\";\nimport { SessionProvider } from \"@/shared/providers/SessionProvider.js\";\nimport { IframeProvider } from \"@/shared/providers/IframeProvider.js\";\nimport { TokenProvider } from \"@/shared/providers/TokenProvider.js\";\nimport { useSignIn } from \"@/shared/hooks/useSignIn.js\";\nimport { useCivicAuthConfig } from \"@/shared/hooks/useCivicAuthConfig.js\";\nimport { IFrameAndLoading } from \"@/shared/components/IFrameAndLoading.js\";\nimport { BlockDisplay } from \"@/shared/components/BlockDisplay.js\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\nimport { useIframe } from \"@/shared/hooks/useIframe.js\";\nimport type { AuthProviderProps } from \"@/shared/providers/types.js\";\nimport { useIsInIframe } from \"@/shared/hooks/useIsInIframe.js\";\nimport { AuthStatus, type UnknownObject, type User } from \"@/types.js\";\nimport { useRefresh } from \"@/nextjs/hooks/useRefresh.js\";\nimport { useCurrentUrl, useSession } from \"@/shared/hooks/index.js\";\nimport { BrowserCookieStorage } from \"@/shared/index.js\";\n\ntype CivicNextAuthTokenProviderInternalProps<TUser extends UnknownObject> =\n NextCivicAuthProviderInternalProps & {\n isLoading: boolean;\n idToken?: string;\n user: User<TUser> | null;\n fetchUser: () => Promise<void>;\n };\ntype NextCivicAuthProviderInternalProps = Omit<\n AuthProviderProps,\n \"clientId\"\n> & {\n resolvedConfig: AuthConfigWithDefaults;\n};\ntype NextCivicAuthProviderProps = Omit<\n NextCivicAuthProviderInternalProps,\n \"clientId\" | \"resolvedConfig\" | \"redirectUrl\"\n>;\n\nconst CivicNextAuthTokenProviderInternal = <\n TUser extends UnknownObject = UnknownObject,\n>({\n children,\n isLoading,\n displayMode = \"iframe\",\n user,\n fetchUser,\n ...props\n}: CivicNextAuthTokenProviderInternalProps<TUser>) => {\n const { iframeMode, resolvedConfig } = props;\n const { iframeRef, setIframeIsVisible } = useIframe();\n const civicAuthConfig = useCivicAuthConfig();\n const { challengeUrl } = resolvedConfig;\n const pkceConsumer = new ConfidentialClientPKCEConsumer(challengeUrl);\n const { data: session } = useSession();\n const currentUrl = useCurrentUrl();\n\n useEffect(() => {\n if (session?.authenticated) {\n // the session is authenticated, so don't show the login iframe\n setIframeIsVisible(false);\n return;\n }\n }, [session?.authenticated, setIframeIsVisible]);\n\n const postSignOut = useCallback(async () => {\n // user is signed out, manually update the user from cookies to not wait for polling\n await fetchUser();\n await props?.onSignOut?.();\n }, [fetchUser, props]);\n\n const { signIn, startSignIn, signOut, authStatus } = useSignIn({\n postSignOut,\n pkceConsumer,\n displayMode,\n });\n\n useEffect(() => {\n if (\n civicAuthConfig &&\n !session?.authenticated &&\n iframeRef?.current &&\n authStatus === AuthStatus.UNAUTHENTICATED &&\n displayMode === \"iframe\" &&\n !currentUrl?.includes(\"code=\")\n ) {\n startSignIn();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n currentUrl,\n iframeMode,\n iframeRef,\n civicAuthConfig,\n session?.authenticated,\n authStatus,\n startSignIn,\n displayMode,\n ]);\n\n return (\n <TokenProvider>\n <UserProvider\n storage={new BrowserCookieStorage()}\n user={user}\n signOut={signOut}\n signIn={signIn}\n displayMode={displayMode}\n authStatus={authStatus}\n >\n <IFrameAndLoading error={null} isLoading={isLoading} />\n {isLoading && (\n <BlockDisplay>\n <LoadingIcon />\n </BlockDisplay>\n )}\n {children}\n </UserProvider>\n </TokenProvider>\n );\n};\n\nconst CivicNextAuthProviderInternal = ({\n children,\n ...props\n}: NextCivicAuthProviderInternalProps) => {\n // if the SDK loads in an iframe, we show the loading spinner as the iframe\n // will be waiting to be minimized\n const isLoading = useIsInIframe();\n const { user, idToken, fetchUser } = useUserCookie();\n\n const session = {\n authenticated: !!user,\n idToken,\n };\n\n useRefresh(session);\n\n return (\n <SessionProvider data={session} isLoading={isLoading}>\n <CivicNextAuthTokenProviderInternal\n {...props}\n user={user}\n idToken={idToken}\n fetchUser={fetchUser}\n isLoading={isLoading}\n >\n {children}\n </CivicNextAuthTokenProviderInternal>\n </SessionProvider>\n );\n};\n\nconst CivicNextAuthProvider = ({\n children,\n ...props\n}: NextCivicAuthProviderProps) => {\n const resolvedConfig = resolveAuthConfig();\n const {\n clientId,\n oauthServer,\n callbackUrl,\n challengeUrl,\n logoutUrl,\n refreshUrl,\n logoutCallbackUrl,\n } = resolvedConfig;\n const [redirectUrl, setRedirectUrl] = useState<string>(\"\");\n\n useEffect(() => {\n if (typeof globalThis.window !== \"undefined\") {\n const appUrl = globalThis.window.location.origin;\n setRedirectUrl(resolveCallbackUrl(resolvedConfig, appUrl));\n }\n }, [callbackUrl, resolvedConfig]);\n\n return (\n <CivicAuthConfigProvider\n oauthServer={oauthServer}\n clientId={clientId}\n redirectUrl={redirectUrl}\n logoutRedirectUrl={logoutCallbackUrl}\n nonce={props?.nonce}\n challengeUrl={challengeUrl}\n refreshUrl={refreshUrl}\n logoutUrl={logoutUrl}\n logoutCallbackUrl={logoutCallbackUrl}\n >\n <IframeProvider iframeMode={props.iframeMode}>\n <CivicNextAuthProviderInternal\n {...props}\n resolvedConfig={resolvedConfig}\n >\n {children}\n </CivicNextAuthProviderInternal>\n </IframeProvider>\n </CivicAuthConfigProvider>\n );\n};\n\nexport { CivicNextAuthProvider, type NextCivicAuthProviderProps };\n"]}
@@ -5,5 +5,5 @@ export declare const ButtonContentOrLoader: ({ authStatus, displayMode, iframeIs
5
5
  displayMode: DisplayMode;
6
6
  iframeIsVisible?: boolean;
7
7
  children: React.ReactNode;
8
- }) => React.JSX.Element;
8
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
9
9
  //# sourceMappingURL=ButtonContentOrLoader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonContentOrLoader.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,qBAAqB,4DAK/B;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,sBAsCA,CAAC"}
1
+ {"version":3,"file":"ButtonContentOrLoader.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG1D,eAAO,MAAM,qBAAqB,4DAK/B;IACD,UAAU,EAAE,UAAU,CAAC;IACvB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,qDAsCA,CAAC"}
@@ -1,37 +1,30 @@
1
1
  "use strict";
2
2
  "use client";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  exports.ButtonContentOrLoader = void 0;
8
- const react_1 = __importDefault(require("react"));
5
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
9
6
  const LoadingIcon_js_1 = require("../../shared/components/LoadingIcon.js");
10
7
  const utils_js_1 = require("./utils.js");
11
8
  const ButtonContentOrLoader = ({ authStatus, displayMode, iframeIsVisible, children, }) => {
12
- return (react_1.default.createElement("div", { style: {
9
+ const showLoader = (0, utils_js_1.shouldShowLoader)(authStatus, displayMode, iframeIsVisible);
10
+ return ((0, jsx_runtime_1.jsxs)("div", { css: {
13
11
  position: "relative",
14
12
  display: "flex",
15
13
  alignItems: "center",
16
14
  justifyContent: "center",
17
- } },
18
- react_1.default.createElement("span", { style: {
19
- visibility: (0, utils_js_1.shouldShowLoader)(authStatus, displayMode, iframeIsVisible)
20
- ? "hidden"
21
- : "visible",
22
- whiteSpace: "nowrap",
23
- } }, children),
24
- (0, utils_js_1.shouldShowLoader)(authStatus, displayMode, iframeIsVisible) && (react_1.default.createElement("span", { style: {
25
- position: "absolute",
26
- display: "flex",
27
- justifyContent: "center",
28
- alignItems: "center",
29
- top: 0,
30
- left: 0,
31
- right: 0,
32
- bottom: 0,
33
- } },
34
- react_1.default.createElement(LoadingIcon_js_1.LoadingIcon, { width: "1.5em", height: "1.5em" })))));
15
+ }, children: [(0, jsx_runtime_1.jsx)("span", { css: {
16
+ visibility: showLoader ? "hidden" : "visible",
17
+ whiteSpace: "nowrap",
18
+ }, children: children }), showLoader ? ((0, jsx_runtime_1.jsx)("span", { css: {
19
+ position: "absolute",
20
+ display: "flex",
21
+ justifyContent: "center",
22
+ alignItems: "center",
23
+ top: 0,
24
+ left: 0,
25
+ right: 0,
26
+ bottom: 0,
27
+ }, children: (0, jsx_runtime_1.jsx)(LoadingIcon_js_1.LoadingIcon, { width: "1.5em", height: "1.5em" }) })) : null] }));
35
28
  };
36
29
  exports.ButtonContentOrLoader = ButtonContentOrLoader;
37
30
  //# sourceMappingURL=ButtonContentOrLoader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ButtonContentOrLoader.js","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;AACb,kDAA0B;AAC1B,uEAAiE;AAEjE,yCAA8C;AAEvC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,EACV,WAAW,EACX,eAAe,EACf,QAAQ,GAMT,EAAE,EAAE;IACH,OAAO,CACL,uCACE,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACzB;QAED,wCACE,KAAK,EAAE;gBACL,UAAU,EAAE,IAAA,2BAAgB,EAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC;oBACpE,CAAC,CAAC,QAAQ;oBACV,CAAC,CAAC,SAAS;gBACb,UAAU,EAAE,QAAQ;aACrB,IAEA,QAAQ,CACJ;QACN,IAAA,2BAAgB,EAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,IAAI,CAC7D,wCACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE,MAAM;gBACf,cAAc,EAAE,QAAQ;gBACxB,UAAU,EAAE,QAAQ;gBACpB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,KAAK,EAAE,CAAC;gBACR,MAAM,EAAE,CAAC;aACV;YAED,8BAAC,4BAAW,IAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,GAAG,CACvC,CACR,CACG,CACP,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,qBAAqB,yBAgDhC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\nimport type { AuthStatus, DisplayMode } from \"@/types.js\";\nimport { shouldShowLoader } from \"./utils.js\";\n\nexport const ButtonContentOrLoader = ({\n authStatus,\n displayMode,\n iframeIsVisible,\n children,\n}: {\n authStatus: AuthStatus;\n displayMode: DisplayMode;\n iframeIsVisible?: boolean;\n children: React.ReactNode;\n}) => {\n return (\n <div\n style={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <span\n style={{\n visibility: shouldShowLoader(authStatus, displayMode, iframeIsVisible)\n ? \"hidden\"\n : \"visible\",\n whiteSpace: \"nowrap\",\n }}\n >\n {children}\n </span>\n {shouldShowLoader(authStatus, displayMode, iframeIsVisible) && (\n <span\n style={{\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n <LoadingIcon width=\"1.5em\" height=\"1.5em\" />\n </span>\n )}\n </div>\n );\n};\n"]}
1
+ {"version":3,"file":"ButtonContentOrLoader.js","sourceRoot":"","sources":["../../../../src/reactjs/components/ButtonContentOrLoader.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,uEAAiE;AAEjE,yCAA8C;AAEvC,MAAM,qBAAqB,GAAG,CAAC,EACpC,UAAU,EACV,WAAW,EACX,eAAe,EACf,QAAQ,GAMT,EAAE,EAAE;IACH,MAAM,UAAU,GAAG,IAAA,2BAAgB,EAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IAE9E,OAAO,CACL,iCACE,GAAG,EAAE;YACH,QAAQ,EAAE,UAAU;YACpB,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;YACpB,cAAc,EAAE,QAAQ;SACzB,aAED,iCACE,GAAG,EAAE;oBACH,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;oBAC7C,UAAU,EAAE,QAAQ;iBACrB,YAEA,QAAQ,GACJ,EACN,UAAU,CAAC,CAAC,CAAC,CACZ,iCACE,GAAG,EAAE;oBACH,QAAQ,EAAE,UAAU;oBACpB,OAAO,EAAE,MAAM;oBACf,cAAc,EAAE,QAAQ;oBACxB,UAAU,EAAE,QAAQ;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,KAAK,EAAE,CAAC;oBACR,MAAM,EAAE,CAAC;iBACV,YAED,uBAAC,4BAAW,IAAC,KAAK,EAAC,OAAO,EAAC,MAAM,EAAC,OAAO,GAAG,GACvC,CACR,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC,CAAC;AAhDW,QAAA,qBAAqB,yBAgDhC","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { LoadingIcon } from \"@/shared/components/LoadingIcon.js\";\nimport type { AuthStatus, DisplayMode } from \"@/types.js\";\nimport { shouldShowLoader } from \"./utils.js\";\n\nexport const ButtonContentOrLoader = ({\n authStatus,\n displayMode,\n iframeIsVisible,\n children,\n}: {\n authStatus: AuthStatus;\n displayMode: DisplayMode;\n iframeIsVisible?: boolean;\n children: React.ReactNode;\n}) => {\n const showLoader = shouldShowLoader(authStatus, displayMode, iframeIsVisible);\n\n return (\n <div\n css={{\n position: \"relative\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n }}\n >\n <span\n css={{\n visibility: showLoader ? \"hidden\" : \"visible\",\n whiteSpace: \"nowrap\",\n }}\n >\n {children}\n </span>\n {showLoader ? (\n <span\n css={{\n position: \"absolute\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n }}\n >\n <LoadingIcon width=\"1.5em\" height=\"1.5em\" />\n </span>\n ) : null}\n </div>\n );\n};\n"]}
@@ -1,8 +1,9 @@
1
- import React from "react";
1
+ import type { CSSProperties } from "react";
2
2
  import type { DisplayMode } from "../../types.js";
3
- declare const SignInButton: ({ displayMode, className, }: {
3
+ declare const SignInButton: ({ displayMode, className, style, }: {
4
4
  displayMode?: DisplayMode;
5
5
  className?: string;
6
- }) => React.JSX.Element;
6
+ style?: CSSProperties;
7
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
7
8
  export { SignInButton };
8
9
  //# sourceMappingURL=SignInButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignInButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,QAAA,MAAM,YAAY,gCAGf;IACD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,sBA0BA,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"SignInButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAK9C,QAAA,MAAM,YAAY,uCAIf;IACD,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,qDA2BA,CAAC;AAEF,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,25 +1,21 @@
1
1
  "use strict";
2
2
  "use client";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  exports.SignInButton = void 0;
8
- const react_1 = __importDefault(require("react"));
5
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
9
6
  const useUser_js_1 = require("../../reactjs/hooks/useUser.js");
10
- const ButtonContentOrLoader_js_1 = require("./ButtonContentOrLoader.js");
11
7
  const useIframe_js_1 = require("../../shared/hooks/useIframe.js");
12
- const SignInButton = ({ displayMode, className, }) => {
8
+ const ButtonContentOrLoader_js_1 = require("./ButtonContentOrLoader.js");
9
+ const SignInButton = ({ displayMode, className, style, }) => {
13
10
  const { iframeIsVisible } = (0, useIframe_js_1.useIframe)();
14
11
  const { signIn, authStatus, displayMode: userDisplayMode } = (0, useUser_js_1.useUser)();
15
- return (react_1.default.createElement("button", { "data-testid": "sign-in-button", style: {
12
+ return ((0, jsx_runtime_1.jsx)("button", { "data-testid": "sign-in-button", css: {
16
13
  borderRadius: "9999px",
17
14
  border: "1px solid #6b7280",
18
15
  padding: "0.75rem 1rem",
19
16
  transition: "background-color 0.2s",
20
17
  minWidth: "9em", // this stops the button from going too small when in loading mode
21
- }, className: className, onClick: () => signIn(displayMode) },
22
- react_1.default.createElement(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode || userDisplayMode, iframeIsVisible: iframeIsVisible }, "Sign In")));
18
+ }, className: className, style: style, onClick: () => signIn(displayMode), children: (0, jsx_runtime_1.jsx)(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode || userDisplayMode, iframeIsVisible: iframeIsVisible, children: "Sign In" }) }));
23
19
  };
24
20
  exports.SignInButton = SignInButton;
25
21
  //# sourceMappingURL=SignInButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignInButton.js","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;AACb,kDAA0B;AAE1B,2DAAqD;AACrD,yEAAmE;AACnE,8DAAwD;AAExD,MAAM,YAAY,GAAG,CAAC,EACpB,WAAW,EACX,SAAS,GAIV,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,wBAAS,GAAE,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IAEvE,OAAO,CACL,yDACc,gBAAgB,EAC5B,KAAK,EAAE;YACL,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,KAAK,EAAE,kEAAkE;SACpF,EACD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC;QAElC,8BAAC,gDAAqB,IACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,IAAI,eAAe,EAC3C,eAAe,EAAE,eAAe,cAGV,CACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport type { DisplayMode } from \"@/types.js\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\nimport { ButtonContentOrLoader } from \"./ButtonContentOrLoader.js\";\nimport { useIframe } from \"@/shared/hooks/useIframe.js\";\n\nconst SignInButton = ({\n displayMode,\n className,\n}: {\n displayMode?: DisplayMode;\n className?: string;\n}) => {\n const { iframeIsVisible } = useIframe();\n const { signIn, authStatus, displayMode: userDisplayMode } = useUser();\n\n return (\n <button\n data-testid=\"sign-in-button\"\n style={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n minWidth: \"9em\", // this stops the button from going too small when in loading mode\n }}\n className={className}\n onClick={() => signIn(displayMode)}\n >\n <ButtonContentOrLoader\n authStatus={authStatus}\n displayMode={displayMode || userDisplayMode}\n iframeIsVisible={iframeIsVisible}\n >\n Sign In\n </ButtonContentOrLoader>\n </button>\n );\n};\n\nexport { SignInButton };\n"]}
1
+ {"version":3,"file":"SignInButton.js","sourceRoot":"","sources":["../../../../src/reactjs/components/SignInButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAIb,2DAAqD;AACrD,8DAAwD;AACxD,yEAAmE;AAEnE,MAAM,YAAY,GAAG,CAAC,EACpB,WAAW,EACX,SAAS,EACT,KAAK,GAKN,EAAE,EAAE;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,wBAAS,GAAE,CAAC;IACxC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,eAAe,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IAEvE,OAAO,CACL,kDACc,gBAAgB,EAC5B,GAAG,EAAE;YACH,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;YACnC,QAAQ,EAAE,KAAK,EAAE,kEAAkE;SACpF,EACD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,YAElC,uBAAC,gDAAqB,IACpB,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,IAAI,eAAe,EAC3C,eAAe,EAAE,eAAe,wBAGV,GACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEO,oCAAY","sourcesContent":["\"use client\";\n\nimport type { CSSProperties } from \"react\";\nimport type { DisplayMode } from \"@/types.js\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\nimport { useIframe } from \"@/shared/hooks/useIframe.js\";\nimport { ButtonContentOrLoader } from \"./ButtonContentOrLoader.js\";\n\nconst SignInButton = ({\n displayMode,\n className,\n style,\n}: {\n displayMode?: DisplayMode;\n className?: string;\n style?: CSSProperties;\n}) => {\n const { iframeIsVisible } = useIframe();\n const { signIn, authStatus, displayMode: userDisplayMode } = useUser();\n\n return (\n <button\n data-testid=\"sign-in-button\"\n css={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n minWidth: \"9em\", // this stops the button from going too small when in loading mode\n }}\n className={className}\n style={style}\n onClick={() => signIn(displayMode)}\n >\n <ButtonContentOrLoader\n authStatus={authStatus}\n displayMode={displayMode || userDisplayMode}\n iframeIsVisible={iframeIsVisible}\n >\n Sign In\n </ButtonContentOrLoader>\n </button>\n );\n};\n\nexport { SignInButton };\n"]}
@@ -1,6 +1,7 @@
1
- import React from "react";
2
- declare const SignOutButton: ({ className }: {
1
+ import { type CSSProperties } from "react";
2
+ declare const SignOutButton: ({ className, style, }: {
3
3
  className?: string;
4
- }) => React.JSX.Element;
4
+ style?: CSSProperties;
5
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
5
6
  export { SignOutButton };
6
7
  //# sourceMappingURL=SignOutButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignOutButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,QAAA,MAAM,aAAa,kBAAmB;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sBAmB3D,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"SignOutButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;AAI3C,QAAA,MAAM,aAAa,0BAGhB;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,aAAa,CAAC;CACvB,qDAoBA,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1,22 +1,18 @@
1
1
  "use strict";
2
2
  "use client";
3
- var __importDefault = (this && this.__importDefault) || function (mod) {
4
- return (mod && mod.__esModule) ? mod : { "default": mod };
5
- };
6
3
  Object.defineProperty(exports, "__esModule", { value: true });
7
4
  exports.SignOutButton = void 0;
8
- const react_1 = __importDefault(require("react"));
5
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
9
6
  const useUser_js_1 = require("../../reactjs/hooks/useUser.js");
10
7
  const ButtonContentOrLoader_js_1 = require("./ButtonContentOrLoader.js");
11
- const SignOutButton = ({ className }) => {
8
+ const SignOutButton = ({ className, style, }) => {
12
9
  const { signOut, authStatus, displayMode } = (0, useUser_js_1.useUser)();
13
- return (react_1.default.createElement("button", { style: {
10
+ return ((0, jsx_runtime_1.jsx)("button", { css: {
14
11
  borderRadius: "9999px",
15
12
  border: "1px solid #6b7280",
16
13
  padding: "0.75rem 1rem",
17
14
  transition: "background-color 0.2s",
18
- }, className: className, onClick: () => signOut() },
19
- react_1.default.createElement(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode }, "Sign Out")));
15
+ }, className: className, style: style, onClick: () => signOut(), children: (0, jsx_runtime_1.jsx)(ButtonContentOrLoader_js_1.ButtonContentOrLoader, { authStatus: authStatus, displayMode: displayMode, children: "Sign Out" }) }));
20
16
  };
21
17
  exports.SignOutButton = SignOutButton;
22
18
  //# sourceMappingURL=SignOutButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SignOutButton.js","sourceRoot":"","sources":["../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;AACb,kDAA0B;AAC1B,2DAAqD;AACrD,yEAAmE;AAEnE,MAAM,aAAa,GAAG,CAAC,EAAE,SAAS,EAA0B,EAAE,EAAE;IAC9D,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IAEvD,OAAO,CACL,0CACE,KAAK,EAAE;YACL,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;SACpC,EACD,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;QAExB,8BAAC,gDAAqB,IAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,eAE/C,CACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEO,sCAAa","sourcesContent":["\"use client\";\nimport React from \"react\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\nimport { ButtonContentOrLoader } from \"./ButtonContentOrLoader.js\";\n\nconst SignOutButton = ({ className }: { className?: string }) => {\n const { signOut, authStatus, displayMode } = useUser();\n\n return (\n <button\n style={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n onClick={() => signOut()}\n >\n <ButtonContentOrLoader authStatus={authStatus} displayMode={displayMode}>\n Sign Out\n </ButtonContentOrLoader>\n </button>\n );\n};\n\nexport { SignOutButton };\n"]}
1
+ {"version":3,"file":"SignOutButton.js","sourceRoot":"","sources":["../../../../src/reactjs/components/SignOutButton.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;AAEb,2DAAqD;AACrD,yEAAmE;AAEnE,MAAM,aAAa,GAAG,CAAC,EACrB,SAAS,EACT,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAA,oBAAO,GAAE,CAAC;IAEvD,OAAO,CACL,mCACE,GAAG,EAAE;YACH,YAAY,EAAE,QAAQ;YACtB,MAAM,EAAE,mBAAmB;YAC3B,OAAO,EAAE,cAAc;YACvB,UAAU,EAAE,uBAAuB;SACpC,EACD,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,YAExB,uBAAC,gDAAqB,IAAC,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,yBAE/C,GACjB,CACV,CAAC;AACJ,CAAC,CAAC;AAEO,sCAAa","sourcesContent":["\"use client\";\nimport { type CSSProperties } from \"react\";\nimport { useUser } from \"@/reactjs/hooks/useUser.js\";\nimport { ButtonContentOrLoader } from \"./ButtonContentOrLoader.js\";\n\nconst SignOutButton = ({\n className,\n style,\n}: {\n className?: string;\n style?: CSSProperties;\n}) => {\n const { signOut, authStatus, displayMode } = useUser();\n\n return (\n <button\n css={{\n borderRadius: \"9999px\",\n border: \"1px solid #6b7280\",\n padding: \"0.75rem 1rem\",\n transition: \"background-color 0.2s\",\n }}\n className={className}\n style={style}\n onClick={() => signOut()}\n >\n <ButtonContentOrLoader authStatus={authStatus} displayMode={displayMode}>\n Sign Out\n </ButtonContentOrLoader>\n </button>\n );\n};\n\nexport { SignOutButton };\n"]}
@@ -1,6 +1,9 @@
1
- import React from "react";
2
- declare const UserButton: ({ className }: {
1
+ import { type CSSProperties } from "react";
2
+ declare const UserButton: ({ className, wrapperClassName, style, wrapperStyle, }: {
3
3
  className?: string;
4
- }) => React.JSX.Element;
4
+ wrapperClassName?: string;
5
+ style?: CSSProperties;
6
+ wrapperStyle?: CSSProperties;
7
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
5
8
  export { UserButton };
6
9
  //# sourceMappingURL=UserButton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/UserButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAwCxE,QAAA,MAAM,UAAU,kBAAmB;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,sBAyNxD,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"UserButton.d.ts","sourceRoot":"","sources":["../../../../src/reactjs/components/UserButton.tsx"],"names":[],"mappings":"AAEA,OAAc,EAKZ,KAAK,aAAa,EACnB,MAAM,OAAO,CAAC;AAwCf,QAAA,MAAM,UAAU,0DAKb;IACD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,YAAY,CAAC,EAAE,aAAa,CAAC;CAC9B,qDAwNA,CAAC;AAEF,OAAO,EAAE,UAAU,EAAE,CAAC"}