timeback 0.0.0-alpha.2 → 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.
- package/README.md +378 -7
- package/dist/client/adapters/react/SignInButton.d.ts +60 -0
- package/dist/client/adapters/react/SignInButton.d.ts.map +1 -0
- package/dist/client/adapters/react/index.d.ts +43 -0
- package/dist/client/adapters/react/index.d.ts.map +1 -0
- package/dist/client/adapters/react/index.js +478 -0
- package/dist/client/adapters/react/provider.d.ts +74 -0
- package/dist/client/adapters/react/provider.d.ts.map +1 -0
- package/dist/client/adapters/solid/SignInButton.d.ts +52 -0
- package/dist/client/adapters/solid/SignInButton.d.ts.map +1 -0
- package/dist/client/adapters/solid/SignInButton.tsx +321 -0
- package/dist/client/adapters/solid/context.d.ts +73 -0
- package/dist/client/adapters/solid/context.d.ts.map +1 -0
- package/dist/client/adapters/solid/context.tsx +91 -0
- package/dist/client/adapters/solid/index.d.ts +42 -0
- package/dist/client/adapters/solid/index.d.ts.map +1 -0
- package/dist/client/adapters/solid/index.ts +46 -0
- package/dist/client/adapters/svelte/SignInButton.svelte +234 -0
- package/dist/client/adapters/svelte/SignInButton.svelte.d.ts +24 -0
- package/dist/client/adapters/svelte/index.d.ts +33 -0
- package/dist/client/adapters/svelte/index.d.ts.map +1 -0
- package/dist/client/adapters/svelte/index.ts +38 -0
- package/dist/client/adapters/svelte/stores.d.ts +62 -0
- package/dist/client/adapters/svelte/stores.d.ts.map +1 -0
- package/dist/client/adapters/svelte/stores.ts +139 -0
- package/dist/client/adapters/vue/SignInButton.vue +260 -0
- package/dist/client/adapters/vue/SignInButton.vue.d.ts +53 -0
- package/dist/client/adapters/vue/index.d.ts +43 -0
- package/dist/client/adapters/vue/index.d.ts.map +1 -0
- package/dist/client/adapters/vue/index.ts +48 -0
- package/dist/client/adapters/vue/provider.d.ts +94 -0
- package/dist/client/adapters/vue/provider.d.ts.map +1 -0
- package/dist/client/adapters/vue/provider.ts +147 -0
- package/dist/client/index.d.ts +9 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/lib/activity/activity.class.d.ts +73 -0
- package/dist/client/lib/activity/activity.class.d.ts.map +1 -0
- package/dist/client/lib/activity/activity.d.ts +16 -0
- package/dist/client/lib/activity/activity.d.ts.map +1 -0
- package/dist/client/lib/activity/index.d.ts +6 -0
- package/dist/client/lib/activity/index.d.ts.map +1 -0
- package/dist/client/lib/utils.d.ts +20 -0
- package/dist/client/lib/utils.d.ts.map +1 -0
- package/dist/client/namespaces/activity.d.ts +37 -0
- package/dist/client/namespaces/activity.d.ts.map +1 -0
- package/dist/client/namespaces/auth.d.ts +33 -0
- package/dist/client/namespaces/auth.d.ts.map +1 -0
- package/dist/client/namespaces/index.d.ts +7 -0
- package/dist/client/namespaces/index.d.ts.map +1 -0
- package/dist/client/namespaces/user.d.ts +29 -0
- package/dist/client/namespaces/user.d.ts.map +1 -0
- package/dist/client/timeback-client.class.d.ts +37 -0
- package/dist/client/timeback-client.class.d.ts.map +1 -0
- package/dist/client/timeback-client.d.ts +29 -0
- package/dist/client/timeback-client.d.ts.map +1 -0
- package/dist/client.d.ts +30 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +198 -0
- package/dist/index.d.ts +27 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1373 -11
- package/dist/server/adapters/express.d.ts +62 -0
- package/dist/server/adapters/express.d.ts.map +1 -0
- package/dist/server/adapters/express.js +565 -0
- package/dist/server/adapters/native.d.ts +45 -0
- package/dist/server/adapters/native.d.ts.map +1 -0
- package/dist/server/adapters/native.js +509 -0
- package/dist/server/adapters/nextjs.d.ts +30 -0
- package/dist/server/adapters/nextjs.d.ts.map +1 -0
- package/dist/server/adapters/nextjs.js +521 -0
- package/dist/server/adapters/nuxt.d.ts +96 -0
- package/dist/server/adapters/nuxt.d.ts.map +1 -0
- package/dist/server/adapters/nuxt.js +663 -0
- package/dist/server/adapters/solid-start.d.ts +61 -0
- package/dist/server/adapters/solid-start.d.ts.map +1 -0
- package/dist/server/adapters/solid-start.js +551 -0
- package/dist/server/adapters/svelte-kit.d.ts +82 -0
- package/dist/server/adapters/svelte-kit.d.ts.map +1 -0
- package/dist/server/adapters/svelte-kit.js +572 -0
- package/dist/server/adapters/tanstack-start.d.ts +40 -0
- package/dist/server/adapters/tanstack-start.d.ts.map +1 -0
- package/dist/server/adapters/tanstack-start.js +522 -0
- package/dist/server/adapters/types.d.ts +280 -0
- package/dist/server/adapters/types.d.ts.map +1 -0
- package/dist/server/adapters/utils.d.ts +15 -0
- package/dist/server/adapters/utils.d.ts.map +1 -0
- package/dist/server/handlers/activity.d.ts +28 -0
- package/dist/server/handlers/activity.d.ts.map +1 -0
- package/dist/server/handlers/identity.d.ts +24 -0
- package/dist/server/handlers/identity.d.ts.map +1 -0
- package/dist/server/handlers/index.d.ts +9 -0
- package/dist/server/handlers/index.d.ts.map +1 -0
- package/dist/server/handlers/user.d.ts +30 -0
- package/dist/server/handlers/user.d.ts.map +1 -0
- package/dist/server/index.d.ts +10 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/lib/index.d.ts +9 -0
- package/dist/server/lib/index.d.ts.map +1 -0
- package/dist/server/lib/logger.d.ts +21 -0
- package/dist/server/lib/logger.d.ts.map +1 -0
- package/dist/server/lib/oidc.d.ts +76 -0
- package/dist/server/lib/oidc.d.ts.map +1 -0
- package/dist/server/lib/utils.d.ts +39 -0
- package/dist/server/lib/utils.d.ts.map +1 -0
- package/dist/server/timeback.d.ts +48 -0
- package/dist/server/timeback.d.ts.map +1 -0
- package/dist/server/types.d.ts +300 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/shared/constants.d.ts +18 -0
- package/dist/shared/constants.d.ts.map +1 -0
- package/dist/shared/types.d.ts +100 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/package.json +104 -28
|
@@ -0,0 +1,280 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Adapter Types
|
|
3
|
+
*
|
|
4
|
+
* Public type definitions for server framework adapters.
|
|
5
|
+
*/
|
|
6
|
+
import type { Handlers, TimebackInstance } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Flexible input that accepts either a TimebackInstance or just the handlers.
|
|
9
|
+
*
|
|
10
|
+
* Allows both:
|
|
11
|
+
* - `toNextjsHandler(timeback)`
|
|
12
|
+
* - `toNextjsHandler(timeback.handle)`
|
|
13
|
+
*/
|
|
14
|
+
export type TimebackInput = TimebackInstance | Handlers;
|
|
15
|
+
/**
|
|
16
|
+
* Next.js route handlers.
|
|
17
|
+
*/
|
|
18
|
+
export interface NextjsHandlers {
|
|
19
|
+
GET: (req: Request) => Promise<Response>;
|
|
20
|
+
POST: (req: Request) => Promise<Response>;
|
|
21
|
+
PUT: (req: Request) => Promise<Response>;
|
|
22
|
+
DELETE: (req: Request) => Promise<Response>;
|
|
23
|
+
PATCH: (req: Request) => Promise<Response>;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Minimal request interface compatible with Express and similar frameworks.
|
|
27
|
+
*
|
|
28
|
+
* Works with: Express, Polka, Fastify (with express compat), Restify, etc.
|
|
29
|
+
*/
|
|
30
|
+
export interface ExpressLikeRequest {
|
|
31
|
+
method: string;
|
|
32
|
+
url: string;
|
|
33
|
+
headers: Record<string, string | string[] | undefined>;
|
|
34
|
+
body?: unknown;
|
|
35
|
+
protocol: string;
|
|
36
|
+
get: (name: string) => string | undefined;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Minimal response interface compatible with Express and similar frameworks.
|
|
40
|
+
*
|
|
41
|
+
* Works with: Express, Polka, Fastify (with express compat), Restify, etc.
|
|
42
|
+
*/
|
|
43
|
+
export interface ExpressLikeResponse {
|
|
44
|
+
status: (code: number) => ExpressLikeResponse;
|
|
45
|
+
set: (headers: Record<string, string>) => ExpressLikeResponse;
|
|
46
|
+
json: (data: unknown) => void;
|
|
47
|
+
send: (body: string) => void;
|
|
48
|
+
redirect: (url: string) => void;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Next function for Express-like middleware.
|
|
52
|
+
*/
|
|
53
|
+
export type ExpressLikeNext = () => void;
|
|
54
|
+
/**
|
|
55
|
+
* Minimal router interface compatible with Express and similar frameworks.
|
|
56
|
+
*
|
|
57
|
+
* Works with: Express.Router(), Polka, etc.
|
|
58
|
+
*/
|
|
59
|
+
export interface ExpressLikeRouter {
|
|
60
|
+
get: (path: string, handler: ExpressLikeHandler) => void;
|
|
61
|
+
post: (path: string, handler: ExpressLikeHandler) => void;
|
|
62
|
+
use: (handler: ExpressLikeHandler) => void;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Express-like middleware handler type.
|
|
66
|
+
*/
|
|
67
|
+
export type ExpressLikeHandler = (req: ExpressLikeRequest, res: ExpressLikeResponse, next: ExpressLikeNext) => void;
|
|
68
|
+
/**
|
|
69
|
+
* Options for the native handler.
|
|
70
|
+
*/
|
|
71
|
+
export interface NativeHandlerOptions {
|
|
72
|
+
/** Timeback instance or handlers */
|
|
73
|
+
timeback: TimebackInput;
|
|
74
|
+
/**
|
|
75
|
+
* Custom callback path for OAuth redirect.
|
|
76
|
+
*
|
|
77
|
+
* When your IdP uses a custom redirect URI that doesn't match the SDK's
|
|
78
|
+
* default `/identity/callback` path, set this to match your `redirectUri`.
|
|
79
|
+
*
|
|
80
|
+
* @example '/api/auth/sso/callback/timeback'
|
|
81
|
+
*/
|
|
82
|
+
callbackPath?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Minimal SvelteKit RequestEvent-compatible structure.
|
|
86
|
+
*
|
|
87
|
+
* Uses generics to accept SvelteKit's full RequestEvent without requiring the dependency.
|
|
88
|
+
*/
|
|
89
|
+
export interface SvelteKitRequestEvent {
|
|
90
|
+
request: Request;
|
|
91
|
+
url: URL;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Options for the SvelteKit handler hook.
|
|
95
|
+
*
|
|
96
|
+
* Uses generics to properly type the resolve function with the actual SvelteKit event type.
|
|
97
|
+
*/
|
|
98
|
+
export interface SvelteKitHandlerOptions<TEvent extends SvelteKitRequestEvent = SvelteKitRequestEvent> {
|
|
99
|
+
/** Timeback instance or handlers */
|
|
100
|
+
timeback: TimebackInput;
|
|
101
|
+
/** SvelteKit request event */
|
|
102
|
+
event: TEvent;
|
|
103
|
+
/** SvelteKit resolve function */
|
|
104
|
+
resolve: (event: TEvent) => Response | Promise<Response>;
|
|
105
|
+
/** Whether SvelteKit is building (from `$app/environment`) */
|
|
106
|
+
building?: boolean;
|
|
107
|
+
/** Base path for Timeback routes (default: '/api/timeback') */
|
|
108
|
+
basePath?: string;
|
|
109
|
+
/**
|
|
110
|
+
* Custom callback path for OAuth redirects.
|
|
111
|
+
*
|
|
112
|
+
* If your IdP has a pre-registered callback URL that differs from the SDK default
|
|
113
|
+
* (`/api/timeback/identity/callback`), specify the path here so the handler can
|
|
114
|
+
* intercept it.
|
|
115
|
+
*
|
|
116
|
+
* @example '/api/auth/sso/callback/timeback'
|
|
117
|
+
*/
|
|
118
|
+
callbackPath?: string;
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* SvelteKit RequestHandler type.
|
|
122
|
+
*
|
|
123
|
+
* Compatible with SvelteKit's `RequestHandler` from `@sveltejs/kit`.
|
|
124
|
+
*/
|
|
125
|
+
export type SvelteKitRequestHandler = (event: {
|
|
126
|
+
request: Request;
|
|
127
|
+
}) => Promise<Response>;
|
|
128
|
+
/**
|
|
129
|
+
* SvelteKit route handlers.
|
|
130
|
+
*/
|
|
131
|
+
export interface SvelteKitHandlers {
|
|
132
|
+
GET: SvelteKitRequestHandler;
|
|
133
|
+
POST: SvelteKitRequestHandler;
|
|
134
|
+
PUT: SvelteKitRequestHandler;
|
|
135
|
+
DELETE: SvelteKitRequestHandler;
|
|
136
|
+
PATCH: SvelteKitRequestHandler;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Minimal SolidStart APIEvent-compatible structure.
|
|
140
|
+
*/
|
|
141
|
+
export interface SolidStartEvent {
|
|
142
|
+
request: Request;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Options for the SolidStart middleware handler.
|
|
146
|
+
*/
|
|
147
|
+
export interface SolidStartHandlerOptions {
|
|
148
|
+
/** Timeback instance or handlers */
|
|
149
|
+
timeback: TimebackInput;
|
|
150
|
+
/** SolidStart event containing the request */
|
|
151
|
+
event: SolidStartEvent;
|
|
152
|
+
/** Base path for Timeback routes (default: '/api/timeback') */
|
|
153
|
+
basePath?: string;
|
|
154
|
+
/**
|
|
155
|
+
* Custom callback path for OAuth redirects.
|
|
156
|
+
*
|
|
157
|
+
* If your IdP has a pre-registered callback URL that differs from the SDK default
|
|
158
|
+
* (`/api/timeback/identity/callback`), specify the path here so the handler can
|
|
159
|
+
* intercept it.
|
|
160
|
+
*
|
|
161
|
+
* @example '/api/auth/sso/callback/timeback'
|
|
162
|
+
*/
|
|
163
|
+
callbackPath?: string;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* SolidStart RequestHandler type.
|
|
167
|
+
*
|
|
168
|
+
* Compatible with SolidStart's APIEvent handler pattern.
|
|
169
|
+
*/
|
|
170
|
+
export type SolidStartRequestHandler = (event: {
|
|
171
|
+
request: Request;
|
|
172
|
+
}) => Response | Promise<Response>;
|
|
173
|
+
/**
|
|
174
|
+
* SolidStart route handlers.
|
|
175
|
+
*/
|
|
176
|
+
export interface SolidStartHandlers {
|
|
177
|
+
GET: SolidStartRequestHandler;
|
|
178
|
+
POST: SolidStartRequestHandler;
|
|
179
|
+
PUT: SolidStartRequestHandler;
|
|
180
|
+
DELETE: SolidStartRequestHandler;
|
|
181
|
+
PATCH: SolidStartRequestHandler;
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* TanStack Start route event.
|
|
185
|
+
*/
|
|
186
|
+
export interface TanStackStartEvent {
|
|
187
|
+
request: Request;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* TanStack Start RequestHandler type.
|
|
191
|
+
*/
|
|
192
|
+
export type TanStackStartRequestHandler = (event: TanStackStartEvent) => Response | Promise<Response>;
|
|
193
|
+
/**
|
|
194
|
+
* TanStack Start route handlers.
|
|
195
|
+
*/
|
|
196
|
+
export interface TanStackStartHandlers {
|
|
197
|
+
GET: TanStackStartRequestHandler;
|
|
198
|
+
POST: TanStackStartRequestHandler;
|
|
199
|
+
PUT: TanStackStartRequestHandler;
|
|
200
|
+
DELETE: TanStackStartRequestHandler;
|
|
201
|
+
PATCH: TanStackStartRequestHandler;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Options for the TanStack Start handler.
|
|
205
|
+
*/
|
|
206
|
+
export interface TanStackStartHandlerOptions {
|
|
207
|
+
/** Timeback instance or handlers */
|
|
208
|
+
timeback: TimebackInput;
|
|
209
|
+
/** Custom callback path for OAuth (if different from default) */
|
|
210
|
+
callbackPath?: string;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Minimal Node.js IncomingMessage-like interface.
|
|
214
|
+
*
|
|
215
|
+
* Used for fallback request conversion when `event.request` is not available.
|
|
216
|
+
*/
|
|
217
|
+
export interface NodeLikeIncomingMessage {
|
|
218
|
+
method?: string;
|
|
219
|
+
url?: string;
|
|
220
|
+
headers: Record<string, string | string[] | undefined>;
|
|
221
|
+
on: (event: 'data' | 'end' | 'error', listener: (chunk?: Buffer | Error) => void) => void;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Minimal H3Event-compatible structure for Nuxt 3.
|
|
225
|
+
*
|
|
226
|
+
* This interface supports two patterns:
|
|
227
|
+
* 1. Modern H3 with `event.request` (Web Request API) - preferred
|
|
228
|
+
* 2. Legacy/fallback with `event.node.req` (Node IncomingMessage)
|
|
229
|
+
*
|
|
230
|
+
* We check for `event.request` first, falling back to `event.node.req` for
|
|
231
|
+
* environments where the Web Request isn't directly available.
|
|
232
|
+
*/
|
|
233
|
+
export interface NuxtLikeEvent {
|
|
234
|
+
/** Web Request (preferred, available in modern H3/Nitro) */
|
|
235
|
+
request?: Request;
|
|
236
|
+
/** Node.js request/response objects (fallback) */
|
|
237
|
+
node?: {
|
|
238
|
+
req: NodeLikeIncomingMessage;
|
|
239
|
+
};
|
|
240
|
+
/** Request path */
|
|
241
|
+
path?: string;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Options for the Nuxt middleware handler.
|
|
245
|
+
*/
|
|
246
|
+
export interface NuxtHandlerOptions<TEvent extends NuxtLikeEvent = NuxtLikeEvent> {
|
|
247
|
+
/** Timeback instance or handlers */
|
|
248
|
+
timeback: TimebackInput;
|
|
249
|
+
/** Nuxt/H3 event */
|
|
250
|
+
event: TEvent;
|
|
251
|
+
/** Base path for Timeback routes (default: '/api/timeback') */
|
|
252
|
+
basePath?: string;
|
|
253
|
+
/**
|
|
254
|
+
* Custom callback path for OAuth redirects.
|
|
255
|
+
*
|
|
256
|
+
* If your IdP has a pre-registered callback URL that differs from the SDK default
|
|
257
|
+
* (`/api/timeback/identity/callback`), specify the path here so the handler can
|
|
258
|
+
* intercept it.
|
|
259
|
+
*
|
|
260
|
+
* @example '/api/auth/sso/callback/timeback'
|
|
261
|
+
*/
|
|
262
|
+
callbackPath?: string;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Nuxt RequestHandler type.
|
|
266
|
+
*
|
|
267
|
+
* Compatible with Nuxt 3's defineEventHandler pattern.
|
|
268
|
+
*/
|
|
269
|
+
export type NuxtRequestHandler = (event: NuxtLikeEvent) => Response | Promise<Response>;
|
|
270
|
+
/**
|
|
271
|
+
* Nuxt route handlers.
|
|
272
|
+
*/
|
|
273
|
+
export interface NuxtHandlers {
|
|
274
|
+
GET: NuxtRequestHandler;
|
|
275
|
+
POST: NuxtRequestHandler;
|
|
276
|
+
PUT: NuxtRequestHandler;
|
|
277
|
+
DELETE: NuxtRequestHandler;
|
|
278
|
+
PATCH: NuxtRequestHandler;
|
|
279
|
+
}
|
|
280
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Adapter Utilities
|
|
3
|
+
*
|
|
4
|
+
* Shared utilities for server framework adapters.
|
|
5
|
+
*/
|
|
6
|
+
import type { Handlers } from '../types';
|
|
7
|
+
import type { TimebackInput } from './types';
|
|
8
|
+
/**
|
|
9
|
+
* Extract handlers from flexible input.
|
|
10
|
+
*
|
|
11
|
+
* @param input - TimebackInstance or Handlers
|
|
12
|
+
* @returns Handlers object
|
|
13
|
+
*/
|
|
14
|
+
export declare function getHandlers(input: TimebackInput): Handlers;
|
|
15
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAE5C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAE1D"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Activity Handlers
|
|
3
|
+
*
|
|
4
|
+
* Route handlers for activity tracking.
|
|
5
|
+
*/
|
|
6
|
+
import type { ApiCredentials, AppConfig, Environment, IdentityConfig } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for the activity handler.
|
|
9
|
+
*/
|
|
10
|
+
interface ActivityHandlerConfig {
|
|
11
|
+
env: Environment;
|
|
12
|
+
identity: IdentityConfig;
|
|
13
|
+
appConfig: AppConfig;
|
|
14
|
+
apiCredentials: ApiCredentials;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Activity handler type.
|
|
18
|
+
*/
|
|
19
|
+
type ActivityHandler = (req: Request) => Promise<Response>;
|
|
20
|
+
/**
|
|
21
|
+
* Create the activity POST handler.
|
|
22
|
+
*
|
|
23
|
+
* @param config - Handler configuration
|
|
24
|
+
* @returns The activity request handler
|
|
25
|
+
*/
|
|
26
|
+
export declare function createActivityHandler(config: ActivityHandlerConfig): ActivityHandler;
|
|
27
|
+
export {};
|
|
28
|
+
//# sourceMappingURL=activity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/activity.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAkCtF;;GAEG;AACH,UAAU,qBAAqB;IAC9B,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,SAAS,CAAA;IACpB,cAAc,EAAE,cAAc,CAAA;CAC9B;AAED;;GAEG;AACH,KAAK,eAAe,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE1D;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,eAAe,CAuCpF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Handlers
|
|
3
|
+
*
|
|
4
|
+
* Route handlers for Timeback server operations.
|
|
5
|
+
*/
|
|
6
|
+
export { createIdentityHandlers } from './identity';
|
|
7
|
+
export { createActivityHandler } from './activity';
|
|
8
|
+
export { createUserHandler } from './user';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* User Handlers
|
|
3
|
+
*
|
|
4
|
+
* Route handlers for user profile data.
|
|
5
|
+
*/
|
|
6
|
+
import type { ApiCredentials, Environment, IdentityConfig } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* Configuration for the user handler.
|
|
9
|
+
*/
|
|
10
|
+
interface UserHandlerConfig {
|
|
11
|
+
env: Environment;
|
|
12
|
+
identity: IdentityConfig;
|
|
13
|
+
apiCredentials: ApiCredentials;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* User handler type.
|
|
17
|
+
*/
|
|
18
|
+
type UserHandler = (req: Request) => Promise<Response>;
|
|
19
|
+
/**
|
|
20
|
+
* Create the user profile handler.
|
|
21
|
+
*
|
|
22
|
+
* Returns the current user's profile, including identity and enriched data
|
|
23
|
+
* from the Timeback API.
|
|
24
|
+
*
|
|
25
|
+
* @param config - Handler configuration
|
|
26
|
+
* @returns The user profile request handler
|
|
27
|
+
*/
|
|
28
|
+
export declare function createUserHandler(config: UserHandlerConfig): UserHandler;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/user.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAE3E;;GAEG;AACH,UAAU,iBAAiB;IAC1B,GAAG,EAAE,WAAW,CAAA;IAChB,QAAQ,EAAE,cAAc,CAAA;IACxB,cAAc,EAAE,cAAc,CAAA;CAC9B;AAED;;GAEG;AACH,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAEtD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,WAAW,CA4BxE"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timeback Server SDK
|
|
3
|
+
*
|
|
4
|
+
* Server-side exports for the Timeback SDK.
|
|
5
|
+
*/
|
|
6
|
+
export { createServer } from './timeback';
|
|
7
|
+
export type { TimebackConfig, TimebackInstance, Environment, ApiCredentials, IdentityConfig, SsoIdentityConfig, CustomIdentityConfig, Handlers, BuildStateContext, CallbackSuccessContext, CallbackErrorContext, OIDCTokens, OIDCUserInfo, } from './types';
|
|
8
|
+
export type { CallbackSuccessContext as IdentityCallbackSuccess } from './types';
|
|
9
|
+
export type { CallbackErrorContext as IdentityCallbackError } from './types';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,YAAY,EACX,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,QAAQ,EACR,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,UAAU,EACV,YAAY,GACZ,MAAM,SAAS,CAAA;AAEhB,YAAY,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,MAAM,SAAS,CAAA;AAChF,YAAY,EAAE,oBAAoB,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Library
|
|
3
|
+
*
|
|
4
|
+
* Internal utilities for the server SDK.
|
|
5
|
+
*/
|
|
6
|
+
export { getIssuer, buildAuthorizationUrl, exchangeCodeForTokens, getUserInfo } from './oidc';
|
|
7
|
+
export { jsonResponse, redirectResponse, encodeBase64Url, decodeBase64Url } from './utils';
|
|
8
|
+
export { ssoLog, oidcLog, createScopedLogger } from './logger';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/lib/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAC7F,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAC1F,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SDK Logger
|
|
3
|
+
*
|
|
4
|
+
* Debug logging for the Timeback SDK server components.
|
|
5
|
+
* Only logs when DEBUG=1 or DEBUG=true is set.
|
|
6
|
+
*/
|
|
7
|
+
import type { Logger } from '@timeback/internal-logger';
|
|
8
|
+
/**
|
|
9
|
+
* Create a scoped logger for SDK components.
|
|
10
|
+
*
|
|
11
|
+
* Only logs debug/info when DEBUG=1 or DEBUG=true.
|
|
12
|
+
*
|
|
13
|
+
* @param scope - Logger scope name (e.g., 'sso', 'oidc')
|
|
14
|
+
* @returns Configured logger instance
|
|
15
|
+
*/
|
|
16
|
+
export declare function createScopedLogger(scope: string): Logger;
|
|
17
|
+
/** Logger for SSO/identity operations */
|
|
18
|
+
export declare const ssoLog: Logger;
|
|
19
|
+
/** Logger for OIDC protocol operations */
|
|
20
|
+
export declare const oidcLog: Logger;
|
|
21
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/server/lib/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAA;AAgBvD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAKxD;AAED,yCAAyC;AACzC,eAAO,MAAM,MAAM,QAA4B,CAAA;AAE/C,0CAA0C;AAC1C,eAAO,MAAM,OAAO,QAA6B,CAAA"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OIDC Helpers
|
|
3
|
+
*
|
|
4
|
+
* Helpers for Timeback SSO via OIDC with automatic endpoint discovery.
|
|
5
|
+
*/
|
|
6
|
+
import type { Environment, OIDCTokens, OIDCUserInfo } from '../types';
|
|
7
|
+
/**
|
|
8
|
+
* OIDC Discovery document structure.
|
|
9
|
+
*/
|
|
10
|
+
interface OIDCDiscoveryDocument {
|
|
11
|
+
issuer: string;
|
|
12
|
+
authorization_endpoint: string;
|
|
13
|
+
token_endpoint: string;
|
|
14
|
+
userinfo_endpoint: string;
|
|
15
|
+
jwks_uri: string;
|
|
16
|
+
end_session_endpoint?: string;
|
|
17
|
+
}
|
|
18
|
+
/** Parameters for building an authorization URL. */
|
|
19
|
+
interface BuildAuthorizationUrlParams {
|
|
20
|
+
issuer: string;
|
|
21
|
+
clientId: string;
|
|
22
|
+
redirectUri: string;
|
|
23
|
+
state: string;
|
|
24
|
+
}
|
|
25
|
+
/** Parameters for exchanging an authorization code for tokens. */
|
|
26
|
+
interface ExchangeCodeParams {
|
|
27
|
+
issuer: string;
|
|
28
|
+
clientId: string;
|
|
29
|
+
clientSecret: string;
|
|
30
|
+
code: string;
|
|
31
|
+
redirectUri: string;
|
|
32
|
+
}
|
|
33
|
+
/** Parameters for fetching user info. */
|
|
34
|
+
interface GetUserInfoParams {
|
|
35
|
+
issuer: string;
|
|
36
|
+
accessToken: string;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Fetch the OIDC discovery document for an issuer.
|
|
40
|
+
*
|
|
41
|
+
* @param issuer - The OIDC issuer URL
|
|
42
|
+
* @returns The discovery document
|
|
43
|
+
*/
|
|
44
|
+
export declare function fetchDiscoveryDocument(issuer: string): Promise<OIDCDiscoveryDocument>;
|
|
45
|
+
/**
|
|
46
|
+
* Get the Timeback IdP issuer URL for the given environment.
|
|
47
|
+
*
|
|
48
|
+
* Uses AWS Cognito User Pools as the identity provider.
|
|
49
|
+
*
|
|
50
|
+
* @param env - The environment
|
|
51
|
+
* @returns The issuer URL
|
|
52
|
+
*/
|
|
53
|
+
export declare function getIssuer(env: Environment): string;
|
|
54
|
+
/**
|
|
55
|
+
* Build the authorization URL for OIDC.
|
|
56
|
+
*
|
|
57
|
+
* @param params - Authorization parameters
|
|
58
|
+
* @returns The authorization URL
|
|
59
|
+
*/
|
|
60
|
+
export declare function buildAuthorizationUrl(params: BuildAuthorizationUrlParams): Promise<string>;
|
|
61
|
+
/**
|
|
62
|
+
* Exchange authorization code for tokens.
|
|
63
|
+
*
|
|
64
|
+
* @param params - Token exchange parameters
|
|
65
|
+
* @returns The token response
|
|
66
|
+
*/
|
|
67
|
+
export declare function exchangeCodeForTokens(params: ExchangeCodeParams): Promise<OIDCTokens>;
|
|
68
|
+
/**
|
|
69
|
+
* Get user info from the IdP.
|
|
70
|
+
*
|
|
71
|
+
* @param params - User info request parameters
|
|
72
|
+
* @returns The user info claims
|
|
73
|
+
*/
|
|
74
|
+
export declare function getUserInfo(params: GetUserInfoParams): Promise<OIDCUserInfo>;
|
|
75
|
+
export {};
|
|
76
|
+
//# sourceMappingURL=oidc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../../../src/server/lib/oidc.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAErE;;GAEG;AACH,UAAU,qBAAqB;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,sBAAsB,EAAE,MAAM,CAAA;IAC9B,cAAc,EAAE,MAAM,CAAA;IACtB,iBAAiB,EAAE,MAAM,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC7B;AAED,oDAAoD;AACpD,UAAU,2BAA2B;IACpC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,KAAK,EAAE,MAAM,CAAA;CACb;AAED,kEAAkE;AAClE,UAAU,kBAAkB;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACnB;AAED,yCAAyC;AACzC,UAAU,iBAAiB;IAC1B,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;CACnB;AAKD;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAuB3F;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CASlD;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,2BAA2B,GAAG,OAAO,CAAC,MAAM,CAAC,CAWhG;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA4B3F;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,YAAY,CAAC,CAclF"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Utilities
|
|
3
|
+
*
|
|
4
|
+
* Internal utility functions for the server SDK.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Create a JSON response.
|
|
8
|
+
*
|
|
9
|
+
* @param data - Response data
|
|
10
|
+
* @param status - HTTP status code
|
|
11
|
+
* @param headers - Additional headers
|
|
12
|
+
* @returns JSON response
|
|
13
|
+
*/
|
|
14
|
+
export declare function jsonResponse<T>(data: T, status?: number, headers?: HeadersInit): Response;
|
|
15
|
+
/**
|
|
16
|
+
* Create a redirect response.
|
|
17
|
+
*
|
|
18
|
+
* @param url - URL to redirect to
|
|
19
|
+
* @param headers - Additional headers (e.g., Set-Cookie)
|
|
20
|
+
* @returns Redirect response
|
|
21
|
+
*/
|
|
22
|
+
export declare function redirectResponse(url: string, headers?: HeadersInit): Response;
|
|
23
|
+
/**
|
|
24
|
+
* Encode an object to a base64url-safe string.
|
|
25
|
+
*
|
|
26
|
+
* Used for OIDC state parameter.
|
|
27
|
+
*
|
|
28
|
+
* @param data - Data to encode
|
|
29
|
+
* @returns Base64url encoded string
|
|
30
|
+
*/
|
|
31
|
+
export declare function encodeBase64Url(data: unknown): string;
|
|
32
|
+
/**
|
|
33
|
+
* Decode a base64url string back to an object.
|
|
34
|
+
*
|
|
35
|
+
* @param encoded - Base64url encoded string
|
|
36
|
+
* @returns Decoded object
|
|
37
|
+
*/
|
|
38
|
+
export declare function decodeBase64Url<T>(encoded: string): T;
|
|
39
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/server/lib/utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,SAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CAItF;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,QAAQ,CAI7E;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CAIrD;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,CAAC,CAKrD"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Timeback Server SDK
|
|
3
|
+
*
|
|
4
|
+
* Factory function to create the Timeback server instance.
|
|
5
|
+
*/
|
|
6
|
+
import type { TimebackConfig, TimebackInstance } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Create a Timeback server instance.
|
|
9
|
+
*
|
|
10
|
+
* Returns a framework-agnostic instance with raw handlers.
|
|
11
|
+
* Use an adapter to integrate with your framework:
|
|
12
|
+
* - `toNextjsHandler()` for Next.js App Router
|
|
13
|
+
* - `toHonoApp()` / `toHonoMiddleware()` for Hono
|
|
14
|
+
* - `toExpressMiddleware()` / `mountExpressRoutes()` for Express
|
|
15
|
+
*
|
|
16
|
+
* @param config - Server configuration
|
|
17
|
+
* @returns Timeback instance with handlers
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* import { createServer } from 'timeback'
|
|
22
|
+
* import { toNextjsHandler } from 'timeback/nextjs'
|
|
23
|
+
*
|
|
24
|
+
* const timeback = await createServer({
|
|
25
|
+
* env: 'production',
|
|
26
|
+
* api: {
|
|
27
|
+
* clientId: process.env.TIMEBACK_API_CLIENT_ID!,
|
|
28
|
+
* clientSecret: process.env.TIMEBACK_API_CLIENT_SECRET!,
|
|
29
|
+
* },
|
|
30
|
+
* identity: {
|
|
31
|
+
* mode: 'custom',
|
|
32
|
+
* getUser: async (req) => {
|
|
33
|
+
* const session = await getSession(req)
|
|
34
|
+
* return {
|
|
35
|
+
* id: session.userId,
|
|
36
|
+
* email: session.user.email,
|
|
37
|
+
* name: session.user.name,
|
|
38
|
+
* }
|
|
39
|
+
* },
|
|
40
|
+
* },
|
|
41
|
+
* })
|
|
42
|
+
*
|
|
43
|
+
* // For Next.js App Router
|
|
44
|
+
* export const { GET, POST } = toNextjsHandler(timeback)
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function createServer(config: TimebackConfig): Promise<TimebackInstance>;
|
|
48
|
+
//# sourceMappingURL=timeback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timeback.d.ts","sourceRoot":"","sources":["../../src/server/timeback.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,wBAAsB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwCpF"}
|