oakbun 0.1.0
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/LICENSE +21 -0
- package/README.md +53 -0
- package/dist/adapter/mysql.d.ts +21 -0
- package/dist/adapter/mysql.d.ts.map +1 -0
- package/dist/adapter/mysql.js +10 -0
- package/dist/adapter/mysql.js.map +1 -0
- package/dist/adapter/postgres.d.ts +16 -0
- package/dist/adapter/postgres.d.ts.map +1 -0
- package/dist/adapter/postgres.js +10 -0
- package/dist/adapter/postgres.js.map +1 -0
- package/dist/adapter/resolve.d.ts +16 -0
- package/dist/adapter/resolve.d.ts.map +1 -0
- package/dist/adapter/sqlite.d.ts +17 -0
- package/dist/adapter/sqlite.d.ts.map +1 -0
- package/dist/adapter/sqlite.js +10 -0
- package/dist/adapter/sqlite.js.map +1 -0
- package/dist/adapter/types.d.ts +29 -0
- package/dist/adapter/types.d.ts.map +1 -0
- package/dist/app/audit-wiring.d.ts +6 -0
- package/dist/app/audit-wiring.d.ts.map +1 -0
- package/dist/app/body-size-limit.d.ts +29 -0
- package/dist/app/body-size-limit.d.ts.map +1 -0
- package/dist/app/compression.d.ts +25 -0
- package/dist/app/compression.d.ts.map +1 -0
- package/dist/app/cookies.d.ts +17 -0
- package/dist/app/cookies.d.ts.map +1 -0
- package/dist/app/cors.d.ts +65 -0
- package/dist/app/cors.d.ts.map +1 -0
- package/dist/app/csrf.d.ts +52 -0
- package/dist/app/csrf.d.ts.map +1 -0
- package/dist/app/health.d.ts +36 -0
- package/dist/app/health.d.ts.map +1 -0
- package/dist/app/index.d.ts +282 -0
- package/dist/app/index.d.ts.map +1 -0
- package/dist/app/logger.d.ts +4 -0
- package/dist/app/logger.d.ts.map +1 -0
- package/dist/app/middleware.d.ts +20 -0
- package/dist/app/middleware.d.ts.map +1 -0
- package/dist/app/module.d.ts +273 -0
- package/dist/app/module.d.ts.map +1 -0
- package/dist/app/plugin.d.ts +112 -0
- package/dist/app/plugin.d.ts.map +1 -0
- package/dist/app/rate-limit.d.ts +76 -0
- package/dist/app/rate-limit.d.ts.map +1 -0
- package/dist/app/request-id.d.ts +52 -0
- package/dist/app/request-id.d.ts.map +1 -0
- package/dist/app/router.d.ts +6 -0
- package/dist/app/router.d.ts.map +1 -0
- package/dist/app/scalar.d.ts +40 -0
- package/dist/app/scalar.d.ts.map +1 -0
- package/dist/app/secure-headers.d.ts +48 -0
- package/dist/app/secure-headers.d.ts.map +1 -0
- package/dist/app/system-ctx.d.ts +3 -0
- package/dist/app/system-ctx.d.ts.map +1 -0
- package/dist/app/types.d.ts +277 -0
- package/dist/app/types.d.ts.map +1 -0
- package/dist/chunk-32M77PK3.js +75 -0
- package/dist/chunk-32M77PK3.js.map +1 -0
- package/dist/chunk-7C6SKWY7.js +86 -0
- package/dist/chunk-7C6SKWY7.js.map +1 -0
- package/dist/chunk-7PGCL2E7.js +78 -0
- package/dist/chunk-7PGCL2E7.js.map +1 -0
- package/dist/chunk-F3WAOTEN.js +86 -0
- package/dist/chunk-FJSYS3BT.js +27 -0
- package/dist/chunk-UNRUXO7H.js +68 -0
- package/dist/chunk-WQ44NZ6K.js +116 -0
- package/dist/chunk-Z6ZWNWWR.js +34 -0
- package/dist/chunk-Z6ZWNWWR.js.map +1 -0
- package/dist/cli/bin.d.ts +3 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +645 -0
- package/dist/cli/commands/make/migration.d.ts +3 -0
- package/dist/cli/commands/make/migration.d.ts.map +1 -0
- package/dist/cli/commands/migrate/adapter.d.ts +14 -0
- package/dist/cli/commands/migrate/adapter.d.ts.map +1 -0
- package/dist/cli/commands/migrate/generate.d.ts +3 -0
- package/dist/cli/commands/migrate/generate.d.ts.map +1 -0
- package/dist/cli/commands/migrate/rollback.d.ts +3 -0
- package/dist/cli/commands/migrate/rollback.d.ts.map +1 -0
- package/dist/cli/commands/migrate/run.d.ts +3 -0
- package/dist/cli/commands/migrate/run.d.ts.map +1 -0
- package/dist/cli/commands/migrate/status.d.ts +3 -0
- package/dist/cli/commands/migrate/status.d.ts.map +1 -0
- package/dist/cli/commands/tinker.d.ts +7 -0
- package/dist/cli/commands/tinker.d.ts.map +1 -0
- package/dist/cli/config/defaults.d.ts +4 -0
- package/dist/cli/config/defaults.d.ts.map +1 -0
- package/dist/cli/config/loader.d.ts +3 -0
- package/dist/cli/config/loader.d.ts.map +1 -0
- package/dist/cli/config/types.d.ts +31 -0
- package/dist/cli/config/types.d.ts.map +1 -0
- package/dist/cli/discovery/commands.d.ts +4 -0
- package/dist/cli/discovery/commands.d.ts.map +1 -0
- package/dist/cli/discovery/services.d.ts +4 -0
- package/dist/cli/discovery/services.d.ts.map +1 -0
- package/dist/cli/discovery/tables.d.ts +5 -0
- package/dist/cli/discovery/tables.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/client/error.d.ts +8 -0
- package/dist/client/error.d.ts.map +1 -0
- package/dist/client/index.d.ts +33 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/proxy.d.ts +88 -0
- package/dist/client/proxy.d.ts.map +1 -0
- package/dist/client/test-client.d.ts +30 -0
- package/dist/client/test-client.d.ts.map +1 -0
- package/dist/cron/index.d.ts +73 -0
- package/dist/cron/index.d.ts.map +1 -0
- package/dist/db/index.d.ts +281 -0
- package/dist/db/index.d.ts.map +1 -0
- package/dist/db/migrations/diff.d.ts +5 -0
- package/dist/db/migrations/diff.d.ts.map +1 -0
- package/dist/db/migrations/generator.d.ts +26 -0
- package/dist/db/migrations/generator.d.ts.map +1 -0
- package/dist/db/migrations/index.d.ts +9 -0
- package/dist/db/migrations/index.d.ts.map +1 -0
- package/dist/db/migrations/introspect.d.ts +8 -0
- package/dist/db/migrations/introspect.d.ts.map +1 -0
- package/dist/db/migrations/migrator.d.ts +10 -0
- package/dist/db/migrations/migrator.d.ts.map +1 -0
- package/dist/db/migrations/runner.d.ts +7 -0
- package/dist/db/migrations/runner.d.ts.map +1 -0
- package/dist/db/migrations/tracker.d.ts +7 -0
- package/dist/db/migrations/tracker.d.ts.map +1 -0
- package/dist/db/migrations/types.d.ts +70 -0
- package/dist/db/migrations/types.d.ts.map +1 -0
- package/dist/db/sql.d.ts +148 -0
- package/dist/db/sql.d.ts.map +1 -0
- package/dist/db-XTXH6OKV.js +889 -0
- package/dist/errors/index.d.ts +30 -0
- package/dist/errors/index.d.ts.map +1 -0
- package/dist/events/handler.d.ts +42 -0
- package/dist/events/handler.d.ts.map +1 -0
- package/dist/events/index.d.ts +48 -0
- package/dist/events/index.d.ts.map +1 -0
- package/dist/events-LDXSK7ME.js +12 -0
- package/dist/executor-BM3A6AGL.js +104 -0
- package/dist/hooks/executor.d.ts +20 -0
- package/dist/hooks/executor.d.ts.map +1 -0
- package/dist/hooks/types.d.ts +10 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/index.d.ts +83 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5562 -0
- package/dist/index.js.map +1 -0
- package/dist/migrations-IWFQ6MZZ.js +757 -0
- package/dist/model/index.d.ts +24 -0
- package/dist/model/index.d.ts.map +1 -0
- package/dist/openapi/generator.d.ts +58 -0
- package/dist/openapi/generator.d.ts.map +1 -0
- package/dist/openapi/zod-to-schema.d.ts +4 -0
- package/dist/openapi/zod-to-schema.d.ts.map +1 -0
- package/dist/resource/errors.d.ts +2 -0
- package/dist/resource/errors.d.ts.map +1 -0
- package/dist/resource/index.d.ts +98 -0
- package/dist/resource/index.d.ts.map +1 -0
- package/dist/resource/zod-table.d.ts +6 -0
- package/dist/resource/zod-table.d.ts.map +1 -0
- package/dist/schema/audit.d.ts +25 -0
- package/dist/schema/audit.d.ts.map +1 -0
- package/dist/schema/column.d.ts +31 -0
- package/dist/schema/column.d.ts.map +1 -0
- package/dist/schema/table.d.ts +68 -0
- package/dist/schema/table.d.ts.map +1 -0
- package/dist/service/index.d.ts +27 -0
- package/dist/service/index.d.ts.map +1 -0
- package/dist/service-W4V6TFWU.js +126 -0
- package/dist/sqlite-VTXOCD65.js +10 -0
- package/dist/system-ctx-GPF44QCE.js +42 -0
- package/package.json +69 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export declare class VelnError extends Error {
|
|
2
|
+
readonly status: number;
|
|
3
|
+
readonly code: string;
|
|
4
|
+
constructor(message: string, status: number, code: string);
|
|
5
|
+
}
|
|
6
|
+
export declare class BadRequestError extends VelnError {
|
|
7
|
+
constructor(message?: string, code?: string);
|
|
8
|
+
}
|
|
9
|
+
export declare class UnauthorizedError extends VelnError {
|
|
10
|
+
constructor(message?: string, code?: string);
|
|
11
|
+
}
|
|
12
|
+
export declare class ForbiddenError extends VelnError {
|
|
13
|
+
constructor(message?: string, code?: string);
|
|
14
|
+
}
|
|
15
|
+
export declare class NotFoundError extends VelnError {
|
|
16
|
+
constructor(message?: string, code?: string);
|
|
17
|
+
}
|
|
18
|
+
export declare class ConflictError extends VelnError {
|
|
19
|
+
constructor(message?: string, code?: string);
|
|
20
|
+
}
|
|
21
|
+
export declare class UnprocessableError extends VelnError {
|
|
22
|
+
constructor(message?: string, code?: string);
|
|
23
|
+
}
|
|
24
|
+
export declare class TooManyRequestsError extends VelnError {
|
|
25
|
+
constructor(message?: string, code?: string);
|
|
26
|
+
}
|
|
27
|
+
export declare class InternalError extends VelnError {
|
|
28
|
+
constructor(message?: string, code?: string);
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/errors/index.ts"],"names":[],"mappings":"AAAA,qBAAa,SAAU,SAAQ,KAAK;IAGhC,QAAQ,CAAC,MAAM,EAAK,MAAM;IAC1B,QAAQ,CAAC,IAAI,EAAO,MAAM;gBAF1B,OAAO,EAAa,MAAM,EACjB,MAAM,EAAK,MAAM,EACjB,IAAI,EAAO,MAAM;CAK7B;AAED,qBAAa,eAAgB,SAAQ,SAAS;gBAChC,OAAO,SAAgB,EAAE,IAAI,SAAgB;CAI1D;AAED,qBAAa,iBAAkB,SAAQ,SAAS;gBAClC,OAAO,SAAiB,EAAE,IAAI,SAAiB;CAI5D;AAED,qBAAa,cAAe,SAAQ,SAAS;gBAC/B,OAAO,SAAc,EAAE,IAAI,SAAc;CAItD;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAAc,EAAE,IAAI,SAAc;CAItD;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAAa,EAAE,IAAI,SAAa;CAIpD;AAED,qBAAa,kBAAmB,SAAQ,SAAS;gBACnC,OAAO,SAAyB,EAAE,IAAI,SAAkB;CAIrE;AAED,qBAAa,oBAAqB,SAAQ,SAAS;gBACrC,OAAO,SAAsB,EAAE,IAAI,SAAsB;CAItE;AAED,qBAAa,aAAc,SAAQ,SAAS;gBAC9B,OAAO,SAA0B,EAAE,IAAI,SAAmB;CAIvE"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { VelnEvents } from './index';
|
|
2
|
+
import type { Logger, BaseOptions } from '../app/types';
|
|
3
|
+
import type { ServiceDef } from '../service/index';
|
|
4
|
+
export type EventCallback = (payload: unknown) => void | Promise<void>;
|
|
5
|
+
export type EventHandlerFn<TPayload, TServices extends Record<string, unknown> = Record<never, never>> = (payload: TPayload, ctx: {
|
|
6
|
+
logger: Logger;
|
|
7
|
+
} & TServices) => void | Promise<void>;
|
|
8
|
+
export type RawHandler = (payload: unknown, ctx: Record<string, unknown>) => void | Promise<void>;
|
|
9
|
+
export interface EventHandlerDef {
|
|
10
|
+
readonly _handlers: Map<string, EventCallback>;
|
|
11
|
+
readonly _rawHandlers: Map<string, RawHandler>;
|
|
12
|
+
readonly _logger: Logger;
|
|
13
|
+
readonly _services: ReadonlyArray<ServiceDef<string, unknown>>;
|
|
14
|
+
}
|
|
15
|
+
type TableLike = {
|
|
16
|
+
name: string;
|
|
17
|
+
_eventMap: Record<string, unknown>;
|
|
18
|
+
};
|
|
19
|
+
type EventHandlerMap<TTable extends TableLike> = Partial<{
|
|
20
|
+
[K in keyof TTable['_eventMap']]: (payload: TTable['_eventMap'][K]) => void | Promise<void>;
|
|
21
|
+
}>;
|
|
22
|
+
export declare class EventHandlerBuilder<TTable extends TableLike, TServices extends Record<string, unknown> = Record<never, never>> {
|
|
23
|
+
private readonly _table;
|
|
24
|
+
private _options;
|
|
25
|
+
private _handlerMap;
|
|
26
|
+
private _services;
|
|
27
|
+
constructor(_table: TTable);
|
|
28
|
+
options(opts: BaseOptions): this;
|
|
29
|
+
use<TKey extends string, TDef>(service: ServiceDef<TKey, TDef>): EventHandlerBuilder<TTable, TServices & Record<TKey, TDef>>;
|
|
30
|
+
on<TEvent extends string & keyof TTable['_eventMap']>(event: TEvent, handler: (payload: TTable['_eventMap'][TEvent], ctx: {
|
|
31
|
+
logger: Logger;
|
|
32
|
+
} & TServices) => void | Promise<void>): this;
|
|
33
|
+
build(): EventHandlerDef;
|
|
34
|
+
build(handlers: EventHandlerMap<TTable>): EventHandlerDef;
|
|
35
|
+
}
|
|
36
|
+
export declare function defineEventHandler<TTable extends TableLike>(table: TTable, handlers: EventHandlerMap<TTable>): EventHandlerDef;
|
|
37
|
+
export declare function defineEventHandler<TTable extends TableLike>(table: TTable): EventHandlerBuilder<TTable>;
|
|
38
|
+
export declare function defineEventHandler(handlers: Partial<{
|
|
39
|
+
[K in keyof VelnEvents]: (payload: VelnEvents[K]) => void | Promise<void>;
|
|
40
|
+
}>): EventHandlerDef;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../src/events/handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import type { PendingEvent } from '../db/index';
|
|
2
|
+
export type EventHandler = (payload: unknown, ctx: unknown) => Promise<void> | void;
|
|
3
|
+
export declare class RequestEventQueue {
|
|
4
|
+
private readonly buffer;
|
|
5
|
+
collect(name: string, payload: unknown): void;
|
|
6
|
+
flush(ctx: unknown, bus: EventBusAdapter | InMemoryEventBus): Promise<void>;
|
|
7
|
+
/** Drain — returns collected events and clears the buffer.
|
|
8
|
+
* Used by the TX path to hand events off to TransactionResult. */
|
|
9
|
+
drain(): PendingEvent[];
|
|
10
|
+
/** Number of buffered events — useful in tests. */
|
|
11
|
+
get size(): number;
|
|
12
|
+
}
|
|
13
|
+
export interface VelnEvents {
|
|
14
|
+
}
|
|
15
|
+
export type EventBusErrorHandler = (event: string, error: unknown) => void;
|
|
16
|
+
export interface EventBusOptions {
|
|
17
|
+
/** Called when an event handler throws. Defaults to console.error. */
|
|
18
|
+
onError?: EventBusErrorHandler;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* EventBusAdapter — minimal interface for event bus implementations.
|
|
22
|
+
*
|
|
23
|
+
* Default: InMemoryEventBus (single-process, zero latency)
|
|
24
|
+
*
|
|
25
|
+
* For multi-worker deployments: BroadcastChannelAdapter (@oakbun/broadcast, roadmap)
|
|
26
|
+
* For multi-server deployments: RedisAdapter (@oakbun/redis, roadmap)
|
|
27
|
+
*
|
|
28
|
+
* NOTE: EventBus is single-process by default. Events fired on instance A
|
|
29
|
+
* will NOT reach instance B without a distributed adapter.
|
|
30
|
+
*/
|
|
31
|
+
export interface EventBusAdapter {
|
|
32
|
+
on(event: string, handler: (payload: unknown) => void): void;
|
|
33
|
+
emit(event: string, payload: unknown): Promise<void>;
|
|
34
|
+
}
|
|
35
|
+
export declare class InMemoryEventBus {
|
|
36
|
+
private readonly handlers;
|
|
37
|
+
private readonly _onError;
|
|
38
|
+
constructor(options?: EventBusOptions);
|
|
39
|
+
on<K extends keyof VelnEvents>(event: K, handler: (payload: VelnEvents[K], ctx: unknown) => Promise<void> | void): this;
|
|
40
|
+
on(event: string, handler: EventHandler): this;
|
|
41
|
+
_emit(event: string, payload: unknown, ctx: unknown): void;
|
|
42
|
+
emit(event: string, payload: unknown): Promise<void>;
|
|
43
|
+
flush(events: PendingEvent[], ctx: unknown): Promise<void>;
|
|
44
|
+
}
|
|
45
|
+
/** @deprecated Use InMemoryEventBus instead. EventBus will be removed in a future version. */
|
|
46
|
+
export declare const EventBus: typeof InMemoryEventBus;
|
|
47
|
+
export type EventBus = InMemoryEventBus;
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;AAOnF,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAIvC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,eAAe,GAAG,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAWjF;uEACmE;IACnE,KAAK,IAAI,YAAY,EAAE;IAIvB,mDAAmD;IACnD,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF;AAWD,MAAM,WAAW,UAAU;CAAG;AAE9B,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;AAE1E,MAAM,WAAW,eAAe;IAC9B,sEAAsE;IACtE,OAAO,CAAC,EAAE,oBAAoB,CAAA;CAC/B;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI,CAAA;IAC5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CACrD;AAED,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoC;IAC7D,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;gBAEnC,OAAO,CAAC,EAAE,eAAe;IAMrC,EAAE,CAAC,CAAC,SAAS,MAAM,UAAU,EAC3B,KAAK,EAAE,CAAC,EACR,OAAO,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GACtE,IAAI;IAIP,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI;IAS9C,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IAYpD,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAKpD,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAKjE;AAED,8FAA8F;AAC9F,eAAO,MAAM,QAAQ,yBAAmB,CAAA;AACxC,MAAM,MAAM,QAAQ,GAAG,gBAAgB,CAAA"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
#!/usr/bin/env bun
|
|
2
|
+
import "./chunk-FJSYS3BT.js";
|
|
3
|
+
|
|
4
|
+
// src/hooks/executor.ts
|
|
5
|
+
var HookExecutor = class {
|
|
6
|
+
// tableName → ordered array of module-level handlers
|
|
7
|
+
registry = /* @__PURE__ */ new Map();
|
|
8
|
+
// Set by dbPlugin at install() — used by app.register() to build audit closures.
|
|
9
|
+
// undefined until dbPlugin installs (no-DB apps never set this).
|
|
10
|
+
_adapter;
|
|
11
|
+
// No EventBus held globally — queue is passed per runAfterX call
|
|
12
|
+
constructor() {
|
|
13
|
+
}
|
|
14
|
+
setAdapter(adapter) {
|
|
15
|
+
this._adapter = adapter;
|
|
16
|
+
}
|
|
17
|
+
getAdapter() {
|
|
18
|
+
return this._adapter;
|
|
19
|
+
}
|
|
20
|
+
// Called by defineModule when a .hook() is registered
|
|
21
|
+
registerModuleHook(tableName, handlers) {
|
|
22
|
+
if (!this.registry.has(tableName)) this.registry.set(tableName, []);
|
|
23
|
+
this.registry.get(tableName).push(handlers);
|
|
24
|
+
}
|
|
25
|
+
// ── Before operations — can transform data, can throw to cancel ──
|
|
26
|
+
async runBeforeInsert(table, ctx, data) {
|
|
27
|
+
let current = { ...data };
|
|
28
|
+
for (const h of table.hooks) {
|
|
29
|
+
if (!h.beforeInsert) continue;
|
|
30
|
+
const result = await h.beforeInsert(current);
|
|
31
|
+
if (result != null) current = result;
|
|
32
|
+
}
|
|
33
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
34
|
+
if (!h.beforeInsert) continue;
|
|
35
|
+
const result = await h.beforeInsert(ctx, current);
|
|
36
|
+
if (result != null) current = result;
|
|
37
|
+
}
|
|
38
|
+
return current;
|
|
39
|
+
}
|
|
40
|
+
async runBeforeUpdate(table, ctx, current, patch) {
|
|
41
|
+
let currentPatch = { ...patch };
|
|
42
|
+
for (const h of table.hooks) {
|
|
43
|
+
if (!h.beforeUpdate) continue;
|
|
44
|
+
const result = await h.beforeUpdate(current, currentPatch);
|
|
45
|
+
if (result != null) currentPatch = result;
|
|
46
|
+
}
|
|
47
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
48
|
+
if (!h.beforeUpdate) continue;
|
|
49
|
+
const result = await h.beforeUpdate(ctx, current, currentPatch);
|
|
50
|
+
if (result != null) currentPatch = result;
|
|
51
|
+
}
|
|
52
|
+
return currentPatch;
|
|
53
|
+
}
|
|
54
|
+
async runBeforeDelete(table, ctx, current) {
|
|
55
|
+
for (const h of table.hooks) {
|
|
56
|
+
if (h.beforeDelete) await h.beforeDelete(current);
|
|
57
|
+
}
|
|
58
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
59
|
+
if (h.beforeDelete) await h.beforeDelete(ctx, current);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
// ── After operations — side effects only, cannot cancel ──
|
|
63
|
+
// queue: per-request RequestEventQueue, or undefined when called outside HTTP context.
|
|
64
|
+
// When undefined (e.g. background jobs, tests, Phase 2 direct usage), events are dropped.
|
|
65
|
+
async runAfterInsert(table, ctx, result, input, queue) {
|
|
66
|
+
for (const h of table.hooks) {
|
|
67
|
+
if (h.afterInsert) await h.afterInsert(result, input);
|
|
68
|
+
}
|
|
69
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
70
|
+
if (h.afterInsert) await h.afterInsert(ctx, result, input);
|
|
71
|
+
}
|
|
72
|
+
if (table.events.afterInsert) {
|
|
73
|
+
queue?.collect(table.events.afterInsert, result);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async runAfterUpdate(table, ctx, result, before, queue) {
|
|
77
|
+
for (const h of table.hooks) {
|
|
78
|
+
if (h.afterUpdate) await h.afterUpdate(result, before);
|
|
79
|
+
}
|
|
80
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
81
|
+
if (h.afterUpdate) await h.afterUpdate(ctx, result, before);
|
|
82
|
+
}
|
|
83
|
+
if (table.events.afterUpdate) {
|
|
84
|
+
queue?.collect(table.events.afterUpdate, { before, after: result });
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
async runAfterDelete(table, ctx, deleted, queue) {
|
|
88
|
+
for (const h of table.hooks) {
|
|
89
|
+
if (h.afterDelete) await h.afterDelete(deleted);
|
|
90
|
+
}
|
|
91
|
+
for (const h of this._moduleHandlers(table.name)) {
|
|
92
|
+
if (h.afterDelete) await h.afterDelete(ctx, deleted);
|
|
93
|
+
}
|
|
94
|
+
if (table.events.afterDelete) {
|
|
95
|
+
queue?.collect(table.events.afterDelete, deleted);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
_moduleHandlers(tableName) {
|
|
99
|
+
return this.registry.get(tableName) ?? [];
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
export {
|
|
103
|
+
HookExecutor
|
|
104
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { VelnAdapter } from '../adapter/types';
|
|
2
|
+
import type { TableDef } from '../schema/table';
|
|
3
|
+
import type { ModuleHookHandlers } from './types';
|
|
4
|
+
import type { RequestEventQueue } from '../events/index';
|
|
5
|
+
export declare class HookExecutor {
|
|
6
|
+
private readonly registry;
|
|
7
|
+
private _adapter?;
|
|
8
|
+
constructor();
|
|
9
|
+
setAdapter(adapter: VelnAdapter): void;
|
|
10
|
+
getAdapter(): VelnAdapter | undefined;
|
|
11
|
+
registerModuleHook<T, TCtx>(tableName: string, handlers: ModuleHookHandlers<T, TCtx>): void;
|
|
12
|
+
runBeforeInsert<T>(table: TableDef<T>, ctx: unknown, data: Partial<T>): Promise<Partial<T>>;
|
|
13
|
+
runBeforeUpdate<T>(table: TableDef<T>, ctx: unknown, current: T, patch: Partial<T>): Promise<Partial<T>>;
|
|
14
|
+
runBeforeDelete<T>(table: TableDef<T>, ctx: unknown, current: T): Promise<void>;
|
|
15
|
+
runAfterInsert<T>(table: TableDef<T>, ctx: unknown, result: T, input: Partial<T>, queue?: RequestEventQueue): Promise<void>;
|
|
16
|
+
runAfterUpdate<T>(table: TableDef<T>, ctx: unknown, result: T, before: T, queue?: RequestEventQueue): Promise<void>;
|
|
17
|
+
runAfterDelete<T>(table: TableDef<T>, ctx: unknown, deleted: T, queue?: RequestEventQueue): Promise<void>;
|
|
18
|
+
private _moduleHandlers;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/hooks/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAcxD,qBAAa,YAAY;IAEvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAoD;IAI7E,OAAO,CAAC,QAAQ,CAAC,CAAa;;IAK9B,UAAU,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAItC,UAAU,IAAI,WAAW,GAAG,SAAS;IAKrC,kBAAkB,CAAC,CAAC,EAAE,IAAI,EACxB,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,kBAAkB,CAAC,CAAC,EAAE,IAAI,CAAC,GACpC,IAAI;IAOD,eAAe,CAAC,CAAC,EACrB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAoBhB,eAAe,CAAC,CAAC,EACrB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,GAChB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAkBhB,eAAe,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/E,cAAc,CAAC,CAAC,EACpB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EACjB,KAAK,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,IAAI,CAAC;IAaV,cAAc,CAAC,CAAC,EACpB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,CAAC,EACT,MAAM,EAAE,CAAC,EACT,KAAK,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,IAAI,CAAC;IAaV,cAAc,CAAC,CAAC,EACpB,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,EAClB,GAAG,EAAE,OAAO,EACZ,OAAO,EAAE,CAAC,EACV,KAAK,CAAC,EAAE,iBAAiB,GACxB,OAAO,CAAC,IAAI,CAAC;IAahB,OAAO,CAAC,eAAe;CAGxB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface ModuleHookHandlers<T, TCtx = unknown> {
|
|
2
|
+
beforeInsert?: (ctx: TCtx, data: Partial<T>) => Partial<T> | void | Promise<Partial<T> | void>;
|
|
3
|
+
afterInsert?: (ctx: TCtx, result: T, input: Partial<T>) => void | Promise<void>;
|
|
4
|
+
beforeUpdate?: (ctx: TCtx, current: T, patch: Partial<T>) => Partial<T> | void | Promise<Partial<T> | void>;
|
|
5
|
+
afterUpdate?: (ctx: TCtx, result: T, before: T) => void | Promise<void>;
|
|
6
|
+
beforeDelete?: (ctx: TCtx, current: T) => void | Promise<void>;
|
|
7
|
+
afterDelete?: (ctx: TCtx, deleted: T) => void | Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
export type HookOperation = 'beforeInsert' | 'afterInsert' | 'beforeUpdate' | 'afterUpdate' | 'beforeDelete' | 'afterDelete';
|
|
10
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hooks/types.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB,CAAC,CAAC,EAAE,IAAI,GAAG,OAAO;IACnD,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC9F,WAAW,CAAC,EAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAChF,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3G,WAAW,CAAC,EAAG,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,WAAW,CAAC,EAAG,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/D;AAED,MAAM,MAAM,aAAa,GACrB,cAAc,GAAG,aAAa,GAC9B,cAAc,GAAG,aAAa,GAC9B,cAAc,GAAG,aAAa,CAAA"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export type { VelnAdapter, BindingValue, ExecuteResult, QueryLogEntry } from './adapter/types';
|
|
2
|
+
export { SQLiteAdapter } from './adapter/sqlite';
|
|
3
|
+
export type { SQLiteConfig } from './adapter/sqlite';
|
|
4
|
+
export { PostgresAdapter } from './adapter/postgres';
|
|
5
|
+
export type { PostgresConfig } from './adapter/postgres';
|
|
6
|
+
export { MySQLAdapter } from './adapter/mysql';
|
|
7
|
+
export type { MySQLConfig } from './adapter/mysql';
|
|
8
|
+
export { resolveAdapter } from './adapter/resolve';
|
|
9
|
+
export type { AdapterConfig } from './adapter/resolve';
|
|
10
|
+
export { column } from './schema/column';
|
|
11
|
+
export type { Column, ColumnDef, SqlType } from './schema/column';
|
|
12
|
+
export { defineTable, toCreateTableSql } from './schema/table';
|
|
13
|
+
export type { SchemaMap, InferRow, InferInsert, InferUpdate, InferTable, TableDef, TableHookHandlers, TableEventMap, InferTableEvents, } from './schema/table';
|
|
14
|
+
export { defineAuditTable } from './schema/audit';
|
|
15
|
+
export type { AuditTableDef, AuditLog, AuditConfig } from './schema/audit';
|
|
16
|
+
export type { ModuleHookHandlers, HookOperation } from './hooks/types';
|
|
17
|
+
export { createMigrator, generateMigration, compareSchemas, introspectSchema, splitSqlStatements } from './db/migrations/index';
|
|
18
|
+
export type { Migrator, MigratorOptions, MigrationResult, MigrationStatus, MigrationRecord, SchemaDiff, TableDiff, TableModification, ColumnDef as MigrationColumnDef, IndexDef, ColumnModification, GenerateOptions, GenerateResult, } from './db/migrations/index';
|
|
19
|
+
export { VelnDB, BoundVelnDB, SelectBuilder, InsertBuilder, JoinBuilder } from './db/index';
|
|
20
|
+
export type { PendingEvent, TransactionResult, QueryLog, } from './db/index';
|
|
21
|
+
export type { JoinClause, SelectOptions, AggregateClause, WhereInput, WhereOp, WhereConditions, FieldCondition, SqlDialect } from './db/sql';
|
|
22
|
+
export type { EventBus as EventBusInterface } from './db/index';
|
|
23
|
+
export { InMemoryEventBus, EventBus, RequestEventQueue } from './events/index';
|
|
24
|
+
export type { EventBusAdapter, EventBusOptions, EventBusErrorHandler } from './events/index';
|
|
25
|
+
export type { EventHandler, VelnEvents } from './events/index';
|
|
26
|
+
export { defineEventHandler, EventHandlerBuilder } from './events/handler';
|
|
27
|
+
export type { EventHandlerDef, EventCallback, EventHandlerFn } from './events/handler';
|
|
28
|
+
export { defineModel, ModelBuilder } from './model/index';
|
|
29
|
+
export type { ModelDef, ModelInstance } from './model/index';
|
|
30
|
+
export { defineService } from './service/index';
|
|
31
|
+
export type { ServiceDef } from './service/index';
|
|
32
|
+
export { defineMiddleware, MiddlewareBuilder } from './app/middleware';
|
|
33
|
+
export type { MiddlewareDef } from './app/middleware';
|
|
34
|
+
export { createApp, Veln } from './app/index';
|
|
35
|
+
export { createSystemCtx } from './app/system-ctx';
|
|
36
|
+
export { defineModule, ModuleBuilder } from './app/module';
|
|
37
|
+
export type { VelnModule, HookDeclaration, AuditDeclaration, ServiceDeclaration } from './app/module';
|
|
38
|
+
export { loggerPlugin, dbPlugin, eventBusPlugin, createPlugin, definePlugin, PluginBuilder } from './app/plugin';
|
|
39
|
+
export type { DbPluginConfig, DbLogOptions, NavItem } from './app/plugin';
|
|
40
|
+
export type { Plugin } from './app/plugin';
|
|
41
|
+
export type { BaseCtx, Guard, ErrorHandler, RouteHandler, Logger, AuthPayload, LogOptions, BaseOptions, AuthUser, AuthAdapter } from './app/types';
|
|
42
|
+
export { ValidationError, createGuard, defineGuard, createOnRequest, createOnBeforeHandle, createOnResponse } from './app/types';
|
|
43
|
+
export { secureHeadersPlugin } from './app/secure-headers';
|
|
44
|
+
export type { SecureHeadersOptions, CspPreset } from './app/secure-headers';
|
|
45
|
+
export { rateLimitPlugin, InMemoryStore } from './app/rate-limit';
|
|
46
|
+
export type { RateLimitOptions, RateLimitStore } from './app/rate-limit';
|
|
47
|
+
export { csrfPlugin } from './app/csrf';
|
|
48
|
+
export type { CsrfOptions, CsrfPlugin } from './app/csrf';
|
|
49
|
+
export { scalarPlugin } from './app/scalar';
|
|
50
|
+
export type { ScalarOptions } from './app/scalar';
|
|
51
|
+
export { bodySizeLimitPlugin } from './app/body-size-limit';
|
|
52
|
+
export type { BodySizeLimitOptions } from './app/body-size-limit';
|
|
53
|
+
export { corsPlugin } from './app/cors';
|
|
54
|
+
export type { CorsOptions, CorsPlugin } from './app/cors';
|
|
55
|
+
export { requestIdPlugin } from './app/request-id';
|
|
56
|
+
export type { RequestIdOptions, RequestIdCtx, RequestIdPlugin } from './app/request-id';
|
|
57
|
+
export { compressionPlugin } from './app/compression';
|
|
58
|
+
export type { CompressionOptions } from './app/compression';
|
|
59
|
+
export { healthPlugin } from './app/health';
|
|
60
|
+
export type { HealthPluginOptions, HealthCheck, HealthPlugin } from './app/health';
|
|
61
|
+
export type { VelnWsAdapter, WsRouteShape } from './app/types';
|
|
62
|
+
export type { RouteSchema, RouteHandlerWithSchema, InferCtx } from './app/types';
|
|
63
|
+
export type { RouteMap, RouteEntry, RouteKey } from './app/types';
|
|
64
|
+
export type { StreamController, StreamOptions, SseController } from './app/types';
|
|
65
|
+
export type { OnRequestHook, OnBeforeHandleHook, OnResponseHook, OnRequestFn, OnBeforeHandleFn, OnResponseFn } from './app/types';
|
|
66
|
+
export { createClient } from './client/index';
|
|
67
|
+
export { createProxyClient, createModuleClient, pathToClientKey } from './client/index';
|
|
68
|
+
export type { ClientResult, InferProxyClient, ProxyClientOptions } from './client/index';
|
|
69
|
+
export { createTestClient } from './client/test-client';
|
|
70
|
+
export type { TestClientOptions } from './client/test-client';
|
|
71
|
+
export { VelnClientError } from './client/error';
|
|
72
|
+
export { generateOpenApiSpec } from './openapi/generator';
|
|
73
|
+
export type { OpenApiSpec } from './openapi/generator';
|
|
74
|
+
export { zodToJsonSchema } from './openapi/zod-to-schema';
|
|
75
|
+
export type { JsonSchema } from './openapi/zod-to-schema';
|
|
76
|
+
export { defineResource, ResourceBuilder, NotFoundError, ConflictError, tableToZodInsert, tableToZodRow } from './resource/index';
|
|
77
|
+
export type { ResourceResult, DefaultModelMethods, ResourceOptions, ModelOverrides, ServiceOverrides, RouteConfig } from './resource/index';
|
|
78
|
+
export { defineCron, resolveExpression, NoOpCronLockAdapter } from './cron/index';
|
|
79
|
+
export type { CronDef, CronBuilder, CronCtx, CronBuildOptions, LogLevel, CronLockAdapter } from './cron/index';
|
|
80
|
+
export { defineConfig, defineCommand } from './cli/index';
|
|
81
|
+
export type { VelnConfig, CommandDef, CommandOption } from './cli/index';
|
|
82
|
+
export { VelnError, BadRequestError, UnauthorizedError, ForbiddenError, UnprocessableError, TooManyRequestsError, InternalError, } from './errors/index';
|
|
83
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|