zudoku 0.43.2 → 0.44.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 (57) hide show
  1. package/dist/lib/authentication/components/CallbackHandler.js +5 -1
  2. package/dist/lib/authentication/components/CallbackHandler.js.map +1 -1
  3. package/dist/lib/authentication/providers/auth0.js +1 -1
  4. package/dist/lib/authentication/providers/auth0.js.map +1 -1
  5. package/dist/lib/authentication/providers/clerk.js +13 -5
  6. package/dist/lib/authentication/providers/clerk.js.map +1 -1
  7. package/dist/lib/authentication/providers/openid.d.ts +6 -9
  8. package/dist/lib/authentication/providers/openid.js +17 -29
  9. package/dist/lib/authentication/providers/openid.js.map +1 -1
  10. package/dist/lib/plugins/openapi/playground/QueryParams.js +1 -1
  11. package/dist/lib/plugins/openapi/playground/QueryParams.js.map +1 -1
  12. package/dist/lib/util/url.d.ts +4 -0
  13. package/dist/lib/util/url.js +13 -0
  14. package/dist/lib/util/url.js.map +1 -0
  15. package/dist/lib/util/url.test.d.ts +1 -0
  16. package/dist/lib/util/url.test.js +26 -0
  17. package/dist/lib/util/url.test.js.map +1 -0
  18. package/lib/{AuthenticationPlugin-BxoEZCSJ.js → AuthenticationPlugin-BlJsiGuX.js} +2 -2
  19. package/lib/{AuthenticationPlugin-BxoEZCSJ.js.map → AuthenticationPlugin-BlJsiGuX.js.map} +1 -1
  20. package/lib/{MdxPage-DUcuusMU.js → MdxPage-DlJaCSPf.js} +3 -3
  21. package/lib/{MdxPage-DUcuusMU.js.map → MdxPage-DlJaCSPf.js.map} +1 -1
  22. package/lib/{OasProvider-CjMm8pB7.js → OasProvider-DHPC9PnR.js} +2 -2
  23. package/lib/{OasProvider-CjMm8pB7.js.map → OasProvider-DHPC9PnR.js.map} +1 -1
  24. package/lib/{OperationList-BhJcPgGi.js → OperationList-C6Ky0zQa.js} +5 -5
  25. package/lib/{OperationList-BhJcPgGi.js.map → OperationList-C6Ky0zQa.js.map} +1 -1
  26. package/lib/{Pagination-BgQxwq5j.js → Pagination-C5Fi7z_v.js} +2 -2
  27. package/lib/{Pagination-BgQxwq5j.js.map → Pagination-C5Fi7z_v.js.map} +1 -1
  28. package/lib/{SchemaList-BexhT_Z0.js → SchemaList-Cu7rWQ_k.js} +3 -3
  29. package/lib/{SchemaList-BexhT_Z0.js.map → SchemaList-Cu7rWQ_k.js.map} +1 -1
  30. package/lib/{SchemaView-Dt_-u8rW.js → SchemaView-Ci_CnNlv.js} +2 -2
  31. package/lib/{SchemaView-Dt_-u8rW.js.map → SchemaView-Ci_CnNlv.js.map} +1 -1
  32. package/lib/{circular-BWEIet3w.js → circular-P9P1oxbQ.js} +2 -2
  33. package/lib/{circular-BWEIet3w.js.map → circular-P9P1oxbQ.js.map} +1 -1
  34. package/lib/{createServer-BQD3Eeqb.js → createServer-Iclzdx0h.js} +3 -3
  35. package/lib/{createServer-BQD3Eeqb.js.map → createServer-Iclzdx0h.js.map} +1 -1
  36. package/lib/{index-CFf9AN-y.js → index-C56xKbMM.js} +7 -7
  37. package/lib/{index-CFf9AN-y.js.map → index-C56xKbMM.js.map} +1 -1
  38. package/lib/{index-DGNSSXgR.js → index-CzUOM_vE.js} +3 -3
  39. package/lib/{index-DGNSSXgR.js.map → index-CzUOM_vE.js.map} +1 -1
  40. package/lib/zudoku.auth-auth0.js +7 -7
  41. package/lib/zudoku.auth-auth0.js.map +1 -1
  42. package/lib/zudoku.auth-clerk.js +26 -26
  43. package/lib/zudoku.auth-clerk.js.map +1 -1
  44. package/lib/zudoku.auth-openid.js +407 -405
  45. package/lib/zudoku.auth-openid.js.map +1 -1
  46. package/lib/zudoku.components.js +1 -1
  47. package/lib/zudoku.plugin-api-catalog.js +1 -1
  48. package/lib/zudoku.plugin-markdown.js +1 -1
  49. package/lib/zudoku.plugin-openapi.js +1 -1
  50. package/package.json +1 -1
  51. package/src/lib/authentication/components/CallbackHandler.tsx +11 -1
  52. package/src/lib/authentication/providers/auth0.tsx +1 -1
  53. package/src/lib/authentication/providers/clerk.tsx +14 -10
  54. package/src/lib/authentication/providers/openid.tsx +24 -42
  55. package/src/lib/plugins/openapi/playground/QueryParams.tsx +1 -1
  56. package/src/lib/util/url.test.ts +51 -0
  57. package/src/lib/util/url.ts +18 -0
@@ -1,5 +1,5 @@
1
- var r = Object.defineProperty;
2
- var c = (t, s, e) => s in t ? r(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
1
+ var a = Object.defineProperty;
2
+ var c = (t, s, e) => s in t ? a(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
3
3
  var n = (t, s, e) => c(t, typeof s != "symbol" ? s + "" : s, e);
4
4
  import { u } from "./hook-8GM2HXNM.js";
5
5
  import { OpenIDAuthenticationProvider as d } from "./zudoku.auth-openid.js";
@@ -25,9 +25,9 @@ class h extends d {
25
25
  providerData: null
26
26
  });
27
27
  const o = new URL(window.location.origin);
28
- if (o.pathname = this.logoutRedirectUrlPath, e.end_session_endpoint) {
29
- const a = new URL(e.end_session_endpoint);
30
- i && a.searchParams.set("id_token_hint", i), a.searchParams.set(
28
+ if (o.pathname = this.redirectToAfterSignOut, e.end_session_endpoint) {
29
+ const r = new URL(e.end_session_endpoint);
30
+ i && r.searchParams.set("id_token_hint", i), r.searchParams.set(
31
31
  "post_logout_redirect_uri",
32
32
  o.toString()
33
33
  );
@@ -38,8 +38,8 @@ class h extends d {
38
38
  });
39
39
  }
40
40
  }
41
- const _ = (t) => new h(t);
41
+ const A = (t) => new h(t);
42
42
  export {
43
- _ as default
43
+ A as default
44
44
  };
45
45
  //# sourceMappingURL=zudoku.auth-auth0.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { type Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.logoutRedirectUrlPath;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","__publicField","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;;;;AAKA,MAAMA,UAAoCC,EAA6B;AAAA,EACrE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB;AAGH,IAAAC,EAAA,4BAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,MAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,IAEhD;AAEA,IAAAD,EAAA,iBAAU,YAA2B;AAC7B,YAAAG,IAAK,MAAM,KAAK,cAAc,GAC9BC,IAAU,MAAM,KAAK,eAAe;AAE1C,MAAAC,EAAa,SAAS;AAAA,QACpB,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MAAA,CACf;AAED,YAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,UATAA,EAAY,WAAW,KAAK,uBASxBH,EAAG,sBAAsB;AAC3B,cAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,QAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,UACrB;AAAA,UACAD,EAAY,SAAS;AAAA,QACvB;AAAA,MAAA;AAIkB,YAAI;AAAA,UACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QAAA;AAAA,IAIvC;AAAA,EAnDG;AAoDL;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
1
+ {"version":3,"file":"zudoku.auth-auth0.js","sources":["../src/lib/authentication/providers/auth0.tsx"],"sourcesContent":["import { type Auth0AuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { useAuthState } from \"../state.js\";\nimport { OpenIDAuthenticationProvider } from \"./openid.js\";\n\nclass Auth0AuthenticationProvider extends OpenIDAuthenticationProvider {\n constructor(config: Auth0AuthenticationConfig) {\n super({\n ...config,\n type: \"openid\",\n issuer: `https://${config.domain}`,\n clientId: config.clientId,\n audience: config.audience,\n scopes: config.scopes,\n });\n }\n\n onAuthorizationUrl = async (\n url: URL,\n { isSignUp }: { isSignUp: boolean },\n ) => {\n url.searchParams.set(\"prompt\", \"login\");\n if (isSignUp) {\n url.searchParams.set(\"screen_hint\", \"signup\");\n }\n };\n\n signOut = async (): Promise<void> => {\n const as = await this.getAuthServer();\n const idToken = await this.getAccessToken();\n\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n\n const redirectUrl = new URL(window.location.origin);\n redirectUrl.pathname = this.redirectToAfterSignOut;\n\n // SEE: https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0\n // For Auth0 tenants created on or after 14 November 2023, RP-Initiated\n // Logout End Session Endpoint Discovery is enabled by default.\n // Otherwise we fallback to the old non-compliant logout\n\n // The endSessionEndpoint is set, the IdP supports some form of logout,\n // so we use the IdP logout. Otherwise, just redirect the user to home\n if (as.end_session_endpoint) {\n const logoutUrl = new URL(as.end_session_endpoint);\n if (idToken) {\n logoutUrl.searchParams.set(\"id_token_hint\", idToken);\n }\n logoutUrl.searchParams.set(\n \"post_logout_redirect_uri\",\n redirectUrl.toString(),\n );\n\n // window.location.href = logoutUrl.toString();\n } else {\n const logoutUrl = new URL(\n `${this.issuer.replace(/\\/$/, \"\")}/oidc/logout`,\n );\n // window.location.href = logoutUrl.toString();\n }\n };\n}\n\nconst auth0Auth: AuthenticationProviderInitializer<\n Auth0AuthenticationConfig\n> = (options) => new Auth0AuthenticationProvider(options);\n\nexport default auth0Auth;\n"],"names":["Auth0AuthenticationProvider","OpenIDAuthenticationProvider","config","__publicField","url","isSignUp","as","idToken","useAuthState","redirectUrl","logoutUrl","auth0Auth","options"],"mappings":";;;;;AAKA,MAAMA,UAAoCC,EAA6B;AAAA,EACrE,YAAYC,GAAmC;AACvC,UAAA;AAAA,MACJ,GAAGA;AAAA,MACH,MAAM;AAAA,MACN,QAAQ,WAAWA,EAAO,MAAM;AAAA,MAChC,UAAUA,EAAO;AAAA,MACjB,UAAUA,EAAO;AAAA,MACjB,QAAQA,EAAO;AAAA,IAAA,CAChB;AAGH,IAAAC,EAAA,4BAAqB,OACnBC,GACA,EAAE,UAAAC,QACC;AACC,MAAAD,EAAA,aAAa,IAAI,UAAU,OAAO,GAClCC,KACED,EAAA,aAAa,IAAI,eAAe,QAAQ;AAAA,IAEhD;AAEA,IAAAD,EAAA,iBAAU,YAA2B;AAC7B,YAAAG,IAAK,MAAM,KAAK,cAAc,GAC9BC,IAAU,MAAM,KAAK,eAAe;AAE1C,MAAAC,EAAa,SAAS;AAAA,QACpB,iBAAiB;AAAA,QACjB,WAAW;AAAA,QACX,SAAS;AAAA,QACT,cAAc;AAAA,MAAA,CACf;AAED,YAAMC,IAAc,IAAI,IAAI,OAAO,SAAS,MAAM;AAUlD,UATAA,EAAY,WAAW,KAAK,wBASxBH,EAAG,sBAAsB;AAC3B,cAAMI,IAAY,IAAI,IAAIJ,EAAG,oBAAoB;AACjD,QAAIC,KACQG,EAAA,aAAa,IAAI,iBAAiBH,CAAO,GAErDG,EAAU,aAAa;AAAA,UACrB;AAAA,UACAD,EAAY,SAAS;AAAA,QACvB;AAAA,MAAA;AAIkB,YAAI;AAAA,UACpB,GAAG,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC;AAAA,QAAA;AAAA,IAIvC;AAAA,EAnDG;AAoDL;AAEA,MAAME,IAEF,CAACC,MAAY,IAAIZ,EAA4BY,CAAO;"}
@@ -1,18 +1,18 @@
1
- var g = Object.defineProperty;
2
- var m = (n, t, s) => t in n ? g(n, t, { enumerable: !0, configurable: !0, writable: !0, value: s }) : n[t] = s;
3
- var c = (n, t, s) => m(n, typeof t != "symbol" ? t + "" : t, s);
4
- import { A as h } from "./AuthenticationPlugin-BxoEZCSJ.js";
1
+ var m = Object.defineProperty;
2
+ var g = (t, a, s) => a in t ? m(t, a, { enumerable: !0, configurable: !0, writable: !0, value: s }) : t[a] = s;
3
+ var c = (t, a, s) => g(t, typeof a != "symbol" ? a + "" : a, s);
4
+ import { A as h } from "./AuthenticationPlugin-BlJsiGuX.js";
5
5
  import { u as l } from "./hook-8GM2HXNM.js";
6
6
  class p extends h {
7
7
  constructor(s) {
8
8
  super();
9
9
  c(this, "initialize", async () => {
10
- var r;
10
+ var n;
11
11
  const s = await this.clerk;
12
12
  if (s)
13
13
  if (s.session) {
14
14
  const e = s.session.user.emailAddresses.find(
15
- (a) => a.verification.status === "verified"
15
+ (r) => r.verification.status === "verified"
16
16
  );
17
17
  l.setState({
18
18
  isAuthenticated: !0,
@@ -20,7 +20,7 @@ class p extends h {
20
20
  profile: {
21
21
  sub: s.session.user.id,
22
22
  name: s.session.user.fullName ?? void 0,
23
- email: (e == null ? void 0 : e.emailAddress) ?? ((r = s.session.user.emailAddresses[0]) == null ? void 0 : r.emailAddress),
23
+ email: (e == null ? void 0 : e.emailAddress) ?? ((n = s.session.user.emailAddresses[0]) == null ? void 0 : n.emailAddress),
24
24
  emailVerified: e !== void 0,
25
25
  pictureUrl: s.session.user.imageUrl
26
26
  },
@@ -39,19 +39,19 @@ class p extends h {
39
39
  }
40
40
  }
41
41
  const y = ({
42
- clerkPubKey: n,
43
- redirectToAfterSignOut: t = "/",
44
- redirectToAfterSignUp: s = "/",
45
- redirectToAfterSignIn: r = "/"
42
+ clerkPubKey: t,
43
+ redirectToAfterSignOut: a = "/",
44
+ redirectToAfterSignUp: s,
45
+ redirectToAfterSignIn: n
46
46
  }) => {
47
47
  let e;
48
- const a = (async () => {
48
+ const r = (async () => {
49
49
  var o;
50
50
  if (typeof window > "u") return;
51
51
  const { Clerk: i } = await import("@clerk/clerk-js");
52
- if (e = new i(n), await e.load(), e.user) {
52
+ if (e = new i(t), await e.load(), e.user) {
53
53
  const u = e.user.emailAddresses.find(
54
- (w) => w.verification.status === "verified"
54
+ (f) => f.verification.status === "verified"
55
55
  );
56
56
  l.setState({
57
57
  isAuthenticated: !0,
@@ -77,24 +77,24 @@ const y = ({
77
77
  return e;
78
78
  })();
79
79
  async function d() {
80
- if (await a, !(e != null && e.session))
80
+ if (await r, !(e != null && e.session))
81
81
  throw new Error("No session available");
82
82
  const i = await e.session.getToken();
83
83
  if (!i)
84
84
  throw new Error("Could not get access token from Clerk");
85
85
  return i;
86
86
  }
87
- async function f(i) {
87
+ async function w(i) {
88
88
  const o = await d();
89
89
  return i.headers.set("Authorization", `Bearer ${o}`), i;
90
90
  }
91
91
  return {
92
92
  clerk: e,
93
93
  getAccessToken: d,
94
- signRequest: f,
94
+ signRequest: w,
95
95
  signOut: async () => {
96
- await a, await (e == null ? void 0 : e.signOut({
97
- redirectUrl: window.location.origin + t
96
+ await r, await (e == null ? void 0 : e.signOut({
97
+ redirectUrl: window.location.origin + a
98
98
  })), l.setState({
99
99
  isAuthenticated: !1,
100
100
  isPending: !1,
@@ -103,19 +103,19 @@ const y = ({
103
103
  });
104
104
  },
105
105
  signIn: async ({ redirectTo: i } = {}) => {
106
- await a, await (e == null ? void 0 : e.redirectToSignIn({
107
- signInForceRedirectUrl: i ?? window.location.origin + r,
108
- signUpForceRedirectUrl: i ?? window.location.origin + s
106
+ await r, await (e == null ? void 0 : e.redirectToSignIn({
107
+ signInForceRedirectUrl: n ? window.location.origin + n : i,
108
+ signUpForceRedirectUrl: s ? window.location.origin + s : i
109
109
  }));
110
110
  },
111
111
  signUp: async ({ redirectTo: i } = {}) => {
112
- await a, await (e == null ? void 0 : e.redirectToSignUp({
113
- signInForceRedirectUrl: i ?? window.location.origin + r,
114
- signUpForceRedirectUrl: i ?? window.location.origin + s
112
+ await r, await (e == null ? void 0 : e.redirectToSignUp({
113
+ signInForceRedirectUrl: n ? window.location.origin + n : i,
114
+ signUpForceRedirectUrl: s ? window.location.origin + s : i
115
115
  }));
116
116
  },
117
117
  getAuthenticationPlugin() {
118
- return new p(a);
118
+ return new p(r);
119
119
  }
120
120
  };
121
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { type ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { AuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport { useAuthState } from \"../state.js\";\n\nclass ClerkAuthPlugin extends AuthenticationPlugin {\n constructor(private clerk: Promise<Clerk | undefined>) {\n super();\n }\n initialize = async () => {\n const clerk = await this.clerk;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n };\n}\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp = \"/\",\n redirectToAfterSignIn = \"/\",\n}) => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n if (clerkApi.user) {\n const verifiedEmail = clerkApi.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerkApi.user.id,\n name: clerkApi.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerkApi.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerkApi.user.imageUrl,\n },\n providerData: {\n user: {\n publicMetadata: clerkApi.user.publicMetadata,\n id: clerkApi.user.id,\n emailAddresses: clerkApi.user.emailAddresses,\n imageUrl: clerkApi.user.imageUrl,\n fullName: clerkApi.user.fullName,\n },\n },\n });\n }\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken();\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n clerk: clerkApi,\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n },\n signIn: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl:\n redirectTo ?? window.location.origin + redirectToAfterSignIn,\n signUpForceRedirectUrl:\n redirectTo ?? window.location.origin + redirectToAfterSignUp,\n });\n },\n signUp: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl:\n redirectTo ?? window.location.origin + redirectToAfterSignIn,\n signUpForceRedirectUrl:\n redirectTo ?? window.location.origin + redirectToAfterSignUp,\n });\n },\n getAuthenticationPlugin() {\n return new ClerkAuthPlugin(ensureLoaded);\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["ClerkAuthPlugin","AuthenticationPlugin","clerk","__publicField","verifiedEmail","email","useAuthState","_a","clerkAuth","clerkPubKey","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","getAccessToken","response","signRequest","request","redirectTo"],"mappings":"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"}
1
+ {"version":3,"file":"zudoku.auth-clerk.js","sources":["../src/lib/authentication/providers/clerk.tsx"],"sourcesContent":["import type { Clerk } from \"@clerk/clerk-js\";\nimport { type ClerkAuthenticationConfig } from \"../../../config/config.js\";\nimport { type AuthenticationProviderInitializer } from \"../authentication.js\";\nimport { AuthenticationPlugin } from \"../AuthenticationPlugin.js\";\nimport { useAuthState } from \"../state.js\";\n\nclass ClerkAuthPlugin extends AuthenticationPlugin {\n constructor(private clerk: Promise<Clerk | undefined>) {\n super();\n }\n initialize = async () => {\n const clerk = await this.clerk;\n\n if (!clerk) {\n return;\n }\n\n if (clerk.session) {\n const verifiedEmail = clerk.session.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerk.session.user.id,\n name: clerk.session.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerk.session.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerk.session.user.imageUrl,\n },\n providerData: {\n user: clerk.session.user,\n },\n });\n } else {\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: undefined,\n });\n }\n };\n}\n\nconst clerkAuth: AuthenticationProviderInitializer<\n ClerkAuthenticationConfig\n> = ({\n clerkPubKey,\n redirectToAfterSignOut = \"/\",\n redirectToAfterSignUp,\n redirectToAfterSignIn,\n}) => {\n let clerkApi: Clerk | undefined;\n const ensureLoaded = (async () => {\n if (typeof window === \"undefined\") return;\n const { Clerk } = await import(\"@clerk/clerk-js\");\n clerkApi = new Clerk(clerkPubKey);\n\n await clerkApi.load();\n\n if (clerkApi.user) {\n const verifiedEmail = clerkApi.user.emailAddresses.find(\n (email) => email.verification.status === \"verified\",\n );\n useAuthState.setState({\n isAuthenticated: true,\n isPending: false,\n profile: {\n sub: clerkApi.user.id,\n name: clerkApi.user.fullName ?? undefined,\n email:\n verifiedEmail?.emailAddress ??\n clerkApi.user.emailAddresses[0]?.emailAddress,\n emailVerified: verifiedEmail !== undefined,\n pictureUrl: clerkApi.user.imageUrl,\n },\n providerData: {\n user: {\n publicMetadata: clerkApi.user.publicMetadata,\n id: clerkApi.user.id,\n emailAddresses: clerkApi.user.emailAddresses,\n imageUrl: clerkApi.user.imageUrl,\n fullName: clerkApi.user.fullName,\n },\n },\n });\n }\n\n return clerkApi;\n })();\n\n async function getAccessToken() {\n await ensureLoaded;\n if (!clerkApi?.session) {\n throw new Error(\"No session available\");\n }\n const response = await clerkApi.session.getToken();\n if (!response) {\n throw new Error(\"Could not get access token from Clerk\");\n }\n return response;\n }\n\n async function signRequest(request: Request): Promise<Request> {\n const response = await getAccessToken();\n request.headers.set(\"Authorization\", `Bearer ${response}`);\n return request;\n }\n\n return {\n clerk: clerkApi,\n getAccessToken,\n signRequest,\n signOut: async () => {\n await ensureLoaded;\n await clerkApi?.signOut({\n redirectUrl: window.location.origin + redirectToAfterSignOut,\n });\n useAuthState.setState({\n isAuthenticated: false,\n isPending: false,\n profile: null,\n providerData: null,\n });\n },\n signIn: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignIn({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n signUp: async ({ redirectTo }: { redirectTo?: string } = {}) => {\n await ensureLoaded;\n await clerkApi?.redirectToSignUp({\n signInForceRedirectUrl: redirectToAfterSignIn\n ? window.location.origin + redirectToAfterSignIn\n : redirectTo,\n signUpForceRedirectUrl: redirectToAfterSignUp\n ? window.location.origin + redirectToAfterSignUp\n : redirectTo,\n });\n },\n getAuthenticationPlugin() {\n return new ClerkAuthPlugin(ensureLoaded);\n },\n };\n};\n\nexport default clerkAuth;\n"],"names":["ClerkAuthPlugin","AuthenticationPlugin","clerk","__publicField","verifiedEmail","email","useAuthState","_a","clerkAuth","clerkPubKey","redirectToAfterSignOut","redirectToAfterSignUp","redirectToAfterSignIn","clerkApi","ensureLoaded","Clerk","getAccessToken","response","signRequest","request","redirectTo"],"mappings":"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"}