oidc-auth-client 0.0.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +240 -0
  3. package/dist/index.d.ts +21 -0
  4. package/dist/index.d.ts.map +1 -0
  5. package/dist/index.js +21 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/src/auth/Client.d.ts +135 -0
  8. package/dist/src/auth/Client.d.ts.map +1 -0
  9. package/dist/src/auth/Client.js +734 -0
  10. package/dist/src/auth/Client.js.map +1 -0
  11. package/dist/src/auth/Events.d.ts +51 -0
  12. package/dist/src/auth/Events.d.ts.map +1 -0
  13. package/dist/src/auth/Events.js +139 -0
  14. package/dist/src/auth/Events.js.map +1 -0
  15. package/dist/src/auth/Session.d.ts +132 -0
  16. package/dist/src/auth/Session.d.ts.map +1 -0
  17. package/dist/src/auth/Session.js +355 -0
  18. package/dist/src/auth/Session.js.map +1 -0
  19. package/dist/src/auth/Settings.d.ts +178 -0
  20. package/dist/src/auth/Settings.d.ts.map +1 -0
  21. package/dist/src/auth/Settings.js +210 -0
  22. package/dist/src/auth/Settings.js.map +1 -0
  23. package/dist/src/crypto/Crypto.d.ts +14 -0
  24. package/dist/src/crypto/Crypto.d.ts.map +1 -0
  25. package/dist/src/crypto/Crypto.js +107 -0
  26. package/dist/src/crypto/Crypto.js.map +1 -0
  27. package/dist/src/models/User.d.ts +31 -0
  28. package/dist/src/models/User.d.ts.map +1 -0
  29. package/dist/src/models/User.js +57 -0
  30. package/dist/src/models/User.js.map +1 -0
  31. package/dist/src/navigation/Navigator.d.ts +106 -0
  32. package/dist/src/navigation/Navigator.d.ts.map +1 -0
  33. package/dist/src/navigation/Navigator.js +441 -0
  34. package/dist/src/navigation/Navigator.js.map +1 -0
  35. package/dist/src/protocol/Requests.d.ts +50 -0
  36. package/dist/src/protocol/Requests.d.ts.map +1 -0
  37. package/dist/src/protocol/Requests.js +109 -0
  38. package/dist/src/protocol/Requests.js.map +1 -0
  39. package/dist/src/protocol/ResponseValidator.d.ts +39 -0
  40. package/dist/src/protocol/ResponseValidator.d.ts.map +1 -0
  41. package/dist/src/protocol/ResponseValidator.js +366 -0
  42. package/dist/src/protocol/ResponseValidator.js.map +1 -0
  43. package/dist/src/protocol/Responses.d.ts +44 -0
  44. package/dist/src/protocol/Responses.d.ts.map +1 -0
  45. package/dist/src/protocol/Responses.js +77 -0
  46. package/dist/src/protocol/Responses.js.map +1 -0
  47. package/dist/src/protocol/TokenService.d.ts +38 -0
  48. package/dist/src/protocol/TokenService.d.ts.map +1 -0
  49. package/dist/src/protocol/TokenService.js +259 -0
  50. package/dist/src/protocol/TokenService.js.map +1 -0
  51. package/dist/src/services/Http.d.ts +55 -0
  52. package/dist/src/services/Http.d.ts.map +1 -0
  53. package/dist/src/services/Http.js +276 -0
  54. package/dist/src/services/Http.js.map +1 -0
  55. package/dist/src/services/Timer.d.ts +18 -0
  56. package/dist/src/services/Timer.d.ts.map +1 -0
  57. package/dist/src/services/Timer.js +56 -0
  58. package/dist/src/services/Timer.js.map +1 -0
  59. package/dist/src/storage/Storage.d.ts +23 -0
  60. package/dist/src/storage/Storage.d.ts.map +1 -0
  61. package/dist/src/storage/Storage.js +65 -0
  62. package/dist/src/storage/Storage.js.map +1 -0
  63. package/dist/src/types/crypto.d.ts +32 -0
  64. package/dist/src/types/crypto.d.ts.map +1 -0
  65. package/dist/src/types/crypto.js +3 -0
  66. package/dist/src/types/crypto.js.map +1 -0
  67. package/dist/src/types/navigator.d.ts +33 -0
  68. package/dist/src/types/navigator.d.ts.map +1 -0
  69. package/dist/src/types/navigator.js +3 -0
  70. package/dist/src/types/navigator.js.map +1 -0
  71. package/dist/src/types/storage.d.ts +7 -0
  72. package/dist/src/types/storage.d.ts.map +1 -0
  73. package/dist/src/types/storage.js +3 -0
  74. package/dist/src/types/storage.js.map +1 -0
  75. package/dist/src/types/user.d.ts +6 -0
  76. package/dist/src/types/user.d.ts.map +1 -0
  77. package/dist/src/types/user.js +3 -0
  78. package/dist/src/types/user.js.map +1 -0
  79. package/dist/src/utils/Event.d.ts +10 -0
  80. package/dist/src/utils/Event.d.ts.map +1 -0
  81. package/dist/src/utils/Event.js +24 -0
  82. package/dist/src/utils/Event.js.map +1 -0
  83. package/dist/src/utils/Global.d.ts +14 -0
  84. package/dist/src/utils/Global.d.ts.map +1 -0
  85. package/dist/src/utils/Global.js +50 -0
  86. package/dist/src/utils/Global.js.map +1 -0
  87. package/dist/src/utils/Log.d.ts +30 -0
  88. package/dist/src/utils/Log.d.ts.map +1 -0
  89. package/dist/src/utils/Log.js +68 -0
  90. package/dist/src/utils/Log.js.map +1 -0
  91. package/package.json +91 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Callis
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,240 @@
1
+ # oidc-auth-client
2
+
3
+ OpenID Connect (OIDC) and OAuth 2.0 client library for JavaScript/TypeScript browser applications.
4
+
5
+ Handles authentication flows (redirect, popup, silent iframe), token lifecycle (storage, expiry, auto-renewal), session monitoring, and logout — against any standards-compliant OIDC provider (Keycloak, Auth0, Ory Hydra, Azure AD, etc.).
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install oidc-auth-client
11
+ ```
12
+
13
+ ## Quick Start
14
+
15
+ ```typescript
16
+ import { UserManager } from 'oidc-auth-client';
17
+
18
+ const userManager = new UserManager({
19
+ authority: 'https://your-idp.com',
20
+ client_id: 'your-client-id',
21
+ redirect_uri: 'https://your-app.com/callback',
22
+ response_type: 'code',
23
+ scope: 'openid profile email',
24
+ });
25
+
26
+ // Initiate login
27
+ await userManager.signinRedirect();
28
+
29
+ // Handle the callback page
30
+ const user = await userManager.signinRedirectCallback();
31
+ console.log(user.profile.sub);
32
+
33
+ // Get the current user
34
+ const current = await userManager.getUser();
35
+
36
+ // Sign out
37
+ await userManager.signoutRedirect();
38
+ ```
39
+
40
+ ## TypeScript Usage
41
+
42
+ Types are generated from source — no separate `@types` package needed.
43
+
44
+ ```typescript
45
+ import {
46
+ UserManager,
47
+ UserManagerSettings,
48
+ User,
49
+ UserProfile,
50
+ } from 'oidc-auth-client';
51
+
52
+ const settings: UserManagerSettings = {
53
+ authority: 'https://your-idp.com',
54
+ client_id: 'your-client-id',
55
+ redirect_uri: 'https://your-app.com/callback',
56
+ response_type: 'code',
57
+ scope: 'openid profile email',
58
+ automaticSilentRenew: true,
59
+ silent_redirect_uri: 'https://your-app.com/silent-renew.html',
60
+ };
61
+
62
+ const userManager = new UserManager(settings);
63
+
64
+ userManager.events.addUserLoaded((user: User) => {
65
+ console.log('User loaded:', user.profile.sub);
66
+ });
67
+
68
+ userManager.events.addAccessTokenExpired(() => {
69
+ console.log('Token expired');
70
+ });
71
+ ```
72
+
73
+ ## Subpath Imports
74
+
75
+ ```typescript
76
+ // Main entry — all public exports
77
+ import { UserManager, OidcClient } from 'oidc-auth-client';
78
+
79
+ // Auth only
80
+ import { UserManager } from 'oidc-auth-client/auth';
81
+
82
+ // Protocol utilities
83
+ import { TokenRevocationClient } from 'oidc-auth-client/protocol';
84
+
85
+ // Storage
86
+ import { WebStorageStateStore, InMemoryWebStorage } from 'oidc-auth-client/storage';
87
+
88
+ // Utilities
89
+ import { Log } from 'oidc-auth-client/utils';
90
+ ```
91
+
92
+ ## Key Features
93
+
94
+ - **Authorization Code + PKCE** — secure default; hybrid flow not supported
95
+ - **Silent Renew** — automatic token refresh via hidden iframe
96
+ - **Session Monitoring** — OP check_session iframe integration
97
+ - **Popup & Redirect** — flexible authentication UX
98
+ - **Cordova** — mobile WebView support
99
+ - **Web Crypto API** — native browser crypto via [`jose`](https://github.com/panva/jose); no polyfills
100
+ - **TypeScript** — source-level types; declarations auto-generated by `tsc`
101
+ - **Tree-shakeable** — `sideEffects: false`
102
+
103
+ ## Public API
104
+
105
+ ```typescript
106
+ // Auth
107
+ export { OidcClient, UserManager }
108
+ export type { CreateSigninRequestArgs, CreateSignoutRequestArgs, UserManagerSigninArgs }
109
+ export { OidcClientSettings, UserManagerSettings }
110
+ export type { OidcClientSettingsArgs, UserManagerSettingsArgs }
111
+ export { AccessTokenEvents, UserManagerEvents }
112
+ export { SessionMonitor, SilentRenewService, State, SigninState }
113
+ export type { StateArgs, SigninStateArgs }
114
+
115
+ // Models
116
+ export { User }
117
+ export type { UserData, UserProfile }
118
+
119
+ // Storage
120
+ export { WebStorageStateStore, InMemoryWebStorage }
121
+ export type { StateStore }
122
+
123
+ // Services
124
+ export { MetadataService }
125
+ export type { OidcMetadata }
126
+
127
+ // Navigation
128
+ export { CheckSessionIFrame, RedirectNavigator, PopupNavigator, IFrameNavigator }
129
+ export { CordovaPopupNavigator, CordovaIFrameNavigator }
130
+ export type { NavigateParams }
131
+
132
+ // Protocol
133
+ export { TokenRevocationClient }
134
+ export type { TokenSettings }
135
+
136
+ // Utils
137
+ export { Log, Global }
138
+ ```
139
+
140
+ ## Project Structure
141
+
142
+ ```
143
+ src/
144
+ ├── auth/ # Authentication core
145
+ │ ├── Client.ts # OidcClient + UserManager
146
+ │ ├── Settings.ts # OidcClientSettings + UserManagerSettings
147
+ │ ├── Events.ts # AccessTokenEvents + UserManagerEvents
148
+ │ └── Session.ts # State, SigninState, SessionMonitor, SilentRenewService
149
+
150
+ ├── protocol/ # OIDC protocol
151
+ │ ├── Requests.ts # SigninRequest + SignoutRequest
152
+ │ ├── Responses.ts # SigninResponse + SignoutResponse + ErrorResponse
153
+ │ ├── ResponseValidator.ts # Token + claims validation
154
+ │ └── TokenService.ts # TokenClient + TokenRevocationClient + UserInfoService
155
+
156
+ ├── navigation/ # Browser navigation strategies
157
+ │ └── Navigator.ts # Redirect, Popup, IFrame, Cordova navigators
158
+
159
+ ├── storage/ # Client-side persistence
160
+ │ └── Storage.ts # WebStorageStateStore + InMemoryWebStorage
161
+
162
+ ├── crypto/ # Cryptographic operations
163
+ │ └── Crypto.ts # JoseUtil (jose-based) + generateRandom
164
+
165
+ ├── services/ # Infrastructure
166
+ │ ├── Http.ts # UrlUtility + JsonService + MetadataService
167
+ │ └── Timer.ts # Timer + ClockService
168
+
169
+ ├── models/ # Domain models
170
+ │ └── User.ts # User
171
+
172
+ ├── types/ # Shared contracts
173
+ │ ├── navigator.ts # NavigateParams, NavigatorResponse, INavigator
174
+ │ ├── crypto.ts # JwtHeader, JwkKey, JwtPayload, ParsedJwt
175
+ │ ├── user.ts # UserProfile
176
+ │ └── storage.ts # StateStore
177
+
178
+ └── utils/ # Utilities
179
+ ├── Log.ts # Logging
180
+ ├── Global.ts # Global timer/interval access
181
+ └── Event.ts # EventCallback + EventEmitter
182
+ ```
183
+
184
+ ## Examples
185
+
186
+ See [docs/examples/](docs/examples/) for working integrations:
187
+
188
+ **Web**
189
+
190
+ | Example | Description |
191
+ |---------|-------------|
192
+ | [docs/examples/web/spa/](docs/examples/web/spa/) | Vanilla JS single-page app |
193
+ | [docs/examples/web/react/](docs/examples/web/react/) | React with `useAuth` hook and context |
194
+ | [docs/examples/web/vue/](docs/examples/web/vue/) | Vue 3 with `useAuth` composable |
195
+
196
+ **Guides**
197
+
198
+ | Example | Description |
199
+ |---------|-------------|
200
+ | [docs/examples/api/](docs/examples/api/) | Authenticated API calls (fetch, axios) |
201
+ | [docs/examples/advanced/](docs/examples/advanced/) | Popup, silent renew, multi-tab sync |
202
+ | [docs/examples/provider/](docs/examples/provider/) | Identity provider configurations |
203
+ | [docs/examples/security/](docs/examples/security/) | Security best practices |
204
+
205
+ ## Scripts
206
+
207
+ | Script | Command | Purpose |
208
+ |--------|---------|---------|
209
+ | `build` | `tsc` | Compile TypeScript → `dist/` |
210
+ | `type-check` | `tsc --noEmit` | Type-check without emitting |
211
+ | `test` | `vitest` | Watch mode |
212
+ | `test:run` | `vitest run` | Run once (CI) |
213
+ | `test:coverage` | `vitest run --coverage` | Coverage report |
214
+ | `test:package` | `node dist/index.js` | Smoke-test compiled output |
215
+
216
+ ```bash
217
+ # Run tests
218
+ npm run test:run # 13 test files, 170 tests
219
+
220
+ # Build
221
+ npm run build # compiles to dist/
222
+
223
+ # Type check
224
+ npm run type-check
225
+ ```
226
+
227
+ ## Versioning
228
+
229
+ Version is managed entirely by the CI/CD pipeline from git tags. Do not edit `version` in `package.json` manually.
230
+
231
+ ```bash
232
+ git tag v1.0.0
233
+ git push origin v1.0.0
234
+ ```
235
+
236
+ ## License
237
+
238
+ Licensed under the Apache License, Version 2.0. See [LICENSE](LICENSE) for details.
239
+
240
+ Copyright (c) Callis Ezenwaka. All rights reserved.
@@ -0,0 +1,21 @@
1
+ export { Log } from './src/utils/Log.js';
2
+ export { Global } from './src/utils/Global.js';
3
+ export { User } from './src/models/User.js';
4
+ export type { UserData } from './src/models/User.js';
5
+ export type { UserProfile } from './src/types/user.js';
6
+ export { WebStorageStateStore, InMemoryWebStorage } from './src/storage/Storage.js';
7
+ export type { StateStore } from './src/types/storage.js';
8
+ export { MetadataService } from './src/services/Http.js';
9
+ export type { OidcMetadata } from './src/services/Http.js';
10
+ export { CheckSessionIFrame, CordovaPopupNavigator, CordovaIFrameNavigator, RedirectNavigator, PopupNavigator, IFrameNavigator, } from './src/navigation/Navigator.js';
11
+ export type { NavigateParams } from './src/navigation/Navigator.js';
12
+ export { TokenRevocationClient } from './src/protocol/TokenService.js';
13
+ export type { TokenSettings } from './src/protocol/TokenService.js';
14
+ export { OidcClient, UserManager } from './src/auth/Client.js';
15
+ export type { CreateSigninRequestArgs, CreateSignoutRequestArgs, UserManagerSigninArgs } from './src/auth/Client.js';
16
+ export { OidcClientSettings, UserManagerSettings } from './src/auth/Settings.js';
17
+ export type { OidcClientSettingsArgs, UserManagerSettingsArgs } from './src/auth/Settings.js';
18
+ export { AccessTokenEvents, UserManagerEvents } from './src/auth/Events.js';
19
+ export { SessionMonitor, SilentRenewService, State, SigninState } from './src/auth/Session.js';
20
+ export type { StateArgs, SigninStateArgs } from './src/auth/Session.js';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAG/C,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACpF,YAAY,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAG3D,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,+BAA+B,CAAC;AACvC,YAAY,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,YAAY,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,uBAAuB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AACrH,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AACjF,YAAY,EAAE,sBAAsB,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAC9F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAC/F,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ // Copyright (c) Callis Ezenwaka. All rights reserved.
2
+ // Licensed under the Apache License, Version 2.0. See LICENSE in the project root for license information.
3
+ // Utils
4
+ export { Log } from './src/utils/Log.js';
5
+ export { Global } from './src/utils/Global.js';
6
+ // Models
7
+ export { User } from './src/models/User.js';
8
+ // Storage
9
+ export { WebStorageStateStore, InMemoryWebStorage } from './src/storage/Storage.js';
10
+ // Services
11
+ export { MetadataService } from './src/services/Http.js';
12
+ // Navigation
13
+ export { CheckSessionIFrame, CordovaPopupNavigator, CordovaIFrameNavigator, RedirectNavigator, PopupNavigator, IFrameNavigator, } from './src/navigation/Navigator.js';
14
+ // Protocol
15
+ export { TokenRevocationClient } from './src/protocol/TokenService.js';
16
+ // Auth
17
+ export { OidcClient, UserManager } from './src/auth/Client.js';
18
+ export { OidcClientSettings, UserManagerSettings } from './src/auth/Settings.js';
19
+ export { AccessTokenEvents, UserManagerEvents } from './src/auth/Events.js';
20
+ export { SessionMonitor, SilentRenewService, State, SigninState } from './src/auth/Session.js';
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,sDAAsD;AACtD,2GAA2G;AAE3G,QAAQ;AACR,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,SAAS;AACT,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,UAAU;AACV,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,WAAW;AACX,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,aAAa;AACb,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,iBAAiB,EACjB,cAAc,EACd,eAAe,GAChB,MAAM,+BAA+B,CAAC;AAGvC,WAAW;AACX,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAGvE,OAAO;AACP,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEjF,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,135 @@
1
+ import { OidcClientSettings, UserManagerSettings } from './Settings.js';
2
+ import type { OidcClientSettingsArgs, UserManagerSettingsArgs } from './Settings.js';
3
+ import { SigninRequest } from '../protocol/Requests.js';
4
+ import { SigninResponse } from '../protocol/Responses.js';
5
+ import { SignoutRequest } from '../protocol/Requests.js';
6
+ import { SignoutResponse } from '../protocol/Responses.js';
7
+ import { SigninState, State } from './Session.js';
8
+ import { User } from '../models/User.js';
9
+ import type { StateStore } from '../types/storage.js';
10
+ import { UserManagerEvents } from './Events.js';
11
+ import { SilentRenewService, SessionMonitor } from './Session.js';
12
+ import { TokenRevocationClient, TokenClient } from '../protocol/TokenService.js';
13
+ import type { JoseUtilType } from '../crypto/Crypto.js';
14
+ export interface CreateSigninRequestArgs {
15
+ response_type?: string;
16
+ scope?: string;
17
+ redirect_uri?: string;
18
+ data?: unknown;
19
+ state?: unknown;
20
+ prompt?: string;
21
+ display?: string;
22
+ max_age?: number;
23
+ ui_locales?: string;
24
+ id_token_hint?: string;
25
+ login_hint?: string;
26
+ acr_values?: string;
27
+ resource?: string;
28
+ request?: string;
29
+ request_uri?: string;
30
+ response_mode?: string | null;
31
+ extraQueryParams?: Record<string, string>;
32
+ extraTokenParams?: Record<string, unknown>;
33
+ request_type?: string;
34
+ skipUserInfo?: boolean;
35
+ }
36
+ export interface CreateSignoutRequestArgs {
37
+ id_token_hint?: string;
38
+ data?: unknown;
39
+ state?: unknown;
40
+ post_logout_redirect_uri?: string;
41
+ extraQueryParams?: Record<string, string>;
42
+ request_type?: string;
43
+ }
44
+ export declare class OidcClient {
45
+ protected _settings: OidcClientSettings;
46
+ constructor(settings?: OidcClientSettings | OidcClientSettingsArgs);
47
+ get _stateStore(): StateStore;
48
+ get _validator(): import("../protocol/ResponseValidator.js").ResponseValidator;
49
+ get _metadataService(): import("../services/Http.js").MetadataService;
50
+ get settings(): OidcClientSettings;
51
+ get metadataService(): import("../services/Http.js").MetadataService;
52
+ createSigninRequest({ response_type, scope, redirect_uri, data, state, prompt, display, max_age, ui_locales, id_token_hint, login_hint, acr_values, resource, request, request_uri, response_mode, extraQueryParams, extraTokenParams, request_type, skipUserInfo, }?: CreateSigninRequestArgs, stateStore?: StateStore): Promise<SigninRequest>;
53
+ readSigninResponseState(url: string, stateStore?: StateStore, removeState?: boolean): Promise<{
54
+ state: SigninState;
55
+ response: SigninResponse;
56
+ }>;
57
+ processSigninResponse(url: string, stateStore?: StateStore): Promise<SigninResponse>;
58
+ createSignoutRequest({ id_token_hint, data, state, post_logout_redirect_uri, extraQueryParams, request_type, }?: CreateSignoutRequestArgs, stateStore?: StateStore): Promise<SignoutRequest>;
59
+ readSignoutResponseState(url: string, stateStore?: StateStore, removeState?: boolean): Promise<{
60
+ state: State | undefined;
61
+ response: SignoutResponse;
62
+ }>;
63
+ processSignoutResponse(url: string, stateStore?: StateStore): Promise<SignoutResponse>;
64
+ clearStaleState(stateStore?: StateStore): Promise<void[]>;
65
+ }
66
+ export interface UserManagerSigninArgs extends CreateSigninRequestArgs {
67
+ useReplaceToNavigate?: boolean;
68
+ popupWindowFeatures?: string;
69
+ popupWindowTarget?: string;
70
+ silentRequestTimeout?: number;
71
+ refresh_token?: string;
72
+ id_token_hint?: string;
73
+ current_sub?: string;
74
+ }
75
+ export interface UserManagerSignoutArgs extends CreateSignoutRequestArgs {
76
+ useReplaceToNavigate?: boolean;
77
+ popupWindowFeatures?: string;
78
+ popupWindowTarget?: string;
79
+ display?: string;
80
+ }
81
+ export declare class UserManager extends OidcClient {
82
+ protected _settings: UserManagerSettings;
83
+ private _events;
84
+ private _silentRenewService;
85
+ private _sessionMonitor;
86
+ private _tokenRevocationClient;
87
+ private _tokenClient;
88
+ private _joseUtil;
89
+ constructor(settings?: UserManagerSettings | UserManagerSettingsArgs, SilentRenewServiceCtor?: typeof SilentRenewService, SessionMonitorCtor?: typeof SessionMonitor, TokenRevocationClientCtor?: typeof TokenRevocationClient, TokenClientCtor?: typeof TokenClient, joseUtil?: JoseUtilType);
90
+ get settings(): UserManagerSettings;
91
+ private get _redirectNavigator();
92
+ private get _popupNavigator();
93
+ private get _iframeNavigator();
94
+ private get _userStore();
95
+ get events(): UserManagerEvents;
96
+ getUser(): Promise<User | null>;
97
+ removeUser(): Promise<void>;
98
+ signinRedirect(args?: UserManagerSigninArgs): Promise<void>;
99
+ signinRedirectCallback(url?: string): Promise<User>;
100
+ signinPopup(args?: UserManagerSigninArgs): Promise<User>;
101
+ signinPopupCallback(url?: string): Promise<User | undefined>;
102
+ signinSilent(args?: UserManagerSigninArgs): Promise<User | null>;
103
+ private _useRefreshToken;
104
+ private _validateIdTokenFromTokenRefreshToken;
105
+ private _signinSilentIframe;
106
+ signinSilentCallback(url?: string): Promise<User | undefined>;
107
+ signinCallback(url?: string): Promise<User | undefined>;
108
+ signoutCallback(url?: string, keepOpen?: boolean): Promise<SignoutResponse | void>;
109
+ querySessionStatus(args?: UserManagerSigninArgs): Promise<{
110
+ session_state: string;
111
+ sub?: string;
112
+ sid?: string;
113
+ } | null>;
114
+ private _signin;
115
+ private _signinStart;
116
+ private _signinEnd;
117
+ private _signinCallback;
118
+ signoutRedirect(args?: UserManagerSignoutArgs): Promise<void>;
119
+ signoutRedirectCallback(url?: string): Promise<SignoutResponse>;
120
+ signoutPopup(args?: UserManagerSignoutArgs): Promise<void>;
121
+ signoutPopupCallback(url?: string | boolean, keepOpen?: boolean): Promise<void>;
122
+ private _signout;
123
+ private _signoutStart;
124
+ private _signoutEnd;
125
+ revokeAccessToken(): Promise<void>;
126
+ private _revokeInternal;
127
+ private _revokeAccessTokenInternal;
128
+ private _revokeRefreshTokenInternal;
129
+ startSilentRenew(): void;
130
+ stopSilentRenew(): void;
131
+ get _userStoreKey(): string;
132
+ private _loadUser;
133
+ storeUser(user: User | null): Promise<void>;
134
+ }
135
+ //# sourceMappingURL=Client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Client.d.ts","sourceRoot":"","sources":["../../../src/auth/Client.ts"],"names":[],"mappings":"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"}