@hypequery/serve 0.0.9 → 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 +150 -232
- package/dist/auth.d.ts +20 -1
- package/dist/auth.d.ts.map +1 -1
- package/dist/auth.js +60 -3
- package/dist/builder.d.ts.map +1 -1
- package/dist/builder.js +5 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +50 -10
- package/dist/server/builder.d.ts.map +1 -1
- package/dist/server/builder.js +8 -1
- package/dist/types.d.ts +24 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils.d.ts +1 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +3 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,37 +14,38 @@ Peer dependencies: `zod@^3`, `tsx@^4` (optional, for dev server)
|
|
|
14
14
|
|
|
15
15
|
```ts
|
|
16
16
|
// analytics/server.ts
|
|
17
|
-
import {
|
|
17
|
+
import { initServe } from '@hypequery/serve';
|
|
18
18
|
import { z } from 'zod';
|
|
19
|
-
import { db } from './
|
|
19
|
+
import { db } from './client';
|
|
20
20
|
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
weeklyRevenue: {
|
|
24
|
-
inputSchema: z.object({ startDate: z.string() }),
|
|
25
|
-
outputSchema: z.object({ total: z.number() }),
|
|
26
|
-
query: async ({ input, ctx }) => {
|
|
27
|
-
const result = await db
|
|
28
|
-
.select({ total: sum(sales.amount) })
|
|
29
|
-
.from(sales)
|
|
30
|
-
.where(gte(sales.date, input.startDate));
|
|
31
|
-
return { total: result[0].total };
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
},
|
|
21
|
+
const { define, queries, query } = initServe({
|
|
22
|
+
context: () => ({ db }),
|
|
35
23
|
});
|
|
36
24
|
|
|
37
|
-
|
|
38
|
-
|
|
25
|
+
export const api = define({
|
|
26
|
+
queries: queries({
|
|
27
|
+
weeklyRevenue: query
|
|
28
|
+
.describe('Calculate weekly revenue')
|
|
29
|
+
.input(z.object({ startDate: z.string() }))
|
|
30
|
+
.query(({ ctx, input }) =>
|
|
31
|
+
ctx.db
|
|
32
|
+
.table('sales')
|
|
33
|
+
.select(['total_amount'])
|
|
34
|
+
.where('date', 'gte', input.startDate)
|
|
35
|
+
.sum('total_amount', 'total')
|
|
36
|
+
.execute()
|
|
37
|
+
),
|
|
38
|
+
}),
|
|
39
|
+
});
|
|
39
40
|
|
|
40
|
-
//
|
|
41
|
-
|
|
41
|
+
// Expose as HTTP endpoint
|
|
42
|
+
api.route('/weeklyRevenue', api.queries.weeklyRevenue);
|
|
42
43
|
```
|
|
43
44
|
|
|
44
45
|
Your API is now running with:
|
|
45
|
-
- **Endpoint**: `
|
|
46
|
-
- **Docs**: `http://localhost:
|
|
47
|
-
- **OpenAPI**: `http://localhost:
|
|
46
|
+
- **Endpoint**: `POST http://localhost:4000/weeklyRevenue`
|
|
47
|
+
- **Docs**: `http://localhost:4000/docs` (interactive Swagger UI)
|
|
48
|
+
- **OpenAPI**: `http://localhost:4000/openapi.json` (machine-readable schema)
|
|
48
49
|
|
|
49
50
|
---
|
|
50
51
|
|
|
@@ -52,24 +53,21 @@ Your API is now running with:
|
|
|
52
53
|
|
|
53
54
|
### 1. Server Builders
|
|
54
55
|
|
|
55
|
-
#### `
|
|
56
|
+
#### `initServe<TContext, TAuth>(options)`
|
|
56
57
|
|
|
57
|
-
Main entry point for creating a hypequery server. Returns
|
|
58
|
+
Main entry point for creating a hypequery server. Returns an initializer with type-safe query builders and context inference.
|
|
58
59
|
|
|
59
60
|
**Parameters:**
|
|
60
61
|
|
|
61
62
|
```ts
|
|
62
|
-
interface
|
|
63
|
-
//
|
|
64
|
-
|
|
63
|
+
interface ServeInitializerOptions<TContext, TAuth> {
|
|
64
|
+
// Context factory (runs per-request to inject dependencies)
|
|
65
|
+
context: TContext | ((opts: { request: ServeRequest; auth: TAuth | null }) => TContext | Promise<TContext>);
|
|
65
66
|
|
|
66
67
|
// Base path for all routes
|
|
67
68
|
basePath?: string;
|
|
68
69
|
|
|
69
|
-
//
|
|
70
|
-
context?: TContext | ((opts: { request: ServeRequest; auth: TAuth | null }) => TContext | Promise<TContext>);
|
|
71
|
-
|
|
72
|
-
// Authentication strategies
|
|
70
|
+
// Authentication strategy
|
|
73
71
|
auth?: AuthStrategy<TAuth> | AuthStrategy<TAuth>[];
|
|
74
72
|
|
|
75
73
|
// Global middlewares (run before every endpoint)
|
|
@@ -91,102 +89,12 @@ interface ServeConfig<TContext, TAuth, TQueries> {
|
|
|
91
89
|
|
|
92
90
|
**Returns:**
|
|
93
91
|
|
|
94
|
-
```ts
|
|
95
|
-
interface ServeBuilder<TQueries, TContext, TAuth> {
|
|
96
|
-
queries: TQueries; // Registered query definitions
|
|
97
|
-
_routeConfig: Record<string, { method: HttpMethod }>; // Route-level HTTP method overrides
|
|
98
|
-
|
|
99
|
-
// Register a route
|
|
100
|
-
route(path: string, endpoint: ServeEndpoint, options?: RouteOptions): ServeBuilder;
|
|
101
|
-
|
|
102
|
-
// Add global middleware
|
|
103
|
-
use(middleware: ServeMiddleware): ServeBuilder;
|
|
104
|
-
|
|
105
|
-
// Add authentication strategy
|
|
106
|
-
useAuth(strategy: AuthStrategy<TAuth>): ServeBuilder;
|
|
107
|
-
|
|
108
|
-
// Execute query directly (bypasses HTTP)
|
|
109
|
-
execute<K extends keyof TQueries>(
|
|
110
|
-
key: K,
|
|
111
|
-
options?: { input?: any; context?: Partial<TContext>; request?: Partial<ServeRequest> }
|
|
112
|
-
): Promise<QueryResult<TQueries[K]>>;
|
|
113
|
-
|
|
114
|
-
// Get toolkit description (for LLM integration)
|
|
115
|
-
describe(): ToolkitDescription;
|
|
116
|
-
|
|
117
|
-
// Raw HTTP handler (for custom adapters)
|
|
118
|
-
handler: ServeHandler;
|
|
119
|
-
|
|
120
|
-
// Start Node.js HTTP server
|
|
121
|
-
start(options?: StartServerOptions): Promise<{ server: Server; stop: () => Promise<void> }>;
|
|
122
|
-
}
|
|
123
|
-
```
|
|
124
|
-
|
|
125
|
-
**Example:**
|
|
126
|
-
|
|
127
|
-
```ts
|
|
128
|
-
const api = defineServe({
|
|
129
|
-
basePath: '/api',
|
|
130
|
-
context: async ({ request, auth }) => ({
|
|
131
|
-
db: createDatabaseConnection(),
|
|
132
|
-
userId: auth?.userId,
|
|
133
|
-
}),
|
|
134
|
-
auth: createBearerTokenStrategy({
|
|
135
|
-
validate: async (token) => {
|
|
136
|
-
const user = await verifyJWT(token);
|
|
137
|
-
return user ? { userId: user.id, role: user.role } : null;
|
|
138
|
-
},
|
|
139
|
-
}),
|
|
140
|
-
queries: {
|
|
141
|
-
getUser: {
|
|
142
|
-
inputSchema: z.object({ id: z.string() }),
|
|
143
|
-
outputSchema: z.object({ name: z.string(), email: z.string() }),
|
|
144
|
-
query: async ({ input, ctx }) => {
|
|
145
|
-
return ctx.db.query.users.findFirst({
|
|
146
|
-
where: eq(users.id, input.id),
|
|
147
|
-
});
|
|
148
|
-
},
|
|
149
|
-
},
|
|
150
|
-
},
|
|
151
|
-
});
|
|
152
|
-
|
|
153
|
-
api.route('/users/:id', api.queries.getUser, { method: 'GET' });
|
|
154
|
-
|
|
155
|
-
await api.start({ port: 4000 });
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
---
|
|
159
|
-
|
|
160
|
-
#### `initServe<TContext, TAuth>(options)`
|
|
161
|
-
|
|
162
|
-
Advanced pattern for defining reusable query builders with context type inference. Use this when you want to define context once and create multiple queries that share the same types.
|
|
163
|
-
|
|
164
|
-
**Parameters:**
|
|
165
|
-
|
|
166
|
-
```ts
|
|
167
|
-
interface ServeInitializerOptions<TContext, TAuth> {
|
|
168
|
-
context: TContext | ((opts: { request: ServeRequest; auth: TAuth | null }) => TContext | Promise<TContext>);
|
|
169
|
-
basePath?: string;
|
|
170
|
-
auth?: AuthStrategy<TAuth> | AuthStrategy<TAuth>[];
|
|
171
|
-
middlewares?: ServeMiddleware<any, any, TContext, TAuth>[];
|
|
172
|
-
tenant?: TenantConfig<TAuth>;
|
|
173
|
-
hooks?: ServeLifecycleHooks<TAuth>;
|
|
174
|
-
openapi?: OpenApiOptions;
|
|
175
|
-
docs?: DocsOptions;
|
|
176
|
-
}
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
**Returns:**
|
|
180
|
-
|
|
181
92
|
```ts
|
|
182
93
|
interface ServeInitializer<TContext, TAuth> {
|
|
183
|
-
//
|
|
184
|
-
procedure: QueryProcedureBuilder<TContext, TAuth>;
|
|
185
|
-
|
|
186
|
-
// Alias for procedure
|
|
94
|
+
// Query builder (chainable query configuration)
|
|
187
95
|
query: QueryProcedureBuilder<TContext, TAuth>;
|
|
188
96
|
|
|
189
|
-
// Helper to group queries
|
|
97
|
+
// Helper to group multiple queries
|
|
190
98
|
queries<TQueries>(definitions: TQueries): TQueries;
|
|
191
99
|
|
|
192
100
|
// Define server with queries
|
|
@@ -198,51 +106,47 @@ interface ServeInitializer<TContext, TAuth> {
|
|
|
198
106
|
|
|
199
107
|
```ts
|
|
200
108
|
// Define context once
|
|
201
|
-
const
|
|
109
|
+
const { define, queries, query } = initServe({
|
|
110
|
+
basePath: '/api',
|
|
202
111
|
context: async ({ auth }) => ({
|
|
203
112
|
db: createDatabase(),
|
|
204
113
|
userId: auth?.userId,
|
|
205
114
|
}),
|
|
206
|
-
auth:
|
|
207
|
-
validate: async (
|
|
208
|
-
const user = await
|
|
209
|
-
return user ? { userId: user.id } : null;
|
|
115
|
+
auth: createBearerTokenStrategy({
|
|
116
|
+
validate: async (token) => {
|
|
117
|
+
const user = await verifyJWT(token);
|
|
118
|
+
return user ? { userId: user.id, role: user.role } : null;
|
|
210
119
|
},
|
|
211
120
|
}),
|
|
212
121
|
});
|
|
213
122
|
|
|
214
123
|
// Create queries with inferred types
|
|
215
|
-
const
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
124
|
+
export const api = define({
|
|
125
|
+
queries: queries({
|
|
126
|
+
getUser: query
|
|
127
|
+
.input(z.object({ id: z.string() }))
|
|
128
|
+
.query(async ({ ctx, input }) => {
|
|
129
|
+
return ctx.db.query.users.findFirst({
|
|
130
|
+
where: eq(users.id, input.id),
|
|
131
|
+
});
|
|
132
|
+
}),
|
|
133
|
+
|
|
134
|
+
weeklyRevenue: query
|
|
135
|
+
.describe('Calculate weekly revenue totals')
|
|
136
|
+
.input(z.object({ startDate: z.string() }))
|
|
137
|
+
.query(async ({ ctx, input }) => {
|
|
138
|
+
return ctx.db
|
|
139
|
+
.table('sales')
|
|
140
|
+
.where('date', 'gte', input.startDate)
|
|
141
|
+
.sum('amount', 'total')
|
|
142
|
+
.execute();
|
|
143
|
+
}),
|
|
144
|
+
}),
|
|
236
145
|
});
|
|
237
146
|
|
|
238
|
-
//
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
api
|
|
242
|
-
.route('/revenue', api.queries.getRevenue)
|
|
243
|
-
.route('/sales', api.queries.createSale);
|
|
244
|
-
|
|
245
|
-
await api.start();
|
|
147
|
+
// Expose as HTTP endpoints
|
|
148
|
+
api.route('/users/:id', api.queries.getUser, { method: 'GET' });
|
|
149
|
+
api.route('/weeklyRevenue', api.queries.weeklyRevenue);
|
|
246
150
|
```
|
|
247
151
|
|
|
248
152
|
---
|
|
@@ -429,29 +333,23 @@ curl -H "Authorization: Bearer eyJhbGc..." http://localhost:3000/revenue
|
|
|
429
333
|
|
|
430
334
|
---
|
|
431
335
|
|
|
432
|
-
### 4.
|
|
336
|
+
### 4. Query Builder (Advanced Query Configuration)
|
|
433
337
|
|
|
434
|
-
The
|
|
338
|
+
The query builder provides a chainable API for configuring queries with full type inference.
|
|
435
339
|
|
|
436
340
|
**Available Methods:**
|
|
437
341
|
|
|
438
342
|
```ts
|
|
439
343
|
interface QueryProcedureBuilder<TContext, TAuth> {
|
|
344
|
+
// Description (OpenAPI documentation, supports Markdown)
|
|
345
|
+
describe(description: string): QueryProcedureBuilder;
|
|
346
|
+
|
|
440
347
|
// Input schema (Zod)
|
|
441
348
|
input<TSchema extends ZodTypeAny>(schema: TSchema): QueryProcedureBuilder;
|
|
442
349
|
|
|
443
|
-
// Output schema (Zod)
|
|
444
|
-
output<TSchema extends ZodTypeAny>(schema: TSchema): QueryProcedureBuilder;
|
|
445
|
-
|
|
446
350
|
// HTTP method (GET, POST, PUT, DELETE, etc.)
|
|
447
351
|
method(method: HttpMethod): QueryProcedureBuilder;
|
|
448
352
|
|
|
449
|
-
// Summary (OpenAPI short description)
|
|
450
|
-
summary(summary: string): QueryProcedureBuilder;
|
|
451
|
-
|
|
452
|
-
// Description (OpenAPI detailed description, supports Markdown)
|
|
453
|
-
describe(description: string): QueryProcedureBuilder;
|
|
454
|
-
|
|
455
353
|
// Add single tag (for OpenAPI grouping)
|
|
456
354
|
tag(tag: string): QueryProcedureBuilder;
|
|
457
355
|
|
|
@@ -465,7 +363,9 @@ interface QueryProcedureBuilder<TContext, TAuth> {
|
|
|
465
363
|
auth(strategy: AuthStrategy<TAuth>): QueryProcedureBuilder;
|
|
466
364
|
|
|
467
365
|
// Multi-tenancy configuration
|
|
468
|
-
tenant(config: TenantConfig<TAuth
|
|
366
|
+
tenant(config: Partial<TenantConfig<TAuth>>): QueryProcedureBuilder;
|
|
367
|
+
tenantOptional(config?: Partial<TenantConfig<TAuth>>): QueryProcedureBuilder;
|
|
368
|
+
require(): QueryProcedureBuilder;
|
|
469
369
|
|
|
470
370
|
// Custom metadata (for extensions)
|
|
471
371
|
custom(metadata: Record<string, unknown>): QueryProcedureBuilder;
|
|
@@ -483,41 +383,31 @@ interface QueryProcedureBuilder<TContext, TAuth> {
|
|
|
483
383
|
**Example:**
|
|
484
384
|
|
|
485
385
|
```ts
|
|
486
|
-
const
|
|
386
|
+
const { query } = initServe({
|
|
487
387
|
context: async () => ({ db: createDatabase() }),
|
|
488
388
|
});
|
|
489
389
|
|
|
490
|
-
const getAnalytics =
|
|
390
|
+
const getAnalytics = query
|
|
391
|
+
.describe(`
|
|
392
|
+
Returns aggregated analytics for the specified metric and date range.
|
|
393
|
+
Supports revenue, user count, and session metrics.
|
|
394
|
+
`)
|
|
491
395
|
.input(z.object({
|
|
492
396
|
startDate: z.string(),
|
|
493
397
|
endDate: z.string(),
|
|
494
398
|
metric: z.enum(['revenue', 'users', 'sessions']),
|
|
495
399
|
}))
|
|
496
|
-
.output(z.object({
|
|
497
|
-
total: z.number(),
|
|
498
|
-
trend: z.number(),
|
|
499
|
-
}))
|
|
500
|
-
.method('GET')
|
|
501
|
-
.summary('Fetch analytics data')
|
|
502
|
-
.describe(`
|
|
503
|
-
Returns aggregated analytics for the specified metric and date range.
|
|
504
|
-
Supports revenue, user count, and session metrics.
|
|
505
|
-
`)
|
|
506
400
|
.tag('Analytics')
|
|
507
401
|
.cache(300000) // Cache for 5 minutes
|
|
508
|
-
.query(async ({
|
|
509
|
-
const result = await ctx.db
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
)
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
return {
|
|
518
|
-
total: result.total,
|
|
519
|
-
trend: result.trend,
|
|
520
|
-
};
|
|
402
|
+
.query(async ({ ctx, input }) => {
|
|
403
|
+
const result = await ctx.db
|
|
404
|
+
.table('analytics')
|
|
405
|
+
.where('date', 'gte', input.startDate)
|
|
406
|
+
.where('date', 'lte', input.endDate)
|
|
407
|
+
.sum(input.metric, 'total')
|
|
408
|
+
.execute();
|
|
409
|
+
|
|
410
|
+
return result[0];
|
|
521
411
|
});
|
|
522
412
|
```
|
|
523
413
|
|
|
@@ -551,7 +441,7 @@ interface TenantConfig<TAuth> {
|
|
|
551
441
|
**Example (Manual Mode):**
|
|
552
442
|
|
|
553
443
|
```ts
|
|
554
|
-
const
|
|
444
|
+
const { define, queries, query } = initServe({
|
|
555
445
|
tenant: {
|
|
556
446
|
extract: (auth) => auth?.tenantId ?? null,
|
|
557
447
|
mode: 'manual', // You manually filter by tenantId
|
|
@@ -559,25 +449,28 @@ const api = defineServe({
|
|
|
559
449
|
},
|
|
560
450
|
context: async ({ auth }) => ({
|
|
561
451
|
db: createDatabase(),
|
|
562
|
-
tenantId: auth?.tenantId,
|
|
452
|
+
tenantId: auth?.tenantId,
|
|
563
453
|
}),
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
454
|
+
});
|
|
455
|
+
|
|
456
|
+
export const api = define({
|
|
457
|
+
queries: queries({
|
|
458
|
+
getUsers: query
|
|
459
|
+
.query(async ({ ctx }) => {
|
|
567
460
|
// Manually filter by tenant
|
|
568
|
-
return ctx.db
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
},
|
|
461
|
+
return ctx.db
|
|
462
|
+
.table('users')
|
|
463
|
+
.where('tenant_id', 'eq', ctx.tenantId)
|
|
464
|
+
.execute();
|
|
465
|
+
}),
|
|
466
|
+
}),
|
|
574
467
|
});
|
|
575
468
|
```
|
|
576
469
|
|
|
577
470
|
**Example (Auto-Inject Mode):**
|
|
578
471
|
|
|
579
472
|
```ts
|
|
580
|
-
const
|
|
473
|
+
const { define, queries, query } = initServe({
|
|
581
474
|
tenant: {
|
|
582
475
|
extract: (auth) => auth?.organizationId ?? null,
|
|
583
476
|
mode: 'auto-inject',
|
|
@@ -586,15 +479,37 @@ const api = defineServe({
|
|
|
586
479
|
context: async () => ({
|
|
587
480
|
db: createDatabase(),
|
|
588
481
|
}),
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
482
|
+
});
|
|
483
|
+
|
|
484
|
+
export const api = define({
|
|
485
|
+
queries: queries({
|
|
486
|
+
getUsers: query
|
|
487
|
+
.query(async ({ ctx }) => {
|
|
592
488
|
// Tenant filter is automatically injected
|
|
593
|
-
return ctx.db
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
489
|
+
return ctx.db
|
|
490
|
+
.table('users')
|
|
491
|
+
.select(['id', 'name'])
|
|
492
|
+
.execute();
|
|
493
|
+
// Equivalent to: SELECT id, name FROM users WHERE organization_id = <tenant_id>
|
|
494
|
+
}),
|
|
495
|
+
}),
|
|
496
|
+
});
|
|
497
|
+
```
|
|
498
|
+
|
|
499
|
+
**Per-query override (optional tenant, no auto-inject):**
|
|
500
|
+
|
|
501
|
+
```ts
|
|
502
|
+
export const api = define({
|
|
503
|
+
queries: queries({
|
|
504
|
+
adminStats: query
|
|
505
|
+
.tenantOptional({ mode: 'manual' })
|
|
506
|
+
.query(async ({ ctx }) => {
|
|
507
|
+
if (ctx.tenantId) {
|
|
508
|
+
return ctx.db.table('stats').where('tenant_id', 'eq', ctx.tenantId).execute();
|
|
509
|
+
}
|
|
510
|
+
return ctx.db.table('stats').execute();
|
|
511
|
+
}),
|
|
512
|
+
}),
|
|
598
513
|
});
|
|
599
514
|
```
|
|
600
515
|
|
|
@@ -964,33 +879,36 @@ export { handler as GET, handler as POST, handler as PUT, handler as DELETE };
|
|
|
964
879
|
All functions are fully typed with automatic inference:
|
|
965
880
|
|
|
966
881
|
```ts
|
|
967
|
-
import {
|
|
882
|
+
import { initServe } from '@hypequery/serve';
|
|
968
883
|
import { z } from 'zod';
|
|
969
884
|
|
|
970
|
-
const
|
|
885
|
+
const { define, queries, query } = initServe({
|
|
971
886
|
context: async ({ auth }) => ({
|
|
972
887
|
db: createDatabase(),
|
|
973
888
|
userId: auth?.userId,
|
|
974
889
|
}),
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
890
|
+
});
|
|
891
|
+
|
|
892
|
+
export const api = define({
|
|
893
|
+
queries: queries({
|
|
894
|
+
getUser: query
|
|
895
|
+
.input(z.object({ id: z.string() }))
|
|
896
|
+
.query(async ({ ctx, input }) => {
|
|
980
897
|
// input: { id: string }
|
|
981
898
|
// ctx: { db: Database; userId: string | undefined }
|
|
982
|
-
return ctx.db
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
899
|
+
return ctx.db
|
|
900
|
+
.table('users')
|
|
901
|
+
.where('id', 'eq', input.id)
|
|
902
|
+
.select(['name', 'email'])
|
|
903
|
+
.limit(1)
|
|
904
|
+
.execute();
|
|
905
|
+
}),
|
|
906
|
+
}),
|
|
988
907
|
});
|
|
989
908
|
|
|
990
|
-
// Execute with type safety
|
|
991
|
-
const
|
|
992
|
-
|
|
993
|
-
});
|
|
909
|
+
// Execute with type safety (aliases: api.execute, api.client)
|
|
910
|
+
const result = await api.run('getUser', { id: '123' });
|
|
911
|
+
const user = result[0];
|
|
994
912
|
// user: { name: string; email: string }
|
|
995
913
|
```
|
|
996
914
|
|
package/dist/auth.d.ts
CHANGED
|
@@ -1,4 +1,23 @@
|
|
|
1
|
-
import type { AuthContext, AuthContextWithRoles, AuthContextWithScopes, AuthStrategy, ServeMiddleware, ServeRequest } from "./types.js";
|
|
1
|
+
import type { AuthContext, AuthContextWithRoles, AuthContextWithScopes, AuthStrategy, AuthErrorInfo, ServeMiddleware, ServeRequest } from "./types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Safely read a header from a ServeRequest with case-insensitive
|
|
4
|
+
* and array-safe normalization.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getHeader: (request: ServeRequest, name: string) => string | undefined;
|
|
7
|
+
export declare class AuthError extends Error implements AuthErrorInfo {
|
|
8
|
+
reason: AuthErrorInfo["reason"];
|
|
9
|
+
details?: Record<string, unknown>;
|
|
10
|
+
constructor(reason: AuthErrorInfo["reason"], message: string, details?: Record<string, unknown>);
|
|
11
|
+
}
|
|
12
|
+
export interface ApiKeyAuthOptions<TAuth extends AuthContext = AuthContext> {
|
|
13
|
+
header?: string;
|
|
14
|
+
allowMissing?: boolean;
|
|
15
|
+
validate: (key: string, request: ServeRequest) => Promise<TAuth | null> | TAuth | null;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Simple API key auth adapter with clear missing/invalid errors.
|
|
19
|
+
*/
|
|
20
|
+
export declare const apiKeyAuth: <TAuth extends AuthContext = AuthContext>(options: ApiKeyAuthOptions<TAuth>) => AuthStrategy<TAuth>;
|
|
2
21
|
export interface ApiKeyStrategyOptions<TAuth extends AuthContext = AuthContext> {
|
|
3
22
|
header?: string;
|
|
4
23
|
queryParam?: string;
|
package/dist/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../src/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EACpB,qBAAqB,EACrB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,YAAY,EACb,MAAM,YAAY,CAAC;AAWpB;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAI,SAAS,YAAY,EAAE,MAAM,MAAM,KAAG,MAAM,GAAG,SAexE,CAAC;AAEF,qBAAa,SAAU,SAAQ,KAAM,YAAW,aAAa;IAC3D,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAEtB,MAAM,EAAE,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAMhG;AAED,MAAM,WAAW,iBAAiB,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW;IACxE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;CACxF;AAED;;GAEG;AACH,eAAO,MAAM,UAAU,GAAI,KAAK,SAAS,WAAW,GAAG,WAAW,EAChE,SAAS,iBAAiB,CAAC,KAAK,CAAC,KAChC,YAAY,CAAC,KAAK,CAiBpB,CAAC;AAEF,MAAM,WAAW,qBAAqB,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;CACxF;AAED,eAAO,MAAM,oBAAoB,GAAI,KAAK,SAAS,WAAW,GAAG,WAAW,EAC1E,SAAS,qBAAqB,CAAC,KAAK,CAAC,KACpC,YAAY,CAAC,KAAK,CA0BpB,CAAC;AAEF,MAAM,WAAW,0BAA0B,CAAC,KAAK,SAAS,WAAW,GAAG,WAAW;IACjF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,KAAK,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;CAC1F;AAED,eAAO,MAAM,yBAAyB,GAAI,KAAK,SAAS,WAAW,GAAG,WAAW,EAC/E,SAAS,0BAA0B,CAAC,KAAK,CAAC,KACzC,YAAY,CAAC,KAAK,CAepB,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAA;CAAE,GACZ;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,GAAG,eAAe,CAAA;CAAE,CAAC;AAE/E;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,WAAW,GAAG,IAAI,EACxB,eAAe,MAAM,EAAE,KACtB,mBAWF,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,GAClC,MAAM,WAAW,GAAG,IAAI,EACxB,gBAAgB,MAAM,EAAE,KACvB,mBAWF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,SAAS,WAAW,GAAG,WAAW,OACpC,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAS3C,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,qBAAqB,GAChC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,SAAS,WAAW,GAAG,WAAW,EAEvC,GAAG,OAAO,MAAM,EAAE,KACjB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAUzC,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,eAAO,MAAM,sBAAsB,GACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClE,KAAK,SAAS,WAAW,GAAG,WAAW,EAEvC,GAAG,QAAQ,MAAM,EAAE,KAClB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAUzC,CAAC;AAEJ;;;GAGG;AACH,MAAM,WAAW,uBAAuB,CACtC,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM;IAE/B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE1B;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;CAC7B;AAED;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAC1B,MAAM,SAAS,MAAM,EACrB,OAAO,SAAS,MAAM,IACpB,oBAAoB,CAAC,MAAM,CAAC,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,SAAS,MAAM,GAAG,MAAM,EAC9B,OAAO,SAAS,MAAM,GAAG,MAAM,EAE/B,UAAS,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAM;IAGpD;;;;;;;;;;;;;;;;;;;;;OAqBG;cACO,KAAK,SAAS,WAAW,YACvB,YAAY,CAAC,KAAK,CAAC,KAC5B,YAAY,CAAC,KAAK,CAAC;IAEtB;;;;;;;;OAQG;eAC2B,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC;CAElE,CAAC"}
|
package/dist/auth.js
CHANGED
|
@@ -1,3 +1,60 @@
|
|
|
1
|
+
const resolveHeaderValue = (value) => {
|
|
2
|
+
if (Array.isArray(value)) {
|
|
3
|
+
const first = value.find((item) => typeof item === "string");
|
|
4
|
+
return typeof first === "string" ? first : undefined;
|
|
5
|
+
}
|
|
6
|
+
if (typeof value === "string")
|
|
7
|
+
return value;
|
|
8
|
+
return undefined;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* Safely read a header from a ServeRequest with case-insensitive
|
|
12
|
+
* and array-safe normalization.
|
|
13
|
+
*/
|
|
14
|
+
export const getHeader = (request, name) => {
|
|
15
|
+
const target = name.toLowerCase();
|
|
16
|
+
const headers = request.headers;
|
|
17
|
+
const direct = headers[target] ?? headers[name] ?? headers[name.toLowerCase()];
|
|
18
|
+
const resolvedDirect = resolveHeaderValue(direct);
|
|
19
|
+
if (resolvedDirect !== undefined) {
|
|
20
|
+
const trimmed = resolvedDirect.trim();
|
|
21
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
22
|
+
}
|
|
23
|
+
const match = Object.entries(headers).find(([key]) => key.toLowerCase() === target);
|
|
24
|
+
const resolvedMatch = resolveHeaderValue(match?.[1]);
|
|
25
|
+
if (resolvedMatch === undefined)
|
|
26
|
+
return undefined;
|
|
27
|
+
const trimmed = resolvedMatch.trim();
|
|
28
|
+
return trimmed.length > 0 ? trimmed : undefined;
|
|
29
|
+
};
|
|
30
|
+
export class AuthError extends Error {
|
|
31
|
+
constructor(reason, message, details) {
|
|
32
|
+
super(message);
|
|
33
|
+
this.name = "AuthError";
|
|
34
|
+
this.reason = reason;
|
|
35
|
+
this.details = details;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Simple API key auth adapter with clear missing/invalid errors.
|
|
40
|
+
*/
|
|
41
|
+
export const apiKeyAuth = (options) => {
|
|
42
|
+
const headerName = options.header ?? "x-api-key";
|
|
43
|
+
const allowMissing = options.allowMissing ?? false;
|
|
44
|
+
return async ({ request }) => {
|
|
45
|
+
const key = getHeader(request, headerName);
|
|
46
|
+
if (!key) {
|
|
47
|
+
if (allowMissing)
|
|
48
|
+
return null;
|
|
49
|
+
throw new AuthError("MISSING", `Missing API key in "${headerName}" header`, { header: headerName });
|
|
50
|
+
}
|
|
51
|
+
const auth = await options.validate(key, request);
|
|
52
|
+
if (!auth) {
|
|
53
|
+
throw new AuthError("INVALID", `Invalid API key in "${headerName}" header`, { header: headerName });
|
|
54
|
+
}
|
|
55
|
+
return auth;
|
|
56
|
+
};
|
|
57
|
+
};
|
|
1
58
|
export const createApiKeyStrategy = (options) => {
|
|
2
59
|
const headerName = options.header ?? "authorization";
|
|
3
60
|
const queryParam = options.queryParam;
|
|
@@ -7,8 +64,8 @@ export const createApiKeyStrategy = (options) => {
|
|
|
7
64
|
key = request.query[queryParam];
|
|
8
65
|
}
|
|
9
66
|
if (!key) {
|
|
10
|
-
const headerValue = request
|
|
11
|
-
if (
|
|
67
|
+
const headerValue = getHeader(request, headerName);
|
|
68
|
+
if (headerValue) {
|
|
12
69
|
key = headerValue.startsWith("Bearer ")
|
|
13
70
|
? headerValue.slice("Bearer ".length)
|
|
14
71
|
: headerValue;
|
|
@@ -24,7 +81,7 @@ export const createBearerTokenStrategy = (options) => {
|
|
|
24
81
|
const headerName = options.header ?? "authorization";
|
|
25
82
|
const prefix = options.prefix ?? "Bearer ";
|
|
26
83
|
return async ({ request }) => {
|
|
27
|
-
const raw = request
|
|
84
|
+
const raw = getHeader(request, headerName);
|
|
28
85
|
if (typeof raw !== "string" || !raw.startsWith(prefix)) {
|
|
29
86
|
return null;
|
|
30
87
|
}
|
package/dist/builder.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EAStB,MAAM,YAAY,CAAC;AA0BpB,eAAO,MAAM,sBAAsB,GACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW,OACtB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../src/builder.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EAEX,qBAAqB,EAStB,MAAM,YAAY,CAAC;AA0BpB,eAAO,MAAM,sBAAsB,GACjC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW,OACtB,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAiEzC,CAAC"}
|
package/dist/builder.js
CHANGED
|
@@ -16,6 +16,7 @@ export const createProcedureBuilder = () => {
|
|
|
16
16
|
cache: (ttlMs) => build({ ...state, cacheTtlMs: ttlMs }),
|
|
17
17
|
auth: (strategy) => build({ ...state, auth: strategy }),
|
|
18
18
|
requireAuth: () => build({ ...state, requiresAuth: true }),
|
|
19
|
+
require: () => build({ ...state, requiresAuth: true }),
|
|
19
20
|
requireRole: (...roles) => build({
|
|
20
21
|
...state,
|
|
21
22
|
requiresAuth: true,
|
|
@@ -28,6 +29,10 @@ export const createProcedureBuilder = () => {
|
|
|
28
29
|
}),
|
|
29
30
|
public: () => build({ ...state, requiresAuth: false }),
|
|
30
31
|
tenant: (config) => build({ ...state, tenant: config }),
|
|
32
|
+
tenantOptional: (config) => build({
|
|
33
|
+
...state,
|
|
34
|
+
tenant: { ...(state.tenant ?? {}), ...(config ?? {}), required: false },
|
|
35
|
+
}),
|
|
31
36
|
custom: (custom) => build({ ...state, custom: { ...(state.custom ?? {}), ...custom } }),
|
|
32
37
|
use: (...middlewares) => build({ ...state, middlewares: [...state.middlewares, ...middlewares] }),
|
|
33
38
|
query: (executable) => {
|
package/dist/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export * from "./openapi.js";
|
|
|
7
7
|
export * from "./docs-ui.js";
|
|
8
8
|
export * from "./auth.js";
|
|
9
9
|
export * from "./client-config.js";
|
|
10
|
+
export * from "./utils.js";
|
|
10
11
|
export * from "./adapters/node.js";
|
|
11
12
|
export * from "./adapters/fetch.js";
|
|
12
13
|
export * from "./adapters/vercel.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,oBAAoB,CAAC;AACnC,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ export * from "./openapi.js";
|
|
|
7
7
|
export * from "./docs-ui.js";
|
|
8
8
|
export * from "./auth.js";
|
|
9
9
|
export * from "./client-config.js";
|
|
10
|
+
export * from "./utils.js";
|
|
10
11
|
export * from "./adapters/node.js";
|
|
11
12
|
export * from "./adapters/fetch.js";
|
|
12
13
|
export * from "./adapters/vercel.js";
|
package/dist/pipeline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAmB,MAAM,KAAK,CAAC;AAEzC,OAAO,KAAK,EACV,WAAW,EAEX,YAAY,EACZ,WAAW,EAKX,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,
|
|
1
|
+
{"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../src/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAmB,MAAM,KAAK,CAAC;AAEzC,OAAO,KAAK,EACV,WAAW,EAEX,YAAY,EACZ,WAAW,EAKX,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,YAAY,EAGb,MAAM,YAAY,CAAC;AAKpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA+MrD,MAAM,WAAW,sBAAsB,CACrC,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW;IAEzB,QAAQ,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnD,OAAO,EAAE,YAAY,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IACtC,cAAc,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,iBAAiB,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAChE,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,eAAe,GAC1B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW,EAEzB,SAAS,sBAAsB,CAAC,QAAQ,EAAE,KAAK,CAAC,KAC/C,OAAO,CAAC,aAAa,CA+RvB,CAAC;AAEF,UAAU,cAAc,CACtB,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW;IAEzB,MAAM,EAAE,OAAO,aAAa,EAAE,WAAW,CAAC;IAC1C,iBAAiB,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC;IAChE,cAAc,EAAE,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;IACtC,YAAY,CAAC,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,cAAc,CAAC,EAAE,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtD,KAAK,CAAC,EAAE,mBAAmB,CAAC,KAAK,CAAC,CAAC;IACnC,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,GAC7B,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW,EACzB,qHASC,cAAc,CAAC,QAAQ,EAAE,KAAK,CAAC,KAAG,YA2BpC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAChC,MAAM,MAAM,EACZ,cAAc,MAAM,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EACvD,UAAU,cAAc;;;;;;;;;;;;;;;;;;;;;CA8BzB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,MAAM,MAAM,EACZ,aAAa,MAAM,EACnB,UAAU,WAAW;;;;;;;;;;;;;;;;;;;;;;;;CAyBmD,CAAC"}
|
package/dist/pipeline.js
CHANGED
|
@@ -3,7 +3,7 @@ import { createTenantScope, warnTenantMisconfiguration } from './tenant.js';
|
|
|
3
3
|
import { generateRequestId } from './utils.js';
|
|
4
4
|
import { buildOpenApiDocument } from './openapi.js';
|
|
5
5
|
import { buildDocsHtml } from './docs-ui.js';
|
|
6
|
-
import { checkRoleAuthorization, checkScopeAuthorization, } from './auth.js';
|
|
6
|
+
import { checkRoleAuthorization, checkScopeAuthorization, AuthError, } from './auth.js';
|
|
7
7
|
const safeInvokeHook = async (name, hook, payload) => {
|
|
8
8
|
if (!hook)
|
|
9
9
|
return;
|
|
@@ -28,6 +28,20 @@ const buildContextInput = (request) => {
|
|
|
28
28
|
}
|
|
29
29
|
return undefined;
|
|
30
30
|
};
|
|
31
|
+
const resolveTenantConfig = (globalConfig, override) => {
|
|
32
|
+
if (!globalConfig && !override) {
|
|
33
|
+
return undefined;
|
|
34
|
+
}
|
|
35
|
+
if (!override) {
|
|
36
|
+
return globalConfig;
|
|
37
|
+
}
|
|
38
|
+
const merged = { ...(globalConfig ?? {}), ...(override ?? {}) };
|
|
39
|
+
if (!merged.extract) {
|
|
40
|
+
throw new Error('[hypequery/serve] Tenant override requires an extract function when no global tenant config is set. ' +
|
|
41
|
+
'If you are using tenantOptional(), define a global tenant config with extract or pass extract in the per-query override.');
|
|
42
|
+
}
|
|
43
|
+
return merged;
|
|
44
|
+
};
|
|
31
45
|
const runMiddlewares = async (middlewares, ctx, handler) => {
|
|
32
46
|
let current = handler;
|
|
33
47
|
for (let i = middlewares.length - 1; i >= 0; i -= 1) {
|
|
@@ -38,13 +52,29 @@ const runMiddlewares = async (middlewares, ctx, handler) => {
|
|
|
38
52
|
return current();
|
|
39
53
|
};
|
|
40
54
|
const authenticateRequest = async (strategies, request, metadata) => {
|
|
55
|
+
let missingError;
|
|
56
|
+
let invalidError;
|
|
41
57
|
for (const strategy of strategies) {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
58
|
+
try {
|
|
59
|
+
const result = await strategy({ request, endpoint: metadata });
|
|
60
|
+
if (result) {
|
|
61
|
+
return { auth: result };
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
if (error instanceof AuthError) {
|
|
66
|
+
if (error.reason === 'INVALID') {
|
|
67
|
+
invalidError = invalidError ?? error;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
missingError = missingError ?? error;
|
|
71
|
+
}
|
|
72
|
+
continue;
|
|
73
|
+
}
|
|
74
|
+
throw error;
|
|
45
75
|
}
|
|
46
76
|
}
|
|
47
|
-
return null;
|
|
77
|
+
return { auth: null, error: invalidError ?? missingError };
|
|
48
78
|
};
|
|
49
79
|
const gatherAuthStrategies = (endpointStrategy, globalStrategies) => {
|
|
50
80
|
const combined = [];
|
|
@@ -156,19 +186,29 @@ export const executeEndpoint = async (options) => {
|
|
|
156
186
|
requiresAuth,
|
|
157
187
|
};
|
|
158
188
|
context.metadata = metadataWithAuth;
|
|
159
|
-
const
|
|
189
|
+
const authResult = await authenticateRequest(strategies, request, metadataWithAuth);
|
|
190
|
+
const authContext = authResult.auth;
|
|
160
191
|
if (!authContext && requiresAuth) {
|
|
192
|
+
const authErrorInfo = authResult.error
|
|
193
|
+
? {
|
|
194
|
+
reason: authResult.error.reason,
|
|
195
|
+
message: authResult.error.message,
|
|
196
|
+
details: authResult.error.details,
|
|
197
|
+
}
|
|
198
|
+
: undefined;
|
|
161
199
|
await safeInvokeHook('onAuthFailure', hooks.onAuthFailure, {
|
|
162
200
|
requestId,
|
|
163
201
|
queryKey: endpoint.key,
|
|
164
202
|
metadata: metadataWithAuth,
|
|
165
203
|
request,
|
|
166
204
|
auth: context.auth,
|
|
167
|
-
reason: 'MISSING',
|
|
205
|
+
reason: authErrorInfo?.reason ?? 'MISSING',
|
|
206
|
+
error: authErrorInfo,
|
|
168
207
|
});
|
|
169
|
-
return createErrorResponse(401, 'UNAUTHORIZED', verboseAuthErrors ? 'Authentication required' : 'Access denied', {
|
|
170
|
-
reason: 'missing_credentials',
|
|
208
|
+
return createErrorResponse(401, 'UNAUTHORIZED', verboseAuthErrors ? authErrorInfo?.message ?? 'Authentication required' : 'Access denied', {
|
|
209
|
+
reason: authErrorInfo?.reason === 'INVALID' ? 'invalid_credentials' : 'missing_credentials',
|
|
171
210
|
...(verboseAuthErrors && { strategies_attempted: strategies.length }),
|
|
211
|
+
...(verboseAuthErrors && authErrorInfo?.details ? { auth_error: authErrorInfo.details } : {}),
|
|
172
212
|
endpoint: endpoint.metadata.path,
|
|
173
213
|
}, { 'x-request-id': requestId });
|
|
174
214
|
}
|
|
@@ -200,7 +240,7 @@ export const executeEndpoint = async (options) => {
|
|
|
200
240
|
}
|
|
201
241
|
const resolvedContext = await resolveContext(contextFactory, request, authContext);
|
|
202
242
|
Object.assign(context, resolvedContext, additionalContext);
|
|
203
|
-
const activeTenantConfig = endpoint.tenant
|
|
243
|
+
const activeTenantConfig = resolveTenantConfig(tenantConfig, endpoint.tenant);
|
|
204
244
|
if (activeTenantConfig) {
|
|
205
245
|
const tenantRequired = activeTenantConfig.required !== false;
|
|
206
246
|
const tenantId = authContext ? activeTenantConfig.extract(authContext) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/server/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,YAAY,EACZ,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../src/server/builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,YAAY,EACZ,UAAU,EACV,YAAY,EAEZ,gBAAgB,EAChB,eAAe,EAEf,eAAe,EACf,YAAY,EACZ,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAYtD,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,SAAS,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,EACjD,QAAQ,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACxC,KAAK,SAAS,WAAW,EAEzB,cAAc,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EACzD,aAAa,gBAAgB,EAC7B,aAAa,MAAM,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC,EACnD,QAAQ,WAAW,EACnB,gBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,EACrC,mBAAmB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAC/D,cAAc,oBAAoB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,EAChG,SAAS,YAAY,EACrB,UAAU,MAAM,KACf,YAAY,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,KAAK,CAqF3E,CAAC"}
|
package/dist/server/builder.js
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
import { mergeTags } from "../utils.js";
|
|
2
2
|
import { normalizeRoutePath } from "../router.js";
|
|
3
3
|
import { mapEndpointToToolkit } from "./mapper.js";
|
|
4
|
+
const loadNodeAdapter = async () => {
|
|
5
|
+
if (typeof require !== "undefined") {
|
|
6
|
+
return require("../adapters/node.js");
|
|
7
|
+
}
|
|
8
|
+
return import("../adapters/node.js");
|
|
9
|
+
};
|
|
4
10
|
export const createBuilderMethods = (queryEntries, queryLogger, routeConfig, router, authStrategies, globalMiddlewares, executeQuery, handler, basePath) => {
|
|
5
11
|
const builder = {
|
|
6
12
|
queries: queryEntries,
|
|
@@ -55,6 +61,7 @@ export const createBuilderMethods = (queryEntries, queryLogger, routeConfig, rou
|
|
|
55
61
|
return builder;
|
|
56
62
|
},
|
|
57
63
|
execute: executeQuery,
|
|
64
|
+
client: executeQuery,
|
|
58
65
|
run: executeQuery,
|
|
59
66
|
describe: () => {
|
|
60
67
|
const description = {
|
|
@@ -65,7 +72,7 @@ export const createBuilderMethods = (queryEntries, queryLogger, routeConfig, rou
|
|
|
65
72
|
},
|
|
66
73
|
handler,
|
|
67
74
|
start: async (options = {}) => {
|
|
68
|
-
const { startNodeServer } =
|
|
75
|
+
const { startNodeServer } = await loadNodeAdapter();
|
|
69
76
|
return startNodeServer(handler, options);
|
|
70
77
|
},
|
|
71
78
|
};
|
package/dist/types.d.ts
CHANGED
|
@@ -142,6 +142,11 @@ export interface TenantConfig<TAuth extends AuthContext = AuthContext> {
|
|
|
142
142
|
*/
|
|
143
143
|
errorMessage?: string;
|
|
144
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* Per-endpoint tenant override. Merges with the global tenant config.
|
|
147
|
+
* Use this to flip required/optional or adjust mode without restating extract/column.
|
|
148
|
+
*/
|
|
149
|
+
export type TenantConfigOverride<TAuth extends AuthContext = AuthContext> = Partial<TenantConfig<TAuth>>;
|
|
145
150
|
export interface AuthStrategyContext {
|
|
146
151
|
request: ServeRequest;
|
|
147
152
|
endpoint?: EndpointMetadata;
|
|
@@ -204,7 +209,7 @@ export interface ServeEndpoint<TInputSchema extends ZodTypeAny | undefined = und
|
|
|
204
209
|
query?: ExecutableQuery<SchemaInput<TInputSchema>, TResult, TContext, TAuth>;
|
|
205
210
|
middlewares: ServeMiddleware<SchemaInput<TInputSchema>, SchemaOutput<TOutputSchema>, TContext, TAuth>[];
|
|
206
211
|
auth?: AuthStrategy<TAuth> | null;
|
|
207
|
-
tenant?:
|
|
212
|
+
tenant?: TenantConfigOverride<TAuth>;
|
|
208
213
|
metadata: EndpointMetadata;
|
|
209
214
|
cacheTtlMs?: number | null;
|
|
210
215
|
defaultHeaders?: Record<string, string>;
|
|
@@ -228,7 +233,7 @@ export interface ServeQueryConfig<TInputSchema extends ZodTypeAny | undefined =
|
|
|
228
233
|
auth?: AuthStrategy<TAuth> | null;
|
|
229
234
|
/** Explicitly set whether authentication is required. Set by .requireAuth() or .public(). */
|
|
230
235
|
requiresAuth?: boolean;
|
|
231
|
-
tenant?:
|
|
236
|
+
tenant?: TenantConfigOverride<TAuth>;
|
|
232
237
|
cacheTtlMs?: number | null;
|
|
233
238
|
/** Roles required to access this endpoint. Checked after authentication. */
|
|
234
239
|
requiredRoles?: string[];
|
|
@@ -390,6 +395,12 @@ export interface ServeBuilder<TQueries extends Record<string, ServeEndpoint<any,
|
|
|
390
395
|
context?: Partial<TContext>;
|
|
391
396
|
request?: Partial<ServeRequest>;
|
|
392
397
|
}): Promise<ServeEndpointResult<TQueries[TKey]>>;
|
|
398
|
+
/** Alias of run() for in-process execution. */
|
|
399
|
+
client<TKey extends keyof TQueries>(key: TKey, options?: {
|
|
400
|
+
input?: SchemaInput<TQueries[TKey]["inputSchema"]>;
|
|
401
|
+
context?: Partial<TContext>;
|
|
402
|
+
request?: Partial<ServeRequest>;
|
|
403
|
+
}): Promise<ServeEndpointResult<TQueries[TKey]>>;
|
|
393
404
|
run<TKey extends keyof TQueries>(key: TKey, options?: {
|
|
394
405
|
input?: SchemaInput<TQueries[TKey]["inputSchema"]>;
|
|
395
406
|
context?: Partial<TContext>;
|
|
@@ -438,7 +449,11 @@ export interface QueryProcedureBuilder<TContext extends Record<string, unknown>,
|
|
|
438
449
|
* Overrides global auth strategies for this endpoint.
|
|
439
450
|
*/
|
|
440
451
|
public(): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
441
|
-
tenant(config:
|
|
452
|
+
tenant(config: TenantConfigOverride<TAuth>): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
453
|
+
/** Shorthand to mark tenant context as optional for this query. */
|
|
454
|
+
tenantOptional(config?: TenantConfigOverride<TAuth>): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
455
|
+
/** Alias for requireAuth() to avoid confusion with other guard APIs. */
|
|
456
|
+
require(): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
442
457
|
custom(custom: Record<string, unknown>): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
443
458
|
use(...middlewares: ServeMiddleware<SchemaInput<TInputSchema>, SchemaOutput<TOutputSchema>, TContext, TAuth>[]): QueryProcedureBuilder<TContext, TAuth, TInputSchema, TOutputSchema>;
|
|
444
459
|
query<TExecutable extends ExecutableQuery<SchemaInput<TInputSchema>, any, TContext, TAuth>>(executable: TExecutable): ServeQueryConfig<TInputSchema, TOutputSchema, TContext, TAuth, InferExecutableQueryResult<TExecutable>>;
|
|
@@ -462,6 +477,12 @@ export interface RequestErrorEvent<TAuth extends AuthContext = AuthContext> exte
|
|
|
462
477
|
}
|
|
463
478
|
export interface AuthFailureEvent<TAuth extends AuthContext = AuthContext> extends RequestLifecycleBase<TAuth> {
|
|
464
479
|
reason: "MISSING" | "INVALID";
|
|
480
|
+
error?: AuthErrorInfo;
|
|
481
|
+
}
|
|
482
|
+
export interface AuthErrorInfo {
|
|
483
|
+
reason: "MISSING" | "INVALID";
|
|
484
|
+
message: string;
|
|
485
|
+
details?: Record<string, unknown>;
|
|
465
486
|
}
|
|
466
487
|
export interface AuthorizationFailureEvent<TAuth extends AuthContext = AuthContext> extends RequestLifecycleBase<TAuth> {
|
|
467
488
|
reason: "MISSING_ROLE" | "MISSING_SCOPE";
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/utils.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export declare const ensureArray: <T>(value: T | T[] | undefined | null) => T[];
|
|
2
2
|
export declare const mergeTags: (existing: string[], next?: string[]) => string[];
|
|
3
3
|
export declare const generateRequestId: () => string;
|
|
4
|
+
export declare const normalizeHeaderMap: (headers?: Record<string, string | undefined>) => Record<string, string | undefined>;
|
|
4
5
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,KAAG,CAAC,EAKnE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,EAAE,aAG5D,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAKpC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW,GAAI,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,EAAE,GAAG,SAAS,GAAG,IAAI,KAAG,CAAC,EAKnE,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,UAAU,MAAM,EAAE,EAAE,OAAO,MAAM,EAAE,aAG5D,CAAC;AAEF,eAAO,MAAM,iBAAiB,QAAO,MAKpC,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,UAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAM,KAC/C,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAInC,CAAC"}
|
package/dist/utils.js
CHANGED
|
@@ -14,3 +14,6 @@ export const generateRequestId = () => {
|
|
|
14
14
|
}
|
|
15
15
|
return `req_${Date.now()}_${Math.random().toString(36).substring(2, 11)}`;
|
|
16
16
|
};
|
|
17
|
+
export const normalizeHeaderMap = (headers = {}) => {
|
|
18
|
+
return Object.fromEntries(Object.entries(headers).map(([key, value]) => [key.toLowerCase(), value]));
|
|
19
|
+
};
|