@enterprisestandard/react 0.0.3-beta.3 → 0.0.4

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.
@@ -122,3 +122,4 @@ export type IdTokenClaims = {
122
122
  picture?: string;
123
123
  [key: string]: unknown;
124
124
  };
125
+ //# sourceMappingURL=enterprise-user.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enterprise-user.d.ts","sourceRoot":"","sources":["../src/enterprise-user.ts"],"names":[],"mappings":"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"}
package/dist/iam.d.ts CHANGED
@@ -10,3 +10,4 @@ export type IAM = {
10
10
  };
11
11
  export declare function iam(config: IAMConfig): Promise<IAM>;
12
12
  export {};
13
+ //# sourceMappingURL=iam.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"iam.d.ts","sourceRoot":"","sources":["../src/iam.ts"],"names":[],"mappings":"AAAA,KAAK,SAAS,GAAG;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,GAAG,GAAG;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CAEvB,CAAC;AAEF,wBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,CAQzD"}
package/dist/index.d.ts CHANGED
@@ -12,7 +12,6 @@ export type EnterpriseStandard = {
12
12
  type ESConfig = {
13
13
  ioniteUrl?: string;
14
14
  defaultInstance?: boolean;
15
- ssoUserUrl?: string;
16
15
  };
17
16
  export declare function enterpriseStandard(appId: string, appKey?: string, initConfig?: ESConfig): Promise<EnterpriseStandard>;
18
17
  export type * from './enterprise-user';
@@ -22,3 +21,4 @@ export { SignInLoading } from './ui/sign-in-loading';
22
21
  export { SignedIn } from './ui/signed-in';
23
22
  export { SignedOut } from './ui/signed-out';
24
23
  export * from './ui/sso-provider';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,GAAG,EAAO,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,KAAK,GAAG,EAAO,MAAM,OAAO,CAAC;AAEtC,OAAO,EAAE,KAAK,KAAK,EAAS,MAAM,SAAS,CAAC;AAE5C,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,GAAG,CAAC,EAAE,GAAG,CAAC;IACV,GAAG,CAAC,EAAE,GAAG,CAAC;CACX,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAOF,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,UAAU,CAAC,EAAE,QAAQ,GACpB,OAAO,CAAC,kBAAkB,CAAC,CA4C7B;AAED,mBAAmB,mBAAmB,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -31,13 +31,14 @@ function getES(es) {
31
31
 
32
32
  // src/sso.ts
33
33
  var jwksCache = new Map;
34
+ var _logoutTokenJtis = new Set;
34
35
  function sso(config) {
35
36
  const configWithDefaults = {
36
37
  ...config,
37
- secure: config.secure !== undefined ? config.secure : false,
38
- sameSite: config.sameSite !== undefined ? config.sameSite : "Lax",
39
- cookiePrefix: config.cookiePrefix ?? `es.sso.${config.client_id}`,
40
- cookiePath: config.cookiePath ?? "/"
38
+ cookies_secure: config.cookies_secure !== undefined ? config.cookies_secure : true,
39
+ cookies_same_site: config.cookies_same_site !== undefined ? config.cookies_same_site : "Strict",
40
+ cookies_prefix: config.cookies_prefix ?? `es.sso.${config.client_id}`,
41
+ cookies_path: config.cookies_path ?? "/"
41
42
  };
42
43
  async function getUser(request) {
43
44
  if (!configWithDefaults) {
@@ -93,6 +94,52 @@ function sso(config) {
93
94
  }
94
95
  });
95
96
  }
97
+ async function logout(request, _config) {
98
+ try {
99
+ const refreshToken2 = getCookie("refresh", request);
100
+ if (refreshToken2) {
101
+ await revokeToken(refreshToken2);
102
+ }
103
+ } catch (error) {
104
+ console.warn("Failed to revoke token:", error);
105
+ }
106
+ const clearHeaders = [
107
+ ["Set-Cookie", clearCookie("access")],
108
+ ["Set-Cookie", clearCookie("id")],
109
+ ["Set-Cookie", clearCookie("refresh")],
110
+ ["Set-Cookie", clearCookie("control")],
111
+ ["Set-Cookie", clearCookie("state")]
112
+ ];
113
+ const url = new URL(request.url);
114
+ const redirectTo = url.searchParams.get("redirect");
115
+ if (redirectTo) {
116
+ return new Response("Logged out", {
117
+ status: 302,
118
+ headers: [["Location", redirectTo], ...clearHeaders]
119
+ });
120
+ }
121
+ const accept = request.headers.get("accept");
122
+ const isAjax = accept?.includes("application/json") || accept?.includes("text/javascript");
123
+ if (isAjax) {
124
+ return new Response(JSON.stringify({ success: true, message: "Logged out" }), {
125
+ status: 200,
126
+ headers: [["Content-Type", "application/json"], ...clearHeaders]
127
+ });
128
+ } else {
129
+ return new Response(`
130
+ <!DOCTYPE html><html lang="en"><body>
131
+ <h1>Logout Complete</h1>
132
+ <div style="display: none">
133
+ It is not recommended to show the default logout page. Include '?redirect=/someHomePage' or logout asynchronously.
134
+ Check the <a href="https://EnterpriseStandard.com/sso#logout">Enterprise Standard Packages</a> for more information.
135
+ </div>
136
+ </body></html>
137
+ `, {
138
+ status: 200,
139
+ headers: [["Content-Type", "text/html"], ...clearHeaders]
140
+ });
141
+ }
142
+ }
96
143
  async function callbackHandler(request) {
97
144
  if (!configWithDefaults) {
98
145
  console.error("SSO Manager not initialized");
@@ -148,6 +195,7 @@ function sso(config) {
148
195
  const expiresIn = Number(token.refresh_expires_in ?? token.expires_in ?? 3600);
149
196
  const expires = token.expires ? new Date(token.expires) : new Date(Date.now() + expiresIn * 1000);
150
197
  return {
198
+ id: idToken.sub,
151
199
  userName: idToken.preferred_username || "",
152
200
  name: idToken.name || "",
153
201
  email: idToken.email || "",
@@ -230,6 +278,31 @@ function sso(config) {
230
278
  return data;
231
279
  });
232
280
  }
281
+ async function revokeToken(token) {
282
+ try {
283
+ if (!configWithDefaults)
284
+ throw new Error("SSO Manager not initialized");
285
+ const revokeUrl = `${configWithDefaults.authority}/protocol/openid-connect/revoke`;
286
+ const body = new URLSearchParams;
287
+ body.append("token", token);
288
+ body.append("token_type_hint", "refresh_token");
289
+ body.append("client_id", configWithDefaults.client_id);
290
+ const response = await fetch(revokeUrl, {
291
+ method: "POST",
292
+ headers: {
293
+ "Content-Type": "application/x-www-form-urlencoded"
294
+ },
295
+ body: body.toString()
296
+ });
297
+ if (!response.ok) {
298
+ console.warn("Token revocation failed:", response.status, response.statusText);
299
+ } else {
300
+ console.log("Token revoked successfully");
301
+ }
302
+ } catch (error) {
303
+ console.warn("Error revoking token:", error);
304
+ }
305
+ }
233
306
  async function fetchJwks() {
234
307
  const url = configWithDefaults.jwks_uri || `${configWithDefaults.authority}/protocol/openid-connect/certs`;
235
308
  const cached = jwksCache.get(url);
@@ -357,7 +430,7 @@ function sso(config) {
357
430
  return tokens.access_token;
358
431
  }
359
432
  function createCookie(name, value, expires) {
360
- name = `${configWithDefaults.cookiePrefix}.${name}`;
433
+ name = `${configWithDefaults.cookies_prefix}.${name}`;
361
434
  if (typeof value !== "string") {
362
435
  value = btoa(JSON.stringify(value));
363
436
  }
@@ -372,16 +445,16 @@ function sso(config) {
372
445
  if (value.length > 4000) {
373
446
  throw new Error(`Error setting cookie: ${name}. Cookie length is: ${value.length}`);
374
447
  }
375
- return `${name}=${value}; ${exp}; Path=${configWithDefaults.cookiePath}; HttpOnly;${configWithDefaults.secure ? " Secure;" : ""} SameSite=${configWithDefaults.sameSite};`;
448
+ return `${name}=${value}; ${exp}; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? " Secure;" : ""} SameSite=${configWithDefaults.cookies_same_site};`;
376
449
  }
377
450
  function clearCookie(name) {
378
- return `${configWithDefaults.cookiePrefix}.${name}=; Max-Age=0; Path=${configWithDefaults.cookiePath}; HttpOnly;${configWithDefaults.secure ? " Secure;" : ""} SameSite=${configWithDefaults.sameSite};`;
451
+ return `${configWithDefaults.cookies_prefix}.${name}=; Max-Age=0; Path=${configWithDefaults.cookies_path}; HttpOnly;${configWithDefaults.cookies_secure ? " Secure;" : ""} SameSite=${configWithDefaults.cookies_same_site};`;
379
452
  }
380
453
  function getCookie(name, req, parse = false) {
381
454
  const header = req.headers.get("cookie");
382
455
  if (!header)
383
456
  return null;
384
- const cookie = header.split(";").find((row) => row.trim().startsWith(`${configWithDefaults.cookiePrefix}.${name}=`));
457
+ const cookie = header.split(";").find((row) => row.trim().startsWith(`${configWithDefaults.cookies_prefix}.${name}=`));
385
458
  if (!cookie)
386
459
  return null;
387
460
  const val = cookie.split("=")[1].trim();
@@ -391,13 +464,20 @@ function sso(config) {
391
464
  return JSON.parse(str);
392
465
  }
393
466
  async function handler(request, handlerConfig) {
394
- let { loginUrl, userUrl, errorUrl, landingUrl, tokenUrl, refreshUrl } = handlerConfig ?? {};
395
- if (!loginUrl)
396
- loginUrl = "*";
467
+ const { loginUrl, userUrl, errorUrl, landingUrl, tokenUrl, refreshUrl, logoutUrl, jwksUrl } = handlerConfig ?? {};
468
+ if (!loginUrl) {
469
+ console.error("loginUrl is required");
470
+ }
397
471
  const path = new URL(request.url).pathname;
398
472
  if (new URL(config.redirect_uri).pathname === path) {
399
473
  return callbackHandler(request);
400
474
  }
475
+ if (loginUrl === path) {
476
+ return initiateLogin({
477
+ landingUrl: landingUrl || "/",
478
+ errorUrl
479
+ });
480
+ }
401
481
  if (userUrl === path) {
402
482
  const { tokens, refreshHeaders } = await getTokenFromCookies(request);
403
483
  if (!tokens) {
@@ -433,10 +513,13 @@ function sso(config) {
433
513
  headers: refreshHeaders
434
514
  });
435
515
  }
436
- if (loginUrl === "*" || loginUrl === path) {
437
- return initiateLogin({
438
- landingUrl: landingUrl || "/",
439
- errorUrl
516
+ if (logoutUrl === path) {
517
+ return logout(request, { landingUrl: landingUrl || "/" });
518
+ }
519
+ if (jwksUrl === path) {
520
+ const jwks = await fetchJwks();
521
+ return new Response(JSON.stringify(jwks), {
522
+ headers: [["Content-Type", "application/json"]]
440
523
  });
441
524
  }
442
525
  return new Response("Not Found", { status: 404 });
@@ -446,14 +529,15 @@ function sso(config) {
446
529
  getRequiredUser,
447
530
  getJwt,
448
531
  initiateLogin,
532
+ logout,
449
533
  callbackHandler,
450
534
  handler
451
535
  };
452
536
  }
453
537
 
454
538
  // src/vault.ts
455
- function vault(url, token) {
456
- async function getFullSecret(path) {
539
+ function vault(url) {
540
+ async function getFullSecret(path, token) {
457
541
  const resp = await fetch(`${url}/${path}`, { headers: { "X-Vault-Token": token } });
458
542
  if (resp.status !== 200) {
459
543
  throw new Error(`Vault returned invalid status, ${resp.status}: '${resp.statusText}' from URL: ${url}`);
@@ -468,8 +552,8 @@ function vault(url, token) {
468
552
  return {
469
553
  url,
470
554
  getFullSecret,
471
- getSecret: async (path) => {
472
- return (await getFullSecret(path)).data;
555
+ getSecret: async (path, token) => {
556
+ return (await getFullSecret(path, token)).data;
473
557
  }
474
558
  };
475
559
  }
@@ -620,38 +704,38 @@ async function handler(request, config) {
620
704
  return sso2.handler(request, config);
621
705
  }
622
706
  // src/ui/sign-in-loading.tsx
623
- import { jsxDEV, Fragment } from "react/jsx-dev-runtime";
707
+ import { jsx, Fragment } from "react/jsx-runtime";
624
708
  function SignInLoading({ complete = false, children }) {
625
709
  const { isLoading } = useUser();
626
710
  if (isLoading && !complete)
627
- return /* @__PURE__ */ jsxDEV(Fragment, {
711
+ return /* @__PURE__ */ jsx(Fragment, {
628
712
  children
629
- }, undefined, false, undefined, this);
713
+ });
630
714
  return null;
631
715
  }
632
716
  // src/ui/signed-in.tsx
633
- import { jsxDEV as jsxDEV2, Fragment as Fragment2 } from "react/jsx-dev-runtime";
717
+ import { jsx as jsx2, Fragment as Fragment2 } from "react/jsx-runtime";
634
718
  function SignedIn({ children }) {
635
719
  const { user } = useUser();
636
720
  if (user)
637
- return /* @__PURE__ */ jsxDEV2(Fragment2, {
721
+ return /* @__PURE__ */ jsx2(Fragment2, {
638
722
  children
639
- }, undefined, false, undefined, this);
723
+ });
640
724
  return null;
641
725
  }
642
726
  // src/ui/signed-out.tsx
643
- import { jsxDEV as jsxDEV3, Fragment as Fragment3 } from "react/jsx-dev-runtime";
727
+ import { jsx as jsx3, Fragment as Fragment3 } from "react/jsx-runtime";
644
728
  function SignedOut({ children }) {
645
729
  const { user, isLoading } = useUser();
646
730
  if (user || isLoading)
647
731
  return null;
648
- return /* @__PURE__ */ jsxDEV3(Fragment3, {
732
+ return /* @__PURE__ */ jsx3(Fragment3, {
649
733
  children
650
- }, undefined, false, undefined, this);
734
+ });
651
735
  }
652
736
  // src/ui/sso-provider.tsx
653
737
  import { createContext, useCallback, useContext, useEffect, useState } from "react";
654
- import { jsxDEV as jsxDEV4 } from "react/jsx-dev-runtime";
738
+ import { jsx as jsx4 } from "react/jsx-runtime";
655
739
  var CTX = createContext(undefined);
656
740
  var generateStorageKey = (tenantId) => {
657
741
  return `es-sso-user-${tenantId.replace(/[^a-zA-Z0-9]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "")}`;
@@ -774,9 +858,14 @@ function SSOProvider({
774
858
  }
775
859
  }
776
860
  };
861
+ const handleLogout = () => {
862
+ setUserState(null);
863
+ };
777
864
  window.addEventListener("storage", handleStorageChange);
865
+ window.addEventListener("es-sso-logout", handleLogout);
778
866
  return () => {
779
867
  window.removeEventListener("storage", handleStorageChange);
868
+ window.removeEventListener("es-sso-logout", handleLogout);
780
869
  };
781
870
  }, [disableListener, storage, actualStorageKey, isValidUser]);
782
871
  const contextValue = {
@@ -786,10 +875,10 @@ function SSOProvider({
786
875
  tokenUrl,
787
876
  refreshUrl
788
877
  };
789
- return /* @__PURE__ */ jsxDEV4(CTX.Provider, {
878
+ return /* @__PURE__ */ jsx4(CTX.Provider, {
790
879
  value: contextValue,
791
880
  children
792
- }, undefined, false, undefined, this);
881
+ });
793
882
  }
794
883
  function useUser() {
795
884
  const context = useContext(CTX);
@@ -875,34 +964,73 @@ function useToken() {
875
964
  refresh
876
965
  };
877
966
  }
967
+ async function logout(logoutUrl) {
968
+ try {
969
+ const response = await fetch(logoutUrl, {
970
+ headers: { Accept: "application/json" }
971
+ });
972
+ if (!response.ok) {
973
+ return { success: false, error: `HTTP ${response.status}` };
974
+ }
975
+ const data = await response.json();
976
+ if (!data.success) {
977
+ return { success: false, error: data.message || "Logout failed" };
978
+ }
979
+ if (typeof window !== "undefined") {
980
+ for (let i = localStorage.length - 1;i >= 0; i--) {
981
+ const key = localStorage.key(i);
982
+ if (key?.startsWith("es-sso-user")) {
983
+ localStorage.removeItem(key);
984
+ }
985
+ }
986
+ for (let i = sessionStorage.length - 1;i >= 0; i--) {
987
+ const key = sessionStorage.key(i);
988
+ if (key?.startsWith("es-sso-user")) {
989
+ sessionStorage.removeItem(key);
990
+ }
991
+ }
992
+ window.dispatchEvent(new CustomEvent("es-sso-logout"));
993
+ }
994
+ return { success: true };
995
+ } catch (error) {
996
+ return {
997
+ success: false,
998
+ error: error instanceof Error ? error.message : "Network error"
999
+ };
1000
+ }
1001
+ }
878
1002
 
879
1003
  // src/index.ts
880
1004
  async function enterpriseStandard(appId, appKey, initConfig) {
881
1005
  let vaultUrl;
882
1006
  let vaultToken;
883
- let paths;
1007
+ let secrets;
884
1008
  const ioniteUrl = initConfig?.ioniteUrl ?? "https://ionite.com";
885
1009
  if (appId === "IONITE_PUBLIC_DEMO") {
886
1010
  vaultUrl = "https://vault-ionite.ionite.dev/v1/secret/data";
887
- vaultToken = "hvs.NuiBSLuFk5Ju4JDOUwTOlSlP";
888
- paths = { sso: "ionite/IONITE_PUBLIC_DEMO" };
1011
+ secrets = {
1012
+ sso: {
1013
+ path: "public/IONITE_PUBLIC_DEMO_SSO",
1014
+ token: "hvs.VGhD2hmXDH9PmZjTacZx0G5K"
1015
+ }
1016
+ };
889
1017
  } else if (appKey) {
890
1018
  if (!vaultUrl || !vaultToken) {
891
1019
  throw new Error("TODO something is wrong with the ionite config, handle this error");
892
1020
  }
893
- paths = {};
1021
+ secrets = {};
894
1022
  } else {
895
1023
  throw new Error("TODO tell them how to connect to ionite");
896
1024
  }
897
1025
  const defaultInstance2 = getDefaultInstance();
898
- const vaultClient = await vault(vaultUrl, vaultToken);
1026
+ const vaultClient = await vault(vaultUrl);
899
1027
  const result = {
900
1028
  appId,
901
1029
  ioniteUrl,
902
1030
  defaultInstance: initConfig?.defaultInstance || initConfig?.defaultInstance !== false && !defaultInstance2,
903
1031
  vault: vaultClient,
904
- sso: paths.sso ? sso(await vaultClient.getSecret(paths.sso)) : undefined,
905
- iam: paths.iam ? await iam(await vaultClient.getSecret(paths.iam)) : undefined
1032
+ sso: secrets.sso ? sso(await vaultClient.getSecret(secrets.sso.path, secrets.sso.token)) : undefined,
1033
+ iam: secrets.iam ? await iam(await vaultClient.getSecret(secrets.iam.path, secrets.iam.token)) : undefined
906
1034
  };
907
1035
  if (result.defaultInstance) {
908
1036
  if (defaultInstance2) {
@@ -916,6 +1044,7 @@ export {
916
1044
  useUser,
917
1045
  useToken,
918
1046
  oidcCallbackSchema,
1047
+ logout,
919
1048
  initiateLogin,
920
1049
  handler,
921
1050
  getUser,
@@ -41,3 +41,4 @@ export interface OidcCallbackParams {
41
41
  * @returns A StandardSchemaV1 instance for OIDC callback parameters
42
42
  */
43
43
  export declare function oidcCallbackSchema(vendor: string): StandardSchemaV1<Record<string, unknown>, OidcCallbackParams>;
44
+ //# sourceMappingURL=oidc-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc-schema.d.ts","sourceRoot":"","sources":["../src/oidc-schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAoHhH"}
package/dist/server.d.ts CHANGED
@@ -4,3 +4,4 @@ export declare function getRequiredUser(request: Request, config?: ESConfig): Pr
4
4
  export declare function initiateLogin(config: LoginConfig): Promise<Response>;
5
5
  export declare function callback(request: Request, config?: ESConfig): Promise<Response>;
6
6
  export declare function handler(request: Request, config?: SSOHandlerConfig): Promise<Response>;
7
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAoBrE,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,mEAEhE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,uDAIxE;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,qBAItD;AAED,wBAAsB,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,qBAIjE;AAED,wBAAsB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,gBAAgB,qBAIxE"}
package/dist/sso.d.ts CHANGED
@@ -7,13 +7,13 @@ export type SSOConfig = {
7
7
  redirect_uri: string;
8
8
  response_type: string;
9
9
  scope: string;
10
- post_logout_redirect_uri?: string;
11
10
  silent_redirect_uri?: string;
12
11
  jwks_uri?: string;
13
- cookiePrefix?: string;
14
- cookiePath?: string;
15
- sameSite?: 'Strict' | 'Lax';
16
- secure?: boolean;
12
+ cookies_prefix?: string;
13
+ cookies_path?: string;
14
+ cookies_secure?: boolean;
15
+ cookies_same_site?: 'Strict' | 'Lax';
16
+ end_session_endpoint?: string;
17
17
  };
18
18
  export type ESConfig = {
19
19
  es?: EnterpriseStandard;
@@ -29,13 +29,18 @@ export type SSOHandlerConfig = {
29
29
  landingUrl?: string;
30
30
  tokenUrl?: string;
31
31
  refreshUrl?: string;
32
+ jwksUrl?: string;
33
+ logoutUrl?: string;
34
+ logoutCallbackUrl?: string;
32
35
  } & ESConfig;
33
36
  export type SSO = {
34
37
  getUser: (request: Request) => Promise<EnterpriseUser | undefined>;
35
38
  getRequiredUser: (request: Request) => Promise<EnterpriseUser>;
36
39
  getJwt: (request: Request) => Promise<string | undefined>;
37
40
  initiateLogin: (config: LoginConfig) => Promise<Response>;
41
+ logout: (request: Request, config?: LoginConfig) => Promise<Response>;
38
42
  callbackHandler: (request: Request) => Promise<Response>;
39
43
  handler: (request: Request, handlerConfig?: SSOHandlerConfig) => Promise<Response>;
40
44
  };
41
45
  export declare function sso(config: SSOConfig): SSO;
46
+ //# sourceMappingURL=sso.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso.d.ts","sourceRoot":"","sources":["../src/sso.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAiB,MAAM,GAAG,CAAC;AAG3E,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAqCF,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,CAAC,EAAE,kBAAkB,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,QAAQ,CAAC;AAEb,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B,GAAG,QAAQ,CAAC;AAEb,MAAM,MAAM,GAAG,GAAG;IAChB,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IACnE,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;IAC/D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAC1D,aAAa,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtE,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzD,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,gBAAgB,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;CACpF,CAAC;AAKF,wBAAgB,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,GAAG,CAunB1C"}
@@ -53,3 +53,4 @@ export declare namespace StandardSchemaV1 {
53
53
  /** Infers the output type of a Standard Schema. */
54
54
  type InferOutput<Schema extends StandardSchemaV1> = NonNullable<Schema['~standard']['types']>['output'];
55
55
  }
56
+ //# sourceMappingURL=standard-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"standard-schema.d.ts","sourceRoot":"","sources":["../src/standard-schema.ts"],"names":[],"mappings":"AAAA,sEAAsE;AACtE,MAAM,WAAW,gBAAgB,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;IAC/D,sCAAsC;IACtC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7D;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,gDAAgD;IAChD,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,0CAA0C;QAC1C,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC;QACpB,6CAA6C;QAC7C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;QACxB,sCAAsC;QACtC,QAAQ,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAChF,iDAAiD;QACjD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;KACnD;IAED,qDAAqD;IACrD,KAAY,MAAM,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,aAAa,CAAC;IAEnE,mDAAmD;IACnD,UAAiB,aAAa,CAAC,MAAM;QACnC,8BAA8B;QAC9B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,+BAA+B;QAC/B,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC;KAC7B;IAED,gDAAgD;IAChD,UAAiB,aAAa;QAC5B,uCAAuC;QACvC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,iDAAiD;IACjD,UAAiB,KAAK;QACpB,sCAAsC;QACtC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;QACzB,qCAAqC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,WAAW,GAAG,WAAW,CAAC,GAAG,SAAS,CAAC;KACtE;IAED,+CAA+C;IAC/C,UAAiB,WAAW;QAC1B,2CAA2C;QAC3C,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;KAC3B;IAED,2CAA2C;IAC3C,UAAiB,KAAK,CAAC,KAAK,GAAG,OAAO,EAAE,MAAM,GAAG,KAAK;QACpD,oCAAoC;QACpC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;QACtB,qCAAqC;QACrC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;KACzB;IAED,kDAAkD;IAClD,KAAY,UAAU,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;IAE7G,mDAAmD;IACnD,KAAY,WAAW,CAAC,MAAM,SAAS,gBAAgB,IAAI,WAAW,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;CAChH"}
@@ -2,3 +2,4 @@ import type { PropsWithChildren } from 'react';
2
2
  export declare function SignInLoading({ complete, children }: {
3
3
  complete?: boolean;
4
4
  } & PropsWithChildren): import("react/jsx-runtime").JSX.Element | null;
5
+ //# sourceMappingURL=sign-in-loading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign-in-loading.d.ts","sourceRoot":"","sources":["../../src/ui/sign-in-loading.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,wBAAgB,aAAa,CAAC,EAAE,QAAgB,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,iBAAiB,kDAKvG"}
@@ -1,2 +1,3 @@
1
1
  import type { PropsWithChildren } from 'react';
2
2
  export declare function SignedIn({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element | null;
3
+ //# sourceMappingURL=signed-in.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-in.d.ts","sourceRoot":"","sources":["../../src/ui/signed-in.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,wBAAgB,QAAQ,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,kDAKvD"}
@@ -1,2 +1,3 @@
1
1
  import type { PropsWithChildren } from 'react';
2
2
  export declare function SignedOut({ children }: PropsWithChildren): import("react/jsx-runtime").JSX.Element | null;
3
+ //# sourceMappingURL=signed-out.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signed-out.d.ts","sourceRoot":"","sources":["../../src/ui/signed-out.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAG/C,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE,iBAAiB,kDAKxD"}
@@ -27,4 +27,9 @@ interface UseTokenReturn {
27
27
  refresh: () => Promise<void>;
28
28
  }
29
29
  export declare function useToken(): UseTokenReturn;
30
+ export declare function logout(logoutUrl: string): Promise<{
31
+ success: boolean;
32
+ error?: string;
33
+ }>;
30
34
  export {};
35
+ //# sourceMappingURL=sso-provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sso-provider.d.ts","sourceRoot":"","sources":["../../src/ui/sso-provider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,SAAS,EAAgD,MAAM,OAAO,CAAC;AACpG,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,KAAK,WAAW,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAElD,UAAU,gBAAgB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,cAAc,GAAG,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IAC/C,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAWD,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAkB,EAClB,UAAU,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,eAAuB,EACvB,QAAQ,GACT,EAAE,gBAAgB,2CA8JlB;AAED,wBAAgB,OAAO,IAAI,UAAU,CAMpC;AAOD,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,wBAAgB,QAAQ,IAAI,cAAc,CAiGzC;AAED,wBAAsB,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CA6C7F"}
package/dist/utils.d.ts CHANGED
@@ -6,3 +6,4 @@ export declare function getDefaultInstance(): EnterpriseStandard | undefined;
6
6
  * If an es is defined, then return it, otherwise return the defaultEnterpriseStandard
7
7
  */
8
8
  export declare function getES(es?: EnterpriseStandard): EnterpriseStandard;
9
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,GAAG,CAAC;AAI5C,wBAAgB,IAAI,CAAC,CAAC,EACpB,KAAK,EAAE,CAAC,GAAG,SAAS,GAAG,IAAI,EAC3B,OAAO,SAA2D,GACjE,CAAC,CAKH;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,kBAAkB,QAExD;AAED,wBAAgB,kBAAkB,mCAEjC;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,EAAE,CAAC,EAAE,kBAAkB,sBAI5C"}
package/dist/vault.d.ts CHANGED
@@ -10,8 +10,9 @@ type MetaData = {
10
10
  };
11
11
  export type Vault = {
12
12
  url: string;
13
- getFullSecret: <T>(path: string) => Promise<Secret<T>>;
14
- getSecret: <T>(path: string) => Promise<T>;
13
+ getFullSecret: <T>(path: string, token: string) => Promise<Secret<T>>;
14
+ getSecret: <T>(path: string, token: string) => Promise<T>;
15
15
  };
16
- export declare function vault(url: string, token: string): Vault;
16
+ export declare function vault(url: string): Vault;
17
17
  export {};
18
+ //# sourceMappingURL=vault.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"vault.d.ts","sourceRoot":"","sources":["../src/vault.ts"],"names":[],"mappings":"AAAA,KAAK,MAAM,CAAC,CAAC,IAAI;IACf,IAAI,EAAE,CAAC,CAAC;IACR,QAAQ,EAAE,QAAQ,CAAC;CACpB,CAAC;AAEF,KAAK,QAAQ,GAAG;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,KAAK,GAAG;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,SAAS,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF,wBAAgB,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,KAAK,CAqBxC"}
package/package.json CHANGED
@@ -1,12 +1,11 @@
1
1
  {
2
2
  "name": "@enterprisestandard/react",
3
- "version": "0.0.3-beta.3",
3
+ "version": "0.0.4",
4
4
  "description": "Enterprise Standard React Components",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
7
7
  "scripts": {
8
- "build": "bun run build.ts",
9
- "prepublishOnly": "bun run build"
8
+ "build": "NODE_ENV=production bun run build.ts"
10
9
  },
11
10
  "types": "./dist/index.d.ts",
12
11
  "exports": {
@@ -31,12 +30,22 @@
31
30
  },
32
31
  "devDependencies": {
33
32
  "@types/react": "^18.0.0",
33
+ "@types/react-dom": "^18.0.0",
34
34
  "typescript": "^5.0.0"
35
35
  },
36
36
  "author": "enterprisestandard",
37
37
  "license": "proprietary",
38
38
  "peerDependencies": {
39
- "react": "^18.0.0 || ^19.0.0"
39
+ "react": "^18.0.0 || ^19.0.0",
40
+ "react-dom": "^18.0.0 || ^19.0.0"
41
+ },
42
+ "peerDependenciesMeta": {
43
+ "react": {
44
+ "optional": true
45
+ },
46
+ "react-dom": {
47
+ "optional": true
48
+ }
40
49
  },
41
50
  "dependencies": {
42
51
  "minimatch": "^10.0.3"