@symbiote-native/auth-session 0.0.0-stage → 0.1.1

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 (179) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -2
  3. package/build/angular/index.d.ts +2 -0
  4. package/build/angular/index.js +3 -0
  5. package/build/angular/use-auth-request.d.ts +7 -0
  6. package/build/angular/use-auth-request.js +11 -0
  7. package/build/core/auth-request-controllers.d.ts +44 -0
  8. package/build/core/auth-request-controllers.js +122 -0
  9. package/build/core/auth-request-hooks.d.ts +67 -0
  10. package/build/core/auth-request-hooks.js +75 -0
  11. package/build/core/auth-request.d.ts +29 -0
  12. package/build/core/auth-request.js +161 -0
  13. package/build/core/auth-request.types.d.ts +46 -0
  14. package/build/core/auth-request.types.js +23 -0
  15. package/build/core/auth-session.d.ts +10 -0
  16. package/build/core/auth-session.js +37 -0
  17. package/build/core/auth-session.types.d.ts +27 -0
  18. package/build/core/auth-session.types.js +1 -0
  19. package/build/core/base64.d.ts +1 -0
  20. package/build/core/base64.js +28 -0
  21. package/build/core/discovery.d.ts +57 -0
  22. package/build/core/discovery.js +29 -0
  23. package/build/core/errors.d.ts +29 -0
  24. package/build/core/errors.js +74 -0
  25. package/build/core/fetch.d.ts +15 -0
  26. package/build/core/fetch.js +40 -0
  27. package/build/core/index.d.ts +24 -0
  28. package/build/core/index.js +14 -0
  29. package/build/core/pkce.d.ts +9 -0
  30. package/build/core/pkce.js +41 -0
  31. package/build/core/prompt-string.d.ts +2 -0
  32. package/build/core/prompt-string.js +5 -0
  33. package/build/core/providers/facebook.d.ts +16 -0
  34. package/build/core/providers/facebook.js +43 -0
  35. package/build/core/providers/google-exchange-controller.d.ts +10 -0
  36. package/build/core/providers/google-exchange-controller.js +73 -0
  37. package/build/core/providers/google.d.ts +22 -0
  38. package/build/core/providers/google.js +52 -0
  39. package/build/core/providers/provider-hook-setup.d.ts +19 -0
  40. package/build/core/providers/provider-hook-setup.js +78 -0
  41. package/build/core/providers/provider-utils.d.ts +2 -0
  42. package/build/core/providers/provider-utils.js +8 -0
  43. package/build/core/providers/provider.types.d.ts +5 -0
  44. package/build/core/providers/provider.types.js +1 -0
  45. package/build/core/query-params.d.ts +5 -0
  46. package/build/core/query-params.js +12 -0
  47. package/build/core/session-result.d.ts +6 -0
  48. package/build/core/session-result.js +4 -0
  49. package/build/core/token-request.d.ts +89 -0
  50. package/build/core/token-request.js +328 -0
  51. package/build/core/token-request.types.d.ts +52 -0
  52. package/build/core/token-request.types.js +14 -0
  53. package/build/react/index.d.ts +3 -0
  54. package/build/react/index.js +2 -0
  55. package/build/react/use-auth-request.d.ts +20 -0
  56. package/build/react/use-auth-request.js +52 -0
  57. package/build/solid/index.d.ts +2 -0
  58. package/build/solid/index.js +2 -0
  59. package/build/solid/use-auth-request.d.ts +6 -0
  60. package/build/solid/use-auth-request.js +10 -0
  61. package/build/svelte/index.d.ts +2 -0
  62. package/build/svelte/index.js +2 -0
  63. package/build/svelte/use-auth-request.svelte.d.ts +28 -0
  64. package/build/svelte/use-auth-request.svelte.js +11 -0
  65. package/build/vue/index.d.ts +2 -0
  66. package/build/vue/index.js +2 -0
  67. package/build/vue/use-auth-request.d.ts +7 -0
  68. package/build/vue/use-auth-request.js +12 -0
  69. package/build-ngc/angular/index.d.ts +2 -0
  70. package/build-ngc/angular/index.js +4 -0
  71. package/build-ngc/angular/index.js.map +1 -0
  72. package/build-ngc/angular/use-auth-request.d.ts +7 -0
  73. package/build-ngc/angular/use-auth-request.js +12 -0
  74. package/build-ngc/angular/use-auth-request.js.map +1 -0
  75. package/build-ngc/core/auth-request-controllers.d.ts +44 -0
  76. package/build-ngc/core/auth-request-controllers.js +123 -0
  77. package/build-ngc/core/auth-request-controllers.js.map +1 -0
  78. package/build-ngc/core/auth-request-hooks.d.ts +67 -0
  79. package/build-ngc/core/auth-request-hooks.js +76 -0
  80. package/build-ngc/core/auth-request-hooks.js.map +1 -0
  81. package/build-ngc/core/auth-request.d.ts +29 -0
  82. package/build-ngc/core/auth-request.js +162 -0
  83. package/build-ngc/core/auth-request.js.map +1 -0
  84. package/build-ngc/core/auth-request.types.d.ts +46 -0
  85. package/build-ngc/core/auth-request.types.js +24 -0
  86. package/build-ngc/core/auth-request.types.js.map +1 -0
  87. package/build-ngc/core/auth-session.d.ts +10 -0
  88. package/build-ngc/core/auth-session.js +38 -0
  89. package/build-ngc/core/auth-session.js.map +1 -0
  90. package/build-ngc/core/auth-session.types.d.ts +27 -0
  91. package/build-ngc/core/auth-session.types.js +2 -0
  92. package/build-ngc/core/auth-session.types.js.map +1 -0
  93. package/build-ngc/core/base64.d.ts +1 -0
  94. package/build-ngc/core/base64.js +29 -0
  95. package/build-ngc/core/base64.js.map +1 -0
  96. package/build-ngc/core/discovery.d.ts +57 -0
  97. package/build-ngc/core/discovery.js +30 -0
  98. package/build-ngc/core/discovery.js.map +1 -0
  99. package/build-ngc/core/errors.d.ts +29 -0
  100. package/build-ngc/core/errors.js +75 -0
  101. package/build-ngc/core/errors.js.map +1 -0
  102. package/build-ngc/core/fetch.d.ts +15 -0
  103. package/build-ngc/core/fetch.js +41 -0
  104. package/build-ngc/core/fetch.js.map +1 -0
  105. package/build-ngc/core/index.d.ts +24 -0
  106. package/build-ngc/core/index.js +15 -0
  107. package/build-ngc/core/index.js.map +1 -0
  108. package/build-ngc/core/pkce.d.ts +9 -0
  109. package/build-ngc/core/pkce.js +42 -0
  110. package/build-ngc/core/pkce.js.map +1 -0
  111. package/build-ngc/core/prompt-string.d.ts +2 -0
  112. package/build-ngc/core/prompt-string.js +6 -0
  113. package/build-ngc/core/prompt-string.js.map +1 -0
  114. package/build-ngc/core/providers/facebook.d.ts +16 -0
  115. package/build-ngc/core/providers/facebook.js +44 -0
  116. package/build-ngc/core/providers/facebook.js.map +1 -0
  117. package/build-ngc/core/providers/google-exchange-controller.d.ts +10 -0
  118. package/build-ngc/core/providers/google-exchange-controller.js +74 -0
  119. package/build-ngc/core/providers/google-exchange-controller.js.map +1 -0
  120. package/build-ngc/core/providers/google.d.ts +22 -0
  121. package/build-ngc/core/providers/google.js +53 -0
  122. package/build-ngc/core/providers/google.js.map +1 -0
  123. package/build-ngc/core/providers/provider-hook-setup.d.ts +19 -0
  124. package/build-ngc/core/providers/provider-hook-setup.js +79 -0
  125. package/build-ngc/core/providers/provider-hook-setup.js.map +1 -0
  126. package/build-ngc/core/providers/provider-utils.d.ts +2 -0
  127. package/build-ngc/core/providers/provider-utils.js +9 -0
  128. package/build-ngc/core/providers/provider-utils.js.map +1 -0
  129. package/build-ngc/core/providers/provider.types.d.ts +5 -0
  130. package/build-ngc/core/providers/provider.types.js +2 -0
  131. package/build-ngc/core/providers/provider.types.js.map +1 -0
  132. package/build-ngc/core/query-params.d.ts +5 -0
  133. package/build-ngc/core/query-params.js +13 -0
  134. package/build-ngc/core/query-params.js.map +1 -0
  135. package/build-ngc/core/session-result.d.ts +6 -0
  136. package/build-ngc/core/session-result.js +5 -0
  137. package/build-ngc/core/session-result.js.map +1 -0
  138. package/build-ngc/core/token-request.d.ts +89 -0
  139. package/build-ngc/core/token-request.js +329 -0
  140. package/build-ngc/core/token-request.js.map +1 -0
  141. package/build-ngc/core/token-request.types.d.ts +52 -0
  142. package/build-ngc/core/token-request.types.js +15 -0
  143. package/build-ngc/core/token-request.types.js.map +1 -0
  144. package/package.json +151 -3
  145. package/src/angular/index.ts +11 -0
  146. package/src/angular/use-auth-request.ts +30 -0
  147. package/src/core/auth-request-controllers.ts +233 -0
  148. package/src/core/auth-request-hooks.ts +342 -0
  149. package/src/core/auth-request.ts +199 -0
  150. package/src/core/auth-request.types.ts +55 -0
  151. package/src/core/auth-session.ts +63 -0
  152. package/src/core/auth-session.types.ts +29 -0
  153. package/src/core/base64.ts +33 -0
  154. package/src/core/discovery.ts +102 -0
  155. package/src/core/errors.ts +102 -0
  156. package/src/core/fetch.ts +71 -0
  157. package/src/core/index.ts +97 -0
  158. package/src/core/pkce.ts +60 -0
  159. package/src/core/prompt-string.ts +8 -0
  160. package/src/core/providers/facebook.ts +66 -0
  161. package/src/core/providers/google-exchange-controller.ts +117 -0
  162. package/src/core/providers/google.ts +81 -0
  163. package/src/core/providers/provider-hook-setup.ts +117 -0
  164. package/src/core/providers/provider-utils.ts +18 -0
  165. package/src/core/providers/provider.types.ts +6 -0
  166. package/src/core/query-params.ts +20 -0
  167. package/src/core/session-result.ts +15 -0
  168. package/src/core/token-request.ts +452 -0
  169. package/src/core/token-request.types.ts +60 -0
  170. package/src/react/index.ts +11 -0
  171. package/src/react/use-auth-request.ts +151 -0
  172. package/src/solid/index.ts +10 -0
  173. package/src/solid/use-auth-request.ts +24 -0
  174. package/src/svelte/index.ts +10 -0
  175. package/src/svelte/svelte-ambient.d.ts +3 -0
  176. package/src/svelte/svelte-compile.test-helper.ts +7 -0
  177. package/src/svelte/use-auth-request.svelte.ts +22 -0
  178. package/src/vue/index.ts +10 -0
  179. package/src/vue/use-auth-request.ts +38 -0
@@ -0,0 +1,329 @@
1
+ import invariant from 'invariant';
2
+ import * as Base64 from './base64';
3
+ import { TokenError } from './errors';
4
+ import { requestAsync } from './fetch';
5
+ import { GrantType } from './token-request.types';
6
+ export function getCurrentTimeInSeconds() {
7
+ return Math.floor(Date.now() / 1000);
8
+ }
9
+ function asTokenType(value) {
10
+ return value === 'bearer' || value === 'mac' ? value : undefined;
11
+ }
12
+ /** https://tools.ietf.org/html/rfc6749#section-5.1 */
13
+ export class TokenResponse {
14
+ static isTokenFresh(token,
15
+ /** -10 minutes in seconds. */
16
+ secondsMargin = 60 * 10 * -1) {
17
+ if (!token) {
18
+ return false;
19
+ }
20
+ if (token.expiresIn) {
21
+ const now = getCurrentTimeInSeconds();
22
+ return now < token.issuedAt + token.expiresIn + secondsMargin;
23
+ }
24
+ return true;
25
+ }
26
+ static fromQueryParams(params) {
27
+ return new TokenResponse({
28
+ accessToken: params.access_token ?? '',
29
+ refreshToken: params.refresh_token,
30
+ scope: params.scope,
31
+ state: params.state,
32
+ idToken: params.id_token,
33
+ tokenType: asTokenType(params.token_type),
34
+ expiresIn: params.expires_in ? Number(params.expires_in) : undefined,
35
+ issuedAt: params.issued_at ? Number(params.issued_at) : undefined,
36
+ });
37
+ }
38
+ accessToken;
39
+ tokenType;
40
+ expiresIn;
41
+ refreshToken;
42
+ scope;
43
+ state;
44
+ idToken;
45
+ issuedAt;
46
+ /** Unprocessed token response, for fields outside RFC 6749. */
47
+ rawResponse;
48
+ constructor(response, rawResponse) {
49
+ this.rawResponse = rawResponse;
50
+ this.accessToken = response.accessToken;
51
+ this.tokenType = response.tokenType ?? 'bearer';
52
+ this.expiresIn = response.expiresIn;
53
+ this.refreshToken = response.refreshToken;
54
+ this.scope = response.scope;
55
+ this.state = response.state;
56
+ this.idToken = response.idToken;
57
+ this.issuedAt = response.issuedAt ?? getCurrentTimeInSeconds();
58
+ }
59
+ applyResponseConfig(response) {
60
+ this.accessToken = response.accessToken ?? this.accessToken;
61
+ this.tokenType = response.tokenType ?? this.tokenType ?? 'bearer';
62
+ this.expiresIn = response.expiresIn ?? this.expiresIn;
63
+ this.refreshToken = response.refreshToken ?? this.refreshToken;
64
+ this.scope = response.scope ?? this.scope;
65
+ this.state = response.state ?? this.state;
66
+ this.idToken = response.idToken ?? this.idToken;
67
+ this.issuedAt =
68
+ response.issuedAt ?? this.issuedAt ?? getCurrentTimeInSeconds();
69
+ }
70
+ getRequestConfig() {
71
+ return {
72
+ accessToken: this.accessToken,
73
+ idToken: this.idToken,
74
+ refreshToken: this.refreshToken,
75
+ scope: this.scope,
76
+ state: this.state,
77
+ tokenType: this.tokenType,
78
+ issuedAt: this.issuedAt,
79
+ expiresIn: this.expiresIn,
80
+ };
81
+ }
82
+ async refreshAsync(config, discovery) {
83
+ const request = new RefreshTokenRequest({
84
+ ...config,
85
+ refreshToken: this.refreshToken,
86
+ });
87
+ const response = await request.performAsync(discovery);
88
+ response.refreshToken = response.refreshToken ?? this.refreshToken;
89
+ this.applyResponseConfig(response.getRequestConfig());
90
+ return this;
91
+ }
92
+ shouldRefresh() {
93
+ return !(TokenResponse.isTokenFresh(this) || !this.refreshToken);
94
+ }
95
+ }
96
+ function sanitizeExtraHeaders(extra, hasClientSecret) {
97
+ if (!extra) {
98
+ return undefined;
99
+ }
100
+ const extraHeaders = { ...extra };
101
+ delete extraHeaders['Content-Type'];
102
+ delete extraHeaders['content-type'];
103
+ if (hasClientSecret) {
104
+ delete extraHeaders.authorization;
105
+ delete extraHeaders.Authorization;
106
+ }
107
+ return extraHeaders;
108
+ }
109
+ function encodeBasicAuth(clientId, clientSecret) {
110
+ const credentials = `${encodeURIComponent(clientId)}:${encodeURIComponent(clientSecret)}`;
111
+ return Base64.encodeNoWrap(credentials);
112
+ }
113
+ class BaseRequest {
114
+ request;
115
+ constructor(request) {
116
+ this.request = request;
117
+ }
118
+ }
119
+ /** A generic token request. */
120
+ export class TokenRequest extends BaseRequest {
121
+ grantType;
122
+ clientId;
123
+ clientSecret;
124
+ scopes;
125
+ extraParams;
126
+ extraHeaders;
127
+ constructor(request, grantType) {
128
+ super(request);
129
+ this.grantType = grantType;
130
+ this.clientId = request.clientId;
131
+ this.clientSecret = request.clientSecret;
132
+ this.extraParams = request.extraParams;
133
+ this.scopes = request.scopes;
134
+ this.extraHeaders = sanitizeExtraHeaders(request.extraHeaders, typeof request.clientSecret !== 'undefined');
135
+ }
136
+ getHeaders() {
137
+ const headers = {
138
+ ...this.extraHeaders,
139
+ 'Content-Type': 'application/x-www-form-urlencoded',
140
+ };
141
+ if (typeof this.clientSecret !== 'undefined') {
142
+ headers.Authorization = `Basic ${encodeBasicAuth(this.clientId, this.clientSecret)}`;
143
+ }
144
+ return headers;
145
+ }
146
+ async performAsync(discovery) {
147
+ invariant(discovery.tokenEndpoint, 'Cannot invoke `performAsync()` without a valid tokenEndpoint');
148
+ const response = await requestAsync(discovery.tokenEndpoint, {
149
+ dataType: 'json',
150
+ method: 'POST',
151
+ headers: this.getHeaders(),
152
+ body: this.getQueryBody(),
153
+ });
154
+ if ('error' in response) {
155
+ throw new TokenError(response);
156
+ }
157
+ return new TokenResponse({
158
+ accessToken: response.access_token,
159
+ tokenType: response.token_type,
160
+ expiresIn: response.expires_in,
161
+ refreshToken: response.refresh_token,
162
+ scope: response.scope,
163
+ idToken: response.id_token,
164
+ issuedAt: response.issued_at,
165
+ }, response);
166
+ }
167
+ getRequestConfig() {
168
+ return this.request;
169
+ }
170
+ getQueryBody() {
171
+ const queryBody = { grant_type: this.grantType };
172
+ if (!this.clientSecret) {
173
+ queryBody.client_id = this.clientId;
174
+ }
175
+ if (this.scopes) {
176
+ queryBody.scope = this.scopes.join(' ');
177
+ }
178
+ for (const extra in this.extraParams) {
179
+ const param = this.extraParams[extra];
180
+ if (param != null && !(extra in queryBody)) {
181
+ queryBody[extra] = param;
182
+ }
183
+ }
184
+ return queryBody;
185
+ }
186
+ }
187
+ /** https://tools.ietf.org/html/rfc6749#section-4.1.3 */
188
+ export class AccessTokenRequest extends TokenRequest {
189
+ code;
190
+ redirectUri;
191
+ constructor(options) {
192
+ invariant(options.redirectUri, '`AccessTokenRequest` requires a valid `redirectUri`.');
193
+ invariant(options.code, '`AccessTokenRequest` requires a valid authorization `code`.');
194
+ super(options, GrantType.AuthorizationCode);
195
+ this.code = options.code;
196
+ this.redirectUri = options.redirectUri;
197
+ }
198
+ getQueryBody() {
199
+ return {
200
+ ...super.getQueryBody(),
201
+ redirect_uri: this.redirectUri,
202
+ code: this.code,
203
+ };
204
+ }
205
+ getRequestConfig() {
206
+ return {
207
+ clientId: this.clientId,
208
+ clientSecret: this.clientSecret,
209
+ grantType: this.grantType,
210
+ code: this.code,
211
+ redirectUri: this.redirectUri,
212
+ extraParams: this.extraParams,
213
+ extraHeaders: this.extraHeaders,
214
+ scopes: this.scopes,
215
+ };
216
+ }
217
+ }
218
+ /** https://tools.ietf.org/html/rfc6749#section-6 */
219
+ export class RefreshTokenRequest extends TokenRequest {
220
+ refreshToken;
221
+ constructor(options) {
222
+ invariant(options.refreshToken, '`RefreshTokenRequest` requires a valid `refreshToken`.');
223
+ super(options, GrantType.RefreshToken);
224
+ this.refreshToken = options.refreshToken;
225
+ }
226
+ getQueryBody() {
227
+ const queryBody = super.getQueryBody();
228
+ if (this.refreshToken) {
229
+ queryBody.refresh_token = this.refreshToken;
230
+ }
231
+ return queryBody;
232
+ }
233
+ getRequestConfig() {
234
+ return {
235
+ clientId: this.clientId,
236
+ clientSecret: this.clientSecret,
237
+ grantType: this.grantType,
238
+ refreshToken: this.refreshToken,
239
+ extraParams: this.extraParams,
240
+ extraHeaders: this.extraHeaders,
241
+ scopes: this.scopes,
242
+ };
243
+ }
244
+ }
245
+ /** https://tools.ietf.org/html/rfc7009#section-2.1 */
246
+ export class RevokeTokenRequest extends BaseRequest {
247
+ clientId;
248
+ clientSecret;
249
+ token;
250
+ tokenTypeHint;
251
+ extraHeaders;
252
+ constructor(request) {
253
+ super(request);
254
+ invariant(request.token, '`RevokeTokenRequest` requires a valid `token` to revoke.');
255
+ this.clientId = request.clientId;
256
+ this.clientSecret = request.clientSecret;
257
+ this.token = request.token;
258
+ this.tokenTypeHint = request.tokenTypeHint;
259
+ this.extraHeaders = sanitizeExtraHeaders(request.extraHeaders, typeof request.clientSecret !== 'undefined');
260
+ }
261
+ getHeaders() {
262
+ const headers = {
263
+ ...this.extraHeaders,
264
+ 'Content-Type': 'application/x-www-form-urlencoded',
265
+ };
266
+ if (typeof this.clientSecret !== 'undefined' && this.clientId) {
267
+ headers.Authorization = `Basic ${encodeBasicAuth(this.clientId, this.clientSecret)}`;
268
+ }
269
+ return headers;
270
+ }
271
+ async performAsync(discovery) {
272
+ invariant(discovery.revocationEndpoint, 'Cannot invoke `performAsync()` without a valid revocationEndpoint');
273
+ await requestAsync(discovery.revocationEndpoint, {
274
+ method: 'POST',
275
+ headers: this.getHeaders(),
276
+ body: this.getQueryBody(),
277
+ });
278
+ return true;
279
+ }
280
+ getRequestConfig() {
281
+ return {
282
+ clientId: this.clientId,
283
+ clientSecret: this.clientSecret,
284
+ token: this.token,
285
+ tokenTypeHint: this.tokenTypeHint,
286
+ extraHeaders: this.extraHeaders,
287
+ };
288
+ }
289
+ getQueryBody() {
290
+ const queryBody = { token: this.token };
291
+ if (this.tokenTypeHint) {
292
+ queryBody.token_type_hint = this.tokenTypeHint;
293
+ }
294
+ if (this.clientId) {
295
+ queryBody.client_id = this.clientId;
296
+ }
297
+ if (this.clientSecret) {
298
+ queryBody.client_secret = this.clientSecret;
299
+ }
300
+ return queryBody;
301
+ }
302
+ }
303
+ /** Exchange an authorization code for an access token. */
304
+ export function exchangeCodeAsync(config, discovery) {
305
+ return new AccessTokenRequest(config).performAsync(discovery);
306
+ }
307
+ /** Refresh an access token. See `TokenResponse.isTokenFresh()`/`shouldRefresh()`. */
308
+ export function refreshAsync(config, discovery) {
309
+ return new RefreshTokenRequest(config).performAsync(discovery);
310
+ }
311
+ /** Revoke a token, effectively requiring the user to sign in again. */
312
+ export function revokeAsync(config, discovery) {
313
+ return new RevokeTokenRequest(config).performAsync(discovery);
314
+ }
315
+ /** Fetch generic user info from the provider's OpenID Connect `userInfoEndpoint`, if supported. */
316
+ export function fetchUserInfoAsync(config, discovery) {
317
+ if (!discovery.userInfoEndpoint) {
318
+ throw new Error('User info endpoint is not defined in the service config discovery document');
319
+ }
320
+ return requestAsync(discovery.userInfoEndpoint, {
321
+ headers: {
322
+ 'Content-Type': 'application/x-www-form-urlencoded',
323
+ Authorization: `Bearer ${config.accessToken}`,
324
+ },
325
+ dataType: 'json',
326
+ method: 'GET',
327
+ });
328
+ }
329
+ //# sourceMappingURL=token-request.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-request.js","sourceRoot":"","sources":["../../src/core/token-request.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /** https://tools.ietf.org/html/rfc6749#section-7.1 */
2
+ export type ITokenType = 'bearer' | 'mac';
3
+ /** A hint about the type of the token submitted for revocation. */
4
+ export declare enum TokenTypeHint {
5
+ AccessToken = "access_token",
6
+ RefreshToken = "refresh_token"
7
+ }
8
+ export type ITokenRequestConfig = {
9
+ clientId: string;
10
+ clientSecret?: string;
11
+ extraParams?: Record<string, string>;
12
+ extraHeaders?: Record<string, string>;
13
+ scopes?: string[];
14
+ };
15
+ export type IAccessTokenRequestConfig = ITokenRequestConfig & {
16
+ code: string;
17
+ /** Must match the `redirectUri` used in the `AuthRequest`. */
18
+ redirectUri: string;
19
+ };
20
+ export type IRefreshTokenRequestConfig = ITokenRequestConfig & {
21
+ refreshToken?: string;
22
+ };
23
+ export type IRevokeTokenRequestConfig = Partial<ITokenRequestConfig> & {
24
+ token: string;
25
+ tokenTypeHint?: TokenTypeHint;
26
+ };
27
+ /** https://tools.ietf.org/html/rfc6749#appendix-A.10 */
28
+ export declare enum GrantType {
29
+ AuthorizationCode = "authorization_code",
30
+ Implicit = "implicit",
31
+ RefreshToken = "refresh_token",
32
+ ClientCredentials = "client_credentials"
33
+ }
34
+ export type IServerTokenResponseConfig = {
35
+ access_token: string;
36
+ token_type?: ITokenType;
37
+ expires_in?: number;
38
+ refresh_token?: string;
39
+ scope?: string;
40
+ id_token?: string;
41
+ issued_at?: number;
42
+ };
43
+ export type ITokenResponseConfig = {
44
+ accessToken: string;
45
+ tokenType?: ITokenType;
46
+ expiresIn?: number;
47
+ refreshToken?: string;
48
+ scope?: string;
49
+ state?: string;
50
+ idToken?: string;
51
+ issuedAt?: number;
52
+ };
@@ -0,0 +1,15 @@
1
+ /** A hint about the type of the token submitted for revocation. */
2
+ export var TokenTypeHint;
3
+ (function (TokenTypeHint) {
4
+ TokenTypeHint["AccessToken"] = "access_token";
5
+ TokenTypeHint["RefreshToken"] = "refresh_token";
6
+ })(TokenTypeHint || (TokenTypeHint = {}));
7
+ /** https://tools.ietf.org/html/rfc6749#appendix-A.10 */
8
+ export var GrantType;
9
+ (function (GrantType) {
10
+ GrantType["AuthorizationCode"] = "authorization_code";
11
+ GrantType["Implicit"] = "implicit";
12
+ GrantType["RefreshToken"] = "refresh_token";
13
+ GrantType["ClientCredentials"] = "client_credentials";
14
+ })(GrantType || (GrantType = {}));
15
+ //# sourceMappingURL=token-request.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-request.types.js","sourceRoot":"","sources":["../../src/core/token-request.types.ts"],"names":[],"mappings":"AAGA,mEAAmE;AACnE,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,6CAA4B,CAAA;IAC5B,+CAA8B,CAAA;AAChC,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAyBD,wDAAwD;AACxD,MAAM,CAAN,IAAY,SAKX;AALD,WAAY,SAAS;IACnB,qDAAwC,CAAA;IACxC,kCAAqB,CAAA;IACrB,2CAA8B,CAAA;IAC9B,qDAAwC,CAAA;AAC1C,CAAC,EALW,SAAS,KAAT,SAAS,QAKpB"}
package/package.json CHANGED
@@ -1,6 +1,154 @@
1
1
  {
2
2
  "name": "@symbiote-native/auth-session",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
3
+ "version": "0.1.1",
4
+ "description": "expo-auth-session ported for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. PKCE-based OAuth2/OpenID Connect flow over @symbiote-native/web-browser, @symbiote-native/crypto, and @symbiote-native/application.",
5
+ "license": "MIT",
6
+ "keywords": [
7
+ "react-native",
8
+ "symbiote-native",
9
+ "expo-auth-session",
10
+ "react",
11
+ "vue",
12
+ "svelte",
13
+ "solid",
14
+ "angular",
15
+ "oauth",
16
+ "oauth2",
17
+ "openid",
18
+ "auth-session"
19
+ ],
20
+ "repository": {
21
+ "type": "git",
22
+ "url": "git+https://github.com/OneEyed1366/symbiote-native.git",
23
+ "directory": "packages/auth-session"
24
+ },
25
+ "homepage": "https://github.com/OneEyed1366/symbiote-native/tree/master/packages/auth-session#readme",
26
+ "bugs": {
27
+ "url": "https://github.com/OneEyed1366/symbiote-native/issues"
28
+ },
29
+ "author": "Andrey Prokopenko <psevdoproger@gmail.com>",
30
+ "type": "module",
31
+ "main": "./build/core/index.js",
32
+ "module": "./build/core/index.js",
33
+ "types": "./build/core/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "types": "./build/core/index.d.ts",
37
+ "default": "./build/core/index.js"
38
+ },
39
+ "./vue": {
40
+ "types": "./build/vue/index.d.ts",
41
+ "default": "./build/vue/index.js"
42
+ },
43
+ "./react": {
44
+ "types": "./build/react/index.d.ts",
45
+ "default": "./build/react/index.js"
46
+ },
47
+ "./svelte": {
48
+ "types": "./build/svelte/index.d.ts",
49
+ "default": "./build/svelte/index.js"
50
+ },
51
+ "./solid": {
52
+ "types": "./build/solid/index.d.ts",
53
+ "default": "./build/solid/index.js"
54
+ },
55
+ "./angular": {
56
+ "types": "./build-ngc/angular/index.d.ts",
57
+ "react-native": "./build-ngc/angular/index.js",
58
+ "default": "./src/angular/index.ts"
59
+ }
60
+ },
61
+ "files": [
62
+ "src",
63
+ "build",
64
+ "build-ngc",
65
+ "!src/**/*.test.*",
66
+ "!src/**/*.spec.*",
67
+ "!src/**/*.detox.*"
68
+ ],
69
+ "publishConfig": {
70
+ "access": "public"
71
+ },
72
+ "dependencies": {
73
+ "invariant": "^2.2.4",
74
+ "@symbiote-native/application": "3.0.3",
75
+ "@symbiote-native/crypto": "3.0.3",
76
+ "@symbiote-native/web-browser": "3.0.3"
77
+ },
78
+ "peerDependencies": {
79
+ "@angular/core": ">=20",
80
+ "@vue/runtime-core": "^3.5.13",
81
+ "react": ">=19.0.0",
82
+ "react-native": ">=0.86",
83
+ "solid-js": ">=1.9.0",
84
+ "svelte": ">=5.56.0",
85
+ "vue": ">=3.5.0",
86
+ "@symbiote-native/angular": "^3.2.0",
87
+ "@symbiote-native/engine": "^1.5.0",
88
+ "@symbiote-native/react": "^3.2.0",
89
+ "@symbiote-native/solid": "^3.1.0",
90
+ "@symbiote-native/svelte": "^3.1.0",
91
+ "@symbiote-native/vue": "^3.2.0"
92
+ },
93
+ "peerDependenciesMeta": {
94
+ "@symbiote-native/angular": {
95
+ "optional": true
96
+ },
97
+ "@symbiote-native/react": {
98
+ "optional": true
99
+ },
100
+ "@symbiote-native/solid": {
101
+ "optional": true
102
+ },
103
+ "@symbiote-native/svelte": {
104
+ "optional": true
105
+ },
106
+ "@symbiote-native/vue": {
107
+ "optional": true
108
+ },
109
+ "@angular/core": {
110
+ "optional": true
111
+ },
112
+ "@vue/runtime-core": {
113
+ "optional": true
114
+ },
115
+ "react": {
116
+ "optional": true
117
+ },
118
+ "solid-js": {
119
+ "optional": true
120
+ },
121
+ "svelte": {
122
+ "optional": true
123
+ },
124
+ "vue": {
125
+ "optional": true
126
+ }
127
+ },
128
+ "devDependencies": {
129
+ "@angular/compiler": "~22.0.8",
130
+ "@angular/compiler-cli": "~22.0.8",
131
+ "@angular/core": "~22.0.8",
132
+ "@types/invariant": "^2.2.37",
133
+ "@types/node": "^26.0.0",
134
+ "@types/react": "^19.2.0",
135
+ "@vue/runtime-core": "^3.5.13",
136
+ "react": "19.2.3",
137
+ "solid-js": "^1.9.14",
138
+ "svelte": "^5.56.0",
139
+ "typescript": "~6.0.0",
140
+ "@symbiote-native/angular": "3.2.0",
141
+ "@symbiote-native/engine": "1.5.0",
142
+ "@symbiote-native/react": "3.2.0",
143
+ "@symbiote-native/solid": "3.1.0",
144
+ "@symbiote-native/svelte": "3.1.0",
145
+ "@symbiote-native/test-utils": "0.4.6",
146
+ "@symbiote-native/vue": "3.2.0"
147
+ },
148
+ "scripts": {
149
+ "typecheck": "tsc --build",
150
+ "clean": "rm -rf build-ngc",
151
+ "ng:build": "pnpm run clean && ngc -p tsconfig.angular.json",
152
+ "format": "prettier --write \"src/**/*.{ts,tsx}\""
153
+ }
6
154
  }
@@ -0,0 +1,11 @@
1
+ // The hooks are the `inject*` twins below, the rest is the shared core with nothing to wrap
2
+ export * from '../core';
3
+ export {
4
+ injectAuthRequest,
5
+ injectAuthRequestResult,
6
+ injectAutoDiscovery,
7
+ injectFacebookAuthRequest,
8
+ injectGoogleAuthRequest,
9
+ injectGoogleIdTokenAuthRequest,
10
+ injectLoadedAuthRequest,
11
+ } from './use-auth-request';
@@ -0,0 +1,30 @@
1
+ // Angular twins of `expo-auth-session`'s auth request hooks, `injectX` shape, call them in an
2
+ // injection context: getter or signal arguments, signal results
3
+
4
+ import type { Signal } from '@angular/core';
5
+ import {
6
+ createEventValueHook,
7
+ createResourceHook,
8
+ } from '@symbiote-native/angular';
9
+ import { GETTER_ARGS, createAuthRequestHooks } from '../core';
10
+ import type { IGetterKind, IHkt } from '../core';
11
+
12
+ interface ISignalKind extends IHkt {
13
+ readonly output: Signal<this['input']>;
14
+ }
15
+
16
+ export const {
17
+ useAuthRequest: injectAuthRequest,
18
+ useAuthRequestResult: injectAuthRequestResult,
19
+ useAutoDiscovery: injectAutoDiscovery,
20
+ useFacebookAuthRequest: injectFacebookAuthRequest,
21
+ useGoogleAuthRequest: injectGoogleAuthRequest,
22
+ useGoogleIdTokenAuthRequest: injectGoogleIdTokenAuthRequest,
23
+ useLoadedAuthRequest: injectLoadedAuthRequest,
24
+ } = createAuthRequestHooks<ISignalKind, ISignalKind, IGetterKind>({
25
+ createResourceHook,
26
+ createEventValueHook,
27
+ readResource: box => box(),
28
+ readValue: box => box(),
29
+ ...GETTER_ARGS,
30
+ });