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.
- package/LICENSE +21 -0
- package/README.md +240 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/src/auth/Client.d.ts +135 -0
- package/dist/src/auth/Client.d.ts.map +1 -0
- package/dist/src/auth/Client.js +734 -0
- package/dist/src/auth/Client.js.map +1 -0
- package/dist/src/auth/Events.d.ts +51 -0
- package/dist/src/auth/Events.d.ts.map +1 -0
- package/dist/src/auth/Events.js +139 -0
- package/dist/src/auth/Events.js.map +1 -0
- package/dist/src/auth/Session.d.ts +132 -0
- package/dist/src/auth/Session.d.ts.map +1 -0
- package/dist/src/auth/Session.js +355 -0
- package/dist/src/auth/Session.js.map +1 -0
- package/dist/src/auth/Settings.d.ts +178 -0
- package/dist/src/auth/Settings.d.ts.map +1 -0
- package/dist/src/auth/Settings.js +210 -0
- package/dist/src/auth/Settings.js.map +1 -0
- package/dist/src/crypto/Crypto.d.ts +14 -0
- package/dist/src/crypto/Crypto.d.ts.map +1 -0
- package/dist/src/crypto/Crypto.js +107 -0
- package/dist/src/crypto/Crypto.js.map +1 -0
- package/dist/src/models/User.d.ts +31 -0
- package/dist/src/models/User.d.ts.map +1 -0
- package/dist/src/models/User.js +57 -0
- package/dist/src/models/User.js.map +1 -0
- package/dist/src/navigation/Navigator.d.ts +106 -0
- package/dist/src/navigation/Navigator.d.ts.map +1 -0
- package/dist/src/navigation/Navigator.js +441 -0
- package/dist/src/navigation/Navigator.js.map +1 -0
- package/dist/src/protocol/Requests.d.ts +50 -0
- package/dist/src/protocol/Requests.d.ts.map +1 -0
- package/dist/src/protocol/Requests.js +109 -0
- package/dist/src/protocol/Requests.js.map +1 -0
- package/dist/src/protocol/ResponseValidator.d.ts +39 -0
- package/dist/src/protocol/ResponseValidator.d.ts.map +1 -0
- package/dist/src/protocol/ResponseValidator.js +366 -0
- package/dist/src/protocol/ResponseValidator.js.map +1 -0
- package/dist/src/protocol/Responses.d.ts +44 -0
- package/dist/src/protocol/Responses.d.ts.map +1 -0
- package/dist/src/protocol/Responses.js +77 -0
- package/dist/src/protocol/Responses.js.map +1 -0
- package/dist/src/protocol/TokenService.d.ts +38 -0
- package/dist/src/protocol/TokenService.d.ts.map +1 -0
- package/dist/src/protocol/TokenService.js +259 -0
- package/dist/src/protocol/TokenService.js.map +1 -0
- package/dist/src/services/Http.d.ts +55 -0
- package/dist/src/services/Http.d.ts.map +1 -0
- package/dist/src/services/Http.js +276 -0
- package/dist/src/services/Http.js.map +1 -0
- package/dist/src/services/Timer.d.ts +18 -0
- package/dist/src/services/Timer.d.ts.map +1 -0
- package/dist/src/services/Timer.js +56 -0
- package/dist/src/services/Timer.js.map +1 -0
- package/dist/src/storage/Storage.d.ts +23 -0
- package/dist/src/storage/Storage.d.ts.map +1 -0
- package/dist/src/storage/Storage.js +65 -0
- package/dist/src/storage/Storage.js.map +1 -0
- package/dist/src/types/crypto.d.ts +32 -0
- package/dist/src/types/crypto.d.ts.map +1 -0
- package/dist/src/types/crypto.js +3 -0
- package/dist/src/types/crypto.js.map +1 -0
- package/dist/src/types/navigator.d.ts +33 -0
- package/dist/src/types/navigator.d.ts.map +1 -0
- package/dist/src/types/navigator.js +3 -0
- package/dist/src/types/navigator.js.map +1 -0
- package/dist/src/types/storage.d.ts +7 -0
- package/dist/src/types/storage.d.ts.map +1 -0
- package/dist/src/types/storage.js +3 -0
- package/dist/src/types/storage.js.map +1 -0
- package/dist/src/types/user.d.ts +6 -0
- package/dist/src/types/user.d.ts.map +1 -0
- package/dist/src/types/user.js +3 -0
- package/dist/src/types/user.js.map +1 -0
- package/dist/src/utils/Event.d.ts +10 -0
- package/dist/src/utils/Event.d.ts.map +1 -0
- package/dist/src/utils/Event.js +24 -0
- package/dist/src/utils/Event.js.map +1 -0
- package/dist/src/utils/Global.d.ts +14 -0
- package/dist/src/utils/Global.d.ts.map +1 -0
- package/dist/src/utils/Global.js +50 -0
- package/dist/src/utils/Global.js.map +1 -0
- package/dist/src/utils/Log.d.ts +30 -0
- package/dist/src/utils/Log.d.ts.map +1 -0
- package/dist/src/utils/Log.js +68 -0
- package/dist/src/utils/Log.js.map +1 -0
- 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.
|
package/dist/index.d.ts
ADDED
|
@@ -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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"}
|