@gaballahtech/seba 0.3.0 → 0.5.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 (76) hide show
  1. package/ARCHITECTURE.md +4 -2
  2. package/CHANGELOG.md +130 -0
  3. package/MIGRATION.md +60 -0
  4. package/README.md +174 -8
  5. package/SECURITY.md +1 -1
  6. package/assets/seba-icon-favicon.png +0 -0
  7. package/assets/seba-icon-solid.png +0 -0
  8. package/assets/seba-logo-inverse.png +0 -0
  9. package/assets/seba-logo-monochrome.png +0 -0
  10. package/assets/seba-logo-primary.png +0 -0
  11. package/dist/assets/icons.d.ts +32 -0
  12. package/dist/assets/icons.d.ts.map +1 -0
  13. package/dist/assets/icons.js +30 -0
  14. package/dist/assets/icons.js.map +1 -0
  15. package/dist/assets/png-data.d.ts +8 -0
  16. package/dist/assets/png-data.d.ts.map +1 -0
  17. package/dist/assets/png-data.js +13 -0
  18. package/dist/assets/png-data.js.map +1 -0
  19. package/dist/browser/platform.d.ts +6 -0
  20. package/dist/browser/platform.d.ts.map +1 -1
  21. package/dist/browser/platform.js +17 -0
  22. package/dist/browser/platform.js.map +1 -1
  23. package/dist/browser/storage.d.ts +3 -2
  24. package/dist/browser/storage.d.ts.map +1 -1
  25. package/dist/browser/storage.js +26 -14
  26. package/dist/browser/storage.js.map +1 -1
  27. package/dist/cli.d.ts +61 -0
  28. package/dist/cli.d.ts.map +1 -0
  29. package/dist/cli.js +223 -0
  30. package/dist/cli.js.map +1 -0
  31. package/dist/core/client.d.ts +18 -8
  32. package/dist/core/client.d.ts.map +1 -1
  33. package/dist/core/client.js +130 -6
  34. package/dist/core/client.js.map +1 -1
  35. package/dist/core/errors.d.ts +10 -1
  36. package/dist/core/errors.d.ts.map +1 -1
  37. package/dist/core/errors.js +7 -2
  38. package/dist/core/errors.js.map +1 -1
  39. package/dist/core/events.d.ts +27 -0
  40. package/dist/core/events.d.ts.map +1 -0
  41. package/dist/core/events.js +45 -0
  42. package/dist/core/events.js.map +1 -0
  43. package/dist/core/http.d.ts.map +1 -1
  44. package/dist/core/http.js +6 -1
  45. package/dist/core/http.js.map +1 -1
  46. package/dist/core/oidc.d.ts +17 -0
  47. package/dist/core/oidc.d.ts.map +1 -1
  48. package/dist/core/oidc.js +61 -27
  49. package/dist/core/oidc.js.map +1 -1
  50. package/dist/core/session.d.ts +10 -3
  51. package/dist/core/session.d.ts.map +1 -1
  52. package/dist/core/session.js +131 -20
  53. package/dist/core/session.js.map +1 -1
  54. package/dist/element.d.ts +43 -0
  55. package/dist/element.d.ts.map +1 -0
  56. package/dist/element.js +416 -0
  57. package/dist/element.js.map +1 -0
  58. package/dist/index.d.ts +6 -1
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +3 -0
  61. package/dist/index.js.map +1 -1
  62. package/dist/pod.d.ts +50 -0
  63. package/dist/pod.d.ts.map +1 -0
  64. package/dist/pod.js +264 -0
  65. package/dist/pod.js.map +1 -0
  66. package/dist/react/index.d.ts +52 -0
  67. package/dist/react/index.d.ts.map +1 -0
  68. package/dist/react/index.js +87 -0
  69. package/dist/react/index.js.map +1 -0
  70. package/dist/seba.d.ts +40 -1
  71. package/dist/seba.d.ts.map +1 -1
  72. package/dist/seba.js +90 -2
  73. package/dist/seba.js.map +1 -1
  74. package/dist/types.d.ts +110 -6
  75. package/dist/types.d.ts.map +1 -1
  76. package/package.json +27 -1
package/dist/types.d.ts CHANGED
@@ -33,8 +33,10 @@ export interface SebaConfig {
33
33
  * Session storage backend. Defaults to `"indexeddb"` in browsers and
34
34
  * `"memory"` in Node.js.
35
35
  *
36
- * `"indexeddb"` persists only the refresh token, the DPoP private key and
37
- * non-secret session metadata. Access tokens are never persisted.
36
+ * `"indexeddb"` persists the refresh token, the DPoP private key and non-secret
37
+ * session metadata. If the provider issues no refresh token, the access token is
38
+ * persisted as well (soft-persist) so a reload can resume the session until it
39
+ * expires; refresh-token sessions never persist an access token.
38
40
  */
39
41
  storage?: StorageKind;
40
42
  /**
@@ -73,6 +75,69 @@ export interface SebaConfig {
73
75
  * ```
74
76
  */
75
77
  allowNonCompliantAudience?: boolean;
78
+ /**
79
+ * Opt-in escape hatch for non-compliant Solid providers (see Security guide).
80
+ *
81
+ * Solid-OIDC §8.1 requires the ID token to carry a `cnf` claim with a `jkt` member
82
+ * binding it to the DPoP key when the provider advertises the `webid` scope. Some
83
+ * real-world providers (e.g. `solidcommunity.net`) omit `cnf.jkt` from the ID token
84
+ * while still issuing DPoP-bound access tokens. When `true`, the `cnf.jkt` presence
85
+ * requirement is relaxed for such ID tokens — everything else stays enforced: DPoP
86
+ * proofs are still signed and required on every request, an ID token that DOES carry
87
+ * `cnf.jkt` is still checked against the session key, and signature verification,
88
+ * `iss`, `exp`/`iat`, `nonce`, `azp` and the `client_id` audience check all remain on.
89
+ *
90
+ * @default false
91
+ */
92
+ allowNonCompliantCnf?: boolean;
93
+ /**
94
+ * Compliance relaxations keyed by provider issuer URL, applied only when the login
95
+ * targets that exact issuer (compared after normalizing an optional trailing slash).
96
+ * Entries override the global boolean flags for that provider, and providers NOT
97
+ * listed keep full strict validation — prefer this over the global flags whenever
98
+ * the application talks to more than one provider.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * tolerances: {
103
+ * "https://solidcommunity.net/": { allowNonCompliantAudience: true, allowNonCompliantCnf: true },
104
+ * }
105
+ * ```
106
+ */
107
+ tolerances?: Record<string, ComplianceTolerances>;
108
+ /**
109
+ * How many `use_dpop_nonce` challenges the token endpoint may issue before SEBA
110
+ * gives up. Each retry signs a brand-new DPoP proof with the fresh nonce. The
111
+ * resource-fetch path applies the same count. Providers that rotate nonces on
112
+ * every request benefit from 2–3.
113
+ *
114
+ * @defaultValue 1
115
+ */
116
+ maxDpopNonceRetries?: number;
117
+ /**
118
+ * Storage namespace enabling more than one concurrent session in the same browser
119
+ * profile (multi-account). Each distinct account value gets its own IndexedDB
120
+ * database (`seba:<account>`) and sessionStorage transaction key, so two `Seba`
121
+ * instances with different accounts do not overwrite each other. Node.js sessions
122
+ * are already per-instance in memory.
123
+ *
124
+ * @defaultValue undefined (single unnamed session, as in earlier releases)
125
+ */
126
+ account?: string;
127
+ }
128
+ /** Relaxations for a single provider, used by {@link SebaConfig.tolerances}. */
129
+ export interface ComplianceTolerances {
130
+ /** Relax the `"solid"` ID-token audience requirement for this provider. */
131
+ allowNonCompliantAudience?: boolean;
132
+ /** Relax the `cnf.jkt` presence requirement on this provider's ID tokens. */
133
+ allowNonCompliantCnf?: boolean;
134
+ }
135
+ /** Token-free snapshot of session state, safe to render or log. */
136
+ export interface SessionInfo {
137
+ webId: string;
138
+ provider: string;
139
+ /** Access token expiry (epoch milliseconds), or `null` when unknown. */
140
+ accessTokenExpiresAt: number | null;
76
141
  }
77
142
  /** Optional identity hints for {@link Seba.login}. */
78
143
  export interface LoginOptions {
@@ -94,11 +159,30 @@ export interface Session {
94
159
  /** Identity provider issuer URL that was validated for this session. */
95
160
  provider: string;
96
161
  }
162
+ /** Why a session changed. */
163
+ export type SessionChangeReason = "login" | "logout" | "restore" | "expired";
164
+ /**
165
+ * Emitted after every session transition.
166
+ *
167
+ * `expired` fires at most once per session, the first time SEBA determines that the
168
+ * session cannot continue (revoked grant, expired stored token with no refresh token,
169
+ * or an access token rejected with no way to renew it). It is also emitted with
170
+ * `session: null`.
171
+ */
172
+ export interface SessionChangeEvent {
173
+ /** Transition that just happened. */
174
+ readonly reason: SessionChangeReason;
175
+ /** Session after the transition, or `null` after logout/expiry. */
176
+ readonly session: Session | null;
177
+ }
178
+ /** Listener accepted by `onSessionChange`. */
179
+ export type SessionChangeListener = (event: SessionChangeEvent) => void;
97
180
  /**
98
181
  * A token response that passed validation.
99
182
  *
100
- * Access tokens are held in memory only — never persisted or exposed by the
101
- * public API.
183
+ * Access tokens are never exposed by the public API. They stay in memory, except
184
+ * when the provider issues no refresh token: then the access token is persisted so
185
+ * a reload can resume the session until it expires.
102
186
  */
103
187
  export interface TokenSet {
104
188
  /** DPoP-bound access token. In memory only. */
@@ -169,6 +253,17 @@ export interface OIDCConfiguration {
169
253
  * `client_id` audience check. Default `false`.
170
254
  */
171
255
  allowNonCompliantAudience?: boolean;
256
+ /**
257
+ * Opt-in escape hatch for non-compliant Solid providers (see SECURITY.md).
258
+ *
259
+ * When `true`, the `cnf.jkt` presence requirement on the ID token is relaxed for
260
+ * providers whose ID tokens carry no DPoP binding while the provider still issues
261
+ * DPoP-bound access tokens (e.g. `solidcommunity.net`). DPoP proofs remain mandatory
262
+ * on every request, an ID token that DOES carry `cnf.jkt` is still checked against
263
+ * the session key, and signature, `iss`, `exp`/`iat`, `nonce` and the `client_id`
264
+ * audience check all stay enforced. Default `false`.
265
+ */
266
+ allowNonCompliantCnf?: boolean;
172
267
  }
173
268
  /** A validated Solid Client ID Document. */
174
269
  export interface ClientIDDocument {
@@ -212,8 +307,17 @@ export interface PersistedSession {
212
307
  provider: string;
213
308
  /** Client identifier the session was created for. */
214
309
  clientId: string;
215
- /** Refresh token. Never an access token. */
216
- refreshToken: string;
310
+ /** Refresh token, when the provider issued one. */
311
+ refreshToken?: string;
312
+ /**
313
+ * Access token, stored only when the provider issued no refresh token so that
314
+ * {@link Seba.restoreSession} can resume the session until it expires.
315
+ */
316
+ accessToken?: string;
317
+ /** Expiry of the stored access token (epoch ms), or `null` when unknown. */
318
+ accessTokenExpiresAt?: number | null;
319
+ /** `sub` claim, when known. */
320
+ subject?: string;
217
321
  /** DPoP private key bound to the refresh token. */
218
322
  key: PersistedKey;
219
323
  /** Granted scopes, when known. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gaballahtech/seba",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Developer-friendly Solid-OIDC authentication: login, session restoration and DPoP-signed fetch in four methods.",
5
5
  "license": "MIT",
6
6
  "author": "gaballahtech",
@@ -17,26 +17,41 @@
17
17
  "module": "./dist/index.js",
18
18
  "types": "./dist/index.d.ts",
19
19
  "sideEffects": false,
20
+ "browser": {
21
+ "./dist/node/index.js": false,
22
+ "./dist/node/platform.js": false
23
+ },
20
24
  "exports": {
21
25
  ".": {
22
26
  "types": "./dist/index.d.ts",
27
+ "browser": "./dist/browser/index.js",
23
28
  "default": "./dist/index.js"
24
29
  },
25
30
  "./browser": {
26
31
  "types": "./dist/browser/index.d.ts",
32
+ "browser": "./dist/browser/index.js",
27
33
  "default": "./dist/browser/index.js"
28
34
  },
29
35
  "./node": {
30
36
  "types": "./dist/node/index.d.ts",
37
+ "node": "./dist/node/index.js",
31
38
  "default": "./dist/node/index.js"
32
39
  },
40
+ "./react": {
41
+ "types": "./dist/react/index.d.ts",
42
+ "import": "./dist/react/index.js",
43
+ "default": "./dist/react/index.js"
44
+ },
45
+ "./assets/*": "./assets/*",
33
46
  "./package.json": "./package.json"
34
47
  },
35
48
  "files": [
36
49
  "dist",
50
+ "assets",
37
51
  "examples",
38
52
  "README.md",
39
53
  "CHANGELOG.md",
54
+ "MIGRATION.md",
40
55
  "BUILD_REPORT.md",
41
56
  "VALIDATION_REPORT.md",
42
57
  "LICENSE",
@@ -70,6 +85,14 @@
70
85
  "idb": "^8.0.3",
71
86
  "jose": "^6.1.0"
72
87
  },
88
+ "peerDependencies": {
89
+ "react": ">=18"
90
+ },
91
+ "peerDependenciesMeta": {
92
+ "react": {
93
+ "optional": true
94
+ }
95
+ },
73
96
  "devDependencies": {
74
97
  "@types/node": "^24.7.0",
75
98
  "@types/react": "^19.3.0",
@@ -81,5 +104,8 @@
81
104
  "typescript": "^5.9.3",
82
105
  "vite": "^8.3.6",
83
106
  "vitest": "^5.1.0"
107
+ },
108
+ "bin": {
109
+ "seba": "./dist/cli.js"
84
110
  }
85
111
  }