@rudderjs/core 1.1.3 → 1.1.5

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.
@@ -0,0 +1,98 @@
1
+ import type { AppRequest, MiddlewareHandler, ServerAdapterProvider } from '@rudderjs/contracts';
2
+ import { Application, type ProviderClass } from './application.js';
3
+ export interface ConfigureOptions {
4
+ server: ServerAdapterProvider;
5
+ config?: Record<string, unknown>;
6
+ providers?: ProviderClass[];
7
+ }
8
+ export interface RoutingOptions {
9
+ web?: () => Promise<unknown>;
10
+ api?: () => Promise<unknown>;
11
+ commands?: () => Promise<unknown>;
12
+ channels?: () => Promise<unknown>;
13
+ }
14
+ type RouteGroupName = 'web' | 'api';
15
+ export declare class MiddlewareConfigurator {
16
+ private _handlers;
17
+ private _groupHandlers;
18
+ /** Global middleware — runs on every request, regardless of route group. */
19
+ use(handler: MiddlewareHandler): this;
20
+ /** Append middleware to the `web` route group (routes loaded via withRouting({ web })). */
21
+ web(...handlers: MiddlewareHandler[]): this;
22
+ /** Append middleware to the `api` route group (routes loaded via withRouting({ api })). */
23
+ api(...handlers: MiddlewareHandler[]): this;
24
+ getHandlers(): MiddlewareHandler[];
25
+ /** Combined group stack — user-config + any provider-registered group middleware. */
26
+ getGroupHandlers(group: RouteGroupName): MiddlewareHandler[];
27
+ }
28
+ export type ErrorRenderer = (err: unknown, req: AppRequest) => Response | Promise<Response>;
29
+ export declare class ExceptionConfigurator {
30
+ private _renders;
31
+ private _ignored;
32
+ /**
33
+ * Register a custom renderer for a specific error type.
34
+ *
35
+ * @example
36
+ * e.render(PaymentError, (err, req) =>
37
+ * new Response(JSON.stringify({ code: err.code }), { status: 402, headers: { 'Content-Type': 'application/json' } })
38
+ * )
39
+ */
40
+ render<T extends Error>(type: new (...args: any[]) => T, fn: (err: T, req: AppRequest) => Response | Promise<Response>): this;
41
+ /**
42
+ * Ignore an error type — re-throws it so the server's native handler sees it.
43
+ */
44
+ ignore(type: new (...args: any[]) => unknown): this;
45
+ /**
46
+ * Override the global exception reporter for unhandled errors.
47
+ * By default, `@rudderjs/log` wires this automatically when installed.
48
+ *
49
+ * @example
50
+ * e.reportUsing((err) => Sentry.captureException(err))
51
+ */
52
+ reportUsing(fn: (err: unknown) => void): this;
53
+ /** @internal — called by RudderJS to produce the combined error handler */
54
+ buildHandler(): ErrorRenderer;
55
+ }
56
+ export declare class AppBuilder {
57
+ private readonly _options;
58
+ private _loaders;
59
+ private _mwFn?;
60
+ private _excFn?;
61
+ constructor(_options: ConfigureOptions);
62
+ withRouting(routes: RoutingOptions): this;
63
+ /** Wrap a route loader so routes registered inside it get tagged with `group`. */
64
+ private _taggedLoader;
65
+ withMiddleware(fn: (m: MiddlewareConfigurator) => void): this;
66
+ withExceptions(fn: (e: ExceptionConfigurator) => void): this;
67
+ create(): RudderJS;
68
+ }
69
+ export declare class RudderJS {
70
+ private readonly _app;
71
+ private readonly _server;
72
+ private readonly _loaders;
73
+ private readonly _mwFn?;
74
+ private readonly _excFn?;
75
+ /** Phase 1: providers only — safe to await in CLI (no Vike virtual imports) */
76
+ private _providerBoot;
77
+ /** Phase 2: provider boot + HTTP handler — created lazily on first handleRequest call */
78
+ private _boot;
79
+ private _handler;
80
+ constructor(_app: Application, _server: ServerAdapterProvider, _loaders: Array<() => Promise<unknown>>, _mwFn?: ((m: MiddlewareConfigurator) => void) | undefined, _excFn?: ((e: ExceptionConfigurator) => void) | undefined);
81
+ private _suppressVikeNoise;
82
+ /** Phase 1 — boot providers + routes. Safe in CLI (no Vike virtual URLs). */
83
+ private _bootstrapProviders;
84
+ /**
85
+ * Dev-only — print the auto-discovered providers grouped by stage so a missing
86
+ * package is visible at every boot instead of failing silently when first used.
87
+ * Wraps long stage lines so the output stays readable in narrow terminals.
88
+ */
89
+ private _printDevBootLog;
90
+ /** Phase 2 — create the HTTP fetch handler. Requires Vite context (virtual: URLs). */
91
+ private _createHandler;
92
+ /** Boot providers without starting an HTTP server — used by the CLI */
93
+ boot(): Promise<void>;
94
+ handleRequest(request: Request, env?: unknown, ctx?: unknown): Promise<Response>;
95
+ readonly fetch: (request: Request, env?: unknown, ctx?: unknown) => Promise<Response>;
96
+ }
97
+ export {};
98
+ //# sourceMappingURL=app-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder.d.ts","sourceRoot":"","sources":["../src/app-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,352 @@
1
+ import { rudder } from '@rudderjs/console';
2
+ import { Application, groupMiddlewareStore, resetGroupMiddleware, } from './application.js';
3
+ import { getLastLoadedProviderEntries } from './default-providers.js';
4
+ import { HttpException, renderHttpException, renderServerError, report, setExceptionReporter, wantsJson, } from './exceptions.js';
5
+ import { ValidationError, ValidationResponse } from './validation.js';
6
+ export class MiddlewareConfigurator {
7
+ _handlers = [];
8
+ _groupHandlers = { web: [], api: [] };
9
+ /** Global middleware — runs on every request, regardless of route group. */
10
+ use(handler) {
11
+ this._handlers.push(handler);
12
+ return this;
13
+ }
14
+ /** Append middleware to the `web` route group (routes loaded via withRouting({ web })). */
15
+ web(...handlers) {
16
+ this._groupHandlers.web.push(...handlers);
17
+ return this;
18
+ }
19
+ /** Append middleware to the `api` route group (routes loaded via withRouting({ api })). */
20
+ api(...handlers) {
21
+ this._groupHandlers.api.push(...handlers);
22
+ return this;
23
+ }
24
+ getHandlers() { return this._handlers; }
25
+ /** Combined group stack — user-config + any provider-registered group middleware. */
26
+ getGroupHandlers(group) {
27
+ return [...groupMiddlewareStore[group], ...this._groupHandlers[group]];
28
+ }
29
+ }
30
+ export class ExceptionConfigurator {
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ _renders = [];
33
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+ _ignored = new Set();
35
+ /**
36
+ * Register a custom renderer for a specific error type.
37
+ *
38
+ * @example
39
+ * e.render(PaymentError, (err, req) =>
40
+ * new Response(JSON.stringify({ code: err.code }), { status: 402, headers: { 'Content-Type': 'application/json' } })
41
+ * )
42
+ */
43
+ render(
44
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
45
+ type, fn) {
46
+ this._renders.push({ type, fn: fn });
47
+ return this;
48
+ }
49
+ /**
50
+ * Ignore an error type — re-throws it so the server's native handler sees it.
51
+ */
52
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
53
+ ignore(type) {
54
+ this._ignored.add(type);
55
+ return this;
56
+ }
57
+ /**
58
+ * Override the global exception reporter for unhandled errors.
59
+ * By default, `@rudderjs/log` wires this automatically when installed.
60
+ *
61
+ * @example
62
+ * e.reportUsing((err) => Sentry.captureException(err))
63
+ */
64
+ reportUsing(fn) {
65
+ setExceptionReporter(fn);
66
+ return this;
67
+ }
68
+ /** @internal — called by RudderJS to produce the combined error handler */
69
+ buildHandler() {
70
+ const renders = this._renders.slice();
71
+ const ignored = new Set(this._ignored);
72
+ return async (err, req) => {
73
+ // 1. Explicitly ignored — re-throw
74
+ for (const type of ignored) {
75
+ if (err instanceof type)
76
+ throw err;
77
+ }
78
+ // 2. User-registered renderers (take priority)
79
+ for (const { type, fn } of renders) {
80
+ if (err instanceof type)
81
+ return fn(err, req);
82
+ }
83
+ // 3. ValidationResponse — short-circuit emit the wrapped Response (FormRequest.failedValidation)
84
+ if (err instanceof ValidationResponse) {
85
+ return err.response;
86
+ }
87
+ // 4. ValidationError — 422 JSON
88
+ if (err instanceof ValidationError) {
89
+ return new Response(JSON.stringify(err.toJSON()), {
90
+ status: 422,
91
+ headers: { 'Content-Type': 'application/json' },
92
+ });
93
+ }
94
+ // 4. HttpException — render with its status code (JSON or HTML)
95
+ if (err instanceof HttpException) {
96
+ return renderHttpException(err, req);
97
+ }
98
+ // 5. Errors carrying a duck-typed `httpStatus` (e.g. ModelNotFoundError,
99
+ // RouteModelNotFoundError) — render with that status. Avoids a hard
100
+ // dependency on @rudderjs/orm or @rudderjs/router from here.
101
+ if (err instanceof Error) {
102
+ const status = err.httpStatus;
103
+ if (typeof status === 'number' && status >= 400 && status < 600) {
104
+ return renderHttpException(new HttpException(status, err.message), req);
105
+ }
106
+ }
107
+ // 6. Unhandled — report, then either bubble (so the adapter's rich
108
+ // dev error page fires) or render the safe fallback page.
109
+ //
110
+ // In dev mode AND for HTML-accepting clients, re-throw so the adapter
111
+ // (e.g. server-hono's Ignition-style `renderErrorPage`) catches it
112
+ // and renders a stack-frame view with source context. Without this,
113
+ // every unhandled 500 fell through to `renderServerError`'s plain
114
+ // card-style page below — the dev page was effectively dead code from
115
+ // 2026-04-06 onward when this central pipeline was added.
116
+ //
117
+ // Prod (`debug === false`) and JSON clients always use the safe page:
118
+ // the former mustn't leak source-context to attackers, the latter
119
+ // doesn't render HTML at all.
120
+ report(err);
121
+ let debug = false;
122
+ try {
123
+ debug = Application.getInstance().debug;
124
+ }
125
+ catch { /* app not ready */ }
126
+ if (debug && !wantsJson(req)) {
127
+ throw err;
128
+ }
129
+ return renderServerError(req, debug, err);
130
+ };
131
+ }
132
+ }
133
+ // ─── App Builder ───────────────────────────────────────────
134
+ export class AppBuilder {
135
+ _options;
136
+ _loaders = [];
137
+ _mwFn;
138
+ _excFn;
139
+ constructor(_options) {
140
+ this._options = _options;
141
+ }
142
+ withRouting(routes) {
143
+ if (routes.web)
144
+ this._loaders.push(this._taggedLoader('web', routes.web));
145
+ if (routes.api)
146
+ this._loaders.push(this._taggedLoader('api', routes.api));
147
+ if (routes.commands)
148
+ this._loaders.push(routes.commands);
149
+ if (routes.channels)
150
+ this._loaders.push(routes.channels);
151
+ return this;
152
+ }
153
+ /** Wrap a route loader so routes registered inside it get tagged with `group`. */
154
+ _taggedLoader(group, loader) {
155
+ return async () => {
156
+ const { runWithGroup } = await import('@rudderjs/router');
157
+ return runWithGroup(group, loader);
158
+ };
159
+ }
160
+ withMiddleware(fn) {
161
+ this._mwFn = fn;
162
+ return this;
163
+ }
164
+ withExceptions(fn) {
165
+ this._excFn = fn;
166
+ return this;
167
+ }
168
+ create() {
169
+ const g = globalThis;
170
+ if (g['__rudderjs_instance__'])
171
+ return g['__rudderjs_instance__'];
172
+ const app = Application.create({
173
+ ...(this._options.config && { config: this._options.config }),
174
+ ...(this._options.providers && { providers: this._options.providers }),
175
+ });
176
+ const instance = new RudderJS(app, this._options.server, this._loaders, this._mwFn, this._excFn);
177
+ g['__rudderjs_instance__'] = instance;
178
+ return instance;
179
+ }
180
+ }
181
+ // ─── RudderJS (Configured Application) ─────────────────────
182
+ export class RudderJS {
183
+ _app;
184
+ _server;
185
+ _loaders;
186
+ _mwFn;
187
+ _excFn;
188
+ /** Phase 1: providers only — safe to await in CLI (no Vike virtual imports) */
189
+ _providerBoot;
190
+ /** Phase 2: provider boot + HTTP handler — created lazily on first handleRequest call */
191
+ _boot = null;
192
+ _handler = null;
193
+ constructor(_app, _server, _loaders, _mwFn, _excFn) {
194
+ this._app = _app;
195
+ this._server = _server;
196
+ this._loaders = _loaders;
197
+ this._mwFn = _mwFn;
198
+ this._excFn = _excFn;
199
+ this._providerBoot = this._bootstrapProviders();
200
+ }
201
+ _suppressVikeNoise() {
202
+ const isNoise = (args) => {
203
+ const msg = args.map(a => String(a ?? '')).join(' ');
204
+ if (msg.includes('[vike]'))
205
+ return true;
206
+ if (msg.includes('Server running at '))
207
+ return true;
208
+ return false;
209
+ };
210
+ const _log = console.log;
211
+ const _warn = console.warn;
212
+ const _info = console.info;
213
+ console.log = (...a) => { if (!isNoise(a))
214
+ _log(...a); };
215
+ console.warn = (...a) => { if (!isNoise(a))
216
+ _warn(...a); };
217
+ console.info = (...a) => { if (!isNoise(a))
218
+ _info(...a); };
219
+ }
220
+ /** Phase 1 — boot providers + routes. Safe in CLI (no Vike virtual URLs). */
221
+ async _bootstrapProviders() {
222
+ this._suppressVikeNoise();
223
+ if (this._app.isDevelopment()) {
224
+ rudder.reset();
225
+ const { router } = await import('@rudderjs/router');
226
+ router.reset();
227
+ resetGroupMiddleware();
228
+ }
229
+ await this._app.bootstrap();
230
+ // Serial loader execution — required for per-loader group tagging in
231
+ // @rudderjs/router's runWithGroup(). Parallel execution would set the
232
+ // module-level currentGroup to whichever loader was invoked last before
233
+ // any module bodies evaluated in microtasks. Sequential is negligibly
234
+ // slower for ≤4 loaders and keeps the group context correct.
235
+ for (const loader of this._loaders)
236
+ await loader();
237
+ if (this._app.isDevelopment())
238
+ this._printDevBootLog();
239
+ console.log('[RudderJS] ready');
240
+ }
241
+ /**
242
+ * Dev-only — print the auto-discovered providers grouped by stage so a missing
243
+ * package is visible at every boot instead of failing silently when first used.
244
+ * Wraps long stage lines so the output stays readable in narrow terminals.
245
+ */
246
+ _printDevBootLog() {
247
+ const entries = getLastLoadedProviderEntries();
248
+ if (entries.length === 0)
249
+ return;
250
+ const C = {
251
+ dim: (s) => `\x1b[2m${s}\x1b[0m`,
252
+ magenta: (s) => `\x1b[35m${s}\x1b[0m`,
253
+ cyan: (s) => `\x1b[36m${s}\x1b[0m`,
254
+ green: (s) => `\x1b[32m${s}\x1b[0m`,
255
+ yellow: (s) => `\x1b[33m${s}\x1b[0m`,
256
+ };
257
+ const STAGE_COLORS = {
258
+ foundation: C.magenta,
259
+ infrastructure: C.cyan,
260
+ feature: C.green,
261
+ monitoring: C.yellow,
262
+ };
263
+ const STAGE_ORDER = ['foundation', 'infrastructure', 'feature', 'monitoring'];
264
+ const shortName = (p) => p.startsWith('@rudderjs/') ? p.slice('@rudderjs/'.length) : p;
265
+ const grouped = new Map();
266
+ for (const e of entries) {
267
+ const list = grouped.get(e.stage) ?? [];
268
+ list.push(shortName(e.package));
269
+ grouped.set(e.stage, list);
270
+ }
271
+ console.log(`[RudderJS] ${entries.length} provider${entries.length === 1 ? '' : 's'} booted`);
272
+ // Find which stages have entries — needed to know which one is the last
273
+ // (gets `└─` instead of `├─`).
274
+ const activeStages = STAGE_ORDER.filter(s => (grouped.get(s)?.length ?? 0) > 0);
275
+ const labelWidth = 16;
276
+ const indent = ' ';
277
+ const connector = '── '; // 3 visible chars after the corner
278
+ const cornerLen = 2 + connector.length; // ├─ + space-after width
279
+ // Wrap at min(terminal width, 80) so the layout is consistent across
280
+ // narrow and wide terminals — wide terminals would otherwise stretch a
281
+ // long feature list to one unreadable line.
282
+ const termCols = Math.min(process.stdout.columns ?? 80, 80);
283
+ const wrapWidth = termCols - indent.length - cornerLen - labelWidth - 2;
284
+ activeStages.forEach((stage, idx) => {
285
+ const list = grouped.get(stage);
286
+ const isLast = idx === activeStages.length - 1;
287
+ const corner = isLast ? '└─ ' : '├─ ';
288
+ const colorize = STAGE_COLORS[stage];
289
+ const label = colorize(stage.padEnd(labelWidth));
290
+ // Greedy line-wrap: pack as many comma-joined names as fit per line.
291
+ const lines = [[]];
292
+ let currentLen = 0;
293
+ for (const name of list) {
294
+ const piece = (lines[lines.length - 1].length === 0 ? '' : ', ') + name;
295
+ if (currentLen + piece.length > wrapWidth && lines[lines.length - 1].length > 0) {
296
+ lines.push([name]);
297
+ currentLen = name.length;
298
+ }
299
+ else {
300
+ lines[lines.length - 1].push(name);
301
+ currentLen += piece.length;
302
+ }
303
+ }
304
+ // Continuation lines use `│` to maintain the tree visual when there are
305
+ // more stages below; the last stage uses spaces instead.
306
+ const continuation = isLast
307
+ ? ' '.repeat(corner.length + labelWidth)
308
+ : C.dim('│ ') + ' '.repeat(labelWidth);
309
+ lines.forEach((parts, i) => {
310
+ const prefix = i === 0
311
+ ? `${indent}${C.dim(corner)}${label}`
312
+ : `${indent}${continuation}`;
313
+ console.log(`${prefix}${parts.join(', ')}`);
314
+ });
315
+ });
316
+ }
317
+ /** Phase 2 — create the HTTP fetch handler. Requires Vite context (virtual: URLs). */
318
+ async _createHandler() {
319
+ const mw = new MiddlewareConfigurator();
320
+ this._mwFn?.(mw);
321
+ const exc = new ExceptionConfigurator();
322
+ this._excFn?.(exc);
323
+ const errorHandler = exc.buildHandler();
324
+ const { router } = await import('@rudderjs/router');
325
+ this._handler = await this._server.createFetchHandler((adapter) => {
326
+ for (const h of mw.getHandlers())
327
+ adapter.applyMiddleware(h);
328
+ if (adapter.applyGroupMiddleware) {
329
+ for (const h of mw.getGroupHandlers('web'))
330
+ adapter.applyGroupMiddleware('web', h);
331
+ for (const h of mw.getGroupHandlers('api'))
332
+ adapter.applyGroupMiddleware('api', h);
333
+ }
334
+ router.mount(adapter);
335
+ adapter.setErrorHandler?.(errorHandler);
336
+ });
337
+ }
338
+ /** Boot providers without starting an HTTP server — used by the CLI */
339
+ async boot() {
340
+ await this._providerBoot;
341
+ }
342
+ async handleRequest(request, env, ctx) {
343
+ if (!this._boot)
344
+ this._boot = this._providerBoot.then(() => this._createHandler());
345
+ await this._boot;
346
+ if (!this._handler)
347
+ throw new Error('[RudderJS] Request handler not initialized.');
348
+ return this._handler(request, env, ctx);
349
+ }
350
+ fetch = (request, env, ctx) => this.handleRequest(request, env, ctx);
351
+ }
352
+ //# sourceMappingURL=app-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-builder.js","sourceRoot":"","sources":["../src/app-builder.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Container, ContextualBindingBuilder } from './di.js';
2
2
  import { ServiceProvider } from './service-provider.js';
3
- import type { ServerAdapterProvider, MiddlewareHandler, AppRequest } from '@rudderjs/contracts';
3
+ import type { MiddlewareHandler } from '@rudderjs/contracts';
4
+ import { AppBuilder, type ConfigureOptions } from './app-builder.js';
4
5
  export interface BootConfig {
5
6
  name?: string;
6
7
  env?: string;
@@ -66,110 +67,25 @@ export declare class Application {
66
67
  /** @internal — testing only */
67
68
  static resetForTesting(): void;
68
69
  }
69
- export interface ConfigureOptions {
70
- server: ServerAdapterProvider;
71
- config?: Record<string, unknown>;
72
- providers?: (new (app: Application) => ServiceProvider)[];
73
- }
74
- export interface RoutingOptions {
75
- web?: () => Promise<unknown>;
76
- api?: () => Promise<unknown>;
77
- commands?: () => Promise<unknown>;
78
- channels?: () => Promise<unknown>;
79
- }
70
+ export { AppBuilder, ExceptionConfigurator, MiddlewareConfigurator, RudderJS, } from './app-builder.js';
71
+ export type { ConfigureOptions, ErrorRenderer, RoutingOptions, } from './app-builder.js';
80
72
  type RouteGroupName = 'web' | 'api';
81
- export declare class MiddlewareConfigurator {
82
- private _handlers;
83
- private _groupHandlers;
84
- /** Global middleware — runs on every request, regardless of route group. */
85
- use(handler: MiddlewareHandler): this;
86
- /** Append middleware to the `web` route group (routes loaded via withRouting({ web })). */
87
- web(...handlers: MiddlewareHandler[]): this;
88
- /** Append middleware to the `api` route group (routes loaded via withRouting({ api })). */
89
- api(...handlers: MiddlewareHandler[]): this;
90
- getHandlers(): MiddlewareHandler[];
91
- /** Combined group stack — user-config + any provider-registered group middleware. */
92
- getGroupHandlers(group: RouteGroupName): MiddlewareHandler[];
93
- }
73
+ /** @internal read by `MiddlewareConfigurator.getGroupHandlers()` in `./app-builder.ts`. */
74
+ export declare const groupMiddlewareStore: Record<RouteGroupName, MiddlewareHandler[]>;
94
75
  /**
95
76
  * Register middleware for a named route group (`'web'` | `'api'`). Called
96
77
  * by framework providers during `boot()` — e.g. `@rudderjs/auth` appends
97
78
  * `AuthMiddleware()` to the `web` group so it only runs on web routes.
79
+ *
80
+ * **Not deduplicated.** Calling this twice with the same handler installs it
81
+ * twice. Providers that may `boot()` more than once (HMR reload, test
82
+ * harness) must either guard against re-installation or rely on
83
+ * `resetGroupMiddleware()` to clear the store before re-boot.
98
84
  */
99
85
  export declare function appendToGroup(group: RouteGroupName, handler: MiddlewareHandler): void;
100
86
  /** @internal — drain provider-registered group middleware (HMR dev reloads). */
101
87
  export declare function resetGroupMiddleware(): void;
102
- export type ErrorRenderer = (err: unknown, req: AppRequest) => Response | Promise<Response>;
103
- export declare class ExceptionConfigurator {
104
- private _renders;
105
- private _ignored;
106
- /**
107
- * Register a custom renderer for a specific error type.
108
- *
109
- * @example
110
- * e.render(PaymentError, (err, req) =>
111
- * new Response(JSON.stringify({ code: err.code }), { status: 402, headers: { 'Content-Type': 'application/json' } })
112
- * )
113
- */
114
- render<T extends Error>(type: new (...args: any[]) => T, fn: (err: T, req: AppRequest) => Response | Promise<Response>): this;
115
- /**
116
- * Ignore an error type — re-throws it so the server's native handler sees it.
117
- */
118
- ignore(type: new (...args: any[]) => unknown): this;
119
- /**
120
- * Override the global exception reporter for unhandled errors.
121
- * By default, `@rudderjs/log` wires this automatically when installed.
122
- *
123
- * @example
124
- * e.reportUsing((err) => Sentry.captureException(err))
125
- */
126
- reportUsing(fn: (err: unknown) => void): this;
127
- /** @internal — called by RudderJS to produce the combined error handler */
128
- buildHandler(): ErrorRenderer;
129
- }
130
- export declare class AppBuilder {
131
- private readonly _options;
132
- private _loaders;
133
- private _mwFn?;
134
- private _excFn?;
135
- constructor(_options: ConfigureOptions);
136
- withRouting(routes: RoutingOptions): this;
137
- /** Wrap a route loader so routes registered inside it get tagged with `group`. */
138
- private _taggedLoader;
139
- withMiddleware(fn: (m: MiddlewareConfigurator) => void): this;
140
- withExceptions(fn: (e: ExceptionConfigurator) => void): this;
141
- create(): RudderJS;
142
- }
143
- export declare class RudderJS {
144
- private readonly _app;
145
- private readonly _server;
146
- private readonly _loaders;
147
- private readonly _mwFn?;
148
- private readonly _excFn?;
149
- /** Phase 1: providers only — safe to await in CLI (no Vike virtual imports) */
150
- private _providerBoot;
151
- /** Phase 2: provider boot + HTTP handler — created lazily on first handleRequest call */
152
- private _boot;
153
- private _handler;
154
- constructor(_app: Application, _server: ServerAdapterProvider, _loaders: Array<() => Promise<unknown>>, _mwFn?: ((m: MiddlewareConfigurator) => void) | undefined, _excFn?: ((e: ExceptionConfigurator) => void) | undefined);
155
- private _suppressVikeNoise;
156
- /** Phase 1 — boot providers + routes. Safe in CLI (no Vike virtual URLs). */
157
- private _bootstrapProviders;
158
- /**
159
- * Dev-only — print the auto-discovered providers grouped by stage so a missing
160
- * package is visible at every boot instead of failing silently when first used.
161
- * Wraps long stage lines so the output stays readable in narrow terminals.
162
- */
163
- private _printDevBootLog;
164
- /** Phase 2 — create the HTTP fetch handler. Requires Vite context (virtual: URLs). */
165
- private _createHandler;
166
- /** Boot providers without starting an HTTP server — used by the CLI */
167
- boot(): Promise<void>;
168
- handleRequest(request: Request, env?: unknown, ctx?: unknown): Promise<Response>;
169
- readonly fetch: (request: Request, env?: unknown, ctx?: unknown) => Promise<Response>;
170
- }
171
88
  export declare const app: () => Application;
172
89
  export declare const resolve: <T>(token: Parameters<Container["make"]>[0]) => T;
173
90
  export declare function defineConfig<T>(config: T): T;
174
- export {};
175
91
  //# sourceMappingURL=application.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,6 @@
1
1
  import { container } from './di.js';
2
2
  import { Env, ConfigRepository, setConfigRepository } from '@rudderjs/support';
3
- import { rudder } from '@rudderjs/console';
4
- import { ValidationError, ValidationResponse } from './validation.js';
5
- import { HttpException, renderHttpException, renderServerError, report, setExceptionReporter, } from './exceptions.js';
6
- import { getLastLoadedProviderEntries } from './default-providers.js';
3
+ import { AppBuilder } from './app-builder.js';
7
4
  export class Application {
8
5
  static instance;
9
6
  container;
@@ -211,35 +208,16 @@ export class Application {
211
208
  }
212
209
  /** @internal — testing only */
213
210
  static resetForTesting() {
214
- ;
215
- Application['instance'] = undefined;
211
+ Application.instance = undefined;
216
212
  globalThis['__rudderjs_app__'] = undefined;
217
213
  }
218
214
  }
219
- export class MiddlewareConfigurator {
220
- _handlers = [];
221
- _groupHandlers = { web: [], api: [] };
222
- /** Global middlewareruns on every request, regardless of route group. */
223
- use(handler) {
224
- this._handlers.push(handler);
225
- return this;
226
- }
227
- /** Append middleware to the `web` route group (routes loaded via withRouting({ web })). */
228
- web(...handlers) {
229
- this._groupHandlers.web.push(...handlers);
230
- return this;
231
- }
232
- /** Append middleware to the `api` route group (routes loaded via withRouting({ api })). */
233
- api(...handlers) {
234
- this._groupHandlers.api.push(...handlers);
235
- return this;
236
- }
237
- getHandlers() { return this._handlers; }
238
- /** Combined group stack — user-config + any provider-registered group middleware. */
239
- getGroupHandlers(group) {
240
- return [...groupMiddlewareStore[group], ...this._groupHandlers[group]];
241
- }
242
- }
215
+ // ─── App-builder re-exports ────────────────────────────────
216
+ //
217
+ // AppBuilder / RudderJS / MiddlewareConfigurator / ExceptionConfigurator live
218
+ // in `./app-builder.ts`they orchestrate Application but don't share its
219
+ // private state, so the split keeps `application.ts` to the kernel.
220
+ export { AppBuilder, ExceptionConfigurator, MiddlewareConfigurator, RudderJS, } from './app-builder.js';
243
221
  // ─── Provider-facing group-middleware registry ────────────
244
222
  //
245
223
  // Providers can't reach `MiddlewareConfigurator` directly (it's constructed per
@@ -257,7 +235,8 @@ export class MiddlewareConfigurator {
257
235
  //
258
236
  // The store is drained on reset() so HMR-style boot cycles don't double-register.
259
237
  const GROUP_MIDDLEWARE_KEY = '__rudderjs_group_middleware__';
260
- const groupMiddlewareStore = (() => {
238
+ /** @internal read by `MiddlewareConfigurator.getGroupHandlers()` in `./app-builder.ts`. */
239
+ export const groupMiddlewareStore = (() => {
261
240
  const g = globalThis;
262
241
  const existing = g[GROUP_MIDDLEWARE_KEY];
263
242
  if (existing)
@@ -270,6 +249,11 @@ const groupMiddlewareStore = (() => {
270
249
  * Register middleware for a named route group (`'web'` | `'api'`). Called
271
250
  * by framework providers during `boot()` — e.g. `@rudderjs/auth` appends
272
251
  * `AuthMiddleware()` to the `web` group so it only runs on web routes.
252
+ *
253
+ * **Not deduplicated.** Calling this twice with the same handler installs it
254
+ * twice. Providers that may `boot()` more than once (HMR reload, test
255
+ * harness) must either guard against re-installation or rely on
256
+ * `resetGroupMiddleware()` to clear the store before re-boot.
273
257
  */
274
258
  export function appendToGroup(group, handler) {
275
259
  groupMiddlewareStore[group].push(handler);
@@ -279,313 +263,6 @@ export function resetGroupMiddleware() {
279
263
  groupMiddlewareStore.web.length = 0;
280
264
  groupMiddlewareStore.api.length = 0;
281
265
  }
282
- export class ExceptionConfigurator {
283
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
284
- _renders = [];
285
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
286
- _ignored = new Set();
287
- /**
288
- * Register a custom renderer for a specific error type.
289
- *
290
- * @example
291
- * e.render(PaymentError, (err, req) =>
292
- * new Response(JSON.stringify({ code: err.code }), { status: 402, headers: { 'Content-Type': 'application/json' } })
293
- * )
294
- */
295
- render(
296
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
297
- type, fn) {
298
- this._renders.push({ type, fn: fn });
299
- return this;
300
- }
301
- /**
302
- * Ignore an error type — re-throws it so the server's native handler sees it.
303
- */
304
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
305
- ignore(type) {
306
- this._ignored.add(type);
307
- return this;
308
- }
309
- /**
310
- * Override the global exception reporter for unhandled errors.
311
- * By default, `@rudderjs/log` wires this automatically when installed.
312
- *
313
- * @example
314
- * e.reportUsing((err) => Sentry.captureException(err))
315
- */
316
- reportUsing(fn) {
317
- setExceptionReporter(fn);
318
- return this;
319
- }
320
- /** @internal — called by RudderJS to produce the combined error handler */
321
- buildHandler() {
322
- const renders = this._renders.slice();
323
- const ignored = new Set(this._ignored);
324
- return async (err, req) => {
325
- // 1. Explicitly ignored — re-throw
326
- for (const type of ignored) {
327
- if (err instanceof type)
328
- throw err;
329
- }
330
- // 2. User-registered renderers (take priority)
331
- for (const { type, fn } of renders) {
332
- if (err instanceof type)
333
- return fn(err, req);
334
- }
335
- // 3. ValidationResponse — short-circuit emit the wrapped Response (FormRequest.failedValidation)
336
- if (err instanceof ValidationResponse) {
337
- return err.response;
338
- }
339
- // 4. ValidationError — 422 JSON
340
- if (err instanceof ValidationError) {
341
- return new Response(JSON.stringify(err.toJSON()), {
342
- status: 422,
343
- headers: { 'Content-Type': 'application/json' },
344
- });
345
- }
346
- // 4. HttpException — render with its status code (JSON or HTML)
347
- if (err instanceof HttpException) {
348
- return renderHttpException(err, req);
349
- }
350
- // 5. Errors carrying a duck-typed `httpStatus` (e.g. ModelNotFoundError,
351
- // RouteModelNotFoundError) — render with that status. Avoids a hard
352
- // dependency on @rudderjs/orm or @rudderjs/router from here.
353
- if (err instanceof Error) {
354
- const status = err.httpStatus;
355
- if (typeof status === 'number' && status >= 400 && status < 600) {
356
- return renderHttpException(new HttpException(status, err.message), req);
357
- }
358
- }
359
- // 6. Unhandled — report + render 500
360
- report(err);
361
- let debug = false;
362
- try {
363
- debug = Application.getInstance().debug;
364
- }
365
- catch { /* app not ready */ }
366
- return renderServerError(req, debug, err);
367
- };
368
- }
369
- }
370
- // ─── App Builder ───────────────────────────────────────────
371
- export class AppBuilder {
372
- _options;
373
- _loaders = [];
374
- _mwFn;
375
- _excFn;
376
- constructor(_options) {
377
- this._options = _options;
378
- }
379
- withRouting(routes) {
380
- if (routes.web)
381
- this._loaders.push(this._taggedLoader('web', routes.web));
382
- if (routes.api)
383
- this._loaders.push(this._taggedLoader('api', routes.api));
384
- if (routes.commands)
385
- this._loaders.push(routes.commands);
386
- if (routes.channels)
387
- this._loaders.push(routes.channels);
388
- return this;
389
- }
390
- /** Wrap a route loader so routes registered inside it get tagged with `group`. */
391
- _taggedLoader(group, loader) {
392
- return async () => {
393
- const { runWithGroup } = await import('@rudderjs/router');
394
- return runWithGroup(group, loader);
395
- };
396
- }
397
- withMiddleware(fn) {
398
- this._mwFn = fn;
399
- return this;
400
- }
401
- withExceptions(fn) {
402
- this._excFn = fn;
403
- return this;
404
- }
405
- create() {
406
- const g = globalThis;
407
- if (g['__rudderjs_instance__'])
408
- return g['__rudderjs_instance__'];
409
- const app = Application.create({
410
- ...(this._options.config && { config: this._options.config }),
411
- ...(this._options.providers && { providers: this._options.providers }),
412
- });
413
- const instance = new RudderJS(app, this._options.server, this._loaders, this._mwFn, this._excFn);
414
- g['__rudderjs_instance__'] = instance;
415
- return instance;
416
- }
417
- }
418
- // ─── RudderJS (Configured Application) ─────────────────────
419
- export class RudderJS {
420
- _app;
421
- _server;
422
- _loaders;
423
- _mwFn;
424
- _excFn;
425
- /** Phase 1: providers only — safe to await in CLI (no Vike virtual imports) */
426
- _providerBoot;
427
- /** Phase 2: provider boot + HTTP handler — created lazily on first handleRequest call */
428
- _boot = null;
429
- _handler = null;
430
- constructor(_app, _server, _loaders, _mwFn, _excFn) {
431
- this._app = _app;
432
- this._server = _server;
433
- this._loaders = _loaders;
434
- this._mwFn = _mwFn;
435
- this._excFn = _excFn;
436
- this._providerBoot = this._bootstrapProviders();
437
- }
438
- _suppressVikeNoise() {
439
- const isNoise = (args) => {
440
- const msg = args.map(a => String(a ?? '')).join(' ');
441
- if (msg.includes('[vike]'))
442
- return true;
443
- if (msg.includes('Server running at '))
444
- return true;
445
- return false;
446
- };
447
- const _log = console.log;
448
- const _warn = console.warn;
449
- const _info = console.info;
450
- console.log = (...a) => { if (!isNoise(a))
451
- _log(...a); };
452
- console.warn = (...a) => { if (!isNoise(a))
453
- _warn(...a); };
454
- console.info = (...a) => { if (!isNoise(a))
455
- _info(...a); };
456
- }
457
- /** Phase 1 — boot providers + routes. Safe in CLI (no Vike virtual URLs). */
458
- async _bootstrapProviders() {
459
- this._suppressVikeNoise();
460
- if (this._app.isDevelopment()) {
461
- rudder.reset();
462
- const { router } = await import('@rudderjs/router');
463
- router.reset();
464
- resetGroupMiddleware();
465
- }
466
- await this._app.bootstrap();
467
- // Serial loader execution — required for per-loader group tagging in
468
- // @rudderjs/router's runWithGroup(). Parallel execution would set the
469
- // module-level currentGroup to whichever loader was invoked last before
470
- // any module bodies evaluated in microtasks. Sequential is negligibly
471
- // slower for ≤4 loaders and keeps the group context correct.
472
- for (const loader of this._loaders)
473
- await loader();
474
- if (this._app.isDevelopment())
475
- this._printDevBootLog();
476
- console.log('[RudderJS] ready');
477
- }
478
- /**
479
- * Dev-only — print the auto-discovered providers grouped by stage so a missing
480
- * package is visible at every boot instead of failing silently when first used.
481
- * Wraps long stage lines so the output stays readable in narrow terminals.
482
- */
483
- _printDevBootLog() {
484
- const entries = getLastLoadedProviderEntries();
485
- if (entries.length === 0)
486
- return;
487
- const C = {
488
- dim: (s) => `\x1b[2m${s}\x1b[0m`,
489
- magenta: (s) => `\x1b[35m${s}\x1b[0m`,
490
- cyan: (s) => `\x1b[36m${s}\x1b[0m`,
491
- green: (s) => `\x1b[32m${s}\x1b[0m`,
492
- yellow: (s) => `\x1b[33m${s}\x1b[0m`,
493
- };
494
- const STAGE_COLORS = {
495
- foundation: C.magenta,
496
- infrastructure: C.cyan,
497
- feature: C.green,
498
- monitoring: C.yellow,
499
- };
500
- const STAGE_ORDER = ['foundation', 'infrastructure', 'feature', 'monitoring'];
501
- const shortName = (p) => p.startsWith('@rudderjs/') ? p.slice('@rudderjs/'.length) : p;
502
- const grouped = new Map();
503
- for (const e of entries) {
504
- const list = grouped.get(e.stage) ?? [];
505
- list.push(shortName(e.package));
506
- grouped.set(e.stage, list);
507
- }
508
- console.log(`[RudderJS] ${entries.length} provider${entries.length === 1 ? '' : 's'} booted`);
509
- // Find which stages have entries — needed to know which one is the last
510
- // (gets `└─` instead of `├─`).
511
- const activeStages = STAGE_ORDER.filter(s => (grouped.get(s)?.length ?? 0) > 0);
512
- const labelWidth = 16;
513
- const indent = ' ';
514
- const connector = '── '; // 3 visible chars after the corner
515
- const cornerLen = 2 + connector.length; // ├─ + space-after width
516
- // Wrap at min(terminal width, 80) so the layout is consistent across
517
- // narrow and wide terminals — wide terminals would otherwise stretch a
518
- // long feature list to one unreadable line.
519
- const termCols = Math.min(process.stdout.columns ?? 80, 80);
520
- const wrapWidth = termCols - indent.length - cornerLen - labelWidth - 2;
521
- activeStages.forEach((stage, idx) => {
522
- const list = grouped.get(stage);
523
- const isLast = idx === activeStages.length - 1;
524
- const corner = isLast ? '└─ ' : '├─ ';
525
- const colorize = STAGE_COLORS[stage];
526
- const label = colorize(stage.padEnd(labelWidth));
527
- // Greedy line-wrap: pack as many comma-joined names as fit per line.
528
- const lines = [[]];
529
- let currentLen = 0;
530
- for (const name of list) {
531
- const piece = (lines[lines.length - 1].length === 0 ? '' : ', ') + name;
532
- if (currentLen + piece.length > wrapWidth && lines[lines.length - 1].length > 0) {
533
- lines.push([name]);
534
- currentLen = name.length;
535
- }
536
- else {
537
- lines[lines.length - 1].push(name);
538
- currentLen += piece.length;
539
- }
540
- }
541
- // Continuation lines use `│` to maintain the tree visual when there are
542
- // more stages below; the last stage uses spaces instead.
543
- const continuation = isLast
544
- ? ' '.repeat(corner.length + labelWidth)
545
- : C.dim('│ ') + ' '.repeat(labelWidth);
546
- lines.forEach((parts, i) => {
547
- const prefix = i === 0
548
- ? `${indent}${C.dim(corner)}${label}`
549
- : `${indent}${continuation}`;
550
- console.log(`${prefix}${parts.join(', ')}`);
551
- });
552
- });
553
- }
554
- /** Phase 2 — create the HTTP fetch handler. Requires Vite context (virtual: URLs). */
555
- async _createHandler() {
556
- const mw = new MiddlewareConfigurator();
557
- this._mwFn?.(mw);
558
- const exc = new ExceptionConfigurator();
559
- this._excFn?.(exc);
560
- const errorHandler = exc.buildHandler();
561
- const { router } = await import('@rudderjs/router');
562
- this._handler = await this._server.createFetchHandler((adapter) => {
563
- for (const h of mw.getHandlers())
564
- adapter.applyMiddleware(h);
565
- if (adapter.applyGroupMiddleware) {
566
- for (const h of mw.getGroupHandlers('web'))
567
- adapter.applyGroupMiddleware('web', h);
568
- for (const h of mw.getGroupHandlers('api'))
569
- adapter.applyGroupMiddleware('api', h);
570
- }
571
- router.mount(adapter);
572
- adapter.setErrorHandler?.(errorHandler);
573
- });
574
- }
575
- /** Boot providers without starting an HTTP server — used by the CLI */
576
- async boot() {
577
- await this._providerBoot;
578
- }
579
- async handleRequest(request, env, ctx) {
580
- if (!this._boot)
581
- this._boot = this._providerBoot.then(() => this._createHandler());
582
- await this._boot;
583
- if (!this._handler)
584
- throw new Error('[RudderJS] Request handler not initialized.');
585
- return this._handler(request, env, ctx);
586
- }
587
- fetch = (request, env, ctx) => this.handleRequest(request, env, ctx);
588
- }
589
266
  // ─── Global helpers ────────────────────────────────────────
590
267
  export const app = () => Application.getInstance();
591
268
  export const resolve = (token) => Application.getInstance().make(token);
@@ -1 +1 @@
1
- {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"application.js","sourceRoot":"","sources":["../src/application.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,14 @@ export declare function setExceptionReporter(fn: ReporterFn): void;
20
20
  export declare function report(err: unknown): void;
21
21
  /** Conditionally report an exception. */
22
22
  export declare function report_if(condition: boolean, err: unknown): void;
23
+ /**
24
+ * @internal — Best-effort content-negotiation: does this client want a
25
+ * machine-readable JSON response, or an HTML error page? Used by the error
26
+ * pipeline to gate the dev-page-fallback decision in `buildHandler()` as
27
+ * well as by `renderHttpException` / `renderServerError`. Kept private to
28
+ * the package; not part of the public API surface.
29
+ */
30
+ export declare function wantsJson(req: AppRequest): boolean;
23
31
  /** @internal — render an HttpException as a Response. */
24
32
  export declare function renderHttpException(err: HttpException, req: AppRequest): Response;
25
33
  /** @internal — render an unhandled error as a 500 Response. */
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAmCrD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAGtC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;CAOvC;AAID,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAE/F;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAErH;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEzH;AAID,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;AAMxC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEzC;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAEhE;AAiDD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,GAAG,QAAQ,CAYjF;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,QAAQ,CAkBzF"}
1
+ {"version":3,"file":"exceptions.d.ts","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAmCrD,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAGtC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,EAChB,OAAO,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM;CAOvC;AAID,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK,CAE/F;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAErH;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAEzH;AAID,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAA;AAMxC;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,UAAU,GAAG,IAAI,CAEzD;AAED,+EAA+E;AAC/E,wBAAgB,MAAM,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEzC;AAED,yCAAyC;AACzC,wBAAgB,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAEhE;AAID;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAOlD;AAsCD,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,UAAU,GAAG,QAAQ,CAYjF;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,QAAQ,CAkBzF"}
@@ -73,7 +73,14 @@ export function report_if(condition, err) {
73
73
  report(err);
74
74
  }
75
75
  // ─── Internal rendering helpers ───────────────────────────
76
- function wantsJson(req) {
76
+ /**
77
+ * @internal — Best-effort content-negotiation: does this client want a
78
+ * machine-readable JSON response, or an HTML error page? Used by the error
79
+ * pipeline to gate the dev-page-fallback decision in `buildHandler()` as
80
+ * well as by `renderHttpException` / `renderServerError`. Kept private to
81
+ * the package; not part of the public API surface.
82
+ */
83
+ export function wantsJson(req) {
77
84
  const accept = req.headers['accept'] ?? '';
78
85
  // Treat as JSON unless Accept explicitly prefers HTML
79
86
  if (!accept)
@@ -1 +1 @@
1
- {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"exceptions.js","sourceRoot":"","sources":["../src/exceptions.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,24 @@ export declare abstract class FormRequest<T extends ZodType = ZodType> {
23
23
  protected req: AppRequest;
24
24
  abstract rules(): T;
25
25
  authorize(): boolean;
26
+ /**
27
+ * Normalize input **before** `authorize()` and schema validation. Pipeline
28
+ * order: `prepareForValidation` → `authorize` → schema `parse` → `after` →
29
+ * `passedValidation`. Use this to canonicalize values that `authorize()`
30
+ * needs to read (e.g. lower-casing an email before a uniqueness check).
31
+ *
32
+ * Return the prepared input to replace `input` for the rest of the
33
+ * pipeline, or return nothing to leave it unchanged. Async overrides are
34
+ * awaited.
35
+ */
26
36
  protected prepareForValidation(_input: Record<string, unknown>): Record<string, unknown> | void | Promise<Record<string, unknown> | void>;
27
37
  protected after(): Array<AfterCallback<z.infer<T>>>;
38
+ /**
39
+ * Final transform after schema validation succeeds. Return data to
40
+ * **override** the validated value (the controller receives whatever you
41
+ * return). Return nothing (or `undefined`) to use the schema's parsed
42
+ * result unchanged.
43
+ */
28
44
  protected passedValidation(_data: z.infer<T>): z.infer<T> | void | Promise<z.infer<T> | void>;
29
45
  protected failedValidation(errors: Record<string, string[]>): never | Response | Promise<never | Response>;
30
46
  protected messages(): MessagesMap;
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAY,MAAM,KAAK,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAIlE,qBAAa,eAAgB,SAAQ,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAAhC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKnD,MAAM;;;;CAMP;AAOD,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAItC;AAID,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,IAAI,EAAM,KAAK,CAAA;IACf,GAAG,EAAO,UAAU,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAErF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAA;AAE3F,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAC3D,SAAS,CAAC,GAAG,EAAG,UAAU,CAAA;IAE1B,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEnB,SAAS,IAAI,OAAO;IAMpB,SAAS,CAAC,oBAAoB,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAI3E,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAInD,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAI7F,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;IAI1G,SAAS,CAAC,QAAQ,IAAI,WAAW;IAM3B,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YA2CtC,IAAI;CAKnB;AA6BD,wBAAsB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAC9C,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAerB;AAID,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,IAErD,KAAK,UAAU,EACf,MAAM,WAAW,EACjB,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,mBAK5B;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,OAAO,EAAY,MAAM,KAAK,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAIlE,qBAAa,eAAgB,SAAQ,KAAK;IACrB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;gBAAhC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC;IAKnD,MAAM;;;;CAMP;AAOD,qBAAa,kBAAmB,SAAQ,KAAK;IACxB,QAAQ,EAAE,QAAQ;gBAAlB,QAAQ,EAAE,QAAQ;CAItC;AAID,MAAM,WAAW,YAAY,CAAC,KAAK;IACjC,IAAI,EAAM,KAAK,CAAA;IACf,GAAG,EAAO,UAAU,CAAA;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAClD;AAED,MAAM,MAAM,aAAa,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAErF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,CAAC,CAAA;AAE3F,8BAAsB,WAAW,CAAC,CAAC,SAAS,OAAO,GAAG,OAAO;IAC3D,SAAS,CAAC,GAAG,EAAG,UAAU,CAAA;IAE1B,QAAQ,CAAC,KAAK,IAAI,CAAC;IAEnB,SAAS,IAAI,OAAO;IAMpB;;;;;;;;;OASG;IACH,SAAS,CAAC,oBAAoB,CAC5B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAI3E,SAAS,CAAC,KAAK,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAInD;;;;;OAKG;IACH,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAI7F,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC;IAI1G,SAAS,CAAC,QAAQ,IAAI,WAAW;IAM3B,QAAQ,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YA2CtC,IAAI;CAKnB;AA6BD,wBAAsB,QAAQ,CAAC,CAAC,SAAS,OAAO,EAC9C,MAAM,EAAE,CAAC,EACT,GAAG,EAAE,UAAU,GACd,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAerB;AAID,wBAAgB,YAAY,CAAC,CAAC,SAAS,OAAO,EAAE,MAAM,EAAE,CAAC,IAErD,KAAK,UAAU,EACf,MAAM,WAAW,EACjB,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,mBAK5B;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA"}
@@ -32,12 +32,28 @@ export class FormRequest {
32
32
  return true;
33
33
  }
34
34
  // ─── Lifecycle hooks (default no-ops; override in subclass) ──
35
+ /**
36
+ * Normalize input **before** `authorize()` and schema validation. Pipeline
37
+ * order: `prepareForValidation` → `authorize` → schema `parse` → `after` →
38
+ * `passedValidation`. Use this to canonicalize values that `authorize()`
39
+ * needs to read (e.g. lower-casing an email before a uniqueness check).
40
+ *
41
+ * Return the prepared input to replace `input` for the rest of the
42
+ * pipeline, or return nothing to leave it unchanged. Async overrides are
43
+ * awaited.
44
+ */
35
45
  prepareForValidation(_input) {
36
46
  // default: no-op
37
47
  }
38
48
  after() {
39
49
  return [];
40
50
  }
51
+ /**
52
+ * Final transform after schema validation succeeds. Return data to
53
+ * **override** the validated value (the controller receives whatever you
54
+ * return). Return nothing (or `undefined`) to use the schema's parsed
55
+ * result unchanged.
56
+ */
41
57
  passedValidation(_data) {
42
58
  // default: no-op
43
59
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,QAAQ,EAAE,MAAM,KAAK,CAAA;AAG1C,8DAA8D;AAE9D,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACrB;IAAnB,YAAmB,MAAgC;QACjD,KAAK,CAAC,mBAAmB,CAAC,CAAA;QADT,WAAM,GAAN,MAAM,CAA0B;QAEjD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAA;IAC/B,CAAC;IAED,MAAM;QACJ,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAG,IAAI,CAAC,MAAM;SACrB,CAAA;IACH,CAAC;CACF;AAED,8DAA8D;AAE9D,+EAA+E;AAC/E,8EAA8E;AAC9E,gFAAgF;AAChF,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACxB;IAAnB,YAAmB,QAAkB;QACnC,KAAK,CAAC,0BAA0B,CAAC,CAAA;QADhB,aAAQ,GAAR,QAAQ,CAAU;QAEnC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAcD,MAAM,OAAgB,WAAW;IACrB,GAAG,CAAa;IAI1B,SAAS;QACP,OAAO,IAAI,CAAA;IACb,CAAC;IAED,gEAAgE;IAEtD,oBAAoB,CAC5B,MAA+B;QAE/B,iBAAiB;IACnB,CAAC;IAES,KAAK;QACb,OAAO,EAAE,CAAA;IACX,CAAC;IAES,gBAAgB,CAAC,KAAiB;QAC1C,iBAAiB;IACnB,CAAC;IAES,gBAAgB,CAAC,MAAgC;QACzD,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;IAES,QAAQ;QAChB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,4DAA4D;IAE5D,KAAK,CAAC,QAAQ,CAAC,GAAe;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QAEd,IAAI,KAAK,GAA4B;YACnC,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;YACjG,GAAG,GAAG,CAAC,KAAK;YACZ,GAAG,GAAG,CAAC,MAAM;SACd,CAAA;QAED,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,uEAAuE;QACvE,yEAAyE;QACzE,0BAA0B;QAC1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAA;QACvD,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;YAAE,KAAK,GAAG,QAAQ,CAAA;QAE9D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,cAAc,CAAC,EAAE,CAAC,CAAA;QAC9C,CAAC;QAED,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,QAAQ;YACrB,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YACpD,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAA;QAEjC,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAEtE,MAAM,IAAI,GAAG,MAAM,CAAC,IAAkB,CAAA;QACtC,MAAM,MAAM,GAA6B,EAAE,CAAA;QAC3C,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE;YACjD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;QACnD,CAAC,CAAA;QACD,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YAC9B,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnC,CAAC;QACD,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAE5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAA;QAC9C,OAAO,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAe,CAAA;IACvE,CAAC;IAEO,KAAK,CAAC,IAAI,CAAC,MAAgC;QACjD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAA;QAC/C,IAAI,GAAG,YAAY,QAAQ;YAAE,MAAM,IAAI,kBAAkB,CAAC,GAAG,CAAC,CAAA;QAC9D,MAAM,IAAI,eAAe,CAAC,MAAM,CAAC,CAAA;IACnC,CAAC;CACF;AAED,8DAA8D;AAE9D,SAAS,iBAAiB,CAAC,GAAa;IACtC,MAAM,MAAM,GAA6B,EAAE,CAAA;IAC3C,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;QAC1C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,QAAqB;IAC1C,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAClC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAA;IACvC,OAAO,CAAC,KAAK,EAAE,EAAE;QACf,mEAAmE;QACnE,wEAAwE;QACxE,yDAAyD;QACzD,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAA;QACnD,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;QAC5B,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,SAAS,CAAA;QACzC,OAAO,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAAA;IACxE,CAAC,CAAA;AACH,CAAC;AAED,8DAA8D;AAE9D,MAAM,CAAC,KAAK,UAAU,QAAQ,CAC5B,MAAS,EACT,GAAe;IAEf,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,IAA+B,CAAC,CAAC,CAAC,EAAE,CAAC;QACjG,GAAG,GAAG,CAAC,KAAK;QACZ,GAAG,GAAG,CAAC,MAAM;KACd,CAAA;IAED,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,QAAQ,EAAE,CAAC;YAC5B,MAAM,IAAI,eAAe,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,CAAC;QACD,MAAM,GAAG,CAAA;IACX,CAAC;AACH,CAAC;AAED,8DAA8D;AAE9D,MAAM,UAAU,YAAY,CAAoB,MAAS;IACvD,OAAO,KAAK,EACV,GAAe,EACf,IAAiB,EACjB,IAAyB,EACzB,EAAE;QACF,MAAM,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;QAC3B,MAAM,IAAI,EAAE,CAAA;IACd,CAAC,CAAA;AACH,CAAC;AAED,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rudderjs/core",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,6 +8,9 @@
8
8
  "directory": "packages/core"
9
9
  },
10
10
  "type": "module",
11
+ "engines": {
12
+ "node": "^20.19.0 || >=22.12.0"
13
+ },
11
14
  "files": [
12
15
  "dist",
13
16
  "boost"
@@ -31,10 +34,10 @@
31
34
  "dependencies": {
32
35
  "reflect-metadata": "^0.2.2",
33
36
  "zod": "^4.0.0",
34
- "@rudderjs/console": "^1.0.1",
35
- "@rudderjs/contracts": "^1.4.0",
36
- "@rudderjs/router": "^1.2.0",
37
- "@rudderjs/support": "^1.2.0"
37
+ "@rudderjs/console": "^1.0.2",
38
+ "@rudderjs/contracts": "^1.6.1",
39
+ "@rudderjs/router": "^1.2.1",
40
+ "@rudderjs/support": "^1.2.2"
38
41
  },
39
42
  "devDependencies": {
40
43
  "@types/node": "^20.0.0",