base-idp 1.0.0 → 1.1.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.
- package/dist/browser-paseto.d.ts +13 -0
- package/dist/browser-paseto.d.ts.map +1 -0
- package/dist/browser-paseto.js +116 -0
- package/dist/browser-paseto.js.map +1 -0
- package/dist/browser.d.ts +133 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +382 -0
- package/dist/browser.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +11 -3
- package/dist/index.js.map +1 -1
- package/dist/react.d.ts +100 -1
- package/dist/react.d.ts.map +1 -1
- package/dist/react.js +200 -0
- package/dist/react.js.map +1 -1
- package/dist/server.d.ts +36 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +51 -0
- package/dist/server.js.map +1 -1
- package/dist/types.d.ts +64 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/vite.d.ts +48 -4
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +59 -6
- package/dist/vite.js.map +1 -1
- package/package.json +16 -3
package/dist/vite.d.ts
CHANGED
|
@@ -1,6 +1,50 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Vite integration for the Base IdP SDK.
|
|
3
|
+
*
|
|
4
|
+
* Returns a full BrowserBaseIdpClient so Vite/browser apps get the complete
|
|
5
|
+
* auth flow: PKCE, callback handling, session management, and token refresh.
|
|
6
|
+
*
|
|
7
|
+
* PKCE public clients only — if the discovered client is confidential
|
|
8
|
+
* (requires a client_secret), loginWithRedirect() will throw and direct the
|
|
9
|
+
* app to use a backend callback route instead.
|
|
10
|
+
*/
|
|
11
|
+
import { BrowserBaseIdpClient } from "./browser.js";
|
|
12
|
+
import type { BrowserBaseIdpConfig } from "./types.js";
|
|
3
13
|
export type ViteBaseIdpEnv = Record<string, string | boolean | undefined>;
|
|
4
|
-
|
|
5
|
-
|
|
14
|
+
/**
|
|
15
|
+
* Build a BrowserBaseIdpConfig from Vite's import.meta.env (or a plain
|
|
16
|
+
* Record). Reads VITE_BASE_IDP_* first, falls back to BASE_IDP_*.
|
|
17
|
+
*
|
|
18
|
+
* Never reads BASE_IDP_CLIENT_SECRET — secrets must never appear in
|
|
19
|
+
* browser bundles.
|
|
20
|
+
*/
|
|
21
|
+
export declare function baseIdpConfigFromViteEnv(env: ViteBaseIdpEnv, overrides?: Partial<BrowserBaseIdpConfig>): BrowserBaseIdpConfig;
|
|
22
|
+
/**
|
|
23
|
+
* Create a full-featured browser auth client from Vite's import.meta.env.
|
|
24
|
+
*
|
|
25
|
+
* Returns a BrowserBaseIdpClient — the same object used by
|
|
26
|
+
* createBrowserBaseIdpAuth() — so the app gets PKCE, callback handling,
|
|
27
|
+
* session management, auto-refresh, and onSessionChange events.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* // src/auth.ts
|
|
31
|
+
* import { createViteBaseIdpAuth } from "base-idp/vite";
|
|
32
|
+
* export const auth = createViteBaseIdpAuth(import.meta.env);
|
|
33
|
+
*
|
|
34
|
+
* // main.tsx — on app load
|
|
35
|
+
* await auth.init();
|
|
36
|
+
*
|
|
37
|
+
* // If this page is the OAuth callback
|
|
38
|
+
* if (window.location.search.includes("code=")) {
|
|
39
|
+
* const { principal, returnTo } = await auth.handleRedirectCallback();
|
|
40
|
+
* window.history.replaceState({}, "", returnTo ?? "/");
|
|
41
|
+
* }
|
|
42
|
+
*
|
|
43
|
+
* // Start login
|
|
44
|
+
* await auth.loginWithRedirect({ returnTo: "/dashboard" });
|
|
45
|
+
*
|
|
46
|
+
* // Get the current user synchronously
|
|
47
|
+
* const user = auth.getUser();
|
|
48
|
+
*/
|
|
49
|
+
export declare function createViteBaseIdpAuth(env: ViteBaseIdpEnv, overrides?: Partial<BrowserBaseIdpConfig>): BrowserBaseIdpClient;
|
|
6
50
|
//# sourceMappingURL=vite.d.ts.map
|
package/dist/vite.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,oBAAoB,EAA4B,MAAM,cAAc,CAAC;AAC9E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvD,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAE1E;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,cAAc,EACnB,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,oBAAoB,CAetB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,cAAc,EACnB,SAAS,GAAE,OAAO,CAAC,oBAAoB,CAAM,GAC5C,oBAAoB,CAEtB"}
|
package/dist/vite.js
CHANGED
|
@@ -1,20 +1,73 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Vite integration for the Base IdP SDK.
|
|
3
|
+
*
|
|
4
|
+
* Returns a full BrowserBaseIdpClient so Vite/browser apps get the complete
|
|
5
|
+
* auth flow: PKCE, callback handling, session management, and token refresh.
|
|
6
|
+
*
|
|
7
|
+
* PKCE public clients only — if the discovered client is confidential
|
|
8
|
+
* (requires a client_secret), loginWithRedirect() will throw and direct the
|
|
9
|
+
* app to use a backend callback route instead.
|
|
10
|
+
*/
|
|
11
|
+
import { BrowserBaseIdpClient, createBrowserBaseIdpAuth } from "./browser.js";
|
|
12
|
+
/**
|
|
13
|
+
* Build a BrowserBaseIdpConfig from Vite's import.meta.env (or a plain
|
|
14
|
+
* Record). Reads VITE_BASE_IDP_* first, falls back to BASE_IDP_*.
|
|
15
|
+
*
|
|
16
|
+
* Never reads BASE_IDP_CLIENT_SECRET — secrets must never appear in
|
|
17
|
+
* browser bundles.
|
|
18
|
+
*/
|
|
3
19
|
export function baseIdpConfigFromViteEnv(env, overrides = {}) {
|
|
4
20
|
return {
|
|
5
21
|
key: stringEnv(env, "VITE_BASE_IDP_KEY", "BASE_IDP_KEY", overrides.key),
|
|
6
22
|
issuer: stringEnv(env, "VITE_BASE_IDP_ISSUER", "BASE_IDP_ISSUER", overrides.issuer),
|
|
7
|
-
|
|
23
|
+
// Never read a client secret — browser clients are always public
|
|
24
|
+
redirectUri: overrides.redirectUri ??
|
|
25
|
+
optionalStringEnv(env, "VITE_BASE_IDP_REDIRECT_URI", "BASE_IDP_REDIRECT_URI"),
|
|
26
|
+
scopes: overrides.scopes ??
|
|
27
|
+
optionalStringEnv(env, "VITE_BASE_IDP_SCOPES", "BASE_IDP_SCOPES"),
|
|
28
|
+
audience: overrides.audience ??
|
|
29
|
+
optionalStringEnv(env, "VITE_BASE_IDP_AUDIENCE", "BASE_IDP_AUDIENCE"),
|
|
30
|
+
persistSession: overrides.persistSession ?? false,
|
|
31
|
+
storagePrefix: overrides.storagePrefix,
|
|
8
32
|
fetch: overrides.fetch,
|
|
9
33
|
};
|
|
10
34
|
}
|
|
35
|
+
/**
|
|
36
|
+
* Create a full-featured browser auth client from Vite's import.meta.env.
|
|
37
|
+
*
|
|
38
|
+
* Returns a BrowserBaseIdpClient — the same object used by
|
|
39
|
+
* createBrowserBaseIdpAuth() — so the app gets PKCE, callback handling,
|
|
40
|
+
* session management, auto-refresh, and onSessionChange events.
|
|
41
|
+
*
|
|
42
|
+
* @example
|
|
43
|
+
* // src/auth.ts
|
|
44
|
+
* import { createViteBaseIdpAuth } from "base-idp/vite";
|
|
45
|
+
* export const auth = createViteBaseIdpAuth(import.meta.env);
|
|
46
|
+
*
|
|
47
|
+
* // main.tsx — on app load
|
|
48
|
+
* await auth.init();
|
|
49
|
+
*
|
|
50
|
+
* // If this page is the OAuth callback
|
|
51
|
+
* if (window.location.search.includes("code=")) {
|
|
52
|
+
* const { principal, returnTo } = await auth.handleRedirectCallback();
|
|
53
|
+
* window.history.replaceState({}, "", returnTo ?? "/");
|
|
54
|
+
* }
|
|
55
|
+
*
|
|
56
|
+
* // Start login
|
|
57
|
+
* await auth.loginWithRedirect({ returnTo: "/dashboard" });
|
|
58
|
+
*
|
|
59
|
+
* // Get the current user synchronously
|
|
60
|
+
* const user = auth.getUser();
|
|
61
|
+
*/
|
|
11
62
|
export function createViteBaseIdpAuth(env, overrides = {}) {
|
|
12
|
-
return
|
|
63
|
+
return createBrowserBaseIdpAuth(baseIdpConfigFromViteEnv(env, overrides));
|
|
13
64
|
}
|
|
65
|
+
// ── Private helpers ─────────────────────────────────────────────────────────
|
|
14
66
|
function stringEnv(env, publicKey, fallbackKey, fallback) {
|
|
15
67
|
const value = optionalStringEnv(env, publicKey, fallbackKey) ?? fallback;
|
|
16
|
-
if (!value)
|
|
17
|
-
throw new Error(`
|
|
68
|
+
if (!value) {
|
|
69
|
+
throw new Error(`Base IdP: ${publicKey} is required. Set it in your .env file or pass it as an override.`);
|
|
70
|
+
}
|
|
18
71
|
return value;
|
|
19
72
|
}
|
|
20
73
|
function optionalStringEnv(env, publicKey, fallbackKey) {
|
package/dist/vite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAK9E;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CACtC,GAAmB,EACnB,YAA2C,EAAE;IAE7C,OAAO;QACL,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,mBAAmB,EAAE,cAAc,EAAE,SAAS,CAAC,GAAG,CAAC;QACvE,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC;QACnF,iEAAiE;QACjE,WAAW,EAAE,SAAS,CAAC,WAAW;YAChC,iBAAiB,CAAC,GAAG,EAAE,4BAA4B,EAAE,uBAAuB,CAAC;QAC/E,MAAM,EAAE,SAAS,CAAC,MAAM;YACtB,iBAAiB,CAAC,GAAG,EAAE,sBAAsB,EAAE,iBAAiB,CAAC;QACnE,QAAQ,EAAE,SAAS,CAAC,QAAQ;YAC1B,iBAAiB,CAAC,GAAG,EAAE,wBAAwB,EAAE,mBAAmB,CAAC;QACvE,cAAc,EAAE,SAAS,CAAC,cAAc,IAAI,KAAK;QACjD,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,KAAK,EAAE,SAAS,CAAC,KAAK;KACvB,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,qBAAqB,CACnC,GAAmB,EACnB,YAA2C,EAAE;IAE7C,OAAO,wBAAwB,CAAC,wBAAwB,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;AAC5E,CAAC;AAED,+EAA+E;AAE/E,SAAS,SAAS,CAChB,GAAmB,EACnB,SAAiB,EACjB,WAAmB,EACnB,QAAiB;IAEjB,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,EAAE,SAAS,EAAE,WAAW,CAAC,IAAI,QAAQ,CAAC;IACzE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,KAAK,CACb,aAAa,SAAS,mEAAmE,CAC1F,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CACxB,GAAmB,EACnB,SAAiB,EACjB,WAAmB;IAEnB,MAAM,KAAK,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;IACjD,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC9E,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "base-idp",
|
|
3
|
-
"version": "1.
|
|
4
|
-
"description": "Base IdP SDK for React, Next.js, SvelteKit, Vite, and
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "Base IdP SDK — browser Client SDK and server SDK for React, Next.js, SvelteKit, Vite, Express, NestJS, and raw Node.",
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"publishConfig": {
|
|
@@ -13,13 +13,17 @@
|
|
|
13
13
|
"README.md"
|
|
14
14
|
],
|
|
15
15
|
"bin": {
|
|
16
|
-
"base-idp": "
|
|
16
|
+
"base-idp": "dist/cli.js"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
20
20
|
"types": "./dist/index.d.ts",
|
|
21
21
|
"import": "./dist/index.js"
|
|
22
22
|
},
|
|
23
|
+
"./browser": {
|
|
24
|
+
"types": "./dist/browser.d.ts",
|
|
25
|
+
"import": "./dist/browser.js"
|
|
26
|
+
},
|
|
23
27
|
"./server": {
|
|
24
28
|
"types": "./dist/server.d.ts",
|
|
25
29
|
"import": "./dist/server.js"
|
|
@@ -53,8 +57,17 @@
|
|
|
53
57
|
"engines": {
|
|
54
58
|
"node": ">=20"
|
|
55
59
|
},
|
|
60
|
+
"peerDependencies": {
|
|
61
|
+
"react": ">=18"
|
|
62
|
+
},
|
|
63
|
+
"peerDependenciesMeta": {
|
|
64
|
+
"react": {
|
|
65
|
+
"optional": true
|
|
66
|
+
}
|
|
67
|
+
},
|
|
56
68
|
"devDependencies": {
|
|
57
69
|
"@types/node": "^22.13.10",
|
|
70
|
+
"@types/react": "^18.3.0",
|
|
58
71
|
"typescript": "^5.8.2"
|
|
59
72
|
}
|
|
60
73
|
}
|