timeback 0.1.1 → 0.1.3

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 (77) hide show
  1. package/README.md +208 -10
  2. package/dist/client/adapters/react/index.d.ts +1 -1
  3. package/dist/client/adapters/react/index.d.ts.map +1 -1
  4. package/dist/client/adapters/solid/index.d.ts +1 -1
  5. package/dist/client/adapters/solid/index.d.ts.map +1 -1
  6. package/dist/client/adapters/solid/index.ts +1 -1
  7. package/dist/client/adapters/svelte/index.d.ts +1 -1
  8. package/dist/client/adapters/svelte/index.d.ts.map +1 -1
  9. package/dist/client/adapters/svelte/index.ts +1 -1
  10. package/dist/client/adapters/vue/index.d.ts +1 -1
  11. package/dist/client/adapters/vue/index.d.ts.map +1 -1
  12. package/dist/client/adapters/vue/index.ts +1 -1
  13. package/dist/client.d.ts +1 -1
  14. package/dist/client.d.ts.map +1 -1
  15. package/dist/edge.d.ts +13 -0
  16. package/dist/edge.d.ts.map +1 -0
  17. package/dist/edge.js +1149 -0
  18. package/dist/identity.d.ts +14 -0
  19. package/dist/identity.d.ts.map +1 -0
  20. package/dist/identity.js +1019 -0
  21. package/dist/index.d.ts +24 -6
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +8987 -145
  24. package/dist/server/adapters/express.d.ts +9 -5
  25. package/dist/server/adapters/express.d.ts.map +1 -1
  26. package/dist/server/adapters/express.js +8854 -93
  27. package/dist/server/adapters/native.d.ts +7 -5
  28. package/dist/server/adapters/native.d.ts.map +1 -1
  29. package/dist/server/adapters/native.js +120 -439
  30. package/dist/server/adapters/nextjs.d.ts +5 -3
  31. package/dist/server/adapters/nextjs.d.ts.map +1 -1
  32. package/dist/server/adapters/nextjs.js +120 -439
  33. package/dist/server/adapters/nuxt.d.ts +6 -4
  34. package/dist/server/adapters/nuxt.d.ts.map +1 -1
  35. package/dist/server/adapters/nuxt.js +8900 -168
  36. package/dist/server/adapters/solid-start.d.ts +5 -3
  37. package/dist/server/adapters/solid-start.d.ts.map +1 -1
  38. package/dist/server/adapters/solid-start.js +8821 -78
  39. package/dist/server/adapters/svelte-kit.d.ts +5 -3
  40. package/dist/server/adapters/svelte-kit.d.ts.map +1 -1
  41. package/dist/server/adapters/svelte-kit.js +134 -463
  42. package/dist/server/adapters/tanstack-start.d.ts +5 -3
  43. package/dist/server/adapters/tanstack-start.d.ts.map +1 -1
  44. package/dist/server/adapters/tanstack-start.js +8794 -44
  45. package/dist/server/adapters/types.d.ts +25 -11
  46. package/dist/server/adapters/types.d.ts.map +1 -1
  47. package/dist/server/adapters/utils.d.ts +66 -5
  48. package/dist/server/adapters/utils.d.ts.map +1 -1
  49. package/dist/server/handlers/activity.d.ts +1 -1
  50. package/dist/server/handlers/activity.d.ts.map +1 -1
  51. package/dist/server/handlers/identity-full.d.ts +28 -0
  52. package/dist/server/handlers/identity-full.d.ts.map +1 -0
  53. package/dist/server/handlers/identity-only.d.ts +22 -0
  54. package/dist/server/handlers/identity-only.d.ts.map +1 -0
  55. package/dist/server/handlers/index.d.ts +1 -1
  56. package/dist/server/handlers/index.d.ts.map +1 -1
  57. package/dist/server/handlers/user.d.ts +1 -1
  58. package/dist/server/handlers/user.d.ts.map +1 -1
  59. package/dist/server/index.d.ts +3 -4
  60. package/dist/server/index.d.ts.map +1 -1
  61. package/dist/server/lib/index.d.ts +2 -1
  62. package/dist/server/lib/index.d.ts.map +1 -1
  63. package/dist/server/lib/resolve-timeback-user.d.ts +42 -0
  64. package/dist/server/lib/resolve-timeback-user.d.ts.map +1 -0
  65. package/dist/server/lib/utils.d.ts +15 -0
  66. package/dist/server/lib/utils.d.ts.map +1 -1
  67. package/dist/server/timeback-identity.d.ts +19 -0
  68. package/dist/server/timeback-identity.d.ts.map +1 -0
  69. package/dist/server/timeback.d.ts +33 -13
  70. package/dist/server/timeback.d.ts.map +1 -1
  71. package/dist/server/types.d.ts +135 -33
  72. package/dist/server/types.d.ts.map +1 -1
  73. package/dist/shared/types.d.ts +49 -5
  74. package/dist/shared/types.d.ts.map +1 -1
  75. package/package.json +10 -1
  76. package/dist/server/handlers/identity.d.ts +0 -24
  77. package/dist/server/handlers/identity.d.ts.map +0 -1
@@ -3,11 +3,16 @@
3
3
  *
4
4
  * Configuration and internal types for the server SDK.
5
5
  */
6
- import type { TimebackUser } from '../shared/types';
6
+ import type { TimebackClient } from '@timeback/core';
7
+ import type { TimebackAuthUser, TimebackIdentity } from '../shared/types';
7
8
  /**
8
9
  * Environment configuration.
9
10
  */
10
11
  export type Environment = 'local' | 'staging' | 'production';
12
+ /**
13
+ * Error codes for Timeback user resolution failures.
14
+ */
15
+ export type TimebackUserResolutionErrorCode = 'missing_email' | 'timeback_user_not_found' | 'timeback_user_ambiguous' | 'timeback_user_lookup_failed';
11
16
  /**
12
17
  * API credentials for Timeback API calls.
13
18
  */
@@ -82,15 +87,48 @@ export interface BuildStateContext {
82
87
  url: URL;
83
88
  }
84
89
  /**
85
- * Context passed to onCallbackSuccess hook.
90
+ * Raw identity provider data (tokens and user info claims).
91
+ */
92
+ export interface IdpData {
93
+ /** OIDC tokens from the identity provider */
94
+ tokens: OIDCTokens;
95
+ /** User info claims from the identity provider */
96
+ userInfo: OIDCUserInfo;
97
+ }
98
+ /**
99
+ * Context passed to onCallbackSuccess hook for full SDK (createTimeback).
100
+ *
101
+ * When using `createTimeback()` with SSO mode, the `user` field contains the
102
+ * enriched `TimebackAuthUser` with `timebackId` as the canonical identifier. Raw IdP
103
+ * data is available under `idp`.
86
104
  */
87
105
  export interface CallbackSuccessContext<TState = unknown> {
106
+ /** Authenticated user with Timeback profile and IdP claims */
107
+ user: TimebackAuthUser;
108
+ /** Raw identity provider data (tokens and user info) */
109
+ idp: IdpData;
110
+ /** State data from buildState (if provided) */
111
+ state: TState | undefined;
112
+ /** The incoming callback request */
113
+ req: Request;
114
+ /** Helper to create a redirect response */
115
+ redirect: (url: string, headers?: HeadersInit) => Response;
116
+ /** Helper to create a JSON response */
117
+ json: <T>(data: T, status?: number, headers?: HeadersInit) => Response;
118
+ }
119
+ /**
120
+ * Context passed to onCallbackSuccess hook for identity-only SDK (createTimebackIdentity).
121
+ *
122
+ * When using `createTimebackIdentity()`, the `user` field contains raw OIDC user info
123
+ * claims (no Timeback profile enrichment).
124
+ */
125
+ export interface IdentityOnlyCallbackSuccessContext<TState = unknown> {
88
126
  /** OIDC tokens from the identity provider */
89
127
  tokens: OIDCTokens;
90
128
  /** User info claims from the identity provider */
91
129
  user: OIDCUserInfo;
92
130
  /** State data from buildState (if provided) */
93
- state: TState;
131
+ state: TState | undefined;
94
132
  /** The incoming callback request */
95
133
  req: Request;
96
134
  /** Helper to create a redirect response */
@@ -116,11 +154,9 @@ export interface CallbackErrorContext<TState = unknown> {
116
154
  json: <T>(data: T, status?: number, headers?: HeadersInit) => Response;
117
155
  }
118
156
  /**
119
- * SSO identity configuration.
120
- *
121
- * Provides full control over the OIDC flow without managing user sessions.
157
+ * Base SSO identity configuration fields (shared between full and identity-only).
122
158
  */
123
- export interface SsoIdentityConfig<TState = unknown> {
159
+ interface BaseSsoIdentityConfig<TState = unknown> {
124
160
  mode: 'sso';
125
161
  /** OIDC client ID */
126
162
  clientId: string;
@@ -163,29 +199,6 @@ export interface SsoIdentityConfig<TState = unknown> {
163
199
  * ```
164
200
  */
165
201
  buildState?: (ctx: BuildStateContext) => TState;
166
- /**
167
- * Called after successful OIDC authentication.
168
- *
169
- * Use this to:
170
- * 1. Upsert the user in your database
171
- * 2. Set your own session cookie
172
- * 3. Redirect to the appropriate page
173
- *
174
- * @param ctx - Context with tokens, user info, state, and helpers
175
- * @returns Response (typically a redirect)
176
- *
177
- * @example
178
- * ```typescript
179
- * onCallbackSuccess: async ({ user, state, redirect }) => {
180
- * await db.user.upsert({ where: { email: user.email }, ... })
181
- * const session = await createSession(user)
182
- * return redirect(state.returnTo ?? '/', {
183
- * 'Set-Cookie': `session=${session.id}; HttpOnly; Path=/`,
184
- * })
185
- * }
186
- * ```
187
- */
188
- onCallbackSuccess: (ctx: CallbackSuccessContext<TState>) => Promise<Response> | Response;
189
202
  /**
190
203
  * Called when OIDC authentication fails.
191
204
  *
@@ -200,7 +213,7 @@ export interface SsoIdentityConfig<TState = unknown> {
200
213
  * }
201
214
  * ```
202
215
  */
203
- onCallbackError?: (ctx: CallbackErrorContext<TState>) => Promise<Response> | Response;
216
+ onCallbackError?(ctx: CallbackErrorContext<TState>): Promise<Response> | Response;
204
217
  /**
205
218
  * Get the current user from the request.
206
219
  *
@@ -223,7 +236,39 @@ export interface SsoIdentityConfig<TState = unknown> {
223
236
  * getUser: (req) => currentUser
224
237
  * ```
225
238
  */
226
- getUser: (req: Request) => Promise<TimebackUser | undefined> | TimebackUser | undefined;
239
+ getUser(req: Request): Promise<TimebackIdentity | undefined> | TimebackIdentity | undefined;
240
+ }
241
+ /**
242
+ * SSO identity configuration for full SDK (createTimeback).
243
+ *
244
+ * When using `createTimeback()`, the SSO callback provides an enriched `TimebackAuthUser`
245
+ * with `timebackId` as the canonical identifier. The SDK resolves the Timeback
246
+ * user by email using server API credentials.
247
+ */
248
+ export interface SsoIdentityConfig<TState = unknown, TSuccessContext = CallbackSuccessContext<TState>> extends BaseSsoIdentityConfig<TState> {
249
+ /**
250
+ * Called after successful OIDC authentication and Timeback user resolution.
251
+ *
252
+ * The `user` field contains the enriched `TimebackAuthUser` with:
253
+ * - `id`: Timeback user ID (canonical stable identifier)
254
+ * - `email`, `name`: User profile data
255
+ * - `claims`: Raw IdP claims (sub, firstName, lastName, pictureUrl)
256
+ *
257
+ * Raw IdP data (tokens, userInfo) is available under `idp`.
258
+ *
259
+ * @param ctx - Context with enriched user, IdP data, state, and helpers
260
+ * @returns Response (typically a redirect)
261
+ *
262
+ * @example
263
+ * ```typescript
264
+ * onCallbackSuccess: async ({ user, state, redirect }) => {
265
+ * // user.id is the timebackId (canonical identifier)
266
+ * await setSession({ id: user.id, email: user.email })
267
+ * return redirect(state.returnTo ?? '/')
268
+ * }
269
+ * ```
270
+ */
271
+ onCallbackSuccess(ctx: TSuccessContext): Promise<Response> | Response;
227
272
  }
228
273
  /**
229
274
  * Custom identity configuration.
@@ -241,7 +286,7 @@ export interface CustomIdentityConfig {
241
286
  * @param req - The incoming request
242
287
  * @returns User object or undefined (sync or async)
243
288
  */
244
- getUser: (req: Request) => Promise<TimebackUser | undefined> | TimebackUser | undefined;
289
+ getUser(req: Request): Promise<TimebackIdentity | undefined> | TimebackIdentity | undefined;
245
290
  }
246
291
  /**
247
292
  * Identity configuration (SSO or custom).
@@ -296,5 +341,62 @@ export interface TimebackInstance<TState = unknown> {
296
341
  config: TimebackConfig<TState>;
297
342
  /** Request handlers */
298
343
  handle: Handlers;
344
+ /**
345
+ * Direct access to the Timeback API client.
346
+ *
347
+ * This is an escape hatch for advanced use cases that need to call Timeback
348
+ * services (OneRoster, Edubridge, Caliper, QTI) beyond what the SDK handlers
349
+ * provide. The client is created lazily on first access.
350
+ *
351
+ * Note: For `env: 'local'`, outbound API calls use `staging` environment.
352
+ *
353
+ * @example
354
+ * ```typescript
355
+ * // List users from OneRoster
356
+ * const { data: users } = await timeback.api.oneroster.users.list({ limit: 10 })
357
+ *
358
+ * // Send a Caliper event
359
+ * await timeback.api.caliper.emit(event)
360
+ * ```
361
+ */
362
+ api: TimebackClient;
363
+ }
364
+ /**
365
+ * Identity-only configuration.
366
+ *
367
+ * Use this when you only need SSO authentication without activity tracking
368
+ * or Timeback API integration.
369
+ */
370
+ export interface IdentityOnlyConfig<TState = unknown> {
371
+ /** Environment */
372
+ env: Environment;
373
+ /** Identity configuration (SSO mode required for identity-only) */
374
+ identity: SsoIdentityConfig<TState, IdentityOnlyCallbackSuccessContext<TState>>;
375
+ }
376
+ /**
377
+ * Identity-only handlers.
378
+ */
379
+ export interface IdentityOnlyHandlers {
380
+ /** Identity-related handlers */
381
+ identity: {
382
+ /** Initiate sign-in */
383
+ signIn: (req: Request) => Promise<Response>;
384
+ /** Handle OAuth callback */
385
+ callback: (req: Request) => Promise<Response>;
386
+ /** Sign out user */
387
+ signOut: () => Response;
388
+ };
389
+ }
390
+ /**
391
+ * Identity-only SDK instance.
392
+ *
393
+ * Returned by `createTimebackIdentity()` for SSO-only integrations.
394
+ */
395
+ export interface IdentityOnlyInstance<TState = unknown> {
396
+ /** Configuration */
397
+ config: IdentityOnlyConfig<TState>;
398
+ /** Request handlers (identity only) */
399
+ handle: IdentityOnlyHandlers;
299
400
  }
401
+ export {};
300
402
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/server/types.ts"],"names":[],"mappings":"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"}
@@ -11,17 +11,15 @@ export interface TimebackIdentity {
11
11
  email: string;
12
12
  name?: string;
13
13
  }
14
- /**
15
- * @deprecated Use TimebackIdentity instead
16
- */
17
- export type TimebackUser = TimebackIdentity;
18
14
  /**
19
15
  * Timeback user profile with enriched data from the Timeback API.
20
16
  */
21
17
  export interface TimebackProfile {
22
- /** User identity */
18
+ /** Timeback user ID */
23
19
  id: string;
20
+ /** User's email address */
24
21
  email: string;
22
+ /** User's display name */
25
23
  name?: string;
26
24
  /** School information */
27
25
  school?: {
@@ -45,6 +43,52 @@ export interface TimebackProfile {
45
43
  dailyActiveMinutes?: number;
46
44
  };
47
45
  }
46
+ /**
47
+ * Recommended minimal user payload to persist in a session.
48
+ *
49
+ * **User-facing note:** this type is part of the SDK’s developer experience.
50
+ * It exists to give you a “safe default” session shape that works well for
51
+ * cookie-based sessions (small payload) while still carrying enough Timeback
52
+ * context to power common UI affordances (e.g. showing a school name or grade).
53
+ *
54
+ * **What it is:** a minimal, serializable subset of `TimebackProfile`.
55
+ * **What it isn’t:** a guarantee that you’ll always have the full Timeback
56
+ * profile (courses, goals, xp, etc.) in-session. If you need richer data, fetch
57
+ * it from the API (e.g. `timeback.user.fetch()`) and cache/store it according
58
+ * to your app’s needs.
59
+ *
60
+ * **Stability:** this is still early and we’re actively iterating on identity
61
+ * and session ergonomics. We may rename, restructure, or remove this type from
62
+ * the public surface as the SDK evolves.
63
+ */
64
+ export type TimebackSessionUser = Pick<TimebackProfile, 'id' | 'email' | 'name' | 'school' | 'grade'>;
65
+ /**
66
+ * Claims from the identity provider (IdP).
67
+ *
68
+ * Normalized subset of OIDC UserInfo claims.
69
+ */
70
+ export interface IdentityClaims {
71
+ /** Subject identifier (unique user ID from IdP) */
72
+ sub: string;
73
+ /** User's email address */
74
+ email: string;
75
+ /** User's first/given name */
76
+ firstName?: string;
77
+ /** User's last/family name */
78
+ lastName?: string;
79
+ /** User's profile picture URL */
80
+ pictureUrl?: string;
81
+ }
82
+ /**
83
+ * Authenticated user with Timeback profile and IdP claims.
84
+ *
85
+ * This is the primary user object returned during SSO callback when using
86
+ * `createTimeback()`. The `id` field is the canonical `timebackId` (stable identifier).
87
+ */
88
+ export interface TimebackAuthUser extends TimebackProfile {
89
+ /** IdP claims (raw identity provider data) */
90
+ claims: IdentityClaims;
91
+ }
48
92
  /**
49
93
  * Activity start parameters.
50
94
  */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;CACb;AAED;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,gBAAgB,CAAA;AAE3C;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAA;IACV,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IAEb,yBAAyB;IACzB,MAAM,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;KACZ,CAAA;IAED,kBAAkB;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IAEd,4BAA4B;IAC5B,EAAE,CAAC,EAAE,MAAM,CAAA;IAEX,uBAAuB;IACvB,OAAO,CAAC,EAAE,KAAK,CAAC;QACf,EAAE,EAAE,MAAM,CAAA;QACV,IAAI,EAAE,MAAM,CAAA;QACZ,IAAI,EAAE,MAAM,CAAA;KACZ,CAAC,CAAA;IAEF,yBAAyB;IACzB,KAAK,CAAC,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,YAAY,CAAC,EAAE,MAAM,CAAA;QACrB,kBAAkB,CAAC,EAAE,MAAM,CAAA;KAC3B,CAAA;CACD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC9B,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,+DAA+D;IAC/D,UAAU,EAAE,MAAM,CAAA;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC/B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,gCAAgC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IAClC,gDAAgD;IAChD,EAAE,EAAE,MAAM,CAAA;IACV,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAA;IACZ,0CAA0C;IAC1C,UAAU,EAAE,MAAM,CAAA;IAClB,+CAA+C;IAC/C,SAAS,EAAE,MAAM,CAAA;IACjB,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAA;IACf,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAA;IACjB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,OAAO,EAAE,eAAe,CAAA;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "timeback",
3
- "version": "0.1.1",
3
+ "version": "0.1.3",
4
4
  "description": "Timeback SDK for frontend and backend integration",
5
5
  "type": "module",
6
6
  "exports": {
@@ -12,6 +12,14 @@
12
12
  "types": "./dist/client.d.ts",
13
13
  "import": "./dist/client.js"
14
14
  },
15
+ "./identity": {
16
+ "types": "./dist/identity.d.ts",
17
+ "import": "./dist/identity.js"
18
+ },
19
+ "./edge": {
20
+ "types": "./dist/edge.d.ts",
21
+ "import": "./dist/edge.js"
22
+ },
15
23
  "./react": {
16
24
  "types": "./dist/client/adapters/react/index.d.ts",
17
25
  "import": "./dist/client/adapters/react/index.js"
@@ -69,6 +77,7 @@
69
77
  "test": "bun test --no-env-file unit.test.ts"
70
78
  },
71
79
  "dependencies": {
80
+ "@timeback/core": "0.1.1",
72
81
  "jiti": "^2.6.1",
73
82
  "zod": "^4.2.1"
74
83
  },
@@ -1,24 +0,0 @@
1
- /**
2
- * Identity Handlers
3
- *
4
- * Route handlers for SSO identity operations.
5
- * User session state is managed by your own auth system via the hooks.
6
- */
7
- import type { Environment, IdentityConfig } from '../types';
8
- interface IdentityHandlerParams {
9
- env: Environment;
10
- identity: IdentityConfig;
11
- }
12
- /**
13
- * Create identity route handlers.
14
- *
15
- * @param params - Handler configuration
16
- * @returns Identity handlers
17
- */
18
- export declare function createIdentityHandlers(params: IdentityHandlerParams): {
19
- signIn: (req: Request) => Promise<Response>;
20
- callback: (req: Request) => Promise<Response>;
21
- signOut: () => Response;
22
- };
23
- export {};
24
- //# sourceMappingURL=identity.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAGX,WAAW,EACX,cAAc,EAEd,MAAM,UAAU,CAAA;AAEjB,UAAU,qBAAqB;IAC9B,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;CACxB;AAqPA;;;;;EAKE;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,qBAAqB;;;;EAQnE"}