@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.
- package/dist/enterprise-user.d.ts +1 -0
- package/dist/enterprise-user.d.ts.map +1 -0
- package/dist/iam.d.ts +1 -0
- package/dist/iam.d.ts.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +167 -38
- package/dist/oidc-schema.d.ts +1 -0
- package/dist/oidc-schema.d.ts.map +1 -0
- package/dist/server.d.ts +1 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/sso.d.ts +10 -5
- package/dist/sso.d.ts.map +1 -0
- package/dist/standard-schema.d.ts +1 -0
- package/dist/standard-schema.d.ts.map +1 -0
- package/dist/ui/sign-in-loading.d.ts +1 -0
- package/dist/ui/sign-in-loading.d.ts.map +1 -0
- package/dist/ui/signed-in.d.ts +1 -0
- package/dist/ui/signed-in.d.ts.map +1 -0
- package/dist/ui/signed-out.d.ts +1 -0
- package/dist/ui/signed-out.d.ts.map +1 -0
- package/dist/ui/sso-provider.d.ts +5 -0
- package/dist/ui/sso-provider.d.ts.map +1 -0
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/vault.d.ts +4 -3
- package/dist/vault.d.ts.map +1 -0
- package/package.json +13 -4
|
@@ -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
|
@@ -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
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
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 (
|
|
437
|
-
return
|
|
438
|
-
|
|
439
|
-
|
|
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
|
|
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 {
|
|
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__ */
|
|
711
|
+
return /* @__PURE__ */ jsx(Fragment, {
|
|
628
712
|
children
|
|
629
|
-
}
|
|
713
|
+
});
|
|
630
714
|
return null;
|
|
631
715
|
}
|
|
632
716
|
// src/ui/signed-in.tsx
|
|
633
|
-
import {
|
|
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__ */
|
|
721
|
+
return /* @__PURE__ */ jsx2(Fragment2, {
|
|
638
722
|
children
|
|
639
|
-
}
|
|
723
|
+
});
|
|
640
724
|
return null;
|
|
641
725
|
}
|
|
642
726
|
// src/ui/signed-out.tsx
|
|
643
|
-
import {
|
|
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__ */
|
|
732
|
+
return /* @__PURE__ */ jsx3(Fragment3, {
|
|
649
733
|
children
|
|
650
|
-
}
|
|
734
|
+
});
|
|
651
735
|
}
|
|
652
736
|
// src/ui/sso-provider.tsx
|
|
653
737
|
import { createContext, useCallback, useContext, useEffect, useState } from "react";
|
|
654
|
-
import {
|
|
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__ */
|
|
878
|
+
return /* @__PURE__ */ jsx4(CTX.Provider, {
|
|
790
879
|
value: contextValue,
|
|
791
880
|
children
|
|
792
|
-
}
|
|
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
|
|
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
|
-
|
|
888
|
-
|
|
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
|
-
|
|
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
|
|
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:
|
|
905
|
-
iam:
|
|
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,
|
package/dist/oidc-schema.d.ts
CHANGED
|
@@ -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
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
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"}
|
|
@@ -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"}
|
|
@@ -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"}
|
package/dist/ui/signed-in.d.ts
CHANGED
|
@@ -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"}
|
package/dist/ui/signed-out.d.ts
CHANGED
|
@@ -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
|
|
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
|
+
"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"
|