@veloxts/core 0.4.7 → 0.4.10
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/dist/app.d.ts +26 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +55 -0
- package/dist/app.js.map +1 -1
- package/dist/errors/catalog.d.ts.map +1 -1
- package/dist/errors/catalog.js +35 -0
- package/dist/errors/catalog.js.map +1 -1
- package/dist/errors/fail.d.ts +164 -0
- package/dist/errors/fail.d.ts.map +1 -0
- package/dist/errors/fail.js +226 -0
- package/dist/errors/fail.js.map +1 -0
- package/dist/errors/index.d.ts +1 -0
- package/dist/errors/index.d.ts.map +1 -1
- package/dist/errors/index.js +2 -0
- package/dist/errors/index.js.map +1 -1
- package/dist/errors.d.ts +1 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +2 -2
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/plugins/static.d.ts +98 -0
- package/dist/plugins/static.d.ts.map +1 -0
- package/dist/plugins/static.js +135 -0
- package/dist/plugins/static.js.map +1 -0
- package/dist/typed-context.d.ts +123 -0
- package/dist/typed-context.d.ts.map +1 -0
- package/dist/typed-context.js +10 -0
- package/dist/typed-context.js.map +1 -0
- package/package.json +10 -1
package/dist/app.d.ts
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
import { type FastifyInstance } from 'fastify';
|
|
7
7
|
import { type Container } from './di/index.js';
|
|
8
8
|
import type { PluginOptions, VeloxPlugin } from './plugin.js';
|
|
9
|
+
import type { StaticOptions } from './plugins/static.js';
|
|
9
10
|
import type { ShutdownHandler } from './types.js';
|
|
10
11
|
import type { FrozenVeloxAppConfig, VeloxAppConfig } from './utils/config.js';
|
|
11
12
|
/**
|
|
@@ -195,6 +196,31 @@ export declare class VeloxApp {
|
|
|
195
196
|
* ```
|
|
196
197
|
*/
|
|
197
198
|
routes(registrar: (server: FastifyInstance) => void): this;
|
|
199
|
+
/**
|
|
200
|
+
* Serve static files from a directory
|
|
201
|
+
*
|
|
202
|
+
* @param path - Directory containing static files
|
|
203
|
+
* @param options - Serving configuration
|
|
204
|
+
* @returns The app instance for method chaining
|
|
205
|
+
*
|
|
206
|
+
* @example
|
|
207
|
+
* ```typescript
|
|
208
|
+
* // Simple static serving
|
|
209
|
+
* await app.serveStatic('./public');
|
|
210
|
+
*
|
|
211
|
+
* // SPA with client-side routing
|
|
212
|
+
* await app.serveStatic('./dist', { spa: true });
|
|
213
|
+
*
|
|
214
|
+
* // Production configuration
|
|
215
|
+
* await app.serveStatic('./dist', {
|
|
216
|
+
* spa: true,
|
|
217
|
+
* prefix: '/assets',
|
|
218
|
+
* cache: { maxAge: '1y', immutable: true },
|
|
219
|
+
* exclude: ['/api', '/trpc'],
|
|
220
|
+
* });
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
serveStatic(path: string, options?: StaticOptions): Promise<this>;
|
|
198
224
|
/**
|
|
199
225
|
* Starts the server and begins listening for requests
|
|
200
226
|
*
|
package/dist/app.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAgB,EAAE,KAAK,eAAe,EAA6B,MAAM,SAAS,CAAC;AAInF,OAAO,EAAE,KAAK,SAAS,EAAa,MAAM,eAAe,CAAC;AAE1D,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE9D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,OAAO,KAAK,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAI9E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAkB;IAC1C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAuB;IAC/C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAmB;IAC9C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;IACvC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAuB;IAEvC;;;;;OAKG;gBACS,MAAM,EAAE,cAAc;IAkClC;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,MAAM,IAAI,eAAe,CAE5B;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,oBAAoB,CAEjC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,IAAI,SAAS,IAAI,SAAS,CAEzB;IAED;;OAEG;IACH,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,IAAI,CAE3B;IAED;;;;;OAKG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKjC;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAWrB;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;
|
|
1
|
+
{"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
package/dist/app.js
CHANGED
|
@@ -9,6 +9,7 @@ import { createContext } from './context.js';
|
|
|
9
9
|
import { container } from './di/index.js';
|
|
10
10
|
import { isVeloxError, VeloxError } from './errors.js';
|
|
11
11
|
import { validatePluginMetadata } from './plugin.js';
|
|
12
|
+
import { registerStatic } from './plugins/static.js';
|
|
12
13
|
import { printBanner } from './utils/banner.js';
|
|
13
14
|
import { mergeConfig, validateConfig } from './utils/config.js';
|
|
14
15
|
import { LifecycleManager } from './utils/lifecycle.js';
|
|
@@ -176,6 +177,32 @@ export class VeloxApp {
|
|
|
176
177
|
_setupErrorHandling() {
|
|
177
178
|
this._server.setErrorHandler(async (error, request, reply) => {
|
|
178
179
|
try {
|
|
180
|
+
// Handle ZodError (validation errors) - return 400
|
|
181
|
+
if (error instanceof Error && error.name === 'ZodError' && 'issues' in error) {
|
|
182
|
+
const zodError = error;
|
|
183
|
+
return reply.status(400).send({
|
|
184
|
+
error: 'ValidationError',
|
|
185
|
+
message: 'Validation failed',
|
|
186
|
+
statusCode: 400,
|
|
187
|
+
details: zodError.issues.map((issue) => ({
|
|
188
|
+
field: issue.path.join('.'),
|
|
189
|
+
message: issue.message,
|
|
190
|
+
})),
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
// Handle Prisma unique constraint errors - return 409 Conflict
|
|
194
|
+
if (error instanceof Error &&
|
|
195
|
+
error.name === 'PrismaClientKnownRequestError' &&
|
|
196
|
+
'code' in error &&
|
|
197
|
+
error.code === 'P2002') {
|
|
198
|
+
const prismaError = error;
|
|
199
|
+
const fields = prismaError.meta?.target?.join(', ') ?? 'field';
|
|
200
|
+
return reply.status(409).send({
|
|
201
|
+
error: 'ConflictError',
|
|
202
|
+
message: `A record with this ${fields} already exists`,
|
|
203
|
+
statusCode: 409,
|
|
204
|
+
});
|
|
205
|
+
}
|
|
179
206
|
// Only log server errors (5xx), not client errors (4xx)
|
|
180
207
|
const statusCode = isVeloxError(error)
|
|
181
208
|
? error.statusCode
|
|
@@ -299,6 +326,34 @@ export class VeloxApp {
|
|
|
299
326
|
registrar(this._server);
|
|
300
327
|
return this;
|
|
301
328
|
}
|
|
329
|
+
/**
|
|
330
|
+
* Serve static files from a directory
|
|
331
|
+
*
|
|
332
|
+
* @param path - Directory containing static files
|
|
333
|
+
* @param options - Serving configuration
|
|
334
|
+
* @returns The app instance for method chaining
|
|
335
|
+
*
|
|
336
|
+
* @example
|
|
337
|
+
* ```typescript
|
|
338
|
+
* // Simple static serving
|
|
339
|
+
* await app.serveStatic('./public');
|
|
340
|
+
*
|
|
341
|
+
* // SPA with client-side routing
|
|
342
|
+
* await app.serveStatic('./dist', { spa: true });
|
|
343
|
+
*
|
|
344
|
+
* // Production configuration
|
|
345
|
+
* await app.serveStatic('./dist', {
|
|
346
|
+
* spa: true,
|
|
347
|
+
* prefix: '/assets',
|
|
348
|
+
* cache: { maxAge: '1y', immutable: true },
|
|
349
|
+
* exclude: ['/api', '/trpc'],
|
|
350
|
+
* });
|
|
351
|
+
* ```
|
|
352
|
+
*/
|
|
353
|
+
async serveStatic(path, options = {}) {
|
|
354
|
+
await registerStatic(this._server, path, options);
|
|
355
|
+
return this;
|
|
356
|
+
}
|
|
302
357
|
/**
|
|
303
358
|
* Starts the server and begins listening for requests
|
|
304
359
|
*
|
package/dist/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../src/app.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAMrD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,GAAG,CAAC,EAAE;QACJ,mCAAmC;QACnC,UAAU,EAAE,MAAM,CAAC;QACnB,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;CAOhB,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,MAAM,OAAO,aAAa,CAAC;AAMrD;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,IAAI,EAAE,MAAM,CAAC;IAEb,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IAEd,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IAEnB,sCAAsC;IACtC,GAAG,CAAC,EAAE;QACJ,mCAAmC;QACnC,UAAU,EAAE,MAAM,CAAC;QACnB,8CAA8C;QAC9C,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,0BAA0B;IAC1B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAMD;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CA0e3D,CAAC;AAMF;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAEzE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,EAAE,CAG/D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE3D"}
|
package/dist/errors/catalog.js
CHANGED
|
@@ -206,6 +206,41 @@ const updateUser = procedure()
|
|
|
206
206
|
},
|
|
207
207
|
docsUrl: 'https://veloxts.dev/errors/VELOX-2005',
|
|
208
208
|
},
|
|
209
|
+
'VELOX-2006': {
|
|
210
|
+
code: 'VELOX-2006',
|
|
211
|
+
title: 'No Procedures Provided',
|
|
212
|
+
description: 'serve() was called without any procedure collections.',
|
|
213
|
+
statusCode: 500,
|
|
214
|
+
fix: {
|
|
215
|
+
suggestion: 'Pass at least one procedure collection to serve().',
|
|
216
|
+
example: `// Define your procedures
|
|
217
|
+
const userProcedures = defineProcedures('users', {
|
|
218
|
+
getUser: procedure()...,
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Pass them to serve()
|
|
222
|
+
const router = await serve(app, [userProcedures]);`,
|
|
223
|
+
},
|
|
224
|
+
docsUrl: 'https://veloxts.dev/errors/VELOX-2006',
|
|
225
|
+
},
|
|
226
|
+
'VELOX-2007': {
|
|
227
|
+
code: 'VELOX-2007',
|
|
228
|
+
title: 'No Endpoints Enabled',
|
|
229
|
+
description: 'serve() was called with both api and rpc disabled.',
|
|
230
|
+
statusCode: 500,
|
|
231
|
+
fix: {
|
|
232
|
+
suggestion: 'Enable at least one endpoint type (api or rpc).',
|
|
233
|
+
example: `// Enable REST API
|
|
234
|
+
await serve(app, procedures, { api: '/api', rpc: false });
|
|
235
|
+
|
|
236
|
+
// Or enable tRPC
|
|
237
|
+
await serve(app, procedures, { api: false, rpc: '/trpc' });
|
|
238
|
+
|
|
239
|
+
// Or enable both (default)
|
|
240
|
+
await serve(app, procedures);`,
|
|
241
|
+
},
|
|
242
|
+
docsUrl: 'https://veloxts.dev/errors/VELOX-2007',
|
|
243
|
+
},
|
|
209
244
|
// ==========================================================================
|
|
210
245
|
// AUTH ERRORS (3XXX)
|
|
211
246
|
// ==========================================================================
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../src/errors/catalog.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Elegant Error Creation API
|
|
3
|
+
*
|
|
4
|
+
* Laravel-inspired `fail()` function for throwing catalog-driven errors
|
|
5
|
+
* with minimal ceremony and maximum helpfulness.
|
|
6
|
+
*
|
|
7
|
+
* @module errors/fail
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Zero ceremony - catalog provides everything
|
|
12
|
+
* throw fail('VELOX-2006');
|
|
13
|
+
*
|
|
14
|
+
* // With interpolation variables
|
|
15
|
+
* throw fail('VELOX-3005', { length: 12, required: 32 });
|
|
16
|
+
*
|
|
17
|
+
* // Override message with context
|
|
18
|
+
* throw fail('VELOX-3005').because('Secret has weak entropy');
|
|
19
|
+
*
|
|
20
|
+
* // Full fluent customization
|
|
21
|
+
* throw fail('VELOX-3005')
|
|
22
|
+
* .because('Your secret has only ${unique} unique characters')
|
|
23
|
+
* .with({ unique: 8 })
|
|
24
|
+
* .suggest('Use: openssl rand -base64 32');
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import { ERROR_CATALOG, type ErrorCatalogEntry } from './catalog.js';
|
|
28
|
+
/**
|
|
29
|
+
* Valid error codes from the catalog
|
|
30
|
+
*/
|
|
31
|
+
export type ErrorCode = keyof typeof ERROR_CATALOG;
|
|
32
|
+
/**
|
|
33
|
+
* Variables for template interpolation
|
|
34
|
+
*/
|
|
35
|
+
export type InterpolationVars = Record<string, string | number | boolean | undefined>;
|
|
36
|
+
/**
|
|
37
|
+
* Fluent error builder that provides catalog-driven errors
|
|
38
|
+
* with optional customization.
|
|
39
|
+
*
|
|
40
|
+
* This class is not typically instantiated directly.
|
|
41
|
+
* Use the `fail()` function instead.
|
|
42
|
+
*/
|
|
43
|
+
export declare class VeloxFailure extends Error {
|
|
44
|
+
/** The catalog error code */
|
|
45
|
+
readonly code: string;
|
|
46
|
+
/** HTTP status code */
|
|
47
|
+
readonly statusCode: number;
|
|
48
|
+
/** The full catalog entry */
|
|
49
|
+
readonly entry: ErrorCatalogEntry;
|
|
50
|
+
/** Custom message override */
|
|
51
|
+
private _customMessage?;
|
|
52
|
+
/** Interpolation variables */
|
|
53
|
+
private _vars;
|
|
54
|
+
/** Custom suggestion override */
|
|
55
|
+
private _customSuggestion?;
|
|
56
|
+
constructor(code: string, entry: ErrorCatalogEntry);
|
|
57
|
+
/**
|
|
58
|
+
* Override the catalog message with context-specific details
|
|
59
|
+
*
|
|
60
|
+
* @param message - Custom message (supports ${var} interpolation)
|
|
61
|
+
* @returns this for chaining
|
|
62
|
+
*
|
|
63
|
+
* @example
|
|
64
|
+
* ```typescript
|
|
65
|
+
* throw fail('VELOX-3005').because('Secret "${name}" is too weak');
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
because(message: string): this;
|
|
69
|
+
/**
|
|
70
|
+
* Provide variables for template interpolation
|
|
71
|
+
*
|
|
72
|
+
* @param vars - Object with values to interpolate into the message
|
|
73
|
+
* @returns this for chaining
|
|
74
|
+
*
|
|
75
|
+
* @example
|
|
76
|
+
* ```typescript
|
|
77
|
+
* throw fail('VELOX-3005', { length: 12 });
|
|
78
|
+
* // Or chained
|
|
79
|
+
* throw fail('VELOX-3005').with({ length: 12, required: 32 });
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
with(vars: InterpolationVars): this;
|
|
83
|
+
/**
|
|
84
|
+
* Override the catalog fix suggestion
|
|
85
|
+
*
|
|
86
|
+
* @param suggestion - Custom suggestion for fixing the error
|
|
87
|
+
* @returns this for chaining
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* ```typescript
|
|
91
|
+
* throw fail('VELOX-3005').suggest('Use environment variable SESSION_SECRET');
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
suggest(suggestion: string): this;
|
|
95
|
+
/**
|
|
96
|
+
* Get the fix suggestion (custom or from catalog)
|
|
97
|
+
*/
|
|
98
|
+
get suggestion(): string | undefined;
|
|
99
|
+
/**
|
|
100
|
+
* Get the code example from catalog
|
|
101
|
+
*/
|
|
102
|
+
get example(): string | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* Get the documentation URL
|
|
105
|
+
*/
|
|
106
|
+
get docsUrl(): string | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Get related error codes
|
|
109
|
+
*/
|
|
110
|
+
get seeAlso(): string[] | undefined;
|
|
111
|
+
/**
|
|
112
|
+
* Convert to JSON for API responses
|
|
113
|
+
*/
|
|
114
|
+
toJSON(): {
|
|
115
|
+
error: string;
|
|
116
|
+
message: string;
|
|
117
|
+
statusCode: number;
|
|
118
|
+
code: string;
|
|
119
|
+
fix?: string;
|
|
120
|
+
docs?: string;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Interpolate variables into a template string
|
|
124
|
+
*/
|
|
125
|
+
private interpolate;
|
|
126
|
+
/**
|
|
127
|
+
* Update the error message with interpolation
|
|
128
|
+
*/
|
|
129
|
+
private updateMessage;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Create and throw a catalog-driven error with zero ceremony
|
|
133
|
+
*
|
|
134
|
+
* This is the recommended way to throw errors in VeloxTS.
|
|
135
|
+
* The catalog provides the message, suggestion, and documentation.
|
|
136
|
+
*
|
|
137
|
+
* @param code - Error code from the catalog (e.g., 'VELOX-2006')
|
|
138
|
+
* @param vars - Optional interpolation variables
|
|
139
|
+
* @returns VeloxFailure instance (throw it!)
|
|
140
|
+
*
|
|
141
|
+
* @example
|
|
142
|
+
* ```typescript
|
|
143
|
+
* // Simplest usage - one line, zero boilerplate
|
|
144
|
+
* throw fail('VELOX-2006');
|
|
145
|
+
*
|
|
146
|
+
* // With template variables
|
|
147
|
+
* throw fail('VELOX-3005', { length: 12, required: 32 });
|
|
148
|
+
*
|
|
149
|
+
* // Fluent customization when needed
|
|
150
|
+
* throw fail('VELOX-3005')
|
|
151
|
+
* .because('Secret "${name}" has insufficient entropy')
|
|
152
|
+
* .with({ name: 'SESSION_SECRET' })
|
|
153
|
+
* .suggest('Generate with: openssl rand -base64 32');
|
|
154
|
+
* ```
|
|
155
|
+
*/
|
|
156
|
+
export declare function fail(code: string, vars?: InterpolationVars): VeloxFailure;
|
|
157
|
+
/**
|
|
158
|
+
* Check if an error is a VeloxFailure from fail()
|
|
159
|
+
*
|
|
160
|
+
* @param error - Error to check
|
|
161
|
+
* @returns true if error is a VeloxFailure
|
|
162
|
+
*/
|
|
163
|
+
export declare function isVeloxFailure(error: unknown): error is VeloxFailure;
|
|
164
|
+
//# sourceMappingURL=fail.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fail.d.ts","sourceRoot":"","sources":["../../src/errors/fail.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAMrE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,aAAa,CAAC;AAEnD;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;AAMtF;;;;;;GAMG;AACH,qBAAa,YAAa,SAAQ,KAAK;IACrC,6BAA6B;IAC7B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEtB,uBAAuB;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,6BAA6B;IAC7B,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAC;IAElC,8BAA8B;IAC9B,OAAO,CAAC,cAAc,CAAC,CAAS;IAEhC,8BAA8B;IAC9B,OAAO,CAAC,KAAK,CAAyB;IAEtC,iCAAiC;IACjC,OAAO,CAAC,iBAAiB,CAAC,CAAS;gBAEvB,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB;IAalD;;;;;;;;;;OAUG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B;;;;;;;;;;;;OAYG;IACH,IAAI,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI;IAMnC;;;;;;;;;;OAUG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKjC;;OAEG;IACH,IAAI,UAAU,IAAI,MAAM,GAAG,SAAS,CAEnC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,GAAG,SAAS,CAEhC;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,EAAE,GAAG,SAAS,CAElC;IAED;;OAEG;IACH,MAAM,IAAI;QACR,KAAK,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IA4BD;;OAEG;IACH,OAAO,CAAC,WAAW;IAOnB;;OAEG;IACH,OAAO,CAAC,aAAa;CAItB;AAMD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,YAAY,CAmBzE;AAMD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,YAAY,CAEpE"}
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Elegant Error Creation API
|
|
3
|
+
*
|
|
4
|
+
* Laravel-inspired `fail()` function for throwing catalog-driven errors
|
|
5
|
+
* with minimal ceremony and maximum helpfulness.
|
|
6
|
+
*
|
|
7
|
+
* @module errors/fail
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Zero ceremony - catalog provides everything
|
|
12
|
+
* throw fail('VELOX-2006');
|
|
13
|
+
*
|
|
14
|
+
* // With interpolation variables
|
|
15
|
+
* throw fail('VELOX-3005', { length: 12, required: 32 });
|
|
16
|
+
*
|
|
17
|
+
* // Override message with context
|
|
18
|
+
* throw fail('VELOX-3005').because('Secret has weak entropy');
|
|
19
|
+
*
|
|
20
|
+
* // Full fluent customization
|
|
21
|
+
* throw fail('VELOX-3005')
|
|
22
|
+
* .because('Your secret has only ${unique} unique characters')
|
|
23
|
+
* .with({ unique: 8 })
|
|
24
|
+
* .suggest('Use: openssl rand -base64 32');
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import { ERROR_CATALOG } from './catalog.js';
|
|
28
|
+
// ============================================================================
|
|
29
|
+
// VeloxFailure Class
|
|
30
|
+
// ============================================================================
|
|
31
|
+
/**
|
|
32
|
+
* Fluent error builder that provides catalog-driven errors
|
|
33
|
+
* with optional customization.
|
|
34
|
+
*
|
|
35
|
+
* This class is not typically instantiated directly.
|
|
36
|
+
* Use the `fail()` function instead.
|
|
37
|
+
*/
|
|
38
|
+
export class VeloxFailure extends Error {
|
|
39
|
+
/** The catalog error code */
|
|
40
|
+
code;
|
|
41
|
+
/** HTTP status code */
|
|
42
|
+
statusCode;
|
|
43
|
+
/** The full catalog entry */
|
|
44
|
+
entry;
|
|
45
|
+
/** Custom message override */
|
|
46
|
+
_customMessage;
|
|
47
|
+
/** Interpolation variables */
|
|
48
|
+
_vars = {};
|
|
49
|
+
/** Custom suggestion override */
|
|
50
|
+
_customSuggestion;
|
|
51
|
+
constructor(code, entry) {
|
|
52
|
+
super(entry.title);
|
|
53
|
+
this.name = 'VeloxError';
|
|
54
|
+
this.code = code;
|
|
55
|
+
this.statusCode = entry.statusCode;
|
|
56
|
+
this.entry = entry;
|
|
57
|
+
// Maintains proper stack trace
|
|
58
|
+
if (Error.captureStackTrace) {
|
|
59
|
+
Error.captureStackTrace(this, VeloxFailure);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Override the catalog message with context-specific details
|
|
64
|
+
*
|
|
65
|
+
* @param message - Custom message (supports ${var} interpolation)
|
|
66
|
+
* @returns this for chaining
|
|
67
|
+
*
|
|
68
|
+
* @example
|
|
69
|
+
* ```typescript
|
|
70
|
+
* throw fail('VELOX-3005').because('Secret "${name}" is too weak');
|
|
71
|
+
* ```
|
|
72
|
+
*/
|
|
73
|
+
because(message) {
|
|
74
|
+
this._customMessage = message;
|
|
75
|
+
this.updateMessage();
|
|
76
|
+
return this;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Provide variables for template interpolation
|
|
80
|
+
*
|
|
81
|
+
* @param vars - Object with values to interpolate into the message
|
|
82
|
+
* @returns this for chaining
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```typescript
|
|
86
|
+
* throw fail('VELOX-3005', { length: 12 });
|
|
87
|
+
* // Or chained
|
|
88
|
+
* throw fail('VELOX-3005').with({ length: 12, required: 32 });
|
|
89
|
+
* ```
|
|
90
|
+
*/
|
|
91
|
+
with(vars) {
|
|
92
|
+
this._vars = { ...this._vars, ...vars };
|
|
93
|
+
this.updateMessage();
|
|
94
|
+
return this;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Override the catalog fix suggestion
|
|
98
|
+
*
|
|
99
|
+
* @param suggestion - Custom suggestion for fixing the error
|
|
100
|
+
* @returns this for chaining
|
|
101
|
+
*
|
|
102
|
+
* @example
|
|
103
|
+
* ```typescript
|
|
104
|
+
* throw fail('VELOX-3005').suggest('Use environment variable SESSION_SECRET');
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
suggest(suggestion) {
|
|
108
|
+
this._customSuggestion = suggestion;
|
|
109
|
+
return this;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get the fix suggestion (custom or from catalog)
|
|
113
|
+
*/
|
|
114
|
+
get suggestion() {
|
|
115
|
+
return this._customSuggestion ?? this.entry.fix?.suggestion;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Get the code example from catalog
|
|
119
|
+
*/
|
|
120
|
+
get example() {
|
|
121
|
+
return this.entry.fix?.example;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get the documentation URL
|
|
125
|
+
*/
|
|
126
|
+
get docsUrl() {
|
|
127
|
+
return this.entry.docsUrl;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Get related error codes
|
|
131
|
+
*/
|
|
132
|
+
get seeAlso() {
|
|
133
|
+
return this.entry.seeAlso;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Convert to JSON for API responses
|
|
137
|
+
*/
|
|
138
|
+
toJSON() {
|
|
139
|
+
const json = {
|
|
140
|
+
error: this.name,
|
|
141
|
+
message: this.message,
|
|
142
|
+
statusCode: this.statusCode,
|
|
143
|
+
code: this.code,
|
|
144
|
+
};
|
|
145
|
+
// Include fix in development
|
|
146
|
+
if (process.env.NODE_ENV !== 'production' && this.suggestion) {
|
|
147
|
+
json.fix = this.suggestion;
|
|
148
|
+
}
|
|
149
|
+
// Always include docs URL
|
|
150
|
+
if (this.docsUrl) {
|
|
151
|
+
json.docs = this.docsUrl;
|
|
152
|
+
}
|
|
153
|
+
return json;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Interpolate variables into a template string
|
|
157
|
+
*/
|
|
158
|
+
interpolate(template) {
|
|
159
|
+
return template.replace(/\$\{(\w+)\}/g, (_, key) => {
|
|
160
|
+
const value = this._vars[key];
|
|
161
|
+
return value !== undefined ? String(value) : `\${${key}}`;
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Update the error message with interpolation
|
|
166
|
+
*/
|
|
167
|
+
updateMessage() {
|
|
168
|
+
const template = this._customMessage ?? this.entry.description;
|
|
169
|
+
this.message = this.interpolate(template);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
// ============================================================================
|
|
173
|
+
// Main Function
|
|
174
|
+
// ============================================================================
|
|
175
|
+
/**
|
|
176
|
+
* Create and throw a catalog-driven error with zero ceremony
|
|
177
|
+
*
|
|
178
|
+
* This is the recommended way to throw errors in VeloxTS.
|
|
179
|
+
* The catalog provides the message, suggestion, and documentation.
|
|
180
|
+
*
|
|
181
|
+
* @param code - Error code from the catalog (e.g., 'VELOX-2006')
|
|
182
|
+
* @param vars - Optional interpolation variables
|
|
183
|
+
* @returns VeloxFailure instance (throw it!)
|
|
184
|
+
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```typescript
|
|
187
|
+
* // Simplest usage - one line, zero boilerplate
|
|
188
|
+
* throw fail('VELOX-2006');
|
|
189
|
+
*
|
|
190
|
+
* // With template variables
|
|
191
|
+
* throw fail('VELOX-3005', { length: 12, required: 32 });
|
|
192
|
+
*
|
|
193
|
+
* // Fluent customization when needed
|
|
194
|
+
* throw fail('VELOX-3005')
|
|
195
|
+
* .because('Secret "${name}" has insufficient entropy')
|
|
196
|
+
* .with({ name: 'SESSION_SECRET' })
|
|
197
|
+
* .suggest('Generate with: openssl rand -base64 32');
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export function fail(code, vars) {
|
|
201
|
+
const entry = ERROR_CATALOG[code];
|
|
202
|
+
if (!entry) {
|
|
203
|
+
// Unknown code - create a helpful error about the unknown code
|
|
204
|
+
throw new Error(`Unknown error code: ${code}. ` +
|
|
205
|
+
'Check ERROR_CATALOG in @veloxts/core for valid codes, ' +
|
|
206
|
+
'or add a new entry for this error.');
|
|
207
|
+
}
|
|
208
|
+
const error = new VeloxFailure(code, entry);
|
|
209
|
+
if (vars) {
|
|
210
|
+
error.with(vars);
|
|
211
|
+
}
|
|
212
|
+
return error;
|
|
213
|
+
}
|
|
214
|
+
// ============================================================================
|
|
215
|
+
// Type Guard
|
|
216
|
+
// ============================================================================
|
|
217
|
+
/**
|
|
218
|
+
* Check if an error is a VeloxFailure from fail()
|
|
219
|
+
*
|
|
220
|
+
* @param error - Error to check
|
|
221
|
+
* @returns true if error is a VeloxFailure
|
|
222
|
+
*/
|
|
223
|
+
export function isVeloxFailure(error) {
|
|
224
|
+
return error instanceof VeloxFailure;
|
|
225
|
+
}
|
|
226
|
+
//# sourceMappingURL=fail.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fail.js","sourceRoot":"","sources":["../../src/errors/fail.ts"],"names":[],"mappings":"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"}
|
package/dist/errors/index.d.ts
CHANGED
|
@@ -10,5 +10,6 @@
|
|
|
10
10
|
* @module errors
|
|
11
11
|
*/
|
|
12
12
|
export { ERROR_CATALOG, ERROR_DOMAINS, type ErrorCatalogEntry, type ErrorDomain, getDocsUrl, getErrorEntry, getErrorsByDomain, isKnownErrorCode, } from './catalog.js';
|
|
13
|
+
export { type ErrorCode, fail, type InterpolationVars, isVeloxFailure, VeloxFailure, } from './fail.js';
|
|
13
14
|
export { type ErrorLocation, extractErrorLocation, type FormatErrorOptions, formatError, formatErrorForApi, formatErrorOneLine, logDeprecation, logError, logWarning, } from './formatter.js';
|
|
14
15
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,aAAa,EAClB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAGH,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,SAAS,EACd,IAAI,EACJ,KAAK,iBAAiB,EACtB,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC;AAEnB,OAAO,EACL,KAAK,aAAa,EAClB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,gBAAgB,CAAC"}
|
package/dist/errors/index.js
CHANGED
|
@@ -11,6 +11,8 @@
|
|
|
11
11
|
*/
|
|
12
12
|
// Re-export catalog
|
|
13
13
|
export { ERROR_CATALOG, ERROR_DOMAINS, getDocsUrl, getErrorEntry, getErrorsByDomain, isKnownErrorCode, } from './catalog.js';
|
|
14
|
+
// Re-export fail() - the elegant error creation API
|
|
15
|
+
export { fail, isVeloxFailure, VeloxFailure, } from './fail.js';
|
|
14
16
|
// Re-export formatter
|
|
15
17
|
export { extractErrorLocation, formatError, formatErrorForApi, formatErrorOneLine, logDeprecation, logError, logWarning, } from './formatter.js';
|
|
16
18
|
//# sourceMappingURL=index.js.map
|
package/dist/errors/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EAGb,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,sBAAsB;AACtB,OAAO,EAEL,oBAAoB,EAEpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,oBAAoB;AACpB,OAAO,EACL,aAAa,EACb,aAAa,EAGb,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AACtB,oDAAoD;AACpD,OAAO,EAEL,IAAI,EAEJ,cAAc,EACd,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,sBAAsB;AACtB,OAAO,EAEL,oBAAoB,EAEpB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,UAAU,GACX,MAAM,gBAAgB,CAAC"}
|
package/dist/errors.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Provides base error classes with HTTP status codes and discriminated unions
|
|
4
4
|
* @module errors
|
|
5
5
|
*/
|
|
6
|
-
export { ERROR_CATALOG, ERROR_DOMAINS, type ErrorCatalogEntry, type ErrorDomain, type ErrorLocation, extractErrorLocation, type FormatErrorOptions, formatError, formatErrorForApi, formatErrorOneLine, getDocsUrl, getErrorEntry, getErrorsByDomain, isKnownErrorCode, logDeprecation, logError, logWarning, } from './errors/index.js';
|
|
6
|
+
export { ERROR_CATALOG, ERROR_DOMAINS, type ErrorCatalogEntry, type ErrorCode, type ErrorDomain, type ErrorLocation, extractErrorLocation, type FormatErrorOptions, fail, formatError, formatErrorForApi, formatErrorOneLine, getDocsUrl, getErrorEntry, getErrorsByDomain, type InterpolationVars, isKnownErrorCode, isVeloxFailure, logDeprecation, logError, logWarning, VeloxFailure, } from './errors/index.js';
|
|
7
7
|
/**
|
|
8
8
|
* Known error codes in the VeloxTS framework core
|
|
9
9
|
* Can be extended via declaration merging by plugins
|
package/dist/errors.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,aAAa,EACb,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,EAChB,cAAc,EACd,QAAQ,EACR,UAAU,
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/errors.js
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
// Import catalog for use in error classes
|
|
7
7
|
import { ERROR_CATALOG } from './errors/catalog.js';
|
|
8
8
|
import { formatError as _formatError } from './errors/formatter.js';
|
|
9
|
-
// Re-export the enhanced error catalog and
|
|
10
|
-
export { ERROR_CATALOG, ERROR_DOMAINS, extractErrorLocation, formatError, formatErrorForApi, formatErrorOneLine, getDocsUrl, getErrorEntry, getErrorsByDomain, isKnownErrorCode, logDeprecation, logError, logWarning, } from './errors/index.js';
|
|
9
|
+
// Re-export the enhanced error catalog, formatter, and fail()
|
|
10
|
+
export { ERROR_CATALOG, ERROR_DOMAINS, extractErrorLocation, fail, formatError, formatErrorForApi, formatErrorOneLine, getDocsUrl, getErrorEntry, getErrorsByDomain, isKnownErrorCode, isVeloxFailure, logDeprecation, logError, logWarning, VeloxFailure, } from './errors/index.js';
|
|
11
11
|
/**
|
|
12
12
|
* Type guard for validation error responses
|
|
13
13
|
*/
|
package/dist/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,0CAA0C;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,WAAW,IAAI,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAEpE,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,17 +18,20 @@
|
|
|
18
18
|
import 'reflect-metadata';
|
|
19
19
|
/** VeloxTS framework version */
|
|
20
20
|
export declare const VELOX_VERSION: string;
|
|
21
|
-
export { createVeloxApp, VeloxApp, veloxApp } from './app.js';
|
|
22
21
|
export type { StartOptions } from './app.js';
|
|
22
|
+
export { createVeloxApp, VeloxApp, veloxApp } from './app.js';
|
|
23
23
|
export type { BaseContext } from './context.js';
|
|
24
24
|
export { createContext, isContext, setupTestContext } from './context.js';
|
|
25
25
|
export type { AbstractClass, ClassConstructor, ClassProvider, ContainerOptions, ExistingProvider, FactoryProvider, InjectableOptions, InjectionToken, Provider, ResolutionContext, StringToken, SymbolToken, TokenType, ValueProvider, } from './di/index.js';
|
|
26
26
|
export { asClass, asExisting, asFactory, asValue, Container, container, createContainer, createStringToken, createSymbolToken, factory, getConstructorTokens, getExplicitInjectTokens, getInjectableScope, getOptionalParams, getTokenName, Inject, Injectable, isClassProvider, isClassToken, isExistingProvider, isFactoryProvider, isInjectable, isStringToken, isSymbolToken, isValueProvider, makeInjectable, Optional, Scope, ScopeManager, scoped, setInjectTokens, singleton, token, transient, validateProvider, validateToken, value, } from './di/index.js';
|
|
27
|
-
export type { ErrorResponse, GenericErrorResponse, NotFoundErrorResponse, ValidationErrorResponse, VeloxCoreErrorCode, VeloxErrorCode, VeloxErrorCodeRegistry, } from './errors.js';
|
|
28
|
-
export { assertNever, ConfigurationError, isConfigurationError, isNotFoundError, isNotFoundErrorResponse, isValidationError, isValidationErrorResponse, isVeloxError, NotFoundError, ValidationError, VeloxError, } from './errors.js';
|
|
27
|
+
export type { ErrorCode, ErrorResponse, GenericErrorResponse, InterpolationVars, NotFoundErrorResponse, ValidationErrorResponse, VeloxCoreErrorCode, VeloxErrorCode, VeloxErrorCodeRegistry, } from './errors.js';
|
|
28
|
+
export { assertNever, ConfigurationError, fail, isConfigurationError, isNotFoundError, isNotFoundErrorResponse, isValidationError, isValidationErrorResponse, isVeloxError, isVeloxFailure, logDeprecation, logWarning, NotFoundError, ValidationError, VeloxError, VeloxFailure, } from './errors.js';
|
|
29
29
|
export type { InferPluginOptions, PluginMetadata, PluginOptions, VeloxPlugin } from './plugin.js';
|
|
30
30
|
export { definePlugin, isVeloxPlugin, validatePluginMetadata } from './plugin.js';
|
|
31
31
|
export type { AsyncHandler, JsonArray, JsonObject, JsonPrimitive, JsonValue, LifecycleHook, ShutdownHandler, SyncHandler, } from './types.js';
|
|
32
32
|
export type { FrozenVeloxAppConfig, ValidHost, ValidPort, VeloxAppConfig, VeloxFastifyOptions, } from './utils/config.js';
|
|
33
33
|
export { isValidHost, isValidPort } from './utils/config.js';
|
|
34
|
+
export type { AuthContextExtension, CombineContexts, ContextExtension, CoreContext, DbContextExtension, defineContext, MergeContext, SessionContextExtension, } from './typed-context.js';
|
|
35
|
+
export type { CacheControl, StaticOptions } from './plugins/static.js';
|
|
36
|
+
export { registerStatic } from './plugins/static.js';
|
|
34
37
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,kBAAkB,CAAC;AAQ1B,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,MAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,kBAAkB,CAAC;AAQ1B,gCAAgC;AAChC,eAAO,MAAM,aAAa,EAAE,MAA+C,CAAC;AAE5E,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAE9D,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC1E,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,aAAa,EAEb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EAEf,iBAAiB,EAEjB,cAAc,EAEd,QAAQ,EACR,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,GACd,MAAM,eAAe,CAAC;AAEvB,OAAO,EAEL,OAAO,EACP,UAAU,EACV,SAAS,EACT,OAAO,EAEP,SAAS,EACT,SAAS,EACT,eAAe,EAEf,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,MAAM,EAEN,UAAU,EAEV,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB,EAEjB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ,EAER,KAAK,EACL,YAAY,EACZ,MAAM,EACN,eAAe,EAEf,SAAS,EAET,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,KAAK,GACN,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,SAAS,EACT,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,IAAI,EACJ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,YAAY,EACZ,cAAc,EAEd,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAElG,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAElF,YAAY,EACV,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,SAAS,EACT,aAAa,EACb,eAAe,EACf,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,cAAc,EACd,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAM7D,YAAY,EACV,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,uBAAuB,GACxB,MAAM,oBAAoB,CAAC;AAM5B,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -46,8 +46,13 @@ Scope, ScopeManager, scoped, setInjectTokens,
|
|
|
46
46
|
singleton,
|
|
47
47
|
// Tokens (succinct API)
|
|
48
48
|
token, transient, validateProvider, validateToken, value, } from './di/index.js';
|
|
49
|
-
export { assertNever, ConfigurationError,
|
|
49
|
+
export { assertNever, ConfigurationError,
|
|
50
|
+
// Elegant error creation API
|
|
51
|
+
fail, isConfigurationError, isNotFoundError, isNotFoundErrorResponse, isValidationError, isValidationErrorResponse, isVeloxError, isVeloxFailure,
|
|
52
|
+
// Developer experience utilities
|
|
53
|
+
logDeprecation, logWarning, NotFoundError, ValidationError, VeloxError, VeloxFailure, } from './errors.js';
|
|
50
54
|
// Plugin system
|
|
51
55
|
export { definePlugin, isVeloxPlugin, validatePluginMetadata } from './plugin.js';
|
|
52
56
|
export { isValidHost, isValidPort } from './utils/config.js';
|
|
57
|
+
export { registerStatic } from './plugins/static.js';
|
|
53
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gDAAgD;AAChD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,gDAAgD;AAChD,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,6CAA6C;AAC7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,WAAW,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAEtE,gCAAgC;AAChC,MAAM,CAAC,MAAM,aAAa,GAAW,WAAW,CAAC,OAAO,IAAI,eAAe,CAAC;AAG5E,yBAAyB;AACzB,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAqB1E,uBAAuB;AACvB,OAAO;AACL,4BAA4B;AAC5B,OAAO,EACP,UAAU,EACV,SAAS,EACT,OAAO;AACP,YAAY;AACZ,SAAS,EACT,SAAS,EACT,eAAe;AACf,+BAA+B;AAC/B,iBAAiB,EACjB,iBAAiB,EACjB,OAAO,EACP,oBAAoB,EACpB,uBAAuB,EACvB,kBAAkB,EAClB,iBAAiB,EACjB,YAAY,EACZ,MAAM;AACN,aAAa;AACb,UAAU;AACV,uBAAuB;AACvB,eAAe,EACf,YAAY,EACZ,kBAAkB,EAClB,iBAAiB;AACjB,sBAAsB;AACtB,YAAY,EACZ,aAAa,EACb,aAAa,EACb,eAAe,EACf,cAAc,EACd,QAAQ;AACR,QAAQ;AACR,KAAK,EACL,YAAY,EACZ,MAAM,EACN,eAAe;AACf,kCAAkC;AAClC,SAAS;AACT,wBAAwB;AACxB,KAAK,EACL,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,KAAK,GACN,MAAM,eAAe,CAAC;AAavB,OAAO,EACL,WAAW,EACX,kBAAkB;AAClB,6BAA6B;AAC7B,IAAI,EACJ,oBAAoB,EACpB,eAAe,EACf,uBAAuB,EACvB,iBAAiB,EACjB,yBAAyB,EACzB,YAAY,EACZ,cAAc;AACd,iCAAiC;AACjC,cAAc,EACd,UAAU,EACV,aAAa,EACb,eAAe,EACf,UAAU,EACV,YAAY,GACb,MAAM,aAAa,CAAC;AAErB,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAoBlF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAsB7D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static File Serving Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides elegant static file serving with SPA support.
|
|
5
|
+
* Zero-configuration defaults with powerful customization.
|
|
6
|
+
*
|
|
7
|
+
* @module plugins/static
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Zero-ceremony common case
|
|
12
|
+
* await app.serveStatic('./public');
|
|
13
|
+
*
|
|
14
|
+
* // SPA with client-side routing
|
|
15
|
+
* await app.serveStatic('./dist', { spa: true });
|
|
16
|
+
*
|
|
17
|
+
* // Full configuration
|
|
18
|
+
* await app.serveStatic('./dist', {
|
|
19
|
+
* spa: true,
|
|
20
|
+
* prefix: '/assets',
|
|
21
|
+
* cache: { maxAge: '1y', immutable: true },
|
|
22
|
+
* exclude: ['/api', '/trpc'],
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import type { FastifyInstance } from 'fastify';
|
|
27
|
+
/**
|
|
28
|
+
* Cache control configuration for served files
|
|
29
|
+
*/
|
|
30
|
+
export interface CacheControl {
|
|
31
|
+
/**
|
|
32
|
+
* How long browsers should cache files
|
|
33
|
+
*
|
|
34
|
+
* Accepts human-readable durations: '1d', '1y', '30m'
|
|
35
|
+
* Or seconds as a number
|
|
36
|
+
*
|
|
37
|
+
* @default '1d'
|
|
38
|
+
*/
|
|
39
|
+
maxAge?: string | number;
|
|
40
|
+
/**
|
|
41
|
+
* Mark as immutable (for fingerprinted assets)
|
|
42
|
+
*
|
|
43
|
+
* @default false
|
|
44
|
+
*/
|
|
45
|
+
immutable?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Configuration for static file serving
|
|
49
|
+
*/
|
|
50
|
+
export interface StaticOptions {
|
|
51
|
+
/**
|
|
52
|
+
* Enable SPA mode for client-side routing
|
|
53
|
+
*
|
|
54
|
+
* @default false
|
|
55
|
+
*/
|
|
56
|
+
spa?: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* URL prefix for all static files
|
|
59
|
+
*
|
|
60
|
+
* @example '/assets' serves files at /assets/style.css
|
|
61
|
+
* @default '/'
|
|
62
|
+
*/
|
|
63
|
+
prefix?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Cache control settings
|
|
66
|
+
*
|
|
67
|
+
* @default { maxAge: '1d' }
|
|
68
|
+
*/
|
|
69
|
+
cache?: CacheControl;
|
|
70
|
+
/**
|
|
71
|
+
* URL prefixes to exclude from static serving
|
|
72
|
+
*
|
|
73
|
+
* @example ['/api', '/trpc']
|
|
74
|
+
* @default []
|
|
75
|
+
*/
|
|
76
|
+
exclude?: string[];
|
|
77
|
+
/**
|
|
78
|
+
* Directory index file
|
|
79
|
+
*
|
|
80
|
+
* @default 'index.html'
|
|
81
|
+
*/
|
|
82
|
+
index?: string;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Register static file serving on a Fastify instance
|
|
86
|
+
*
|
|
87
|
+
* Uses @fastify/static for efficient file serving with:
|
|
88
|
+
* - Streaming support for large files
|
|
89
|
+
* - ETag generation
|
|
90
|
+
* - Last-Modified headers
|
|
91
|
+
* - Range requests (resumable downloads)
|
|
92
|
+
*
|
|
93
|
+
* @param server - Fastify server instance
|
|
94
|
+
* @param path - Directory containing static files
|
|
95
|
+
* @param options - Serving configuration
|
|
96
|
+
*/
|
|
97
|
+
export declare function registerStatic(server: FastifyInstance, path: string, options?: StaticOptions): Promise<void>;
|
|
98
|
+
//# sourceMappingURL=static.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../src/plugins/static.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAIH,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAM7E;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAEzB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;OAIG;IACH,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAwDD;;;;;;;;;;;;GAYG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,eAAe,EACvB,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA0Df"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Static File Serving Plugin
|
|
3
|
+
*
|
|
4
|
+
* Provides elegant static file serving with SPA support.
|
|
5
|
+
* Zero-configuration defaults with powerful customization.
|
|
6
|
+
*
|
|
7
|
+
* @module plugins/static
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* // Zero-ceremony common case
|
|
12
|
+
* await app.serveStatic('./public');
|
|
13
|
+
*
|
|
14
|
+
* // SPA with client-side routing
|
|
15
|
+
* await app.serveStatic('./dist', { spa: true });
|
|
16
|
+
*
|
|
17
|
+
* // Full configuration
|
|
18
|
+
* await app.serveStatic('./dist', {
|
|
19
|
+
* spa: true,
|
|
20
|
+
* prefix: '/assets',
|
|
21
|
+
* cache: { maxAge: '1y', immutable: true },
|
|
22
|
+
* exclude: ['/api', '/trpc'],
|
|
23
|
+
* });
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
import { resolve } from 'node:path';
|
|
27
|
+
// ============================================================================
|
|
28
|
+
// Cache Duration Parser
|
|
29
|
+
// ============================================================================
|
|
30
|
+
/**
|
|
31
|
+
* Parse human-readable duration to seconds
|
|
32
|
+
*
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
function parseDuration(duration) {
|
|
36
|
+
if (typeof duration === 'number') {
|
|
37
|
+
return duration;
|
|
38
|
+
}
|
|
39
|
+
const match = duration.match(/^(\d+)([smhdwy])$/);
|
|
40
|
+
if (!match) {
|
|
41
|
+
return 86400; // Default: 1 day
|
|
42
|
+
}
|
|
43
|
+
const value = Number.parseInt(match[1], 10);
|
|
44
|
+
const unit = match[2];
|
|
45
|
+
const multipliers = {
|
|
46
|
+
s: 1,
|
|
47
|
+
m: 60,
|
|
48
|
+
h: 3600,
|
|
49
|
+
d: 86400,
|
|
50
|
+
w: 604800,
|
|
51
|
+
y: 31536000,
|
|
52
|
+
};
|
|
53
|
+
return value * (multipliers[unit] ?? 86400);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Build Cache-Control header value
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
function buildCacheControl(options) {
|
|
61
|
+
const maxAge = parseDuration(options.maxAge ?? '1d');
|
|
62
|
+
const parts = [`public`, `max-age=${maxAge}`];
|
|
63
|
+
if (options.immutable) {
|
|
64
|
+
parts.push('immutable');
|
|
65
|
+
}
|
|
66
|
+
return parts.join(', ');
|
|
67
|
+
}
|
|
68
|
+
// ============================================================================
|
|
69
|
+
// Static File Handler
|
|
70
|
+
// ============================================================================
|
|
71
|
+
/**
|
|
72
|
+
* Register static file serving on a Fastify instance
|
|
73
|
+
*
|
|
74
|
+
* Uses @fastify/static for efficient file serving with:
|
|
75
|
+
* - Streaming support for large files
|
|
76
|
+
* - ETag generation
|
|
77
|
+
* - Last-Modified headers
|
|
78
|
+
* - Range requests (resumable downloads)
|
|
79
|
+
*
|
|
80
|
+
* @param server - Fastify server instance
|
|
81
|
+
* @param path - Directory containing static files
|
|
82
|
+
* @param options - Serving configuration
|
|
83
|
+
*/
|
|
84
|
+
export async function registerStatic(server, path, options = {}) {
|
|
85
|
+
const { spa = false, prefix = '/', cache = {}, exclude = [], index = 'index.html' } = options;
|
|
86
|
+
// Resolve to absolute path
|
|
87
|
+
const absoluteRoot = resolve(process.cwd(), path);
|
|
88
|
+
// Dynamically import @fastify/static (optional peer dependency)
|
|
89
|
+
let fastifyStatic;
|
|
90
|
+
try {
|
|
91
|
+
const module = await import('@fastify/static');
|
|
92
|
+
fastifyStatic = module.default;
|
|
93
|
+
}
|
|
94
|
+
catch {
|
|
95
|
+
throw new Error('To serve static files, please install @fastify/static:\n\n pnpm add @fastify/static');
|
|
96
|
+
}
|
|
97
|
+
// Build cache control header
|
|
98
|
+
const cacheControl = buildCacheControl(cache);
|
|
99
|
+
// Register static plugin
|
|
100
|
+
await server.register(fastifyStatic, {
|
|
101
|
+
root: absoluteRoot,
|
|
102
|
+
prefix,
|
|
103
|
+
index,
|
|
104
|
+
decorateReply: !server.hasDecorator('sendFile'),
|
|
105
|
+
setHeaders: (res) => {
|
|
106
|
+
res.setHeader('Cache-Control', cacheControl);
|
|
107
|
+
},
|
|
108
|
+
});
|
|
109
|
+
// SPA fallback: serve index.html for non-file routes
|
|
110
|
+
if (spa) {
|
|
111
|
+
server.setNotFoundHandler(async (request, reply) => {
|
|
112
|
+
// Skip excluded paths (API routes, etc.)
|
|
113
|
+
for (const excludePath of exclude) {
|
|
114
|
+
if (request.url.startsWith(excludePath)) {
|
|
115
|
+
return reply.status(404).send({
|
|
116
|
+
error: 'NotFound',
|
|
117
|
+
message: `Route ${request.method} ${request.url} not found`,
|
|
118
|
+
statusCode: 404,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Skip requests for files (have extensions)
|
|
123
|
+
if (/\.\w+$/.test(request.url)) {
|
|
124
|
+
return reply.status(404).send({
|
|
125
|
+
error: 'NotFound',
|
|
126
|
+
message: 'File not found',
|
|
127
|
+
statusCode: 404,
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
// Serve index.html for SPA routes
|
|
131
|
+
return reply.sendFile(index, absoluteRoot);
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=static.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static.js","sourceRoot":"","sources":["../../src/plugins/static.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed Context Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides an alternative to declaration merging that is more discoverable
|
|
5
|
+
* and provides better IDE support for context typing.
|
|
6
|
+
*
|
|
7
|
+
* @module typed-context
|
|
8
|
+
*/
|
|
9
|
+
import type { FastifyReply, FastifyRequest } from 'fastify';
|
|
10
|
+
/**
|
|
11
|
+
* Base properties always available in context
|
|
12
|
+
*/
|
|
13
|
+
export interface CoreContext {
|
|
14
|
+
request: FastifyRequest;
|
|
15
|
+
reply: FastifyReply;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Type for context extensions provided by plugins
|
|
19
|
+
*/
|
|
20
|
+
export type ContextExtension = Record<string, unknown>;
|
|
21
|
+
/**
|
|
22
|
+
* Helper to convert union to intersection
|
|
23
|
+
*/
|
|
24
|
+
type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
25
|
+
/**
|
|
26
|
+
* Merges core context with plugin extensions
|
|
27
|
+
*/
|
|
28
|
+
export type MergeContext<TExtensions extends ContextExtension[]> = CoreContext & UnionToIntersection<TExtensions[number]>;
|
|
29
|
+
/**
|
|
30
|
+
* Combines multiple context extensions into one
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```typescript
|
|
34
|
+
* type AppContext = CombineContexts<[
|
|
35
|
+
* { db: PrismaClient },
|
|
36
|
+
* { auth?: { user?: User } },
|
|
37
|
+
* { session?: Session },
|
|
38
|
+
* ]>;
|
|
39
|
+
* // Result: CoreContext & { db: PrismaClient } & { auth?: ... } & { session?: ... }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export type CombineContexts<T extends ContextExtension[]> = MergeContext<T>;
|
|
43
|
+
/**
|
|
44
|
+
* Defines application context type from plugin extensions
|
|
45
|
+
*
|
|
46
|
+
* This is the primary way to create a typed context without declaration merging.
|
|
47
|
+
* Define once in your app's context file, use everywhere.
|
|
48
|
+
*
|
|
49
|
+
* @example
|
|
50
|
+
* ```typescript
|
|
51
|
+
* // In your app's context.ts
|
|
52
|
+
* import type { defineContext, DbContextExtension } from '@veloxts/core';
|
|
53
|
+
* import type { PrismaClient } from './generated/prisma/client.js';
|
|
54
|
+
*
|
|
55
|
+
* export type AppContext = defineContext<[
|
|
56
|
+
* DbContextExtension<PrismaClient>,
|
|
57
|
+
* ]>;
|
|
58
|
+
*
|
|
59
|
+
* // AppContext = {
|
|
60
|
+
* // request: FastifyRequest;
|
|
61
|
+
* // reply: FastifyReply;
|
|
62
|
+
* // db: PrismaClient;
|
|
63
|
+
* // }
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
export type defineContext<T extends ContextExtension[]> = MergeContext<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Context extension type for ORM plugin
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```typescript
|
|
72
|
+
* import type { DbContextExtension } from '@veloxts/core';
|
|
73
|
+
* import type { PrismaClient } from './generated/prisma/client.js';
|
|
74
|
+
*
|
|
75
|
+
* type AppContext = defineContext<[
|
|
76
|
+
* DbContextExtension<PrismaClient>,
|
|
77
|
+
* ]>;
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
export type DbContextExtension<TClient> = {
|
|
81
|
+
db: TClient;
|
|
82
|
+
};
|
|
83
|
+
/**
|
|
84
|
+
* Context extension type for Auth plugin
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* import type { AuthContextExtension } from '@veloxts/core';
|
|
89
|
+
* import type { User } from './types.js';
|
|
90
|
+
*
|
|
91
|
+
* type AppContext = defineContext<[
|
|
92
|
+
* AuthContextExtension<User>,
|
|
93
|
+
* ]>;
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export type AuthContextExtension<TUser> = {
|
|
97
|
+
auth?: {
|
|
98
|
+
user?: TUser;
|
|
99
|
+
isAuthenticated: boolean;
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Context extension type for Session plugin
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```typescript
|
|
107
|
+
* import type { SessionContextExtension } from '@veloxts/core';
|
|
108
|
+
*
|
|
109
|
+
* type AppContext = defineContext<[
|
|
110
|
+
* SessionContextExtension<{ cart: string[] }>,
|
|
111
|
+
* ]>;
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export type SessionContextExtension<TSessionData = Record<string, unknown>> = {
|
|
115
|
+
session?: {
|
|
116
|
+
id: string;
|
|
117
|
+
data: TSessionData;
|
|
118
|
+
get: <K extends keyof TSessionData>(key: K) => TSessionData[K] | undefined;
|
|
119
|
+
set: <K extends keyof TSessionData>(key: K, value: TSessionData[K]) => void;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
export {};
|
|
123
|
+
//# sourceMappingURL=typed-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-context.d.ts","sourceRoot":"","sources":["../src/typed-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAM5D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,CAAC;IACxB,KAAK,EAAE,YAAY,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAMvD;;GAEG;AACH,KAAK,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,GAAG,KAAK,CAAC,SAAS,CACjF,CAAC,EAAE,MAAM,CAAC,KACP,IAAI,GACL,CAAC,GACD,KAAK,CAAC;AAEV;;GAEG;AACH,MAAM,MAAM,YAAY,CAAC,WAAW,SAAS,gBAAgB,EAAE,IAAI,WAAW,GAC5E,mBAAmB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAE3C;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAM5E;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,EAAE,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AAM1E;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,CAAC,OAAO,IAAI;IAAE,EAAE,EAAE,OAAO,CAAA;CAAE,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,oBAAoB,CAAC,KAAK,IAAI;IACxC,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,KAAK,CAAC;QACb,eAAe,EAAE,OAAO,CAAC;KAC1B,CAAC;CACH,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,MAAM,uBAAuB,CAAC,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC5E,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,YAAY,CAAC;QACnB,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC;QAC3E,GAAG,EAAE,CAAC,CAAC,SAAS,MAAM,YAAY,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;KAC7E,CAAC;CACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Typed Context Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides an alternative to declaration merging that is more discoverable
|
|
5
|
+
* and provides better IDE support for context typing.
|
|
6
|
+
*
|
|
7
|
+
* @module typed-context
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=typed-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typed-context.js","sourceRoot":"","sources":["../src/typed-context.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veloxts/core",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.10",
|
|
4
4
|
"description": "Fastify wrapper, DI container, and plugin system for VeloxTS framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -31,7 +31,16 @@
|
|
|
31
31
|
"picocolors": "1.1.1",
|
|
32
32
|
"reflect-metadata": "0.2.2"
|
|
33
33
|
},
|
|
34
|
+
"peerDependencies": {
|
|
35
|
+
"@fastify/static": ">=8.0.0"
|
|
36
|
+
},
|
|
37
|
+
"peerDependenciesMeta": {
|
|
38
|
+
"@fastify/static": {
|
|
39
|
+
"optional": true
|
|
40
|
+
}
|
|
41
|
+
},
|
|
34
42
|
"devDependencies": {
|
|
43
|
+
"@fastify/static": "8.1.0",
|
|
35
44
|
"@types/node": "25.0.0",
|
|
36
45
|
"@vitest/coverage-v8": "4.0.15",
|
|
37
46
|
"typescript": "5.9.3",
|